From a20e4ee93884b2103349655d8ad92e0b242e32dc Mon Sep 17 00:00:00 2001 From: Gavin Halliday Date: Thu, 25 Jul 2024 12:52:43 +0100 Subject: [PATCH 01/22] HPCC-32303 Ensure failure to initialize workunit results in a failed state Signed-off-by: Gavin Halliday --- common/workunit/workunit.cpp | 52 +++++-- common/workunit/workunit.hpp | 1 + .../ws_workunits/ws_workunitsHelpers.cpp | 130 ++++++++++-------- 3 files changed, 110 insertions(+), 73 deletions(-) diff --git a/common/workunit/workunit.cpp b/common/workunit/workunit.cpp index a5e97aff12b..9d52d5fede7 100644 --- a/common/workunit/workunit.cpp +++ b/common/workunit/workunit.cpp @@ -8716,14 +8716,26 @@ void CLocalWorkUnit::setDebugValue(const char *propname, const char *value, bool lower.append(propname); if (!strchr(lower, ':')) lower.toLowerCase(); - CriticalBlock block(crit); - StringBuffer prop("Debug/"); - prop.append(lower); - if (overwrite || !p->hasProp(prop.str())) + try { - // MORE - not sure this line should be needed.... - p->setProp("Debug", ""); - p->setProp(prop.str(), value); + CriticalBlock block(crit); + StringBuffer prop("Debug/"); + prop.append(lower); + if (overwrite || !p->hasProp(prop.str())) + { + // MORE - not sure this line should be needed.... + p->setProp("Debug", ""); + p->setProp(prop.str(), value); + } + } + catch (IException * e) + { + if (!validateXMLTag(propname)) + { + e->Release(); + throw makeStringExceptionV(WUERR_InvalidDebugValueName, "Attempt to set debug value with invalid name: %s", propname); + } + throw; } } @@ -8733,14 +8745,26 @@ void CLocalWorkUnit::setDebugValueInt(const char *propname, int value, bool over lower.append(propname); if (!strchr(lower, ':')) lower.toLowerCase(); - CriticalBlock block(crit); - StringBuffer prop("Debug/"); - prop.append(lower); - if (overwrite || !p->hasProp(prop.str())) + try { - // MORE - not sure this line should be needed.... - p->setProp("Debug", ""); - p->setPropInt(prop.str(), value); + CriticalBlock block(crit); + StringBuffer prop("Debug/"); + prop.append(lower); + if (overwrite || !p->hasProp(prop.str())) + { + // MORE - not sure this line should be needed.... + p->setProp("Debug", ""); + p->setPropInt(prop.str(), value); + } + } + catch (IException * e) + { + if (!validateXMLTag(propname)) + { + e->Release(); + throw makeStringExceptionV(WUERR_InvalidDebugValueName, "Attempt to set debug value with invalid name: %s", propname); + } + throw; } } diff --git a/common/workunit/workunit.hpp b/common/workunit/workunit.hpp index d96471b5077..d73d9f6dc8c 100644 --- a/common/workunit/workunit.hpp +++ b/common/workunit/workunit.hpp @@ -58,6 +58,7 @@ enum : unsigned { WUERR_ModifyFilterAfterFinalize = WORKUNIT_ERROR_START, WUERR_FinalizeAfterFinalize, + WUERR_InvalidDebugValueName, }; // error codes diff --git a/esp/services/ws_workunits/ws_workunitsHelpers.cpp b/esp/services/ws_workunits/ws_workunitsHelpers.cpp index 212e90d7b4f..a018886f466 100644 --- a/esp/services/ws_workunits/ws_workunitsHelpers.cpp +++ b/esp/services/ws_workunits/ws_workunitsHelpers.cpp @@ -3731,81 +3731,93 @@ void WsWuHelpers::submitWsWorkunit(IEspContext& context, IConstWorkUnit* cw, con if(!wu.get()) throw MakeStringException(ECLWATCH_CANNOT_UPDATE_WORKUNIT, "Cannot update workunit %s.", wuid.str()); - wu->clearExceptions(); - if(notEmpty(cluster)) - wu->setClusterName(cluster); - if(notEmpty(snapshot)) - wu->setSnapshot(snapshot); - wu->setState(WUStateSubmitted); - if (maxruntime) - wu->setDebugValueInt("maxRunTime",maxruntime,true); - if (maxcost) - wu->setDebugValueInt("maxCost", maxcost, true); - if (debugs && debugs->length()) - { - ForEachItemIn(i, *debugs) + try + { + wu->clearExceptions(); + if(notEmpty(cluster)) + wu->setClusterName(cluster); + if(notEmpty(snapshot)) + wu->setSnapshot(snapshot); + wu->setState(WUStateSubmitted); + if (maxruntime) + wu->setDebugValueInt("maxRunTime",maxruntime,true); + if (maxcost) + wu->setDebugValueInt("maxCost", maxcost, true); + if (debugs && debugs->length()) { - IConstNamedValue &item = debugs->item(i); - const char *name = item.getName(); - const char *value = item.getValue(); - if (!name || !*name) - continue; - StringBuffer expanded; - if (*name=='-') - name=expanded.append("eclcc").append(name).str(); - if (!value) + ForEachItemIn(i, *debugs) { - size_t len = strlen(name); - char last = name[len-1]; - if (last == '-' || last == '+') + IConstNamedValue &item = debugs->item(i); + const char *name = item.getName(); + const char *value = item.getValue(); + if (!name || !*name) + continue; + StringBuffer expanded; + if (*name=='-') + name=expanded.append("eclcc").append(name).str(); + if (!value) { - StringAttr s(name, len-1); - wu->setDebugValueInt(s.get(), last == '+' ? 1 : 0, true); + size_t len = strlen(name); + char last = name[len-1]; + if (last == '-' || last == '+') + { + StringAttr s(name, len-1); + wu->setDebugValueInt(s.get(), last == '+' ? 1 : 0, true); + } + else + wu->setDebugValueInt(name, 1, true); + continue; } - else - wu->setDebugValueInt(name, 1, true); - continue; + wu->setDebugValue(name, value, true); } - wu->setDebugValue(name, value, true); } - } - if (applications) - { - ForEachItemIn(ii, *applications) + if (applications) { - IConstApplicationValue& item = applications->item(ii); - if(notEmpty(item.getApplication()) && notEmpty(item.getName())) - wu->setApplicationValue(item.getApplication(), item.getName(), item.getValue(), true); + ForEachItemIn(ii, *applications) + { + IConstApplicationValue& item = applications->item(ii); + if(notEmpty(item.getApplication()) && notEmpty(item.getName())) + wu->setApplicationValue(item.getApplication(), item.getName(), item.getValue(), true); + } } - } - ISpan * activeSpan = context.queryActiveSpan(); - OwnedSpanScope clientSpan(activeSpan->createClientSpan("run_workunit")); - Owned httpHeaders = ::getClientHeaders(clientSpan); - recordTraceDebugOptions(wu, httpHeaders); + ISpan * activeSpan = context.queryActiveSpan(); + OwnedSpanScope clientSpan(activeSpan->createClientSpan("run_workunit")); + Owned httpHeaders = ::getClientHeaders(clientSpan); + recordTraceDebugOptions(wu, httpHeaders); - if (resetWorkflow) - wu->resetWorkflow(); - if (!compile) - wu->schedule(); + if (resetWorkflow) + wu->resetWorkflow(); + if (!compile) + wu->schedule(); - if (resetVariables) - { - SCMStringBuffer varname; - Owned vars = &wu->getVariables(); - ForEach (*vars) + if (resetVariables) { - vars->query().getResultName(varname); - Owned v = wu->updateVariableByName(varname.str()); - if (v) - v->setResultStatus(ResultStatusUndefined); + SCMStringBuffer varname; + Owned vars = &wu->getVariables(); + ForEach (*vars) + { + vars->query().getResultName(varname); + Owned v = wu->updateVariableByName(varname.str()); + if (v) + v->setResultStatus(ResultStatusUndefined); + } } - } - setXmlParameters(wu, paramXml, variables, (wu->getAction()==WUActionExecuteExisting)); + setXmlParameters(wu, paramXml, variables, (wu->getAction()==WUActionExecuteExisting)); + wu->commit(); + } + catch (IException * e) + { + //An exception occurred when setting up the workunit e.g. an invalid debug value name. + wu->setState(WUStateFailed); + StringBuffer msg; + addExceptionToWorkunit(wu, SeverityError, "esp", e->errorCode(), e->errorMessage(msg).str(), nullptr, 0, 0, 0); + wu->commit(); + throw; + } - wu->commit(); wu.clear(); if (!compile) From 3924908636d7b7e394af03813f7aca8be6de793a Mon Sep 17 00:00:00 2001 From: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> Date: Tue, 20 Aug 2024 10:57:25 -0400 Subject: [PATCH 02/22] HPCC-32424 ECL Watch v9 Source Files default sorting changes the default sorting of files listed on the Source Files tab of the Workunit Details page, such that subfiles immediately follow their respective superfiles Signed-off-by: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> --- esp/src/src-react/components/SourceFiles.tsx | 11 ++++------- esp/src/src-react/hooks/workunit.ts | 19 +++++++++++++++++-- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/esp/src/src-react/components/SourceFiles.tsx b/esp/src/src-react/components/SourceFiles.tsx index ed1e083edfb..cda748e8845 100644 --- a/esp/src/src-react/components/SourceFiles.tsx +++ b/esp/src/src-react/components/SourceFiles.tsx @@ -25,7 +25,7 @@ interface SourceFilesProps { } const emptyFilter: { [id: string]: any } = {}; -const defaultSort = { attribute: "Name", descending: false }; +const defaultSort = { attribute: undefined, descending: false }; export const SourceFiles: React.FunctionComponent = ({ wuid, @@ -52,7 +52,7 @@ export const SourceFiles: React.FunctionComponent = ({ selectorType: "checkbox" }, Name: { - label: "Name", sortable: true, + label: "Name", width: 400, sortable: true, formatter: (Name, row) => { let fileUrl = `#/files/${Name}`; if (row?.FileCluster) { @@ -65,11 +65,8 @@ export const SourceFiles: React.FunctionComponent = ({ ; } }, - FileCluster: { label: nlsHPCC.FileCluster, width: 300, sortable: false }, - Count: { - label: nlsHPCC.Usage, width: 72, sortable: true, - justify: "right" - } + FileCluster: { label: nlsHPCC.FileCluster, width: 200, sortable: false }, + Count: { label: nlsHPCC.Usage, width: 72, sortable: true, justify: "right" } }; }, []); diff --git a/esp/src/src-react/hooks/workunit.ts b/esp/src/src-react/hooks/workunit.ts index 662b44dccdb..3bc1c22314a 100644 --- a/esp/src/src-react/hooks/workunit.ts +++ b/esp/src/src-react/hooks/workunit.ts @@ -132,6 +132,21 @@ export function useWorkunitSourceFiles(wuid: string): [SourceFile[], Workunit, W const [sourceFiles, setSourceFiles] = React.useState([]); const [count, inc] = useCounter(); + // sorts the WU source files alphabetically by parent name, then name + // with children immediately following parents + const sortFiles = React.useCallback(files => { + const sortedFiles = []; + const temp = files.sort((a, b) => a.Name.localeCompare(b.Name)); + + temp.filter(item => item.__hpcc_parentName === "").forEach(parent => { + sortedFiles.push(parent); + const relatedChildren = temp.filter(child => child.__hpcc_parentName === parent.Name); + sortedFiles.push(...relatedChildren); + }); + + return sortedFiles; + }, []); + React.useEffect(() => { if (workunit) { const fetchInfo = singletonDebounce(workunit, "fetchInfo"); @@ -151,10 +166,10 @@ export function useWorkunitSourceFiles(wuid: string): [SourceFile[], Workunit, W }); }); }); - setSourceFiles(sourceFiles); + setSourceFiles(sortFiles(sourceFiles)); }).catch(err => logger.error(err)); } - }, [workunit, state, count]); + }, [count, sortFiles, state, workunit]); return [sourceFiles, workunit, state, inc]; } From 26ef516504b523787d022ad3bbf540c6fa596a6b Mon Sep 17 00:00:00 2001 From: Panagiotatos Date: Wed, 21 Aug 2024 16:49:14 -0400 Subject: [PATCH 03/22] HPCC-32399 Remove bad links from deprecated docs Signed-off-by: Panagiotatos --- .../EN_US/ConfiguringHPCC/ConfiguringHPCC.xml | 19 +- docs/EN_US/ECLWatch/CMakeLists.txt | 17 - .../EN_US/ECLWatch/ECLWa_mods/ECLWatchSrc.xml | 2013 ---------------- docs/EN_US/ECLWatch/ECLWa_mods/SessFaq.xml | 243 -- docs/EN_US/ECLWatch/TheECLWatchMan.xml | 1849 --------------- .../PT_BR/ConfiguringHPCC/ConfiguringHPCC.xml | 32 +- docs/PT_BR/ECLPluginForEclipse/CMakeLists.txt | 29 - .../ECL_Plugin_for_Eclipse.xml | 761 ------ docs/PT_BR/ECLWatch/CMakeLists.txt | 17 - .../PT_BR/ECLWatch/ECLWa_mods/ECLWatchSrc.xml | 2069 ----------------- docs/PT_BR/ECLWatch/ECLWa_mods/SessFaq.xml | 249 -- docs/PT_BR/ECLWatch/TheECLWatchMan.xml | 1870 --------------- 12 files changed, 46 insertions(+), 9122 deletions(-) delete mode 100644 docs/EN_US/ECLWatch/CMakeLists.txt delete mode 100644 docs/EN_US/ECLWatch/ECLWa_mods/ECLWatchSrc.xml delete mode 100644 docs/EN_US/ECLWatch/ECLWa_mods/SessFaq.xml delete mode 100644 docs/EN_US/ECLWatch/TheECLWatchMan.xml delete mode 100644 docs/PT_BR/ECLPluginForEclipse/CMakeLists.txt delete mode 100644 docs/PT_BR/ECLPluginForEclipse/ECL_Plugin_for_Eclipse.xml delete mode 100644 docs/PT_BR/ECLWatch/CMakeLists.txt delete mode 100644 docs/PT_BR/ECLWatch/ECLWa_mods/ECLWatchSrc.xml delete mode 100644 docs/PT_BR/ECLWatch/ECLWa_mods/SessFaq.xml delete mode 100644 docs/PT_BR/ECLWatch/TheECLWatchMan.xml diff --git a/docs/EN_US/ConfiguringHPCC/ConfiguringHPCC.xml b/docs/EN_US/ConfiguringHPCC/ConfiguringHPCC.xml index 21fbc070187..9aaf9a8c7bf 100644 --- a/docs/EN_US/ConfiguringHPCC/ConfiguringHPCC.xml +++ b/docs/EN_US/ConfiguringHPCC/ConfiguringHPCC.xml @@ -2703,9 +2703,22 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi - + + XREF with multiple Thor clusters + + XREF runs on the primary Thor cluster. For a configuration + with more than one Thor cluster on the same physical node group, ECL + Watch only displays the primary Thor and not any other Thor that + shares the same node group. This is the Thor cluster whose name + matches the nodeGroup in the + configuration. + + To allow XREF to run in an environment with multiple Thor + clusters, set the nodeGroup to the same value for all Thor + clusters. + + + diff --git a/docs/EN_US/ECLWatch/CMakeLists.txt b/docs/EN_US/ECLWatch/CMakeLists.txt deleted file mode 100644 index 630f4204600..00000000000 --- a/docs/EN_US/ECLWatch/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ -################################################################################ -# HPCC SYSTEMS software Copyright (C) 2012 HPCC Systems®. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -################################################################################ -get_filename_component(DOC_DIR_NAME ${CMAKE_CURRENT_SOURCE_DIR} NAME) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../BuildTools/cmake_config/${DOC_DIR_NAME}.txt) diff --git a/docs/EN_US/ECLWatch/ECLWa_mods/ECLWatchSrc.xml b/docs/EN_US/ECLWatch/ECLWa_mods/ECLWatchSrc.xml deleted file mode 100644 index 94aafbffa9a..00000000000 --- a/docs/EN_US/ECLWatch/ECLWa_mods/ECLWatchSrc.xml +++ /dev/null @@ -1,2013 +0,0 @@ - - - - Using ECL Watch 4.x - - - Using ECL Watch 4.x - - - - - - - - - Boca Raton Documentation Team - - - - We welcome your comments and feedback about this document via - email to docfeedback@hpccsystems.com Please include - Documentation Feedback in the subject - line and reference the document name, page numbers, and current Version - Number in the text of the message. - - LexisNexis and the Knowledge Burst logo are registered trademarks - of Reed Elsevier Properties Inc., used under license. Other products, - logos, and services may be trademarks or registered trademarks of their - respective companies. All names and example data used in this manual are - fictitious. Any similarity to actual persons, living or dead, is purely - coincidental. - - - - - - - - FooterInfo Failed to load - - - - - - - - DateVer Failed to load - - - - - HPCC Systems® - - - - - Copyright Failed to load - - - - - - - - - - - - - Introduction - - This document depicts details about the newly redesigned ECL Watch. - The new design is more practical and offers many new features and - functionality. The new ECL Watch is bundled with the 4.x HPCC Systems - platform software. - - - ECL Watch 4.x - - ECL Watch provides an interface to the HPCC Systems platform and - allows you to view information and interrogate nodes to confirm all - expected processes are running. This provides a simple view into the - system and a means to perform Work Unit and data files - maintenance.*** - - Using ECL watch assumes your HPCC Systems platform is up and - running, able to process jobs, and workunits. You would use the ECL - Watch interface to both check the status of your jobs, and perform - operations on those jobs.*** - - - - ECL Workunits Page - - The ECL Workunits page contains a list of all the ECL workunits on - your system. It provides access to more details about the workunits. You - can also perform actions on the selected workunit using the Workunit - Action buttons. - - To access the workunits page click on the - ECL icon, then click the Workunits link from the navigation sub-menu. -
- ECL Files - - - - - - -
- - The page displays the ECL workunits on your system. Choose - the Workunits Navigation tab to display - the workunits. - -
- ECL Watch Browse Workunits - - - - - - -
- - To further examine a workunit or to perform some action on it, you - must select it. You can select the workunit by checking the check box. - You can also open a work unit by double-clicking on the workunit.
- Select ECL Workunit - - - - - - -
- - When you select a workunit, the Action buttons are enabled. You - can also use the Context Menu when you right-click on a workunit to - perform an action on it. - - You can select multiple workunits by checking the check box next - to each workunit. You can also click-and-drag over the workunit check - boxes to select multiple workunits. When you select multiple workunits, - each workunit will open it's own tab. - - The Action buttons allow you to perform actions on the selected - workunits. - - - - Press the Open button to open - the selected workunit(s). - - - - Press the Delete button to - delete selected workunit(s). - - - - Press the Set to Failed - button to set the state of the selected workunit(s) to - failed. - - - - Press the Abort button to - stop a selected workunit that is running and abort the job. - - - - Press the Protect button to - lock the selected workunit(s). This prevents it from archiving by - the Sasha server. - - - - Press the Unprotect button to - unlock the selected locked workunit(s). - - - - Press the Reschedule button - to reschedule selected workunit(s) which have been - descheduled. - - - - Press the Deschedule button - to stop a selected scheduled workunit from running. - - - - Press the Filter button to - display additional filter options. These options filter the - displayed list of workunits. - - - - - Filter Options - - You can filter the workunits displayed on the Workunits tab by - clicking on the Filter Action button. - The Filter sub-menu displays. Fill in values to specify the filter - criteria, then press the Apply - button. - -
- The Filter sub-menu - - - - - - -
- - The workunit filter options allow you to filter workunits using - the specified criteria. Workunits can be filtered by: - - - - Archived Only - when - checked, this filter will search only archived workunits. - - - - WUID - filter workunits for - specific workunit ID (wuid). - - - - Owner - filter workunits - for specific owners. Supports wildcards. - - - - Job Name - filter workunits - by job name. Supports wildcards. - - - - Cluster - filter workunits - by cluster. Select the cluster from the drop list. - - - - State - filter workunits by - State. Select the state from the drop list. - - - - ECL - filter workunits by - specific ECL. For example, :=dataset. - Supports wildcards. - - - - Logical File - filter - workunits by Logical File name, or some portion of it. Supports - wildcards. - - - - Logical File Type - filter - workunits by Logical File type. Select the Logical file type from - the drop list. - - - - From date - filter - workunits from a specific date and/or time. Select the date and - time from the drop list. - - - - To date - filter workunits - up to a specific date and/or time. Select the date and time from - the drop list. - - - - Last N - Days - filter workunits for a - certain number (N) of days. Enter a number in this field. - - - - Some filter fields support wild card filtering. Wildcards can - substitute for one or more characters when filtering data in the - filter. The wild card characters are *, and ?. Where * can substituted - for all possible characters, and a ? can be substituted for any single - character. - - - - Note: - - - Filter criteria are not case sensitive. - - - - - When you specify any Filter options, the Filter Action button - displays Filter Set.
- Filter Set - - - - - - -
- - - Sorting Columns - - You can sort a column by clicking on the column heading. Click - once for ascending, click again to toggle to descending. The - direction of the arrow indicates the sort order.
- Sort by column - - - - - - -
-
-
- - - Context Menu - - You can right-click on a workunit to get a context menu of - actions, including filter options. These are the same set of actions - that you could perform from the Action buttons. - -
- Context menu - - - - - - -
-
- - - Workunit Details - - The Workunit Details page provides more information about the - workunit. You can see more specific information about the selected - workunit by selecting the various Workunit Details tabs. - -
- Workunit Details - - - - - - -
- - The Workunit Details Action Buttons allow you to perform actions - on the selected workunit. Press the corresponding Action button to - allow you to perform the following actions. - - - - Refresh - Redisplays the - workunit details. - - - - Save - Saves any changes to - the workunit. - - - - Delete - Deletes the - workunit. - - - - Restore - Restores an - archived workunit. (Workunits are archived by Sasha). - - - - Reschedule - Reschedules a - workunit which has been descheduled. - - - - Deschedule - Stops the - scheduled workunit from running. - - - - Set To Failed - Changes the - workunit state to failed. - - - - Abort - Stops a running - workunit and aborts the job. - - - - Recover - Resubmits the - workunit without resetting the workflow. This resumes processing - from the same point in the process where it ended - previously. - - - - Resubmit - Resubmits the - workunit. This resets the workflow and starts it over from the - beginning. - - - - Clone - Creates a new copy - of the workunit. The new workunit is now owned by the user who - cloned it. - - - - Publish - Publishes the - workunit as a published query. - - - - Z.A.P. - Packages up - workunit and system information into a Zip file that can be - shared. This is useful for troubleshooting and bug - reporting. - - - - Slave Logs - Download the - logs for the specified Thor cluster. This is useful for - troubleshooting any Thor issues. - - - - On the workunit details tab, there are icons next to the - workunit ID (WUID) that allow you to copy either the WUID or the URL. - The first icon copies the WUID to the clipboard. The second icon - copies the URL. - - - Publish Action Button - - Click on the Publish action button to publish a query.
- Publish Menu - - - - - - -
- - Fill in the values for the Job Name, the Remote Dali, Source - Process, Priority (optional), and you can add a comment. After you - fill in the required values you can press the Submit button to submit your query. - - Options for ECL Publish - - - - Job Name: The name of the - job to publish. Auto-populated if you choose to publish from the - workunit details page. - - - - - - Remote Dali: The IP or - hostname of the DALI to be used to resolve remote files. - (optional) - - - - - - Source Process: Process - cluster from which to copy files. (optional) - - - - - - Comment: If desired, add - a comment. The comment displays on the published queries details - page. - - - - Priority: Sets the - priority for the query. Values can be LOW, HIGH, SLA, or NONE. - NONE will clear current setting. - - - - - - Allow Foreign Files: - Check the box to allow the use of foreign files in a Roxie - query. If a Roxie query references foreign files and this is not - enabled, publish will fail. - - - - Update Super Files: Use - when a query uses foreign superfiles or a remote Dali. When such - a query is published the superfiles are copied from the remote - Dali. If superfiles already exist locally, then the current - definition is overwritten only when this box is checked. If it - is not checked, the current definition will not change. - - -
- - - Z.A.P. Utility - - The Zipped Analysis Package (Z.A.P.) button is a utility for - collecting system information and encapsulating it into a shareable - package. It is a useful tool for reporting errors, inconsistencies, - or other unexpected behavior. When there is such an occurrence, this - utility packages up information to send for further analysis. - -
- Z.A.P. Button - - - - - - -
- - To use the Z.A.P. utility, press the Z.A.P. button on the - workunit details page from the appropriate workunit. The button - opens the Zipped Analysis Package dialog. - -
- The Zipped Analysis Package Dialog - - - - - - -
- - Some of the required fields are populated. Fill in the - corresponding values under Description, History, and Timings fields. - Optionally, you can password protect the ZAP package and choose to - include slave logs. Slave logs are not included by default. If there - are slave logs, the option to include them is available. You must - check that field when available to include the slave logs. - - If your data contains sensitive information, such as - personally identifiable information (PII), save the ZAP package, - sanitize the data, then email it manually. If appropriate to share - your data, you can take advantage of the Send Email field. - - The Send Email field is only available if email is configured - for the ESP service in the Configuration Manager. If available, - check the Send Email box to email the ZAP report. Only an - Administrator can configure the email. The (To) Email Address is - also set by the Administrator and can only be changed in the - configuration. The (From) Email Address can be set in the - Configuration Manager, but can be changed if desired. The Email - Subject is required, but the Email Body is optional. - - Press the Apply button when - all the dialog fields are completed. At that point if you checked - the Send Email box, the Z.A.P. report gets sent. If email is not - configured, the Z.A.P. utility generates a zip file with all the - appropriate information for troubleshooting. - - You can find the generated zip file in your browser's - designated download directory. You can now manually send this file - to the person handling your support request, or you can upload the - file into the issue tracking system. Remember, you should only use - the email feature if appropriate to share your data. -
- - - Slave Logs - -
- The Slave Logs Dialog - - - - - - -
- - The Slave Logs action button - opens a dialog where you can choose to download the logs for a - specified Thor cluster. You can select the cluster, a specific Slave - number, and the log file format (plain or compressed). This is - useful for troubleshooting any Thor issues. -
- - - Outputs tab - - Click on the Outputs tab to see all results.
- Outputs - - - - - - -
- - Click on the Result # link to - open a tab and display the results. - -
- Results Tab - - - - - - -
You can filter the result set. Press the Filter action button to further filter down - the results.
- - Press the Download action - buttons to download the output files. The output files are available - in 3 formats. - - - - GZIP - - - - ZIP - - - - XLS: Download the output - in an Excel spreadsheet format. - - -
- - - Visualizations - - You can see visual representations of select workunits. - Visualizations are accessible from the workunit details page. On the - workunit details page select the Outputs tab. Check the box to select the - result and press the Visualize - action button. - - The Visualize tab provides a number of chart types you can - generate from your result.
- Visualization - - - - - - -
- - You can view different visualization types by clicking on the - drop list on the Visualize tab. Click on the Mappings drop menu, to change the - parameters. -
- - - Inputs tab - - Click on the Inputs tab to - see the workunit's input files. The input files are the source files - that make up the workunit.
- Inputs - - - - - - -
- - The input files are displayed as a link. You can double-click - the link to open a tab for each input file. You can select more than - one input file and press the open button. - - The Usage header indicates - how many times a file was used in the workunit. -
- - - Timers tab - - Click on the Timers tab to - see the workunit timings.
- Timers - - - - - - -
- - Timers depict everything that happened with the workunit and - for how long. Timers include graphs which also provide more - information as to the processing of the workunit. The graphical heat - map indicates by a darker color where more time was needed, while - the lighter the color indicates that portion took less time. -
- - - Graphs tab - - Click on the Graphs tab to - see the graphs produced by the workunit.
- GRAPHS - - - - - - -
- - The Graphs tab shows a list of each graph and the heat map. - Double click on the heat map to go to the corresponding portion of - the graph. -
- - - Timers tab - - Click on the Timers tab to - see the workunit timings.
- Timers - - - - - - -
- - Timers depict everything that happened with the workunit and - for how long. Timers include graphs which also provide more - information as to the processing. The Heat map indicates by a darker - color where more time was needed,while the lighter the color - indicates that portion tool less time. - - Usage: how many times a file - was used in the work unit. - - - Stats - - On the workunit Timers tab is another tab for Stats. The - Stats tab is a visual representation of all the workunit - timings. - -
- Stats - - - - - - -
- - Select the timer values from the drop list on the Stats tab - to view the various charts and graphs. -
-
- - - Workflows tab - - The workflows tab only exists if you have an attribute - scheduled. There are multiple workflows when your code contains more - than one WHEN statement. - - Counts: How many "events" are - scheduled to happen. - - Remain: How many "events" - remain to occur. - - - - Queries tab - - Queries will only appear in the work unit details if the work - unit is a published QUERY. Displays what queries were published from - that work unit. Same as the queries tab: suspend, unsuspend, - activate or deactivate. delete tabs with out any data. - - - - - - Helpers tab - - The Helpers tab displays several helpful elements of a - workunit, which might include: the submitted ECL code, the Workunit - XML, the archived query, the DLL (SO), the generated C++ file(s), - the Thor log, the Thor slave logs, the ECL Agent log, and the - Compiler log. Log files only show the portion of the log that - pertains to the selected workunit. - - - - ECL Tab - - Shows the ECL code for that workunit. It is the same thing as - the Helpers ECL link. - - - - XML tab - - The workunits XML record as stored in Dali. - -
-
- - - DFU Workunits Page - - The DFU Workunits page contains a list of all the DFU workunits on - your system. It provides access to more details about the workunits. You - can also perform actions on the selected workunit using the Workunit - Action buttons.
- Files Link - - - - - - -
- - To access the DFU workunits page, click on the Files link on the navigation pane, then click - the Workunits link from the navigation - sub-menu. This action opens the DFU Workunits page. The page displays - the DFU Workunits on your system. - -
- Browse DFU Workunits - - - - - - -
To further examine a workunit or to perform some action on it - you must select it. You can select the workunit by checking the check - box. You can also double-click on the workunit to select and open it in - a new tab.
- Select DFU Workunit - - - - - - -
- - You can select multiple workunits by checking the check box next - to each workunit. You can also click-and-drag over a group of workunit - check boxes to select multiple workunits. - - The enabled Action buttons now allow you to perform some actions - on the selected workunits. - - Press the Refresh button to - refresh the list. - - - - Press the Open button to - open the workunit(s) details tab. - - - - Press the Delete button to - delete selected workunit(s). - - - - Press Set to Failed button - to set the workunit(s) state to failed. - - - - Press the Protect button to - lock the workunit(s). This prevents it from archiving by the Sasha - server. - - - - Press the Unprotect button - to unlock the selected protected workunit(s). - - - - Press the Filter button to - display additional filter/search options. - - - - Note: - - - Filter criteria are not case sensitive. - - - - - - - When you select a workunit you can then press the Open action button to view the workunit details. - You can also double-click on a particular workunit to open the details - tab. - - When you select and then open multiple units, they will each open - their own tab. - - - DFU Workunits Filter Options - - You can filter the workunits displayed on the Workunits tab by - clicking on the Filter Action button. - The Filter sub-menu displays. Fill in values to specify the filter - criteria, then press the Apply - button. - -
- The DFU Workunit Filter - - - - - - -
- - The DFU Workunit filter options allow you to filter workunits - using the specified criteria. Workunits can be filtered by: - - - - Archived Only - when - checked, this filter will search only archived workunits. - - - - Owner - filter workunits - for specific owners. Supports wildcards. - - - - Job Name - filter workunits - by job name. Supports wildcards. - - - - Cluster - filter workunits - by cluster. Select the cluster from the drop list. - - - - State - filter workunits by - state. Select the state from the drop list. - - - - - - Note: - - - Filter criteria are not case sensitive. - - - - - When you specify any Filter options, the Filter Action button - displays Filter Set.
- DFU Filter Set - - - - - - -
- - - Sorting Columns - - You can sort a column by clicking on the column heading. Click - once for ascending, click again to toggle to descending. The - direction of the arrow indicates the sort order.
- DFU Workunit Sort by column - - - - - - -
-
-
- - - DFU Workunit Details Page - - When you open the selected workunit(s) you will see the workunit - details. The Workunit Details tab provides information about a - workunit. You can see more information about workunit details by - selecting the various Workunit Details tabs. You can also perform - actions on the selected workunits using the Workunit Action - buttons. - -
- Workunit Details - - - - - - -
- - Additional Workunit details are located in the Workunit Details - section of the page. Job name, queue, command, time, completion - percentage, along with specific process messages display here. - - You can use the Workunit Action buttons on the Active Workunit - tab to perform actions on the selected workunit. Press the appropriate - Workunit Action button to perform the following actions. - - Press the Refresh button - to refresh the workunit details. - - - - Press the Save button to - save the workunit. - - - - Press the Delete button - to delete the workunit. - - - - Press the Abort button to - abort a running workunit. - - - - Press the Resubmit button - to resubmit the workunit (not yet implemented). - - - - Press the Modify button - to modify the workunit (not yet implemented). - - - - - XML Tab - - The XML Tab on the workunit details page allows you to see the - XML representation of the workunit.
- Workunit Detail XML tab - - - - - - -
-
- - - Source Tab - - The Source Tab on the workunit details page allows you to view - the source file(s) of the DFU workunit.
- Workunit Detail Source tab - - - - - - -
-
- - - Target Tab - - The Target Tab on the workunit details page allows you to view - the target of the DFU workunit.
- Workunit Detail Target tab - - - - - - -
-
-
-
- - - Files - - The Files page contains features - relating to the process of getting data files on to your cluster, - managing these files and also the workunits associated with them. Click - on the Files icon for access to the - Files features. You can also perform actions on selected files and - superfiles using the Workunit Action buttons. - - - Logical Files Page - - To access the Files page click on the Files icon, then click the Logical Files link from the navigation - sub-menu. - -
- Logical Files - - - - - - -
- - You can browse or search for logical files from this page using - the Filter drop menu. - - Note: - - - Filter criteria are not case sensitive. - - - - - - - - - - - - - - - - - If there are more than 100,000 logical files present - you may see a warning message. - - - - - -
- Logical Files Page - - - - - - -
- - To see details for a particular file, or to perform some action - on it you must select it. You can select a file or files by checking - the check box. You can also click and drag your mouse over a group of - check boxes, to select multiple files.
- Select Files - - - - - - -
- - There are three columns with icons to indicate some file - attributes. There is also an icon that appears next to the Logical - Name that indicates what type of file it is. - - - - - - - - - - - - Locked File - - - - - - Compressed File - - - - - - Key File (index) - - - - - - Logical file - - - - - - Superfile - - - - You can also sort a column by clicking on the column - heading. Click once for ascending, click again to toggle to - descending. The arrow shows the sort order. - - Once you have selected a file or files, the Action Buttons are - enabled. You can perform actions on selected files. - - - - Press the Open button to - open the Logical Files Details page(s). - - - - Press the Delete button - to delete file(s). - - - - Press the Remote Copy - button to open the dialog where you can copy files from a - foreign HPCC Systems platform. You will need premission to - access the foreign Dali server. - - - - Press the Copy button to - copy a file. You can modify some of the copy options from the - drop menu. - - - - Press the Rename button - to rename a logical file. You can modify some rename options - from the drop menu. - - - - Press the Add To - Superfile button to create and add file(s) to a - superfile. - - - - Press the Despray button - to despray the file. You can modify some despray options from - the drop menu. - - - - Press the Filter button - to display additional filter options. Use these options to - filter the list. - - - - Press the Tree image button (to the right of the Filter - button) to view files by scope in a tree view. - - - - You can press the Open button - to open a tab with the details for each selected file. - - - Remote Copy - - Press the Remote Copy button - to open the dialog where you can copy files to or from a foreign - dali.
- Remote Copy Dialog - - - - - - -
- - Fill in the values for the Source file, and the Target - destination, check any appropriate options then press the Submit button. -
- - - Copy File - - Press the Copy button to - display the copy drop menu, with additional file copy - options. - - - - Check the Overwrite box - to overwrite files of the same name. - - - - Check the Compress box - to compress the file copy. - - - - Check the Retain Superfile - Structure box for the copy to retain the structure - of a Superfile. If you are copying a superfile that contains - INDEXes, you must enable this option. - - - - Check the Replicate box - to create backup copies of all file parts. - - - - Check the No Split box - to to prevent splitting up the file copy into parts. - - - - Check the Wrap box to - keep the number of parts the same and wrap if the target - cluster is smaller than the original. - - - - Check the Preserve - Compression box to retain the file - compression. - - - - Check the Expire in - (days) box to enter a number of days before - automatically removing the file. If omitted, the default is -1 - (never expires). - - - - - - Sorting Columns - - You can sort a column by clicking on the column heading. Click - once for ascending, click again to toggle to descending. The - direction of the arrow indicates the sort order.
- Logical File sort by column - - - - - - -
-
- - - Logical Files Filter Options - - You can filter the logIcal files displayed on the Logical - Files tab by clicking on the Filter - Action button. The Filter sub-menu displays. Fill in values to - specify the filter criteria, then press the Apply button. - -
- Logical Files Filter sub-menu - - - - - - -
- - The logical file filter options allow you to filter files - using the specified criteria. Logical files can be filtered - by: - - - - Name - filter files by - name. Supports wildcards. - - - - Description - filter - files by description. Supports wildcards. - - - - Owner - filter files by - owners. Supports wildcards. - - - - Index - include only - Index files if checked. - - - - Cluster - filter files by - cluster. Select the cluster from the drop list. - - - - From Sizes - filter files - from a specific size. - - - - To Sizes - filter files - up to a specific size. - - - - File Type - filter files - by type. - - - - From date - filter files - from a specific date and/or time. Select the date and time from - the drop list. - - - - To date - filter files up - to a specific date and/or time. Select the date and time from - the drop list. - - - - - - Note: - - - Filter criteria are not case sensitive. - - - - - When you specify any Filter options, the Filter Action button - displays Filter Set.
- Logical Files Filter Set - - - - - - -
- - The filter icon color also has meaning. The color changes to - red displaying a warning message if there are over 100,000 files - when hovering over the filter icon. - -
- Logical Files Limit Warning Icon - - - - - - -
The icon will remain red while browsing the logical - files, and will change to blue when you reduce the amount of files - returned. The Icon will change back to red if you clear the filter - on environments that exceed the 100,000 file warning limit.
-
-
- - - Logical Files Details - - The Logical Files Detail page shows specific details for the - file selected, including: Workunit ID, Owner, Super Owner, Cluster - Name, Description, Job Name, Protected state, Content Type, Key Type, - File Size, Format, Compressed state and information, Modified Date, - Expire in (days) value, Directory and Path Mask, Record Size, Record - Count, Replication state, File Parts, and Skew information. - - Check the Protected box to protect the file from deletion or - expiration. - - The Key Type value only displays if the file is an INDEX. Key - Type can have three possible values: Distributed, Local, or - Partitioned. - -
- Logical Files Detail Page - - - - - - -
- - The Logical File details summary appears in the main File - Details portion of the files page. You can view other file details - using the File Details Tabs at the - top portion of the Page. - - - - Select the Summary tab to - view a summary of the file details. - - - - Select the Contents tab - to view file contents. - - - - Select the ECL tab to - view the ECL code. - - - - Select the DEF tab to - view the ECL definitions. - - - - Select the XML tab to - view the XML representation of the logical file. - - - - Select the Superfiles tab - (when enabled) to display the superfile information. - - - - Select the File Parts tab - to view information about the various file parts. - - - - Select the Queries tab to - see which queries use use which logical files. - - - - Select the Graphs tab - (when enabled) to display any graphs associated with the - file. - - - - Select the Workunit tab - to view the corresponding workunit details. Note that the - workunit tab shows you the same information that you would see - if you selected it through the workunit link. - - - - Select the History tab to - display a list of DFU Actions taken such as copy, remote copy, - spray, etc. for the file. - - On the File Details Summary tab, you can perform some - actions on the selected file. - - - - Press the Refresh button to - refresh the file details. - - - - Press the Save button to - save any changes you make to the file details. - - - - Press the Delete button to - delete the file. - - - - Press the Copy button to - copy a file. You can also modify some file attributes from the - drop menu. - - - - Press the Rename button to - provide a name and rename the file. - - - - Press the Despray button to - despray the file. You can also modify some despray options from - the drop menu. - - - - - Superfiles - - A superfile is a managed list of subfiles (Logical Files) - treated as a single logical entity. When a file is a superfile, the - Summary tab displays the superfile - details, such as each subfile. Select a superfile from the Logical - Files list, then press the Open action button. This displays the - superfile details page.
- Superfile Details page - - - - - - -
- - On the superfile details page you can: - - - - See the list of subfiles in the superfile. Click on any - subfile hyperlink to see details for that subfile. - - - - See the details of the subfiles. - - - - Press the Save button - to save any changes to the superfile. - - - - Press the Delete - Superfile button to delete the entire - superfile. - - - - Press the Remove - Subfile(s) button to remove any selected subfile - from the superfile. - - -
-
-
- - - Landing Zones - - To access the Landing Zones page click on the Files icon, then click the Landing Zones link from the navigation sub-menu. - The Landing Zone link displays the Landing Zones page. The Landing Zone - Page shows you each landing zone you have configured for your cluster - and its contents.
- Landing Zone Page - - - - - - -
- - Click on the arrow next to a drop zone container, server, or - folder to expand. The files on the drop zone display. You can choose to - upload, download, or delete any files on the drop zone using the landing - zone action buttons. You can also spray files to a cluster from this - page. - - - Upload files - - You can upload files to your landing zone from the Landing Zone - page.
- Landing Zone Upload - - - - - - -
- - - - Press the Upload action - button. - - - - - - - - - - - - The upload utility in ECL Watch is limited by the - browser's file size limitation. This is typically 4 GB. - For production systems, we recommend a secure copy - protocol (scp) utility. - - - - - - - - Choose the file from the window that displays. - - - - Verify the file, folder, and dropzone information are - correct in the File Uploader - dialog that displays.
- Info Dialog - - - - - - -
-
- - - Press the Start button to - begin the upload. - - The Upload action button displays the progress as the file - uploads. - -
- - -
- - - Download files - - You can download files from your landing zone to your computer. - - - From the Landing Zone page, select a file (or files) to - download by checking the box next to it. - - - - Press the Download button - to download the file. - - The file will download to your browser's download - directory as specified in your browser settings. - - - - Delete files - - You can delete files from your landing zone. - - From the Landing Zone page, select a file (or files) to - delete by checking the box next to it. - - - - Press the Delete action - button to delete the file from your landing zone. - - - - - - Hex Preview - - The Hex Preview shows the contents of a file on the landing zone - in hexadecimal form. If the file is large, then only the first 32k - display. Hex preview is designed for fixed length files, although it - can also work for delimited files but may be limited in that - regards. - - - - Select a file by checking the box next to it. - - - - Press the Hex Preview - action button to display the selected file(s) in a hex - format. - - - -
- Hex Preview - - - - - - -
- - You can adjust the width of the view on the hex preview page - using the spinbox controls on the Width box. - - If you have an EBCDIC file check the box next to EBCDIC: for it to display properly. -
- - -
- - - Published Queries - - The Queries page provides access to published Queries on all - clusters in an environment. To access the Queries page click the - Published Queries link from the Navigation pane in ECL Watch. - - - Queries - - Click on any link from the Targets page to displays that target page. The - Target page has two tabs, one for all target queries, and another tab - for only active queries. From this page you can get more information - about the specific published queries. - -
- Target Queries - - - - - - -
Select the queries by clicking on them or shift+click to - select multiple queries. Press the buttons for the desired - activity.
- - - - Delete - - - Deletes the selected query (or queries). - - - - - Toggle Suspend - - - Toggles between suspending or unsuspending the selected - query (or queries). - - - - - Activate - - - Activates the selected query (or queries). - - - - - Query Details - - - Links to a page with the details for the selected - query. - - - -
-
- - - Operations - - The Operations page provides access to several system - administrator tasks you can perform on your HPCC Systems platform. To - access the Operations page click the Operations link from the Navigation - pane in ECL Watch. - - More to come... - -
-
diff --git a/docs/EN_US/ECLWatch/ECLWa_mods/SessFaq.xml b/docs/EN_US/ECLWatch/ECLWa_mods/SessFaq.xml deleted file mode 100644 index 44827fe475b..00000000000 --- a/docs/EN_US/ECLWatch/ECLWa_mods/SessFaq.xml +++ /dev/null @@ -1,243 +0,0 @@ - - - - Session Management - - The 7.0 release of HPCC Systems platform introduces the new ESP Session - Management security feature. This functions like many banking applications, - where after a configurable period of inactivity you are warned with a "You - are about to be locked out" pop-up. If no action further is taken, the - session is then locked and you would need to enter your credentials to - unlock and resume. A session remains active while there is regular user - interaction. After a period of inactivity, you are alerted that your session - is about to be locked. Sessions are stored in cookies and are shared across - tabs and instances of each browser. Activity in any instance will extend the - entire session duration. Additionally, a Logout menu option allows you to - close your session when you are finished. - - - FAQ - - - - Q: Why did we implement this - feature? - - A: The main motive is to - tighten security. Browsers and the IDE left open after hours and over - the weekend are a security risk. Additionally, this reduces - unnecessary load on ESP since it will not auto refresh inactive - ECLWatch sessions. - - - - Q: How long will an inactive - session last? - - A: Your administrator can - configure this using Configuration Manager. The default setting is two - hours of inactivity. - - - - Q: Does Auto Refresh of - active workunits and graphs extend your ESP session? - - A: No, only user actions such - as typing or mouse clicks extend a session. - - - - Q: Will I have to login to - ECLWatch? - - A: Yes, just as you currently - do. - - - - Q: Will I have to login to - the ECL IDE? - - A: Yes, but you already - should be. No perceptible changes here only behind the scenes where - you are being authenticated. - - - - Q: Will I have to login to - Configuration Manager? - - A: No. - - - - Q: What credentials should I - use to login with? - - A: Use your assigned - credentials. - - - - Q: Can I log out of ECL - Watch? - - A: Yes, there is a link to - logout available. You are able to log off, and if you do not your - session locks after a configurable period of inactivity. - - - - Q: Will my sessions get - logged off due to inactivity? - - A: No. After a configurable - period of inactivity your session locks. You then need to unlock to - resume your session. - - - - - - Q: How long until my password - expires? - - A: This depends on your - system policies and the configured security manager. - - - - Q: Will I be able to log in - as a different user? - - A: Yes, with our new login - screen, you can input previously used IDs or enter a different one. - You can have as many user sessions active at any time as permitted by - your system's resources. - - - - Q: Can I log in concurrently - with different credentials? - - A: Yes, using different tabs - in a single browser, multiple instances of the same browser, or - multiple instances of different browsers. - - - - Q: Is there an option to stay - logged in indefinitely and/or not time out from inactivity? - - A: No. - - - - Q: Will I lose data if I get - automatically logged out? - - A: No. You do not get logged - out. Your session will get locked. Anything typed into any fields - (such as a search box) that has not been submitted or entered could - potentially be lost. However, since the session is only locked, it is - unlikely that any data will be lost. - - - - Q: Will my queued and - scheduled workunits run when I am locked out? - - A: Yes, the session only - applies to ESP/ECL IDE and ESP/ECLWatch communications. - - - - Q: Will HPCC Systems command line - utilities be affected? - - A: Possibly. If you have - configured AuthPerSessionOnly then command line utilities will not - work. If AuthPerSessionOnly is not enabled then command line utilities - will not be effected. - - - - Q: Does auto refresh in - ECLWatch reset the session expiration timer? - - A: No. Only active - interactions like mouse clicks and pressing keys extend the timeout. - Note that scrolling does not extend the expiration timer. - - - - Q: If I am logged in to the - same account using multiple tabs in a browser, or multiple instances - of the same browser, can I get locked out of one but not the - others? - - A: No, activity is tracked by - your credentials. Activity in one tab or instance extends the session - for all. - - - - Q: If I am logged in to the - same account using different browsers (e.g., Firefox and Chrome), do - they share the same session timeout? - - A: No. Since each browser has - its own cookie store, activity in one does not extend to the - other. - - - - Q: Can I automatically return - to the ECLWatch screen where I was when automatically locked - out? - - A: Yes. The intent is to lock - your session and not completely log you out. Unlocking your session - should return you to the same point when your session locked. - - - - Q: Will I be able to change - an expired password? - - A: Yes. You are redirected to - a page where you can reset your password. - - - - Q: Will access to ECLWatch - require SSL/TLS and HTTPS? - - A: These secure protocols are - already available for your HPCC Systems Administrator to configure. Though not - required for session management, hopefully they are currently - enabled. - - - - Q: Will my programmatic SOAP - calls utilizing ESP have any impact? - - A: Maybe. If you have - configured AuthPerSessionOnly then SOAP calls will not work. If your - system is not configured that way, then programmatic SOAP calls - continue to operate as they do now. - - - - Q: When will I see the - Session Management changes? - - A: You can configure your - system to use Session Management as part of HPCC Systems Version 7.0. - - - - diff --git a/docs/EN_US/ECLWatch/TheECLWatchMan.xml b/docs/EN_US/ECLWatch/TheECLWatchMan.xml deleted file mode 100644 index 70c5855f97c..00000000000 --- a/docs/EN_US/ECLWatch/TheECLWatchMan.xml +++ /dev/null @@ -1,1849 +0,0 @@ - - - - Using ECL Watch - - - Using ECL Watch - - - - - - - - - Boca Raton Documentation Team - - - - We welcome your comments and feedback about this document via - email to docfeedback@hpccsystems.com - - Please include Documentation - Feedback in the subject line and reference the document name, - page numbers, and current Version Number in the text of the - message. - - LexisNexis and the Knowledge Burst logo are registered trademarks - of Reed Elsevier Properties Inc., used under license. - - HPCC Systems® is a registered trademark - of LexisNexis Risk Data Management Inc. - - Other products, logos, and services may be trademarks or - registered trademarks of their respective companies. - - All names and example data used in this manual are fictitious. Any - similarity to actual persons, living or dead, is purely - coincidental. - - - - - - - - - HPCC Systems® - - - - - - - - - - - - Introducing ECL Watch - - ECL Watch is a service that runs on the Enterprise Services Platform - (ESP), a middleware component on the HPCC Systems platform. - - ECL Watch provides an interface to the HPCC Systems platform and - allows you to view information and interrogate nodes to confirm all - expected processes are running. It is a plugin that is useful for Systems - Administrators to check processes, examine topology, and view logs. It is - useful to ECL Programmers to monitor the status of jobs and files, and - other pertinent information. This provides a simple view into the system - and a means to perform Workunit and data files maintenance. - - The ECL Watch interface is a browser based set of pages where you - can access and interface with the HPCC Systems platform. To Run ECL Watch using you browser, go to the node on your - system running ESP/ECL Watch on port - 8010. For example, http://nnn.nnn.nnn.nnn:8010, where nnn.nnn.nnn.nnn is - your ESP/ECL Watch node's IP address. This will launch ECL Watch. - - ECL Watch is organized by categories based on several system - functions. These functions or actions are accessible through the links - along the top of the main home page. However there are several ECL Watch - items with common functionality universally across pages of ECL - Watch. - - - Common Elements - - There are common elements that are useful anywhere within ECL - Watch. - - - User Login - - When you open ECL Watch a log in window displays.
- Login - - - - - - -
- - You login with the credentials supplied by your Systems - Administrator. After a configurable period of inactivity your ECL - Watch session locks and you need to enter your credentials to unlock - and resume your session. The session remains active for as long as - there is regular keyboard or mouse interaction. - - Additionally, there is a Logout menu item available you can - select to close your session when you complete your work. - - - - For more information and frequently asked questions about - session management, please refer to Appendix A. -
- - - Open in New Page - - The Open in New Page link - allows you to open a new window directly to the item which you are - viewing.
- Open in New Page - - - - - - -
- - Opening a new page of the current view is useful in several - ways: - - - - Open in New Page is a - shareable link. Right-click on Open in New - Page and select Copy link address - from the context menu. You can now save, share, or send that link - and the recipient can open a window directly to the (new) - page. - - - - New pages maintain filter states. If you have set a filter - and share that link, the new page has the same filter set. - - - - The new page is live. (If that page has auto-refresh - enabled) The recipient doesn't need to reset the page or refresh - to see current state. - - - - - Maximize Pane - - - - The Maximize/Restore icon - appears throughout ECL Watch. Press the button to maximize the - corresponding window pane. Press the button again to restore the - pane to its original size. - -
- - - List widgets - -
- List Widgets - - - - - - -
- - ECL Watch commonly displays items in the forms of a list. Lists - of workunits, lists of logical files, lists of Roxie queries, etc. The - following elements in ECL Watch work on any list widget: - - - - Download as CSV (Workunits, DFU Workunits, Logical files, - and Roxie queries) - - - - Column check box. Select all rows by selecting the check - box at top (Use Shift+Click to select a range) - - - - Sort by column header. Click on the column header to sort - that column according to that column's contents. - - - - Resize Column Widths by dragging the borders. - - - - Filters that allow you to set criteria for the items to - display in the list. - - - - - List Filters - - Filter options on a list allow you to use specified criteria - to set what you display in the list. Press the Filter action button to display the filter - options. When you specify any Filter options, the Filter action - button changes and then displays Filter - Set and the filter indicator image lights up. When you - then copy an Open in New Page link - with the filter set, the filter condition persists. Filter - conditions limit the results displayed until you clear the - filter. - - - - The Mine Button - - The Mine button appears along - the top of every list page. Check the Mine box to filter for only - items that you own.
- Mine button - - - - - - -
- - Uncheck the Mine button to display all jobs. -
-
- - - Banner Items - - The banner area of ECL Watch appears at the top of all - pages. - - - Home Button - - The HPCC Systems home button is also the main Activity menu - link. More than just a decoration the home ECL Watch button actually - opens up the Activity page, discussed in more detail in the ensuing - chapter. - - The icons to the left of the home button are links to - different areas of ECL Watch. Each of the link areas are discussed - in subsequent chapters. - - - - Monitor indicator light - - The Monitor indicator light is used to provide an at a glance - snapshot of your overall system health. If you have monitoring and - reporting configured (see HPCC Systems Monitoring and - Reporting) then this light will display a color based on - the the overall (configurable) system health. The light is black if - there is no monitoring or reporting configured for your - system. - - - - Download as CSV - - With most lists in ECL Watch you have the ability to download - selected rows as a CSV formatted file. You can then open the CSV - file in any spreadsheet application which supports CSV - format. - - - - - Global Search - - The global search box can be found on the navigation bar at the - top of the ECL Watch page.
- Global Search box - - - - - - -
- - You can search DFU Workunits, ECL Workunits, Logical Files, and - Queries using the global search box. The global search excludes ECL - code by default. To search for ECL code within workunits, use the - ecl: keyword. For example, - ecl:SOAPCALL. To limit or filter your search results you can use - keywords as displayed in the empty search box. - - - - file: - - - Preface the search string with - file: to search Logical Files. - - - - - wuid:. - - - Preface the search string with - wuid: to search only Workunit ids. - - - - - ecl: - - - Preface the search string with ecl: - to search ECL code in the workunits. - - - - - dfu: - - - Preface the search string with dfu: - to search only DFU workunits. - - - - - query: - - - Preface the search string with - query: to search only published - queries. - - - - - The global search box also supports using wildcards. - - Examples of using the global search: - - Enter W201510* into the search box, and it - will return all of the workunits from October 2015. - - Enter file:keys into the search box, and it - will return all of the logical files that contain "keys".
- Global Search Example - - - - - - -
- - -
- - - Advanced Menu - - There is a section at the top right on the navigation bar with - some useful information and features. This section shows you who you - are logged in as (if your system has authentication enabled). The - Advanced menu is located on the right hand side of the navigation bar. - There are several items that you can access from the advanced - menu. - -
- Advanced menu - - - - - - -
- - There may be a number displayed on the menu link. A number - displayed next to it indicates how many errors and warnings have been - generated during your session. Click on the advanced menu to display a - list of features. - - - Access the Advanced menu - - You access the advanced menu items from the advanced menu link - at the top right corner of ECL Watch. - - The Set Banner link allows - you to set a custom banner message at the top of your browser window - when you open ECL Watch. Check the Enable box to enable a banner. You can use - the banner to deliver a short message about the environment to - users. Customize the appearance of the message banner with the other - controls. Banner settings persist until the ESP Server - restarts. - - The Set Toolbar link allows - you to customize the toolbar at the top of the ECL Watch page. Check - the Enable Environment Text box to - display the Name of Environment - text at the top of the page and in the browser tab. Labeling browser - tabs is helpful when working with multiple environments. Toolbar - settings persist through restarts of the ESP Server. - - The Error/Warning(s) link - displays a tab showing you Errors, Warnings, and Information - messages. You can filter this page by checking the boxes at the - bottom of the tab. A copy facility is also provided. - - The Release Notes link opens - a new browser tab to the HPCC Systems release notes page where you - can find more release specific information about the contents of - each version of HPCC. - - The Documentation link opens - a new browser tab to the HPCC Systems documentation page, where you - can view and download the HPCC Systems platform - documentation. - - The Downloads link opens a - new browser tab to the HPCC Systems downloads page, where you can - find and download the HPCC Systems platform, client tools, and - plugins. - - The Additional Resources link - opens a submenu that provides links to areas on the HPCC Systems web - site where you can find additional resources, such as the Red Book, User - Forums, Issue Reporting, - and the Transition Guide. - - The Configuration link opens - for viewing the XML version of the configuration file in use on your - system. - - The About link opens a dialog - to display information about the version of the HPCC Systems - platform installed on your server. - - - - Logged In As - - The Logged In As: links at - the top of the ECL Watch page display information about the current - user logged onto a cluster configured for authentication.
- Logged In As - - - - - - -
- - - - Click on your username link and the User Details window - opens. - -
- User Details window - - - - - - -
-
- - - From The User Details page, you can Confirm the User - Name that you are logged in as. - - You can change your password. - - Note that Administrator rights are needed to manage - users and permissions. - - Ensure you are using an account with Administrator - rights if you intend to manage users or permissions. - - - - Verify the password expiration date, or if password is - set to expire. - -
- - - Change Password - - If authentication is enabled on your HPCC Systems platform, - you can change your password, right from the User Details window. - - - Click on your username link under the LOGGED IN - AS: - - The User Details window opens. There are fields where - you can change your password. - - - - Enter your Old Password. - - - - Enter your desired new password. - - Make sure it meets whatever criteria your system may - have for passwords. - - - - Confirm your new password. - - Make sure that it matches the password you entered in - the previous field. - - - - Press the Save button. It is in the upper left portion - of the window. - - - - - - Lock - - Click the Lock link next to - the username link to lock your session. You would then need to - enter your credentials to unlock your session. - -
-
-
-
- - - ECL Watch Home Page - - Click on the ECL Watch home page - link in the navigation bar at the top of the ECL Watch page to find the - Activity, Scheduler, and Search - Results links. You can access the respective pages from the - links or tabs along the top of the ECL Watch home page. - -
- ECL Watch home page link - - - - - - -
- - There are several icons used throughout ECL Watch. The following - table describes most of the icons that you will encounter. - - - - - - - - Icon - - Definition - - - - - - System cluster - - - - - - System cluster paused - - - - - - System cluster not found - - - - - - Workunit Compiled, Completed - - - - - - Workunit Running, Compiling, Debug Running - - - - - - Workunit Failed, Aborted - - - - - - Workunit Blocked, Scheduled, Wait, Uploading Files, Debug - Paused, Paused - - - - - - Workunit Archived - - - - - - Workunit Aborting - - - - - - Workunit Submitted - - - - - - Workunit Deleted. - - - - - - Workunit Unknown State - - - - - - - Activity - - The Activity tab displays activity on all clusters in the - environment. The Activity page provides access to Cluster Job Queue - administration tasks such as: monitoring progress, setting priority, - moving a job up or down in the queue, pausing a job, aborting a job, and - pausing or resuming a queue. - - - - When you access the ECL Watch URL, the ECL Watch Home Page - displays the Activity tab. To access the Activity tab from any other - page in ECL Watch click on the ECL - Watch image at the top of any page, as shown above. - - - Cluster Disk Usage Graphs - - The Cluster Activity page displays graphs along the top showing - cluster disk usage. These graphs can give you a quick glance at the - capacity of your clusters. Clicking on each of the images displays - more information about the individual cluster's disk usage - activity. - -
- Cluster Activity Page Graphs - - - - - - -
The graphs show the amount of available storage, the - average amount of storage in use, and the maximum amount of storage in - use across all nodes. The dark indicator line displays the average in - use across the disks in that cluster. The colored doughnut portion - shows the maximum amount of storage in use by any single node. If this - differs greatly, it could affect performance.
- - The color of the graphs change as the storage capacity changes. - Green indicates low utilization, yellow indicates higher utilization, - and red indicates very high utilization. - -
- Cluster Graph Detail - - - - - - -
The graphs provide an indication of available capacity - across your nodes. This can help identify any potential disk space - issues.
-
- - - Cluster Activity - - Information about your systems' clusters, and any activity on - those clusters can be accessed from the ECL Watch Activity tab. Select - the Activity tab link below the - ECL Watch image in the navigation - sub-menu. This displays the Cluster Activity tab. - -
- Clusters Activity - - - - - - -
- - All the system clusters display. If there is any activity on a - cluster there is an icon next to the cluster to indicate some - activity. In the above example the icon to expand the Thor cluster - indicates there is some activity on the Thor cluster. Click the icon - to expand the cluster to see the activity on that cluster. -
- - - Cluster Action Buttons - -
- Cluster Action Buttons - - - - - - -
- - Check the box next to a cluster to enable the Cluster Action - buttons. The Cluster Action buttons will then allow you to perform the - following actions on the selected cluster's job queue. - - - Pause - - Pauses the cluster's job queue. The currently running job will - complete, but no other jobs will execute until the queue is - resumed. - - - - Resume - - Resumes a paused job queue. Any waiting jobs will resume - execution in order. - - - - Clear - - Removes all workunits from the job queue. The removed - workunits' state is then set to aborted. Any workunits that were - waiting in the queue can be resubmitted manually later, if - desired. - -
- - - Cluster Workunit Activity - -
- Workunit Activity Buttons - - - - - - -
-
- - - Workunit Action Buttons - - Check the box next to a Workunit to select it and enable the - Workunit Action buttons. - - The enabled Workunit Action buttons will then allow you to - perform the following actions on the selected Workunit(s). - - - Open - - Opens a (workunit) tab for the selected workunit. - - - - Pause - - Press the Pause button to - complete the current subgraph and then put the job into a paused - state. - - - - Pause Now - - Press the Pause Now button to - interrupt the current subgraph (abort it) and put the job into a - paused state. - - - - Resume - - Resumes processing of any paused job. - - - - Abort - - Aborts a running job. An aborted job cannot be resumed. - - - - High, Normal, Low - -
- Priority - - - - - - -
You can raise or lower the priority of the job in the - queue. Select the job, then press one of the appropriate buttons, - High or Low. Typically all jobs are Normal priority - by default.
- - Press the High button to - raise the priority of the select job to High. Press the Low button to lower the priority of the - processing job. -
- - - Top, Bottom, Up, Down - -
- Queue Position - - - - - - -
You can change the position of a job in the queue using - the Top, Bottom, Up, and Down buttons.
- - Select the workunit to move, that will enable the action - buttons. - - Press the Top button to move - the select job to the top of the processing queue. Press the - Up button to move the job up one - position in the queue. Press the Down button to move the job down one position - in the queue. Press the Bottom - button to move the job down to the bottom of the queue. -
-
- - - Cluster Information - - You can access more information about your Thor clusters from - the main Activity tab. - - Select the target cluster from the main Activity tab, by checking the box next to it. -
- Open Cluster - - - - - - -
- - This enables the Open action - button. Press the Open action button to open a new tab for that - cluster. - - The cluster tab displays the groups on that cluster. Check the - box next to the cluster group, and press the open button.
- Open Cluster Groups - - - - - - -
- - Open up the cluster group tab (for example, mythor), and select - the group from the Groups tab to see the activity information on that - cluster group.
- Cluster Activity tabs - - - - - - -
- - On that cluster group tab, you can access the information about - that cluster. There are three tabs on that cluster group tab. The - Summary tab provides a snapshot of - that group. - - Alternatively, you can click the link on the cluster name to - examine. - - - The Cluster Usage Tab - - The Usage tab provides access - to a usage graph. The usage tab provides information about the - cluster usage.
- Usage Graph - - - - - - -
- - To display the usage graph, you can enter some values in the - in the fields displayed on the initial usage tab. Optionally, you - can just accept the default, the values for the last 30 days. Then - press the Get Usage Graph button to - display the graph. - - The Graph shows the cluster usage over time. More information - about the cluster usage is specified using a color code. The column - on the right breaks down the overall usage as well as the percentage - during standard business hours and non-business hours. You can - change these values using the fields above the chart, then press the - Get Usage Graph button - again. - - - Cluster Log File - - The Log File tab is where - you can view that cluster group's log.
- Cluster Log File - - - - - - -
- - There are several log display options that you can use to - filter the log file. You can filter by rows, pages, or by time. - Use the filter options on the Log File tab to filter the displayed - log. You can also download the log file to view offline. -
-
-
- - - Auto Refresh - -
- Auto Refresh - - - - - - -
The Activity page displays - active ECL or DFU workunits either running or in the queue on your - cluster. To refresh the list, press the Refresh button. Auto Refresh shows the list in - real-time, but this feature is disabled by default.
- - To enable Auto Refresh, toggle the Auto Refresh button. - - In an environment with a large number of active users, Auto - Refresh could impact performance of your ESP server. -
-
- - - ECL Event Scheduler - - The Event Scheduler page provides an interface to the ECL - Scheduler. The ECL Scheduler interface allows you to see a list of - scheduled workunits. It can also trigger an event. An Event is a - case-insensitive string constant naming the event to trap. - - ECL Scheduling provides a means of automating processes within ECL - code or to chain processes together to work in sequence. For example, - you can write ECL code that watches a landing zone for the arrival of a - file, and when it arrives, sprays it to Thor, processes it, builds an - index, and then adds it to a superfile. - - ECL Scheduling is event-based. The ECL Scheduler monitors a - Schedule list containing registered Workunits and Events and executes - any Workunits associated with an Event when that Event is - triggered. - - Your ECL Code can execute when an Event is triggered, or can - trigger an Event. If you submit code containing a WHEN clause, the Event and Workunit registers in - the Schedule list. When that Event triggers, the Workunit compiles and - executes. When the Workunit completes, ECL Scheduler removes it from the - Schedule list. - - For example, if you submit a Workunit using WHEN('Event1','MyEvent', COUNT(2)) in the - appropriate place, it will execute twice (the value of COUNT) before the ECL Scheduler removes it from - the Schedule list and the Workunit is marked as completed. - - For more details about both WHEN or NOTIFY or any ECL Language functions or keywords - please see the ECL Language reference. A copy of which can be found - online at http://hpccsystems.com/download/docs/learning-ecl - on the HPCC Systems® web site. - - - - - -
- - - ECL Workunits - - ECL Watch provides information about ECL jobs and workunits. Links - to pages that contain information about ECL workunits appear in the - navigation bar along top of the ECL Watch page. There you will find links - to ECL Workunits, simply labelled as Workunits, and you will also find the - link to the ECL Playground. Not only can you find information about - workunits there, but you can perform operations on workunits. - - - - - - - - Files - - This chapter contains sections dealing with HPCC Systems platform - Files, found on the Files link in ECL - Watch. - - In an HPCC Systems platform, data files are partitioned across - nodes. The file parts, referenced using Logical Filenames, are stored in - the Distributed File Utility. This allows the collection of file parts to - be referenced as a single entity. - - - - - - - - - Spray/Despray - - This section details how to Spray and Despray a data file to your - cluster using ECL Watch. The spray function is integrated into the - Landing Zone page as detailed in the Upload - Files section . - - In order to spray a file to your cluster you must first upload the - file to your landing zone. The file upload steps are detailed in the - preceding section. - - With the file successfully uploaded to the landing zone you can - choose the file to spray from the Landing Zone page. Once selected the - Spray buttons become enabled. - -
- Landing Zone Page - - - - - - -
- - - Spray Data to a Cluster - - With the Spray: Action buttons - enabled, you press the appropriate button for the Spray you wish to - perform. Fill in the appropriate values when prompted to complete the - spray. - - - - - - - - - - - - - - - - - - - - - -
- - - XRef - - Under the Files Icon on the - navigation sub-menu there is a link for XRef. This link will take you to - the XRef page. On the XRef page you can run the XREF utility. - -
- XRef page - - - - - - -
- - - The XRef Utility - - The XREF utility provides the ability to find "orphaned", - "lost", and "found" files. These "orphan" are files which are found on - the nodes but not registered in the Distributed File System. - - - - Found File - - - A found file has file parts on disk that are not - referenced in the Dali server. All the file parts are accounted - for so they can be added back to the Dali server. They can also - be deleted from the cluster, if required. - - - - - Orphan File - - - An orphan file is a file without a Dali entry and without - a complete set of physical files. Since some of the physical - files are missing it is an incomplete file and it cannot be used - to add a logical file entry back into the Dali server. These - orphan file parts do not have a reference in the Dali - server. - - - - - Lost File - - - A logical file that is missing at least one file part on - both the primary and replicated locations in storage. The - logical file is still referenced in the Dali server. Deleting - the file removes the reference from the Dali server and any - remaining parts on disk. - - - - - - - - - - - - - - - - - On a large system, we suggest limiting the number - of users who can Generate XREF reports by setting - DfuXrefAccess access to FULL for only those - users. - - - - - - To generate a list: - - - - Press the Generate - button. - - - - - - - - - - - - - - Sasha Server typically runs Xref at the times - scheduled when deployed. - - - - - - - - To view results: - - - - Click on one of the tabs (Found Files, Orphan Files, Lost - Files, Directories, or Errors/Warnings). - - - - - XREF with multiple Thor clusters - - XREF runs on the primary Thor cluster. For a configuration - with more than one Thor cluster on the same physical node group, ECL - Watch only displays the primary Thor and not any other Thor that - shares the same node group. This is the Thor cluster whose name - matches the nodeGroup in the - configuration. - - To allow XREF to run in an environment with multiple Thor - clusters, set the nodeGroup to the same value for all Thor - clusters. - - - - Working with XREF results: - - After XRef completes you can see a list of available reports. - Click on one of the tabs to see the results page of each - type. - -
- XRef Errors - - - - - - -
- - The Orphan and Lost Files pages list any Orphan or Lost files. - Orphan and Lost files are difficult to recover, unless you have - copies of missing parts needed to reconstruct the file (for example, - if a missing part is on a hard drive that was replaced.) - -
- XRef: Delete Orphan Files - - - - - - -
- - Typically, these files will need to be deleted. To Delete, - check the boxes next to files you want to delete, then press the - Delete button. - - Found files can and usually are reattached.
- XRef: Attach Found Files - - - - - - -
- - Check the boxes next to files you want to reattach, then press - the Attach button. -
-
-
-
- - - Queries - - The link for the Published Queries (icon) header provides more - information and details about queries on available targets. - - - - Click on the Published Queries (icon) hyperlink to display the - published queries and package maps on that cluster. - -
- Query Link - - - - - - -
- - -
- - - Operations - - The Operations link provides access to several components useful for - the day-to-day operation of your system, and some system administration - access as well.
- Operations Menu - - - - - - -
- - There are links to Target Clusters, Cluster Processes, and System - Servers. These links open pages with more information about the specific - topology for the selected clusters. These pages are helpful in certifying - that your system is up and running properly. - - There are also some system administration type links such as, Users, - Groups, Permissions, and Resources. These links allow you to perform some - system administration tasks through ECL watch. - - - Topology - - The Topology page provides a visual tree display with information - about your clusters, services, and nodes. - - Click on the Topology link from - the Operations navigation sub-menu to access the topology page. - -
- Topology Page - - - - - - -
- - - Targets - - The Targets Action button - displays your clusters by type. - - Click on the arrow to the left of the Cluster folder/object to - expand. The expanded view displays. - -
- Expanded View - - - - - - -
The expanded view displays the objects and nodes in the - selected container. Select the node or object to display more - information or to access the logs. The Summary, Configuration, and Log - tabs on the left side of the page display the relevant information for - the selected component.
-
- - - Services - - Press the Services Action - button to display information on the various services running on your - cluster. - - Click on the arrow to the left of the service you wish to - expand. The expanded view displays. - -
- Expanded Services - - - - - - -
- - The services view provides a service oriented tree view that - provides access to the services. Expand the tree, and select the - component to view the Summary, Configuration, or Logs tabs for the - selected component. -
- - - Machines - - Press the Machines Action - button for more information on the various machines or nodes running - in your cluster(s). - -
- Machines View - - - - - - -
- - The Machines action button - opens a node oriented view of the tree. Expand the nodes to see the - services on each node. Select the component to view the Summary, - Configuration, or Logs tabs for that selected component. -
- - - Roxie File Copy Status - - In the Topology section for Roxie clusters, the Roxie Files Copy Status tab shows the number of - files a cluster has left to copy.
- File Copy Status - - - - - - -
-
-
- - - Disk Usage - - When you click on the Operations link, it opens the Disk Usage - page by default. The Disk Usage page provides information about the - available space on your system, and what is using that space.
- Disk Usage - - - - - - -
- - You can search or filter the results, using the Filter action button. -
- - - Operations: Target Clusters - - The Target Clusters link from the navigation sub-menu bar, on the - Operations page, opens the link to the Target Clusters page. This page - provides machine information on the clusters you have set up on your - machine.
- Target Clusters - - - - - - -
-
- - - Dynamic ESDL - - The Dynamic ESDL tab in ECL Watch displays the available ESP - Services. You can explore the DESDL services and ESDL bindings, also - known as service configurations. - - To access Dynamic ESDL through ECL Watch, click on the Operations link, then click on Dynamic ESDL from the navigation sub-menu - bar. - -
- Dynamic ESDL sub-menu - - - - - - -
- - The Dynamic ESDL tab contains a - list of all DESDL based ESP Services and their ESDL Binding information. - The DESDL-based ESP services available are listed in the navigator pane - on the left as children of their parent ESP process. - - The Definitions tab, also - accessible from the Dynamic ESDL - button's sub-menu, lists all available ESDL definitions and provides a - view into any of the definitions. These definitions are used to - dynamically define interfaces for existing ESP web services. - - For more information about Dynamic ESDL refer to the - documentation; Dynamic ESDL available from the HPCC - Systems portal: https://hpccsystems.com/training/documentation/learning-ecl/dynamic-esdl - - - Using Dynamic ESDL - - In order to use this interface choose an ESP service from the - service list. Click on the triangle icon next to the ESP process - (myesp) to expand and display the DESDL services. Check the box to - select the desired DESDL service, then press the Open button. - - The selected service's information opens and displays the - Summary tab. - -
- Dynamic ESDL Summary - - - - - - -
- - - Viewing the binding information - - If the selected service contains an ESDL binding, you can - select the binding tabs to view the binding definition (the service - interface) or the configuration information. - - Select the Binding Definition - to display the ESDL definition in XML format. - -
- Dynamic ESDL Binding Definition - - - - - - -
-
- - - Configuring ESDL Bindings - - You can select a service and if there is a binding for it you - can review, delete, or modify the configuration of that - binding. - - Select the Binding - Configuration tab to view or edit the Methods. Press Save when finished.
- Dynamic EDSL Binding Configuration - - - - - - -
-
- - - Add a Binding - - If a configuration does not have a binding, you can add a - binding. To add a service binding to an - unconfigured ESP Service. Select the - unconfigured ESP service, then press the enabled Add Binding button. - -
- Adding a service binding - - - - - - -
This will open a dialog listing the available interfaces. - Provide the information requested, an ESP Process Name and a Port. - Select a Definition and then provide a Service Name.
- -
- Adding the definition - - - - - - -
Press the Apply button - to apply the definition.
-
- - - Delete a Binding - - To delete a service binding for a - configured ESP Service. Expand the Process list - as necessary and select the ESP service that contains the binding to - delete. - -
- Deleting service binding - - - - - - -
Press the Delete Binding - button. Confirm that you want to delete the binding by pressing OK - on the confirmation dialog.
- - The binding is deleted. -
-
-
- - - - - - -
- - - Users Permissions - - - User Administration - - There are User Administration features available through ECL - Watch. - - - - - - - Resources - - The resources link can be found under the Operations Icon link. The - resources link in ECL Watch provides a link to the HPCC - Systems® web portal. Visit the HPCC - Systems® Web Portal at http://hpccsystems.com/ for software - updates, plugins, support, documentation, and more. This is where you can - find resources useful for running and maintaining HPCC Systems on the web - portal. - - You can also get to the resources link on the HPCC - Systems® web portal page, by clicking on the - Additional Resources link found on the - sub-menu of at the top right hand side of navigation bar. - - ECL Watch provides a link to the HPCC Systems download page: http://hpccsystems.com/download. - This is the page where you can download Installation packages, virtual - images, source code, documentation, and tutorials. - - - - HPCC Systems Session Management - - - -
diff --git a/docs/PT_BR/ConfiguringHPCC/ConfiguringHPCC.xml b/docs/PT_BR/ConfiguringHPCC/ConfiguringHPCC.xml index 45e356df861..c74043a8743 100644 --- a/docs/PT_BR/ConfiguringHPCC/ConfiguringHPCC.xml +++ b/docs/PT_BR/ConfiguringHPCC/ConfiguringHPCC.xml @@ -2723,9 +2723,37 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi
- + xmlns:xi="http://www.w3.org/2001/XInclude"/> + + *** + ***REPLACE WITH FOLLOWING TRANSLATED: + *** + + XREF with multiple Thor clusters + + XREF runs on the primary Thor cluster. For a configuration + with more than one Thor cluster on the same physical node group, ECL + Watch only displays the primary Thor and not any other Thor that + shares the same node group. This is the Thor cluster whose name + matches the nodeGroup in the + configuration. + + To allow XREF to run in an environment with multiple Thor + clusters, set the nodeGroup to the same value for all Thor + clusters. + + *** + *** END REPLACEMENT TEXT + *** + *** END OF COMMENT TO DELETE ISSUE HPCC-32399 + --> diff --git a/docs/PT_BR/ECLPluginForEclipse/CMakeLists.txt b/docs/PT_BR/ECLPluginForEclipse/CMakeLists.txt deleted file mode 100644 index c3ed1e7e1f5..00000000000 --- a/docs/PT_BR/ECLPluginForEclipse/CMakeLists.txt +++ /dev/null @@ -1,29 +0,0 @@ -################################################################################ -# HPCC SYSTEMS software Copyright (C) 2019 HPCC Systems®. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -################################################################################ - -DOCBOOK_TO_PDF( ${FO_XSL} ECL_Plugin_for_Eclipse.xml "ECL_Plugin_for_EclipseIDE") - -IF(MAKE_DOCS) - SET(HELP_DEPENDENCIES) - GET_PROPERTY(Current_Targets GLOBAL PROPERTY DOC_TARGETS) - FOREACH(T ${Current_Targets}) - IF("${T}" MATCHES ".*ECL_Plugin_for_EclipseIDE.*") - LIST(APPEND HELP_DEPENDENCIES ${T}) - ENDIF() - ENDFOREACH() - - DOCBOOK_TO_HTML(${ECLIPSE_HTML_XSL} "${CMAKE_CURRENT_BINARY_DIR}/ECL_Plugin_for_Eclipse.xml" ${PORTAL_HTML_DIR}/Eclipse_Plugin "eclipse_plugin_html" "${HPCC_SOURCE_DIR}/docs/common/eclipsehelp.css" "") -ENDIF(MAKE_DOCS) diff --git a/docs/PT_BR/ECLPluginForEclipse/ECL_Plugin_for_Eclipse.xml b/docs/PT_BR/ECLPluginForEclipse/ECL_Plugin_for_Eclipse.xml deleted file mode 100644 index f4a45d4ae15..00000000000 --- a/docs/PT_BR/ECLPluginForEclipse/ECL_Plugin_for_Eclipse.xml +++ /dev/null @@ -1,761 +0,0 @@ - - - - - ECL Plugin for the Eclipse IDE - - - - - - - - - Boca Raton Documentation Team - - - - We welcome your comments and feedback about this document via - email to docfeedback@hpccsystems.com - - Please include Documentation - Feedback in the subject line and reference the document name, - page numbers, and current Version Number in the text of the - message. - - LexisNexis and the Knowledge Burst logo are registered trademarks - of Reed Elsevier Properties Inc., used under license. - - HPCC Systems is a registered trademark of LexisNexis Risk Data - Management Inc. - - Other products, logos, and services may be trademarks or - registered trademarks of their respective companies. - - All names and example data used in this manual are fictitious. Any - similarity to actual persons, living or dead, is purely - coincidental. - - - - - - - - - - - - - HPCC Systems - - - - - - - - - - - - - - - - Introduction - - Eclipse is an alternative Integrated Development Environment (IDE) - which can be used with the HPCC Systems Platform. Eclipse is open-source, - and multi-platform. It can be used instead of the ECL IDE to write and - execute queries into data on an HPCC cluster . - - The ECL plugin is also open source. - - The following sections cover how to install and use the ECL plugin - for Eclipse. - - - Prerequisites and Requirements - - These are the basic requirements to run the Eclipse plugin. - - - Windows Prerequisites: - - - - The HPCC Client Tools (available from http://hpccsystems.com/download/free-community-edition/client-tools - ) - - This installs the ECL compiler, eclcc, command line tools, - and related components - - - - The Graph Control (available from http://hpccsystems.com/download/free-community-edition/graph-control) - - - - Eclipse Indigo or later - - - - The ECL plugin for Eclipse - - - - - - - - - - - - - - On a machine running Windows 7 (either the 32- - or 64-bit), depending on your install location, you - may need to start Eclipse with administrator - privileges for plugins to install properly. - This is necessary even if your account has - administrator privileges. Right-click on the - Eclipse shortcut, then select Run as Administrator from the - pop-up menu. After installing the plugin, - you do not need to run as administrator in the normal - course of your work. However, to install any future - updates will require running as administrator. - - - - - - - - - - - Linux Prerequisites: - - - - The HPCC Client Tools (available from http://hpccsystems.com/download/free-community-edition/client-tools - ) - - This installs the ECL compiler, eclcc, command line tools, - and related components - - - - The Graph Control (available from http://hpccsystems.com/download/free-community-edition/graph-control) - - - - 64-bit desktop edition of Linux - - - - Eclipse Indigo or later - - - - The ECL plugin for Eclipse - - - - - - Mac (Intel-based) Prerequisites: - - - - The HPCC Client Tools (available from http://hpccsystems.com/download/free-community-edition/client-tools - ) - - This installs the ECL compiler, eclcc, command line tools, - and related components - - - - The Graph Control (available from http://hpccsystems.com/download/free-community-edition/graph-control) - - - - Mac OS X 64-bit (10.6.x or later) - - - - Eclipse Indigo or later - - - - The ECL plugin for Eclipse - - - - - - - - Installing Eclipse - - This section describes how to install the Eclipse IDE. If you - already have the Eclipse IDE installed, skip this section and go to - Installing the ECL Plugin. - - - Getting Eclipse - - Download the Eclipse IDE from the site: - - http://www.eclipse.org/downloads/ - - - Choose the Eclipse IDE for Java Developers package - - - - Download the appropriate Eclipse IDE for your - platform - - - - The Eclipse IDE is delivered as a compressed (.zip or - .tar.gz) file. Extract this file into the folder of your choice - (for example, c:\Eclipse on Windows). - - - - You can optionally create a shortcut to the executable file - (eclipse.exe on Windows, or - eclipse on Linux). - - - - - - Installing the ECL Plugin - - To install the Eclipse plugin: - - - - In Eclipse IDE, select Help >> - Install New Software… - - - - Press the Add - button.
- Install Software: Add - - - - - - -
-
- - - - - Provide a suitable name, for example, ECL_Plugin. - - - - Enter one of the locations below in the Location field. - - - - Note: - - - We recommend the latest stable build for production - work. - - - - - - - - - - - - - http://eclipse.hpccsystems.com/stable - - The latest stable build. - - - - http://eclipse.hpccsystems.com/develop - - The cutting-edge, untested development - build. - - - -
- Enter Location - - - - - - - - -
-
- - - - - Select the ECL Language box - then press the Next > - button. - - - - Note: - - - This can take a while before it appears. - - - - -
- Select ECL Language - - - - - - -
-
- - - Review the items to be installed and press the Next > button. - - - - Accept the licensing agreement, then press the Finish button to complete the installation - wizard. - - - - After completing the wizard, it prompts you to restart - eclipse. You should restart eclipse in order for the changes to - take effect. - -
-
- - - Updating the ECL Plugin for Eclipse - - We recommend using the Eclipse Automatic Update feature. - - - - In Eclipse IDE, select Window >> - Preferences. - - - - Expand the Install/Update - branch on the left, then select Automatic - Updates. - - Check the Automatically find new - updates and notify me button. - -
- Automatic Update Settings - - - - - - -
-
- - - Set your options, then press the - OK button. - -
To manually update the Eclipse plugin:
- - - - In Eclipse IDE, select Help >> - Check for Updates… - - A progress window displays as it checks for any available - updates. - - - - If an update is available, follow the prompts to install - it. - - - - -
-
- - - Using Eclipse with HPCC - - The following sections tell you how you can use Eclipse to interact - with the HPCC Platform. - - - Creating an ECL Project - - In order to use Eclipse with an HPCC Platform, you will need to be - able to create, edit, and submit ECL projects. This is how to do that - with a simple "Hello World" project. - - - - Open the Eclipse IDE - - - - From the Workbench File menu, select File >> New - >> Project… - - - This launches a New Project - window which prompts you to Select a wizard - - - - - - Expand the ECL folder, - select ECL Project, then press - the Next button. - - - - - - In the Project window, give - it an appropriate name. For example, hello_world. - - - - Press the Finish - button. - - - - - - If your ECL Development perspective is not already open, you - are prompted to Open Associated - Perspective? Press the Yes button. - - - - Tip: - - - If you check the Remember my - decision checkbox, you won't have to do this - every time. - - - - - - - In the ECL Explorer panel, - right-click on the newly created project, then select New >> - File. - - - - The New File window - displays. - - - - - - If necessary, select the parent folder, then provide a name - for the file. For example, hello.ecl. - - - - - - - - - - - - - - - - No matter what you name your file, be sure you - ALWAYS include the .ecl extension. The extension is - required for the project to work correctly with the HPCC - compiler. - - - - - - - - - - Add the following code (including the quotes): - OUTPUT('Hello world'); - - - - Save your code by pressing the Save button on the toolbar, or selecting - the File >> Save from the - menu. - - - - - - - - - - - - - - Saving an ECL file automatically invokes a syntax - check. If there is an error, it is indicated by a red X - next to the line containing the error. - - - - - - - - - - Execute the ECL Code - - You can choose where to execute your ECL Code. Each target is - defined in a Run Configuration. - - - Execute your ECL Code Remotely on a Server. - - - - Expand your project (hello_world), then right-click on - hello.ecl, and select Run As - >> Run Configurations... - - - - - - - - Double click ECL Targets to - create a new Run As - configuration. - - - - - - On the HPCC Platfom tab - enter the following: - - Name - - - Give it an appropriate name, for example: ThorCluster - - - - - IP address - - - IP address or DNS name of your ESP server - - - - - Port - - - The port to use (default is 8010) - - - - - Target name - - - The name of the cluster (for example, hthor, thor, - or roxie) - - - - - Credentials - - - Optional Username and Password to use (required if - security is enabled on the cluster) - - - - - ECL Watch / Address - - - This is autofilled from the Server IP Address above; - however, if your ECL Watch service is running on a - different IP or port, you can modify it here. - - - - Tip: - - - Press the test button and you will see its - current ECL Watch page. This lets you know you have - the correct configuration. - - - - - - - -
- Correct Configuration - - - - - - -
-
- - - - - On the ECLCC Compiler tab - check the settings. The location of your installed Client Tools - should have been found and auto-completed. If they are not - correct, check the Override Defaults box and fill in the location - of your Client Tools. - - - - Press the Apply button to - save your configuration. - - - - Press the Run - button. - - - - - - In the Workunits panel on - the left, click and expand the Workunit, then click and expand the - Outputs folder. - - The result(s) display in the center panel. (If your query - has multiple results, then each result displays in a separate - tab.) - - - - - - Later you can use the drop list on the toolbar button to run - on an established Run - Configuration, as show below. - - - -
-
-
-
- - - Next Steps - - To familiarize yourself with the Eclipse IDE and the ECL Development - perspective, we recommend working the following tutorials in Eclipse: - - - The HPCC Data Tutorial - - - - The Six Degrees of Kevin - Bacon example - - To discuss this plugin or get help using it, visit the - forum on the HPCC System's portal at: - - http://hpccsystems.com/bb/viewforum.php?f=33&sid=adddbd537294bf32e2c46c1d7d16134e - -
diff --git a/docs/PT_BR/ECLWatch/CMakeLists.txt b/docs/PT_BR/ECLWatch/CMakeLists.txt deleted file mode 100644 index fc688a101f2..00000000000 --- a/docs/PT_BR/ECLWatch/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ -################################################################################ -# HPCC SYSTEMS software Copyright (C) 2019 HPCC Systems®. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -################################################################################ -get_filename_component(DOC_DIR_NAME ${CMAKE_CURRENT_SOURCE_DIR} NAME) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../BuildTools/cmake_config/${DOC_DIR_NAME}.txt) \ No newline at end of file diff --git a/docs/PT_BR/ECLWatch/ECLWa_mods/ECLWatchSrc.xml b/docs/PT_BR/ECLWatch/ECLWa_mods/ECLWatchSrc.xml deleted file mode 100644 index 178dfbaedff..00000000000 --- a/docs/PT_BR/ECLWatch/ECLWa_mods/ECLWatchSrc.xml +++ /dev/null @@ -1,2069 +0,0 @@ - - - - Utilizando o ECL Watch 4.x - - - Utilizando o ECL Watch 4.x - - - - - - - - - Equipe de documentação de Boca Raton - - - - Sua opinião e comentários sobre este documento são muito - bem-vindos e podem ser enviados por e-mail para - docfeedback@hpccsystems.com Inclua a frase Feedback sobre documentação na linha de assunto e - indique o nome do documento, o número das páginas e número da versão - atual no corpo da mensagem. - - LexisNexis e o logotipo Knowledge Burst são marcas comerciais - registradas da Reed Elsevier Properties Inc., usadas sob licença. Os - demais produtos, logotipos e serviços podem ser marcas comerciais ou - registradas de suas respectivas empresas. Todos os nomes e dados de - exemplo usados neste manual são fictícios. Qualquer semelhança com - pessoas reais, vivas ou mortas, é mera coincidência. - - - - - - - - - HPCC Systems® - - - - - - - - - - - - Introdução - - Este documento apresenta detalhes sobre o ECL Watch, que passou por - uma renovação recentemente. O novo design é mais prático e oferece vários - novos recursos e funcionalidades. O novo ECL Watch vem com o software da - plataforma HPCC 4.x. - - - ECL Watch 4.x - - O ECL Watch oferece uma interface para o HPCC System e permite que - você veja informações e interrogue nós para confirmar se todos os - processos esperados estão funcionando. Isso proporciona uma visão - simples sobre o sistema e um meio para realizar manutenção em arquivos - de dados e tarefas.*** - - O uso do ECL Watch supõe que seu HPCC System esteja configurado e - em execução, sendo capaz de processar jobs e workunits. A interface do - ECL Watch é usada para verificar ambos status dos jobs e realizar - operações nos mesmos.*** - - - - Página Workunits ECL - - A página Workunits do ECL contém uma lista de todas as workunits - do ECL em seu sistema. Ela oferece acesso a mais detalhes sobre as elas. - Também é possível realizar ações na workunit selecionada usando os - botões de Ação de workunit. - - Para acessar a página de workunits, clique no ícone ECL e depois clique no link Workunits no submenu de navegação.
- Arquivos ECL - - - - - - -
- - A página mostra as workunits de ECL em seu sistema. Selecione a - aba de navegação Workunits para exibir - as workunits. - -
- Usar o ECL Watch para explorar workunits - - - - - - -
- - Para examinar uma workunit de forma mais detalhada ou realizar - alguma ação, é necessário selecioná-la. É possível selecionar a workunit - marcando a caixa de seleção. Também é possível abrir uma workunit - clicando duas vezes sobre ela.
- Selecionar Workunit da ECL - - - - - - -
- - Ao selecionar uma workunit, os botões de ação são ativados. Também - é possível usar o Menu contextual ao clicar com o botão direito em uma - workunit para realizar uma ação. - - É possível selecionar múltiplas workunits marcando a caixa de - seleção ao lado da cada uma. Também é possível clicar e arrastar sobre - as caixas de seleção da workunit para selecionar múltiplas workunits. Ao - selecionar múltiplas workunits, cada uma abrirá sua própria aba. - - Os botões de Ação permitem que você realize ações nas workunits - selecionadas. - - - - Pressione o botão Open (Abrir) - para abrir a(s) workunit(s) selecionada(s). - - - - Pressione o botão Delete (Remover) - para remover as workunits selecionadas. - - - - Pressione o botão Set to Failed (Indicar - como falhado) para definir o estado das workunits - selecionadas como falha. - - - - Pressione o botão Abort (Cancelar) - para interromper uma workunit selecionada em execução e - cancelar o trabalho. - - - - Pressione o botão Protect (Proteger) - para bloquear as workunits selecionadas. Isso impede seu - arquivamento pelo servidor Sasha. - - - - Pressione o botão Unprotect - (Desproteger) para desbloquear as workunits - selecionadas. - - - - Pressione o botão Reschedule - (Reagendar) para reagendar as workunits selecionadas cujo - agendamento foi cancelado. - - - - Pressione o botão Deschedule (Cancelar - agendamento) para impedir que a workunit agendada seja - executada. - - - - Pressione o botão Filter - (Filtrar) para exibir opções de filtro adicionais. Essas - opções filtram a lista de workunits exibidas. - - - - - Opções de Filtro - - É possível filtrar as workunits exibidas na aba Workunits - clicando no botão de Filter . O - submenu Filter será então exibido. Preencha os valores para - especificar os critérios de filtro e depois pressione o Apply . - -
- O submenu Filter - - - - - - -
- - As opções de filtro de workunit permitem a filtragem de - workunits usando os critérios especificados. As workunits podem ser - filtradas por: - - - - Archived Only (Apenas - arquivadas) – ao marcar essa opção, o filtro vai - procurar apenas por workunits arquivadas. - - - - WUID - filtrar workunits - para um ID (wuid) de workunit específico. - - - - Owner (Proprietário) – - filtra workunits para proprietários específicos. Compatível com - elementos curingas. - - - - Job Name (Nome do job) – - filtra jobs pelo nome. Compatível com elementos curingas. - - - - Cluster – filtra workunits - por cluster. Selecione o cluster na lista suspensa. - - - - State (Estado) – filtra - workunits por estado. Selecione o estado na lista suspensa. - - - - ECL – filtrar workunits - por ECL específica. Por exemplo, :=dataset. - Compatível com elementos curingas. - - - - Logical File (Arquivo - lógico) – filtra workunits por nome de arquivo lógico - ou parte dele. Compatível com elementos curingas. - - - - Logical File Type (Tipo de arquivo - lógico) – filtra workunits por tipo de arquivo lógico. - Selecione o tipo de arquivo lógico na lista suspensa. - - - - From date (Data inicial) – - filtra workunits a partir de uma data e/ou hora específica. - Selecione a data e a hora na lista suspensa. - - - - To date (Data final) – - filtra workunits até uma data e/ou hora específica. Selecione a - data e a hora na lista suspensa. Selecione a data e a hora na - lista suspensa. - - - - Last - N Days (Últimos N - dias) – filtra workunits por um determinado número (N) - de dias. Insira um número neste campo. - - - - Alguns campos de filtro são compatíveis com a filtragem por - elemento coringa. Os elementos coringas podem substituir um ou mais - caracteres ao filtrar dados no filtro. Os caracteres do elemento - coringa são * e ?. Onde * pode ser substituído por todos os possíveis - caracteres e ? pode ser substituído por qualquer caractere - único. - - - - Observação: - - - Os critérios de filtro não fazem distinção entre - maiúsculas e minúsculas. - - - - - Ao especificar quaisquer opções de filtro, o botão de ação - Filter exibe Filter Set.
- Conjunto de filtros - - - - - - -
- - - Classificar por Colunas - - É possível classificar uma coluna clicando em seu título. - Clique uma vez para classificar em ordem crescente e clique - novamente para mudar para a ordem decrescente. A direção da seta - indica a ordem da classificação.
- Classificar por coluna - - - - - - -
-
-
- - - Menu Context - - É possível clicar em uma workunit com o botão direito para - acessar o menu contextual de ações, incluindo opções de filtro. Esse é - o mesmo conjunto de ações que pode ser realizado pelos botões de - ação. - -
- Menu Context - - - - - - -
-
- - - Detalhes da Workunit - - Os botões de ação de Detalhes da workunit permitem que você - realize ações na workunit selecionada. É possível ver informações mais - específicas sobre a tarefa selecionada ao selecionar as diversas guias - de Detalhes da tarefa. - -
- Detalhes da Workunit - - - - - - -
- - Os botões Workunit Details permitem que você realize ações na - workunit selecionada. Pressione o botão de ação correspondente para - realizar as seguintes ações: - - - - Refresh Atualizar – Exibir - novamente os detalhes da workunit. - - - - Save (Salvar) – Salvar - quaisquer alterações à workunit. - - - - Delete (Remover) – Remover - a workunit. - - - - Restore (Restaurar) – - Restaurar uma workunit arquivada. (Workunits são arquivadas pelo - Sasha.) - - - - Reschedule (Reagendar) – - Reagendar uma workunit cujo agendamento tenha sido - cancelado. - - - - Deschedule (Cancelar - agendamento) - Interromper a execução da workunit - agendada. - - - - Set To Failed (Indicar como falho) - – Alterar o estado da workunit para falhado. - - - - Abort (Cancelar) – - Interromper uma workunit em execução e cancela o trabalho. - - - - Recover (Recuperar) – - Reenviar a workunit sem redefinir o fluxo de trabalho. Isso retoma - o processamento a partir do mesmo ponto no processo de onde tinha - parado anteriormente. - - - - Resubmit (Reenviar) – - Reenviar a workunit. Isso redefine o fluxo de trabalho e começa - novamente desde o início. - - - - Clone (Clonar) – Criar uma - nova cópia da workunit. A nova workunit agora é de propriedade do - usuário que a clonou. - - - - Publish (Publicar) – - Publicar a workunit como uma consulta publicada - - - - Z.A.P. – Empacota - informações de sistema e da workunit em um arquivo Zip que pode - ser compartilhado. Isso é útil na hora de informar bugs e - solucionar problemas. - - - - Slave Logs (Logs escravos) - – Baixar os logs para o cluster Thor especificado. Isso é útil na - hora de solucionar problemas com o Thor. - - - - Na aba guia de detalhes da workunit, há ícones próximos ao ID da - workunit (WUID) que permitem copiar o WUID ou a URL. O primeiro ícone - copia o WUID para a área de transferência. O segundo ícone copia o - URL. - - - Botão Publish - - Clique no botão de ação Publish para publicar uma consulta. -
- Menu Publish - - - - - - -
- - Preencha os campos Job Name, o Remote Dali, Source Process, - Priority (opcional); além disso, é possível adicionar um comentário. - Após preencher os campos necessários, pressione o botão Submit para enviar sua consulta. - - Opções para publicação na ECL - - - - Job Name (Nome da - workunit): O nome da workunit a ser publicada. O nome - é preenchido automaticamente se você optar por publicar através - da página de detalhes da workunit. - - - - - - Remote Dali (Dali - remoto): O IP ou nome de host do DALI a ser usado - para solucionar arquivos remotos. (opcional) - - - - - - Source Process (Fonte de - processamento): Cluster de processamento no qual os - arquivos serão copiados. (opcional) - - - - - - Comment (Comentário): Se - quiser, adicione um comentário. O comentário é exibido na página - de detalhes das consultas publicadas. - - - - Priority (Prioridade): - Define a prioridade da consulta. Os valores podem ser LOW - (Baixo), HIGH (Alto), SLA (Segundo acordo de nível de serviço) - ou NONE (Nenhum). A opção NONE apagará a configuração - atual. - - - - - - Allow Foreign Files (Permitir - arquivos remotos): Marque a caixa para permitir o uso - de arquivos remotos em uma consulta Roxie Se uma consulta Roxie - fizer referência a arquivos remotos e essa permissão não for - ativada, a publicação falhará. - - - - Update Super Files (Atualizar - superarquivos): Use quando uma consulta estiver - usando superarquivos ou um Dali remoto. Quando tal consulta é - publicada, os superarquivos são copiados do Dali remoto. Se os - superarquivos já existirem localmente, então a definição atual é - substituída apenas quando essa caixa for marcada. Caso não seja - marcada, a definição atual não mudará. - - -
- - - Utilitário Z.A.P. - - O botão Pacote de análise Zipped (Z.A.P) é um utilitário que - coleta informações do sistema e as encapsula em um pacote - compartilhável. É uma ferramenta útil para relatar erros, - inconsistências ou outros comportamentos inesperados. Quando houver - tal ocorrência, esse utilitário empacota as informações para enviar - para uma análise mais aprofundada. - -
- Botão Z.A.P - - - - - - -
- - Para usar o utilitário Z.A.P, pressione o botão Z.A.P na - página de detalhes da workunit a partir da workunit adequada. O - botão abre a caixa de diálogo do Zipped Analysis Package (Pacote de - análise Zipped). - -
- Caixa de diálogo do Zipped Analysis Package (Pacote de - análise Zipped). - - - - - - -
- - Preencha os valores correspondentes de Description, History e - Timings na caixa de diálogo Z.A.P. Opcionalmente, é possível - proteger o pacote ZAP por senha e optar pela inclusão de logs - escravos. Pressione o botão Apply - ao terminar. O utilitário Z.A.P gera um arquivo zip com todas as - informações adequadas para solução de problemas. - - É possível localizar o arquivo zip gerado no diretório de - downloads designado do seu navegador. Agora é possível enviar esse - arquivo para o profissional que cuida da solicitação de suporte ou - carregá-lo para o sistema de rastreamento de problemas. Antes de - distribuir o arquivo, verifique se ele não contém dados sensíveis, - como informações de identificação pessoal (PII). -
- - - Registros Escravos - -
- Caixa Slave Logs - - - - - - -
- - O botão Slave Logs abre uma - caixa de diálogo na qual é possível optar por baixar os logs para um - cluster Thor especificado. É possível selecionar o cluster, um - número de escravo específico e o formato do arquivo de log (simples - ou compactado). Isso é útil na hora de solucionar problemas com o - Thor. -
- - - Aba Outputs - - Clique na aba Outputs para ver todos os resultados.
- Outputs - - - - - - -
- - Clique no link Result # para - abrir uma aba e exibir os resultados. - -
- Aba Resultados - - - - - - -
É possível filtrar o conjunto de resultados. Pressione o - botão de ação Filter para detalhar - ainda mais os resultados.
- - Pressione os botões de Downloads para fazer o download dos arquivos - de resultado. Os arquivos de resultado estão disponíveis em 3 - formatos. - - - - GZIP - - - - ZIP - - - - XLS: Fazer o download do - resultado no formato de planilha Excel. - - -
- - - Visualizações - - É possível ver as representações visuais das workunits - selecionadas. Visualizations (Visualizações) estão disponíveis na - página de detalhes da workunit. Nesta página selecione a aba - Output. Verifique se a caixa de - seleção do resultado está marcada e pressione o botão Visualize. - - A aba Visualize ofereceuma série de tipos de gráficos que - podem ser gerados a partir do seu resultado.
- Visualização - - - - - - -
- - Você pode acessar diversos tipos de visualizações clicando na - lista suspensa da aba Visualize. Clique no menu Mappings para alterar os parâmetros. -
- - - Aba Inputs - - Clique na aba Inputs para ver - os arquivos de entrada da workunit. Os arquivos de entrada são os - arquivos de fonte que compõem a workunit.
- Inputs - - - - - - -
- - Os arquivos de entrada são exibidos como um link É possível - clicar duas vezes no link para abrir uma aba para cada arquivo de - entrada. É possível selecionar mais de um arquivo de entrada e - pressionar o botão Open. - - O cabeçalho Usage indica - quantas vezes um arquivo foi usado na workunit. -
- - - Aba Timers - - Clique na aba Timers (Controladores de - tempo) para ver as medidas de tempo da workunit.
- Controladores de tempo - - - - - - -
- - Os controladores de tempo representam tudo o que aconteceu com - a workunit e por quanto tempo. Os controladores de tempo incluem - gráficos que também fornecem mais informações sobre o processamento - da workunit. O mapa gráfico de calor indica, através de uma cor mais - escura, onde levou mais tempo, enquanto as cores mais leves indicam - a parte que levou menos tempo. -
- - - Aba Gráficos - - Clique na aba Graphs - (Gráficos) para ver os gráficos produzidos pela workunit. -
- GRÁFICOS - - - - - - -
- - A aba Graphs exibe uma lista de cada gráfico e o mapa de - calor. Clique duas vezes no mapa de calor para acessar a parte - correspondente do gráfico. -
- - - Aba Timers - - Clique na aba Timers (Controladores de - tempo) para ver as medidas de tempo da workunit
- Controladores de tempo - - - - - - -
- - Os controladores de tempo representam tudo o que aconteceu com - a workunit e por quanto tempo. Os controladores de tempo incluem - gráficos que também oferecem mais informações sobre o processamento. - O mapa de calor indica, através de uma cor mais escura, onde levou - mais tempo, enquanto as cores mais leves indicam a parte que levou - menos tempo. - - Usage: quantas vezes um - arquivo foi usado na workunit. - - - Stats (Estatísticas) - - Na aba Timers da workunit, há outra aba denominada Stats - (Estatísticas) A aba Stats é uma representação visual de todas as - medidas de tempo de workunit. - -
- Stats - - - - - - -
- - Selecione os valores dos controladores de tempo na lista - suspensa da aba Stats para ver os diversos gráficos e - tabelas. -
-
- - - Aba Workflows - - A aba fluxos de trabalho só existe se você tiver um atributo - agendado. Há vários fluxos de trabalho quando seu código contém mais - de uma declaração WHEN. - - Counts (Contagens): Quantos - "eventos" estão agendados. - - Remains (Restantes): Quantos - "eventos" ainda faltam acontecer. - - - - Aba Queries - - Consultas ECL só aparecerão nos detalhes de workunit se a - workunit for uma QUERY (CONSULTA ECL) publicada. Exibe quais - consultas foram publicada dessa tarefa. Idêntico à aba de consultas: - Suspend (Suspender), Unsuspend (Reativar), Activate (Ativar) ou - Desactivate (Desativar). - - - - - - Aba Helpers - - A aba Helpers exibe vários elementos úteis de uma            - workunit, que pode incluir: o código ECL enviado, o XML da Workunit, -            a consulta arquivada, a DLL (SO), os arquivos C ++ - gerados,            o log Thor, os logs escravos Thor, o log do ECL - Agent e o            Log do compilador. Os arquivos de log mostram - apenas a parte que            pertence à workunit - selecionada. - - - - Aba ECL - - Mostra o código ECL para essa workunit. É idêntico ao link ECL - dos Helpers. - - - - Aba XML - - O registro em XML das workunits conforme armazenado no - Dali. - -
-
- - - Página Workunits DFU - - A página Workunits de DFU contém uma lista de todas as workunits - do DFU em seu sistema. Ela oferece acesso a mais detalhes sobre as - workunits. Também é possível realizar ações na workunit selecionada - usando os botões da workunit.
- Link Arquivos - - - - - - -
- - Para acessar a página de workunits DFU, clique no link Files (Arquivos) e depois clique no link - Workunits no submenu de navegação. Essa - ação abre a página Workunits DFU A página mostra as workunits DFU em seu - sistema. - -
- Navegar por Workunits DFU - - - - - - -
Para examinar uma workunit de forma mais detalhada ou - realizar alguma ação, é necessário selecioná-la. É possível selecionar a - workunit marcando a caixa de seleção. Também é possível clicar duas - vezes na workunit para selecionar e abri-la em uma nova aba.
- Selecionar workunit DFU - - - - - - -
- - É possível selecionar múltiplas workunits marcando a caixa de - seleção ao lado da cada uma. Também é possível clicar e arrastar sobre - um grupo de caixas de seleção de workunit para selecionar múltiplas - workunits. - - Os botões de Ação ativados agora permitem que você realize algumas - ações nas workunits selecionadas. - - Pressione o botão Refresh - para atualizar a lista. - - - - Pressione o botão Open para - abrir a aba de detalhes da workunit(s). - - - - Pressione o botão Delete - para remover a(s) workunit(s) selecionada(s). - - - - Pressione o botão Set to - Failed para definir o estado da(s) workunit(s) como - falha. - - - - Pressione o botão Protect - para bloquear a(s) workunit(s). Isso impede seu - arquivamento pelo servidor Sasha. - - - - Pressione o botão Unprotect - para desbloquear a(s) workunit(s) bloqueada(s). - - - - Pressione o botão Filter - para exibir opções de filtro/busca adicionais. - - - - Observação: - - - Os critérios de filtro não fazem distinção entre - maiúsculas e minúsculas. - - - - - - - Ao selecionar uma workunit, é possível então pressionar o botão - Open para ver os detalhes. Também é - possível clicar duas vezes em uma determinada workunit para abrir a aba - de detalhes. - - Ao selecionar e depois abrir múltiplas unidades, cada uma delas - será aberta em sua própria aba. - - - Opções de Filtro da Workunit DFU - - É possível filtrar as workunits exibidas na aba Workunits - clicando no botão Filter . O submenu - Filter será então exibido. Preencha os valores para especificar os - critérios de filtro e depois pressione o botão Apply . - -
- O filtro da workunit DFU - - - - - - -
- - As opções de filtro da workunit DFU permitem que você filtre - workunits usando os critérios especifícos As workunits podem ser - filtradas por: - - - - Archived Only (Apenas - arquivadas) – ao marcar essa opção, o filtro vai - procurar apenas por workunits arquivadas. - - - - Onwer (Proprietário) – - filtra workunits para proprietários específicos. Compatível com - elementos curingas. - - - - Job Name (Nome do Job) – - filtra workunits pelo nome. Compatível com elementos - curingas. - - - - Cluster – filtra workunits - por cluster. Selecione o cluster na lista suspensa. - - - - State (Estado) – filtra - workunits por estado. Selecione o estado na lista suspensa. - - - - - - Observação: - - - Os critérios de filtro não fazem distinção entre - maiúsculas e minúsculas. - - - - - Ao especificar quaisquer opções de filtro, o botão Filter exibe - as disponíveis.
- Conjunto de filtro DFU - - - - - - -
- - - Classificando Colunas - - É possível classificar uma coluna clicando em seu título. - Clique uma vez para classificar em ordem crescente e clique - novamente para mudar para a ordem decrescente. A direção da seta - indica a ordem da classificação.
- Classificar workunits DFU por coluna - - - - - - -
-
-
- - - Página de Detalhes da DFU Workunit - - Ao abrir as workunits selecionadas, você verá os detalhes das - workunits. A aba Workunit Details fornece informações sobre uma - workunit. É possível ver mais informações sobre a workunit - selecionando as diversas abas de Workunit Details. Também é possível - realizar ações nas workunits selecionadas usando os botões de ação da - Workunit. - -
- Detalhes da Workunit - - - - - - -
- - Os detalhes adicionais das workunits estão situados na seção - Workunit Details da página. São exibidos aqui o nome da workunit, a - fila, o comando, o tempo, e a porcentagem de conclusão juntamente com - as mensagens do processo. - - É possível usar os botões de ação da workunit na aba Active - Workunit para realizar ações na workunit selecionada. Pressione o - botão de ação adequado da workunit para realizar as ações a seguir. - - - Pressione o botão Refresh - (Atualizar) para atualizar os detalhes de - workunit. - - - - Pressione o botão Save - (Salvar) para salvar a workunit. - - - - Pressione o botão Delete - (Remover) para remover a workunit. - - - - Pressione o botão Abort - (Cancelar) para cancelar uma workunit em - execução. - - - - Pressione o botão Resubmit - (Reenviar) para reenviar a workunit (ainda não - implementada). - - - - Pressione o botão Modify - (Modificar) para modificar a workunit (ainda não - implementada). - - - - - Aba XML - - A aba XML na página de detalhes da workunit permite que você - veja a representação em XML .
- Aba Detalhes da workunit em XML - - - - - - -
-
- - - Aba Source - - A aba Source na página de detalhes da workunit permite que - você veja os arquivos de fonte da workunit DFU.
- Aba Source em Detalhes da workunit - - - - - - -
-
- - - Aba Target - - A aba Target na página de detalhes da workunit permite que - você veja o destino da workunit DFU.
- Aba Target de Detalhes da Workunit - - - - - - -
-
-
-
- - - Arquivos - - A página Files (Arquivos) contém - recursos relacionados ao processo de obtenção de dados em seu cluster, - recursos de gerenciamento desses arquivos e também das workunits - associadas a eles. Clique no ícone - Files para acessar os recursos do Files. Também é possível - realizar ações nos arquivos e superarquivos selecionados usando os - botões de ação da Workunit. - - - Página Arquivos Lógicos - - Para acessar a página Files, clique no ícone Files e depois clique no link Logical Files (Arquivos lógicos) no submenu de - navegação. - -
- Arquivos lógicos - - - - - - -
- - É possível navegar ou procurar por arquivos lógicos nesta página - usando o menu suspenso "Filter". - - Observação: - - - Os critérios de filtro não fazem distinção entre - maiúsculas e minúsculas. - - - - - - - - - - - - - - - - - Na presença de mais de 100.000 arquivos lógicos, você - verá uma mensagem de advertência. - - - - - -
- Página "Logical Files" - - - - - - -
- - Para ver detalhes de um determinado arquivo ou realizar alguma - ação, é necessário selecioná-lo. É possível selecionar um ou mais - arquivos marcando a caixa de seleção. Também é possível clicar e - arrastar o cursor sobre um grupo de caixas de seleção para selecionar - múltiplos arquivos.
- Selecionar arquivos - - - - - - -
- - Há três colunas com ícones que indicam alguns atributos do - arquivo. Há também um ícone que aparece ao lado do "Logical Name", - indicando o tipo de arquivo. - - - - - - - - - - - - Arquivo bloqueado - - - - - - Arquivo comprimido - - - - - - Arquivo chave (índice) - - - - - - Arquivo lógico - - - - - - Superarquivo - - - - Além disso, é possível classificar uma coluna - clicando em seu título. Clique uma vez para classificar em ordem - crescente e clique novamente para mudar para a ordem decrescente. A - seta exibe a ordem de classificação. - - Depois que um ou mais arquivos foram selecionados, os botões de - ação são ativados. É possível realizar ações nos arquivos - selecionados. - - - - Pressione o botão Open - (Abrir) para abrir as páginas de detalhes dos - arquivos lógicos. - - - - Pressione o botão Delete - (Remover) para remover os arquivos. - - - - Pressione o botão Remote Copy (Cópia - remota) para abrir uma caixa de diálogo onde é - possível copiar arquivos de uma plataforma HPCC remota. Será - necessário obter permissão para acessar o servidor Dali - remoto. - - - - Pressione o botão Copy (Copiar) - para copiar um arquivo. É possível modificar algumas - das opções de cópia no menu suspenso. - - - - Pressione o botão Rename - (Renomear) para renomear um arquivo lógico. É - possível modificar algumas opções de renomeação de arquivo no - menu suspenso. - - - - Pressione o botão Add To Superfile - (Adicionar ao superarquivo) para criar e adicionar - arquivos a um superarquivo. - - - - Pressione o botão Despray - para realizar o despray do arquivo. É possível modificar algumas - opções de despray no menu suspenso. - - - - Pressione o botão Filter - (Filtrar) para exibir opções de filtro adicionais. - Use essas opções para filtrar a lista. - - - - Pressione o botão de imagem de árvore (à direita do botão - Filter) para visualizar arquivos por escopo em forma de - árvore. - - - - É possível pressionar o botão Open - (Abrir) para abrir uma aba com detalhes de cada arquivo - selecionado. - - - Cópia Remota - - Pressione o botão Remote Copy - para abrir uma caixa de diálogo onde é possível copiar arquivos de - ou para uma plataforma Dali remoto.
- Caixa de diálogo Remote Copy - - - - - - -
- - Preencha os campos do arquivo de origem e o destino, marque as - opções necessárias e depois pressione o botão Submit . - - - - Verifique se a caixa - Overwrite está marcada para sobrescrever arquivos - de mesmo nome. - - - - Verifique se a caixa - Compress está marcada para comprimir a cópia do - arquivo. - - - - Verifique a caixa Retain Superfile - Structure para a cópia reter a estrutura de um - Superfile. Se você está copiando um superfile que contém - ÍNDICES, você deve habilitar esta opção. - - - - Verifique a caixa - Replicate para criar cópias de backup de todas as - parte. - - - - Verifique a caixa No - Split para evitar a divisão da cópia do arquivoem - partes. - - - - Verifique a caixa Wrap - para manter o número de partes e envelopamento caso o destino - cluster de destino for menor que o original. - - - - Verifique a opção Preserve - Compression para manter a compressão do - arquivo. - - - - Verifique a opção Expire in - (days) para inserir o número de dia antes da - remoção automática do arquivo. Se omitido, o padrão é -1 - (nunca expira). - - -
- - - Copiar Arquivo - - Pressione o botão Copy para - exibir o menu suspenso de cópia, que contém opções adicionais de - cópia de arquivo. - - - - Classificando Colunas - - É possível classificar uma coluna clicando em seu título. - Clique uma vez para classificar em ordem crescente e clique - novamente para mudar para a ordem decrescente. A direção da seta - indica a ordem da classificação.
- Classificar Arquivo lógico por coluna - - - - - - -
-
- - - Opções de Filtro de Arquivos Lógicos - - É possível filtrar os arquivos lógicos exibidos na aba Logical - Files (Arquivos lógicos) clicando no botão de ação Filter . O submenu Filter será então - exibido. Preencha os valores para especificar os critérios de filtro - e depois pressione o botão Apply - . - -
- Submenu “Filter" de arquivos lógicos - - - - - - -
- - As opções de filtro de arquivos lógicos permitem que você - filtre arquivos usando os critérios especificados. Os arquivos - lógicos podem ser filtrados por: - - - - Name (Nome) – filtra - arquivos por nome. Compatível com elementos curingas. - - - - Description (Descrição) – - filtra arquivos por descrição. Compatível com elementos - curingas. - - - - Owner (Proprietário) – - filtrar arquivos por proprietário. Compatível com elementos - curingas. - - - - Index (Índice) – inclui - apenas arquivos de índice, se marcado. - - - - Cluster Cluster – filtra - arquivos por cluster. Selecione o cluster na lista - suspensa. - - - - From Sizes (Tamanho - mínimo) – filtra arquivos com um tamanho mínimo - específico. - - - - To Sizes (Tamanho máximo) - – filtra arquivos com um tamanho máximo específico. - - - - File Type (Tipo de - arquivo) – filtra arquivos por tipo. - - - - From Date (Data inicial) - – filtrar arquivo a partir de uma data e/ou hora específica. - Selecione a data e a hora na lista suspensa. - - - - To Date (Data final) – - filtra arquivos até uma data e/ou hora específica. Selecione a - data e a hora na lista suspensa. - - - - - - Observação: - - - Os critérios de filtro não fazem distinção entre - maiúsculas e minúsculas. - - - - - Ao especificar quaisquer opções de filtro, o botão Filter - exibe as opções disponíveis.
- Filter Set - - - - - - -
- - A cor do ícone do filtro também tem significado. A cor muda - para vermelho exibindo uma mensagem de aviso se houver mais de - 100.000 arquivos ao passar o mouse sobre o ícone do filtro. - -
- Ícone de aviso de limite de arquivos lógicos - - - - - - -
O ícone permanecerá vermelho durante a navegação nos - arquivos lógicos e mudará para azul quando você reduzir a quantidade - de arquivos retornados. O ícone mudará de volta para vermelho se - você limpar o filtro em ambientes que excedam o limite de aviso de - 100.000 arquivos.
-
-
- - - Detalhes do Arquivos Lógicos (Logical Files Details) - - A página de Detalhes de Arquivos Lógicos mostra detalhes - específicos para o arquivo selecionado, incluindo: Workunit ID, Owner, - Super Owner, Cluster Name, Description, Job Name, Protected state, - Content Type, Key Type, File Size, Format, Compressed state e - informações como, Modified Date, Expire in value, Directory e Path - Mask, Record Size, Record Count, Replication state, File Parts, e Skew - information. - - Marque a caixa Protected para proteger o arquivo contra exclusão - ou expiração. - - O valor do Key Type é exibido apenas se o arquivo for um ÍNDICE. - O type pode ter três valores possíveis: Distributed (Distribuído), - Local ou Particionado (Partitioned). - - A página Logical Files Detail (Detalhes dos Arquivos lógicos) - mostra detalhes específicos para o arquivo selecionado. Selecione o - arquivo para visualização clicando na aba adequada nas abas de - navegação localizadas no topo da página. - -
- Página "Logical Files Details" - - - - - - -
- - O resumo dos detalhes dos Arquivos lógicos aparece em File - Details, na parte principal da página de arquivos. É possível ver - outros detalhes do arquivo usando as abas File - Details na parte superior da página. - - - - Selecione a aba Summary - (Resumo) para ver um resumo dos detalhes do - arquivo. - - - - Selecione a aba Contents - (Conteúdo) para visualizar o conteúdo do - arquivo. - - - - Selecione a aba ECL para - ver o código ECL. - - - - Selecione a aba DEF para - ver as definições de ECL. - - - - Selecione a aba XML para - ver a representação em XML do arquivo lógico. - - - - Selecione a aba Superfiles - (Superarquivos) , quando ativado, para exibir as - informações de superarquivo. - - - - Selecione a aba File Parts (Partes - do arquivo) para ver informações sobre as várias - partes do arquivo. - - - - Selecione a aba Queries - (Consultas) para ver quais consultas usam quais - arquivos lógicos. - - - - Selecione a aba Graphs (Gráficos, - quando ativada) para exibir os gráficos associados ao - arquivo. - - - - Selecione WorkunitList - para ver os detalhes da workunit correspondente. Observe que a - aba de workunit mostra as mesmas informações que você veria se - tivesse selecionado através do link da workunit. - - - - Selecione a aba Histórico - para exibir uma lista de ações de DFU realizadas, tais como - cópia, cópia remota, spray e afins para o arquivo. - - Na aba “File Details Summary", é possível realizar - algumas ações no arquivo selecionado. - - - - Pressione o botão Refresh - (Atualizar) para atualizar os detalhes de - arquivo. - - - - Pressione o botão Save - (Salvar) para salvar alterações nos detalhes de - arquivo. - - - - Pressione o botão Delete - (Remover) para remover o arquivo. - - - - Pressione o botão Copy - (Copiar) para copiar um arquivo. Também é possível - modificar alguns atributos do arquivo no menu suspenso. - - - - Pressione o botão Rename - (Renomear) para informar um nome e renomear o - arquivo. - - - - Pressione o botão Despray - para realizar o despray do arquivo. Também é possível modificar - algumas opções de despray no menu suspenso. - - - - - Superarquivo - - Um superarquivo consiste de uma lista gerenciada de - subarquivos (Arquivos lógicos) tratados como uma entidade de lógica - única. Quando um arquivo é considerado um superarquivo, a aba - Summary exibe os detalhes do - superarquivo, como por exemplo cada subarquivo. Selecione um - superarquivo na lista Logical Files (Arquivos lógicos) e depois - pressione o botão de ação Open. Isso exibe a página "Detalhes do - superarquivo".
- Página Detalhes do Superarquivo - - - - - - -
- - Na página "Detalhes do superarquivo", é possível: - - - - Ver a lista de subarquivos no superarquivo. Clicar em - qualquer hiperlink de subarquivo para ver os detalhes do - subarquivo. - - - - Ver os detalhes dos subarquivos. - - - - Pressione o botão Save - para salvar as alterações feitas no superarquivo. - - - - Pressione o botão Delete - Superfiles para remover todo o superarquivo. - - - - Pressione o botão Remove - subfile(s) para remover qualquer subarquivo - selecionado do superarquivo. - - -
-
-
- - - Zona de entrada de arquivos - - Para acessar a página "Zona de entrada de arquivos", clique no - ícone Files e depois clique no link - Landing Zones (Zona de entrada de - arquivos) no submenu de navegação. O link "Zona de entrada de - arquivos" exibe a página de zona de entrada de arquivos. A página mostra - cada zona de entrada de arquivos configurada para o cluster e seu - conteúdo.
- Página Zona de entrada de arquivos - - - - - - -
- - Clique na seta ao lado de um contêiner de zona de entrada de - arquivos, servidor ou pasta para expandir. Os arquivos na zona de - entrada de arquivos são exibidos. É possível carregar, baixar ou remover - arquivos na zona de entrada de arquivos usando os botões de ação de zona - de entrada de arquivos Também é possível realizar o spray de arquivos - para um cluster usando esta página. - - - Enviar Arquivos - - É possível carregar arquivos para a zona de entrada de arquivos - na página "Zona de entrada de arquivos". - - - - Pressione o botão de ação Upload . - - - - - - - - - - - - O utilitário de envio no ECL Watch é limitado - pelo tamanho máximo do arquivo do navegador. Normalmente - o tamanho é de 4 GB. Para sistemas de produção, - recomendamos o utilitário de protocolo de cópia de - segurança (scp). - - - - - - - - Escolha o arquivo na janela exibida. - - - - Verifique se as informações de arquivo, pasta e zona de - entrada de arquivos estão corretas quando a caixa de diálogo - File Uploader é exibida.
- Informações - - - - - - -
-
- - - Pressione o botão Start - para começar a carregar. - - O indicador de progresso do arquivo é exibido como o upload - de arquivos. Quando o upload é concluído, a janela é - fechada. - -
- - -
- - - Download dos Arquivos - - É possível fazer o download dos arquivos da sua zona de entrada - de arquivos para o computador. - - Na página Zona de entrada de arquivos, selecione um ou - mais arquivos para fazer o download marcando a caixa ao lado - deles - - - - Pressione o botão Download - para obter o arquivo. - - O arquivo será baixado para o diretório de download do - navegador especificado nas configurações do navegador. - - - - Arquivos Excluídos - - É possível remover arquivos da sua zona de entrada de arquivos. - - - Na página Landing Zone (Zona de entrada de arquivos), - selecione um ou mais arquivos para remover marcando a caixa ao - lado deles. - - - - Pressione o botão de ação Delete para remover o arquivo de sua zona - de entrada de arquivos. - - - - - - Prévia em hexadecimal - - A Hex Preview (Prévia em Hexadecimal) mostra o conteúdo de um - arquivo na zona de entrada de arquivos em um formato hexadecimal. Se o - arquivo for grande, apenas os primeiros 32k são exibidos. A prévia em - hexadecimal foi projetada para arquivos de comprimento fixo, podendo - também funcionar para arquivos delimitados com possíveis - limitações. - - - - Selecione um arquivo marcando a caixa ao lado dele. - - - - Pressione o botão Hex - Preview para exibir os arquivos selecionados em - formato hexadecimal. - - - -
- Prévia em hexadecimal - - - - - - -
- - É possível ajustar a largura da visualização na página Hex - Preview usando os controles de spinbox na caixa Width . - - Se você tem um arquivo EBCDIC, marque a caixa ao lado de - EBCDIC: para que ele seja exibido - corretamente. -
- - -
- - - Consultas Publicadas - - A página Queries (Consultas) oferece acesso às Queries publicadas - em todos os clusters de um ambiente. Para acessar a página Queries - (Consultas), clique no link Published Queries (Consultas publicadas) no - painel de navegação no ECL Watch. - - - Consultas - - Clique em qualquer link na página Targets para exibir essa página de destino. A - página de destino tem duas abas, uma para todas as consultas de - destino e outra apenas para as consultas ativas. Nesta página é - possível obter mais informações sobre as consultas publicadas - específicas. - -
- Consultas de destino - - - - - - -
Selecione as consultas clicando nelas ou segurando a tecla - Shift ao clicar e selecionar múltiplas consultas. Pressione os botões - para realizar a atividade desejada.
- - - - Delete - - - Remove a(s) consulta(s) selecionada(s). - - - - - Toggle Suspend - - - Alterna entre suspender ou reativar a(s) consulta(s) - selecionada(s). - - - - - Activate - - - Ativa a(s) consulta(s) selecionada(s). - - - - - Queries Details - - - Direciona para uma página com os detalhes da consulta - selecionada. - - - -
-
- - - Operações - - A página Operations (Operações) oferece acesso a várias workunits - de administrador de sistema que você pode realizar no HPCC System. Para - acessar a página Operations, clique no link Operations no painel de - navegação no ECL Watch. - - Mais em breve... - -
-
diff --git a/docs/PT_BR/ECLWatch/ECLWa_mods/SessFaq.xml b/docs/PT_BR/ECLWatch/ECLWa_mods/SessFaq.xml deleted file mode 100644 index b967811aea1..00000000000 --- a/docs/PT_BR/ECLWatch/ECLWa_mods/SessFaq.xml +++ /dev/null @@ -1,249 +0,0 @@ - - - - Gerenciamento de Sessões - - A versão 7.0 do HPCC Platform apresenta o novo recurso de segurança do - Gerenciamento de Sessão ESP. Isto funciona como muitas aplicações bancárias, - onde depois de um período de inatividade configurável você é avisado com um - pop-up "Você está prestes a ser bloqueado". Se nenhuma ação for tomada, a - sessão será bloqueada e você precisará inserir suas credenciais para - desbloquear e retomar. Uma sessão permanece ativa enquanto houver interação - regular do usuário. Após um período de inatividade, você é alertado de que - sua sessão está prestes a ser bloqueada. As sessões são armazenadas em - cookies e compartilhadas entre as abas e instâncias de cada navegador. A - atividade em qualquer instância estenderá toda a duração da sessão. Além - disso, uma opção de menu Logout permite que você feche sua sessão quando - terminar. - - - FAQ - - - - Q: Por que nós implementamos - esse recurso? - - A: O principal motivo é - reforçar a segurança. Os navegadores e o IDE deixados abertos depois - de horas e no fim de semana são um risco de segurança. Além disso, - isso reduz a carga desnecessária no ESP, pois não atualizará - automaticamente as sessões do ECLWatch inativas. - - - - Q: Quanto tempo dura uma - sessão inativa? - - A: Seu administrador pode - configurar isso usando o Configuration Manager. A configuração padrão - são de duas horas de inatividade. - - - - Q: A atualização automática - de workunits e gráficos ativos estende sua sessão de ESP? - - A: Não, apenas as ações do - usuário, como digitação ou cliques do mouse, estendem uma - sessão. - - - - Q: Terei que fazer o login no - ECLWatch? - - A: Sim, assim como você faz - atualmente. - - - - Q: Terei que fazer o login no - ECL IDE? - - A: Sim, mas você já deveria - estar. Não há alterações perceptíveis aqui apenas nos bastidores onde - você está sendo autenticado. - - - - Q: Terei que fazer o login no - Configuration Manager? - - A: Não. - - - - Q: Quais credenciais devo - usar para fazer login? - - A: Use suas credenciais - atribuídas. - - - - Q: Posso me desconectar do - ECL Watch? - - A: Sim, há um link para - logout disponível. Você pode fazer logoff e não bloquear a sessão após - um período configurável de inatividade. - - - - Q: Minhas sessões serão - desconectadas devido à inatividade? - - A: Não. Depois de um período - de inatividade configurável, sua sessão é bloqueada. Você precisa - desbloquear para retomar sua sessão. - - - - - - Q: Quanto tempo até minha - senha expirar? - - A: Isso depende das políticas - do seu sistema e do gerenciador de segurança configurado. - - - - Q: Conseguirei alterar uma - senha expirada? - - A: Sim, com a nova tela de - login, você pode inserir IDs usados anteriormente ou inserir um ID - diferente. Você pode ter tantas sessões de usuário ativas a qualquer - momento quanto permitido pelos recursos do seu sistema. - - - - Q: Posso fazer login - simultaneamente com credenciais diferentes? - - A: Sim, usando abas - diferentes em um único navegador, várias instâncias do mesmo navegador - ou várias instâncias de diferentes navegadores. - - - - Q: Existe uma opção para - permanecer conectado indefinidamente e/ou não ter tempo de - inatividade? - - A: Não. - - - - Q: Perderei dados se obtiver - o logout automático? - - A: Não. Você não foi - desconectado. Sua sessão será bloqueada. Qualquer coisa digitada em - qualquer campo (como uma caixa de pesquisa) que não tenha sido enviada - ou inserida poderá ser perdida. No entanto, como a sessão em si é - bloqueada, é improvável que quaisquer dados sejam perdidos. - - - - Q: As minhas unidades de - trabalho enfileiradas e programadas serão executadas quando eu estiver - bloqueado? - - A: Sim, a sessão aplica-se - apenas às comunicações ESP/ECL IDE e ESP/ECLWatch. - - - - Q: Os utilitários de linha de - comando do HPCC serão afetados? - - A: Possivelmente. Se você - configurou o AuthPerSessionOnly, os utilitários de linha de comando - não funcionarão. Se AuthPerSessionOnly não estiver ativado, os - utilitários de linha de comando não serão afetados. - - - - Q: A atualização automática - no ECLWatch redefine o cronômetro de expiração da sessão? - - A: Não. Apenas as interações - ativas, como cliques do mouse e teclas pressionadas, prolongam o tempo - limite. Observe que a rolagem não estende o o tempo de - expiração. - - - - Q: Se eu estiver conectado à - mesma conta usando várias abas em um navegador ou várias instâncias do - mesmo navegador, posso ser bloqueado de um, mas não dos outros? - - A: Não, a atividade é - rastreada por suas credenciais. A atividade em uma aba ou instância - estende a sessão para todas. - - - - Q: Se eu fizer login na mesma - conta usando navegadores diferentes (por exemplo, Firefox e Chrome), - eles compartilham o mesmo tempo limite da sessão? - - A: Não. Como cada navegador - tem seu próprio armazenamento de cookies, a atividade em um não se - estende ao outro. - - - - Q: Posso voltar - automaticamente para a tela do ECLWatch onde eu estava quando fui - bloqueado automaticamente? - - A: Sim. A intenção é bloquear - sua sessão e não desconectá-lo completamente. Desbloquear sua sessão - deve retorná-lo ao mesmo ponto quando sua sessão estiver - bloqueada. - - - - Q: Conseguirei alterar uma - senha expirada? - - A: Sim. Você é redirecionado - para uma página onde você pode redefinir sua senha. - - - - Q: O acesso ao ECLWatch - requer SSL/TLS e HTTPS? - - A: Esses protocolos de - segurança já estão disponíveis para o administrador do HPCC - configurar. Embora não seja necessário para o gerenciamento de - sessões, esperamos que eles estejam habilitados no momento. - - - - Q: As minhas chamadas SOAP - programáticas utilizando ESP terão algum impacto? - - A: Talvez. Se você tiver - configurado AuthPerSessionOnly, as chamadas SOAP não funcionarão. Se o - seu sistema não estiver configurado dessa forma, as chamadas SOAP - programáticas continuarão a funcionar como fazem agora. - - - - Q: Quando verei as mudanças - no Session Management (Gerenciamento de Sessões)? - - A: Você pode configurar seu - sistema para usar o Session Management como parte do HPCC Versão - 7.0. - - - - diff --git a/docs/PT_BR/ECLWatch/TheECLWatchMan.xml b/docs/PT_BR/ECLWatch/TheECLWatchMan.xml deleted file mode 100644 index 590035d0f99..00000000000 --- a/docs/PT_BR/ECLWatch/TheECLWatchMan.xml +++ /dev/null @@ -1,1870 +0,0 @@ - - - - Utilizando o ECL Watch - - - Utilizando o ECL Watch - - - - - - - - - Equipe de documentação de Boca Raton - - - - Sua opinião e comentários sobre este documento são muito - bem-vindos e podem ser enviados por e-mail para - docfeedback@hpccsystems.com - - Inclua a frase Feedback sobre - documentação na linha de assunto e indique o nome do - documento, o número das páginas e número da versão atual no corpo da - mensagem. - - LexisNexis e o logotipo Knowledge Burst são marcas comerciais - registradas da Reed Elsevier Properties Inc., usadas sob licença. - - HPCC Systems® é uma marca registrada da - LexisNexis Risk Data Management Inc. - - Os demais produtos, logotipos e serviços podem ser marcas - comerciais ou registradas de suas respectivas empresas. - - Todos os nomes e dados de exemplo usados neste manual são - fictícios. Qualquer semelhança com pessoas reais, vivas ou mortas, é - mera coincidência. - - - - - - - - - HPCC Systems® - - - - - - - - - - - - Introduzindo o ECL Watch - - ECL Watch consiste de um serviço executado no Enterprise Services - Platform (ESP), um componente middleware na plataforma do HPCC. - - O ECL Watch oferece uma interface para o HPCC System e permite que - você veja informações e interrogue nós para confirmar se todos os - processos esperados estão funcionando. Este é um plugin útil para - administradores de sistema na hora de verificar processos, examinar - topologias e ver logs. Também é útil para programadores ECL monitorar o - status dos jobs, arquivos e outras informações pertinentes. Isso oferece - uma visão simples sobre o sistema e um meio para realizar a manutenção em - arquivos de dados e workunit. - - A interface do ECL Watch constitui de um conjunto de páginas baseado - em um navegador, onde é possível acessar e se comunicar com o HPCC System. - Para executar o ECL Watch usando o seu - navegador, acesse o nó em seu sistema que executa o ESP/ECL Watch na porta 8010. Por exemplo, - http://nnn.nnn.nnn.nnn:8010, onde nnn.nnn.nnn.nnn é o endereço IP do nó do - ESP/ECL Watch. Esse procedimento abrirá o ECL Watch. - - O ECL Watch é organizado por categorias baseadas em várias funções - de sistema. Essas funções ou ações são acessíveis através dos links no - topo da página inicial principal. No entanto, há vários itens do ECL Watch - com funcionalidades universalmente comuns nas páginas do ECL Watch. - - - Elementos Comuns - - Há alguns elementos comuns que são úteis em qualquer parte do ECL - Watch. - - - Abrir em Nova Página - - O link Open in New Page permite - que você abra uma nova janela diretamente para o item que está sendo - acessado.
- Abrir em Nova Página - - - - - - -
- - Abrir a visão atual em uma nova página é útil de diversas - maneiras: - - - - Open in New Page (Abrir em página - nova) é um link compartilhável. Clique com o botão - direito em Open in New Page e - selecione Copy link address (Copiar endereço do - link) no menu contextual. Agora é possível salvar, - compartilhar ou enviar esse link para que o destinatário possa - abrir uma janela diretamente para a (nova) página. - - - - As novas páginas mantêm estados de filtro. Se você possui um - filtro e compartilha esse link, a nova página conterá esse mesmo - conjunto de filtro. - - - - A nova página funciona em tempo real. (Se o recurso de - atualização automática estiver ativado para a página) O - destinatário não precisa redefinir a página ou atualizar para ver - seu estado atual. - - - - - Maximizar Painel - - - - O íconeMaximizar/Restaurar - está presente em todo o ECL Watch. Pressione o botão para maximizar - a o painel correspondente. Pressione novamente para restaurar o - painel ao seu tamanho original. - -
- - - Lista de Widgets - -
- Lista de Widgets - - - - - - -
- - O ECL Watch normalmente exibe itens no formato de uma lista. - Listas de workunit, de arquivos lógicos, de consultas Roxie e afins. - Os seguintes elementos no ECL Watch funcionam em qualquer lista de - widget: - - - - Download como CSV (workunit, workunit DFU, arquivos - lógicos e consultas Roxie) - - - - Caixa de seleção de coluna. Selecione todas as linhas - marcando a caixa de seleção na parte superior (segure a tecla - Shift e clique para selecionar um intervalo) - - - - Classificar por cabeçalho de coluna. Clique no cabeçalho - de coluna para classificar a coluna de acordo com o - conteúdo. - - - - Redimensione larguras de coluna arrastando as - bordas. - - - - Filtros que possibilitam que você defina critérios para os - itens a serem exibidos na lista. - - - - - Filtros. - - As opções de filtro em uma lista permitem que você use - critérios especificados para definir o que é exibido na lista. - Pressione o botão Filter para - exibir as opções de filtro. Ao especificar quaisquer opções de - filtro, o botão de ação Filter muda, exibe Filter Set (Conjunto de filtro) e a imagem do - indicador de filtro se acende. Ao copiar, um link Open in New Page um novo filtro será - configurado, a condição do filtro persistirá. As condições de filtro - limitam os resultados exibidos até que o filtro seja apagado. - -
- - - Itens do Banner - - A área de banner do ECL Watch aparece no topo de todas as - páginas. - - - Botão Home - - O botão de página inicial do HPCC Systems também é o link de - menu Activity. Mais do que apenas uma decoração, o botão de Home do - ECL Watch abre de fato a página Activity, que será abordada de forma - mais detalhada no próximo capítulo. - - Os ícones à esquerda do botão Home são destinados às - diferentes áreas do ECL Watch. Cada uma das áreas do link será - discutida nos próximos capítulos. - - - - Luz indicadora do monitor - - A luz indicadora “Monitorador” fornece um status da - integridade geral do sistema. Se você configurou o monitoramento e - geração de relatórios (consulte Monitoramento e Relatórios - do HPCC), essa luz será exibida em uma cor baseada na - integridade geral do sistema (configurável). Se não houver - monitorador ou relatório configurado para o seu sistema, a luz será - exibida na cor preta. - - - - Download como CSV - - Com a maioria das listas no ECL Watch, é possível fazer o - download das linhas selecionadas como um arquivo formatado em CSV. É - possível então abrir o arquivo CSV em qualquer aplicativo de - planilha compatível com formatos CSV. - - - - - Pesquisa Global - - A caixa de busca global está disponível na barra de navegação no - topo da página do ECL Watch.
- Caixa de busca global - - - - - - -
- - É possível procurar por workunit DFU, workunit de ECL, arquivos - lógicos e consultas Queries usando a caixa de busca global. A caixa de - busca global também é compatível com o uso de elementos curingas. Para - limitar ou filtrar seus resultados de busca, é possível usar - palavras-chave conforme exibidas na caixa de busca vazia. - - - - file: - - - Comece a string de busca com file: - para procurar arquivos lógicos - - - - - wuid:. - - - Comece a string de busca com wuid: - para procurar apenas por IDs de workunit. - - - - - ecl: - - - Comece a string de busca com ecl: - para procurar por código ECL nas workunit. - - - - - dfu: - - - Comece a string de busca com dfu: - para procurar apenas por workunit DFU. - - - - - query: - - - Comece a string de busca com query: - para procurar apenas por consultas publicadas. - - - Exemplos de uso da busca global: - - Insira W201510* na caixa de busca e ela - exibirá todas as tarefas desde outubro de 2015. - - Insira file:keys na caixa de busca e ela - exibirá todos os arquivos lógicos que contenham a palavra "keys". -
- Exemplo de busca global - - - - - - -
- - -
- - - Menu Advanced - - Há uma seção, na parte superior direita da barra de navegação, - com algumas informações e recursos úteis. Essa seção mostra com qual - usuário você está conectado (se seu sistema estiver com a autenticação - ativada). O menu “Advanced” (Avançado) está localizado ao lado direito - da barra de navegação. É possível acessar vários itens no menu. - -
- Menu Advanced - - - - - - -
- - Pode haver um número exibido no link do menu. Um número exibido - ao lado dele indica quantos erros e avisos foram gerados durante a - sessão. Clique no menu Advanced para exibir uma lista de - recursos. - - - Acesso ao menu Advanced - - Os itens de menu Advanced (Avançado) são acessados através do - link do menu localizado no canto direito superior do ECL Watch. - - O link Set Banner (Fixar - Banner) permite que você configure uma mensagem de banner - personalizada no topo da janela do navegador ao abrir o ECL Watch. - Marque a caixa Enable para ativar - um banner. Você pode usar o banner para enviar uma mensagem sobre o - ambiente aos usuários. Personalize a aparência do banner da mensagem - com os outros controles. As configurações de banner persistem até - que o servidor ESP seja reiniciado. - - O link Set Toolbar permite - personalizar a barra de ferramentas na parte superior da página do - ECL Watch. Marque a caixa Enable Environment - Text para exibir o texto Name of - Environment na parte superior da página e na guia do - navegador. Rotular as abas do navegador é útil ao trabalhar com - vários ambientes. As configurações da barra de ferramentas persistem - durante a reinicialização do servidor ESP. - - O link Error/Warning(s) - (Erro/aviso(s)) exibe uma aba que exibe mensagens de - erro, avisos e informações. É possível filtrar essa página marcando - as caixas na parte inferior da aba. Um recurso de cópia também está - disponível. - - O link Transition Guide (Guia de - Transição) abre uma nova guia do navegador para a página - onde você pode encontrar mais informações sobre a transição usando a - versão anterior do HPCC e do ECL Watch. - - O link Additional Resources - (Recursos adicionais) abre um submenu que fornece links para áreas - no site do HPCC Systems® , onde é possível localizar recursos adicionais como - Red Book , Forums - (Fóruns de usuários) e o Issue - Reporting (Relatórios de - problemas). - - O link Configuration - (Configuração) direciona para a exibição da versão XML do - arquivo de configuração em uso pelo seu sistema. - - O link About (Sobre) abre uma - caixa de diálogo que exibe algumas informações sobre a versão da - plataforma HPCC e os controles gráficos instalados em seu - servidor. - - - - Conectar como - - O link Logged In As: (Entrou no sistema - como:) , localizado no topo da página ECL Watch, exibe - informações sobre o usuário atual em um cluster configurado para - autenticação.
- Logged In As - - - - - - -
- - - - Clique no link LOGGED IN AS : - - A janela User Details (Detalhes do usuário) é aberta A - janela padrão abre na aba Summary (Resumo). - -
- Janela “User Details” - - - - - - -
-
- - - Na aba Summary da página User Details, é possível - confirmar o nome do usuário que você usou para se conectar ao - sistema. - - É possível alterar a sua senha. - - Observe que são necessários direitos de administrador - para gerenciar usuários e permissões. - - Verifique se você está usando uma conta com direitos de - administrador se precisar gerenciar usuários ou - permissões. - - - - Verifique a data de validade da senha ou se a senha está - prestes a expirar. - -
- - - Alterar a Senha - - Se a autenticação estiver ativada em seu HPCC System, é - possível alterar sua senha diretamente da janela User Details. - - - Clique no link LOGGED IN AS : - - A janela User Details (Detalhes do usuário) é aberta A - janela padrão abre na aba Summary (Resumo). Há campos na aba - Summary onde é possível alterar a senha. - - - - Insira a nova senha desejada. - - Verifique se ela atende aos critérios que seu sistema - possa ter para senhas. - - - - Confirme a nova senha. - - Verifique se ela corresponde à senha inserida no campo - anterior. - - - - Pressione o botão Save. Ele se encontra na parte - superior esquerda da janela. - - - - - - Grupos de Permissão - - A segunda aba na janela User Details, marcada como Member of - (Membro de), exibe uma lista de grupos. Os grupos aos quais a sua - conta pertence são indicados com uma marca de seleção. - - É necessário ser administrador para modificar qualquer uma - das configurações de grupo. - - - - Aba User Permissions (Permissões de usuário) - - A terceira aba User Details, chamada como User Permissions (Permissões de usuário), e - exibe uma lista de configurações de permissionamento. Observe que - são necessários direitos de administrador para gerenciar usuários - e permissões. Verifique se você está usando uma conta com direitos - de administrador se precisar gerenciar usuários ou - permissões. - - É aí onde você pode acessar a área de permissões de usuário. - Uma descrição mais detalhada das configurações de permissões de - usuário será abordada na seção User Permissions - . - -
-
-
-
- - - Da página inicial do ECL Watch - - Na página inicial do ECL Watch , - clique na barra de navegação na parte superior para localizar os links - Activity, Scheduler e Search - Results . É possível acessar as respectivas páginas pelos links - ou guias no topo da página inicial do ECL Watch. - -
- Link da página inicial do ECL Watch - - - - - - -
- - Há vários ícones usados pelo ECL Watch. A tabela a seguir descreve a - maioria dos ícones que você irá encontrar. - - - - - - - - Ícone - - Definição - - - - - - Cluster do sistema - - - - - - Cluster do sistema em pausa - - - - - - Cluster do sistema não encontrado - - - - - - Workunit compilada, Concluído - - - - - - Workunit em execução, Compilando, Debug em - execução - - - - - - Workunit falhou, Cancelada - - - - - - Workunit bloqueada, Programada, Em espera, Enviando - Arquivos, Debug em pausa, Em pausa - - - - - - Workunit arquivada - - - - - - Workunit sendo cancelada - - - - - - Workunit enviada - - - - - - Workunit removida. - - - - - - Estado desconhecido da Workunit - - - - - - - Atividade - - A guia Activity mostra atividades de todos os clusters no - ambiente. A página Activity oferece acesso às workunit de administração - da fila de workunit do cluster, como; progresso do monitorador, - definição de prioridade, descer ou subir uma tarefa na fila, pausar uma - tarefa, cancelar uma tarefa e pausar ou retomar uma fila. - - - - Ao acessar o URL do ECL Watch, a página inicial do ECL Watch - mostra a aba Activity. Para acessar a aba Activity de qualquer outra - página no ECL Watch , clique na imagem - do ECL Watch localizada no topo de qualquer página como mostrado - acima. - - - Gráficos de uso do disco do cluster - - A página Atividade de cluster exibe gráficos na parte superior, - mostrando o uso do disco do cluster. Esses gráficos podem fornecer uma - visão rápida da capacidade de seus clusters. Clicar em cada uma das - imagens exibe mais informações sobre a atividade de uso de disco do - cluster individual. - -
- Página de gráficos de Atividade do Cluster - - - - - - -
Os gráficos mostram a quantidade de armazenamento - disponível, a quantidade média de armazenamento em uso e a quantidade - máxima de armazenamento em uso em todos os nós. A linha indicadora - escura exibe a média em uso nos discos desse cluster. A porção de - rosquinha colorida mostra a quantidade máxima de armazenamento em uso - por qualquer nó único. Se isso for muito diferente, pode afetar o - desempenho.
- - A cor dos gráficos muda conforme a capacidade de armazenamento - muda. Verde indica baixa utilização, amarelo indica maior utilização, - e vermelho indica utilização muito alta. - -
- Detalhes do Gráfico do Cluster - - - - - - -
Os gráficos fornecem uma indicação da capacidade disponível - em seus nós. Isso pode ajudar a identificar quaisquer problemas - potenciais de espaço em disco.
-
- - - Atividade de Cluster - - As informações sobre os clusters de sistema e qualquer atividade - nesses clusters podem ser acessadas na aba Activity do ECL Watch. - Selecione a aba Activity abaixo da - imagem do ECL Watch no submenu de - navegação. Isso exibe a aba Activity. - -
- Atividade de clusters - - - - - - -
- - Todos os clusters de sistema são exibidos. Caso haja qualquer - atividade em um cluster, um ícone será exibido ao lado do cluster para - indicar a existência de alguma atividade. No exemplo acima, o ícone - para ampliar o cluster Thor indica que há alguma atividade no cluster - Thor. Clique no ícone para expandir o cluster e ver a atividade nesse - cluster. -
- - - Botões Cluster - -
- Botões Cluster - - - - - - -
- - Marque a caixa ao lado de um cluster para ativar os botões de - ação do cluster. Os botões de ação do cluster permitirão que você - realize as ações a seguir na fila de jobs do cluster - selecionado. - - - Pause - - Pausar a fila de jobs do cluster. O job que está atualmente em - execução é concluído, mas nenhuma outra será executado até a - consulta ser retomada. - - - - Resume - - Retomar uma fila de jobs pausados. A execução de quaisquer - jobs em espera serão retomadas na ordem em que foram - listadas. - - - - Clean - - Remover todas as workunits da fila de jobs. O estado das - workunits removidas é definido como cancelado. Quaisquer workunits - que estavam em espera na fila podem ser reenviadas manualmente - depois, se desejado. - -
- - - Atividade da Workunit no Cluster - -
- Botões da workunit - - - - - - -
-
- - - Botões da workunit - - Marque a caixa ao lado de uma workunit para selecioná-la e - ativar os botões de ação da workunit. - - Uma vez ativados, os botões da workunit permitirão que você - realize as ações a seguir nas workunit selecionadas. - - - Open - - Abrir uma aba (workunit) para a workunit selecionada. - - - - Pause - - Pressione o botão Pause para - completar o subgráfico atual e depois colocar a tarefa em estado - pausado. - - - - Pause Now - - Pressione o botão Pause Now - para interromper o subgráfico atual (cancelá-lo) e colocar o job em - um estado pausado. - - - - Resume - - Retoma o processamento de qualquer job pausado. - - - - Abort - - Cancela um job em execução. Um job cancelado não pode ser - retomado. - - - - High, Normal, Low - -
- Prioridade - - - - - - -
É possível aumentar ou diminuir a prioridade do job na - fila. Selecione o job e depois pressione um dos botões adequados: - High ou - Low. Por padrão, todas as workunit são definidas para - prioridade Normal.
- - Pressione o botão High para - aumentar a prioridade do job selecionado para High. Pressione o - botão Low para diminuir a - prioridade do job selecionado. -
- - - Top, Bottom, Up, Down - -
- Posição na fila - - - - - - -
É possível alterar a posição de um job na fila usando os - botões Top, Bottom, Up and Down.
- - Selecione a workunit a ser movida; isso ativará os botões de - ação. - - Pressione o botão Top para - mover um job selecionada para o topo da fila de processamento. - Pressione o botão Up para subir um - job em uma posição na fila. Pressione o botão Down para descer o job em uma posição na - fila. Pressione o botão Bottom para - mover o job para o final da fila. -
-
- - - Informações do Cluster - - É possível acessar mais informações sobre os clusters Thor na - aba Activity principal. - - Selecione o cluster de destino na aba Activity principal marcando a caixa ao lado - dele.
- Abrir cluster - - - - - - -
- - Isso habilita o botão Open . - Pressione o botão Open para abrir uma nova aba para esse - cluster. - - A aba do cluster exibe os grupos nesse cluster. Marque a caixa - ao lado do grupo do cluster e pressione o botão Open.
- Abrir os grupos de cluster - - - - - - -
- - Abra a aba de grupo de cluster (por exemplo, mythor) e selecione - o grupo da aba Groups para ver as informações da atividade daquele - grupo de cluster.
- Abas de atividade de cluster - - - - - - -
- - Na aba do grupo de cluster é possível acessar as informações - sobre o cluster. Essa aba de grupo de cluster é formada por três abas. - A aba Summary fornece um instantâneo - desse grupo. - - Também é possível clicar no link sobre o nome do cluster para - examinar. - - - Aba Cluster Usage - - A aba Usage oferece acesso a - um gráfico de uso. A aba de uso fornece informações sobre o uso do - cluster.
- Gráfico de uso - - - - - - -
- - Para exibir o gráfico de uso, é possível inserir alguns - valores nos campos exibidos na aba de uso inicial. Opcionalmente, é - possível simplesmente aceitar os valores padrão para os últimos 30 - dias. Em seguida, pressione o botão Get Usage - Graph (Obter gráfico de uso) para exibir o - gráfico. - - O gráfico mostra o uso do cluster ao longo do tempo. Mais - informações sobre o uso do cluster são especificadas através de um - código de cores. A coluna à direita detalha o uso geral, além da - porcentagem, durante horários dentro e fora do expediente. É - possível alterar esses valores usando os campos acima do gráfico e - depois pressionar o botão Get Usage Graph - novamente. - - - Arquivo de log de cluster - - A aba Log Files é onde você - pode ver o log desse grupo de cluster.
- Arquivo de log de cluster - - - - - - -
- - Você pode usar várias opções de exibição de log para filtrar - o arquivo de log. É possível filtrar por linhas, páginas ou hora. - Use as opções de filtro na aba Log File para filtrar o log - exibido. É possível também fazer o download do arquivo de log para - acessá-lo off-line. -
-
-
- - - Atualização automática - -
- Atualização automática - - - - - - -
A página Activity exibe as - workunit ECL ou DFU ativas que estão em execução ou na fila no - cluster. Para atualizar a lista, pressione o botão Refresh . A atualização automática mostra a - lista em tempo real, mas esse recurso é desativado por padrão.
- - Para ativar a atualização automática, acione o botão “Auto - Refresh”. - - Em um ambiente com um grande número de usuários ativos, o - recurso de atualização automática pode afetar o desempenho do servidor - ESP. -
-
- - - ECL Event Scheduler - - A página ECL Event Scheduler oferece uma interface para o - agendador ECL. A interface do ECL Scheduler (agendador) permite que você - veja uma lista das workunit agendadas. Ela também pode acionar um - evento. Um “Event (Evento)” é uma constante de cadeias (strings), sem - distinção entre maiúsculas e minúsculas, que nomeia o evento para - interceptação - - O agendamento ECL oferece uma maneira para automatizar processos - no código ECL ou para sequenciar os processos de maneira que eles - funcionem em sequência. Por exemplo, é possível gravar o código ECL que - supervisiona uma zona de entrada de arquivos para a chegada de um - arquivo e, quando ele chega, realiza a distribuição aos nós do Thor, - processa, compila um índice e depois o adiciona a um - superarquivo. - - O agendamento ECL é baseado em eventos. O agendador ECL monitora - uma lista de agendamentos que contém workunit e eventos registrados e - executa quaisquer workunit associadas a um evento quando o evento é - acionado. - - Seu código ECL pode ser executado quando um evento for acionado, - ou pode acionar um evento. Se você enviar o código contendo uma cláusula - WHEN , o evento e a workunit são - registrados na Lista de agendamento. Quando um evento é acionado, a - workunit é compilada e executada. Quando a workunit é concluída, o ECL - Scheduler a remove da lista de agendamento. - - Por exemplo, se quiser enviar uma workunit utilizando WHEN(‘Event1’,’MyEvent’, COUNT(2)) ela será - executada duas vezes (o valor de COUNT) - antes que o ECL Scheduler a remova da lista de agendamento e que a - workunit seja marcada como concluída. - - Para obter mais detalhes sobre WHEN ou NOTIFY. ou sobre quaisquer funções de linguagem - ECL ou palavras-chave, consulte o Referência Linguagem ECL. É possível - acessar uma cópia na página http://hpccsystems.com/download/docs/learning-ecl - no site do no site do HPCC Systems ®. - - - - - -
- - - Workunits ECL - - O ECL Watch fornece informações sobre trabalhos e tarefas ECL. Os - links para páginas que contêm informações sobre workunit ECL aparecem na - barra de navegação ao longo da parte superior da página do ECL Watch. Lá, - você encontrará links para workunit ECL, marcadas simplesmente como - workunit, além do link para o ECL Playground. Também é possível não apenas - encontrar informações sobre as workunit, como também realizar operações em - workunit. - - - - - - - - Arquivos - - Este capítulo contém seções sobre arquivos da plataforma HPCC, - disponíveis no link Files no ECL - Watch. - - Em uma plataforma HPCC, os arquivos de dados são particionados entre - nós. As partes de arquivos, referenciadas usando nomes de arquivos - lógicos, são armazenadas no Utilitário de arquivos distribuídos. Isso - permite que a coleta de partes de arquivo seja referenciada como uma - entidade única. - - - - - - - - - - - Spray/Despray - - Esta seção trata dos processos de spray (distribuição dos nós) e - despray (consolidação de dados dos nós) ao seu cluster usando o ECL - Watch. A função de spray é integrada na página de zona de entrada de - arquivos, como detalhado na seção Upload - Files (Carregar arquivos) . - - Para realizar o processo de spray de um arquivo em seu cluster, - primeiro é necessário carregar o arquivo na sua zona de entrada de - arquivos. As etapas para carregar o arquivo foram explicadas na seção - anterior. - - Depois de carregar o arquivo na zona de entrada de arquivos, é - possível selecioná-lo para realizar o spray na página Landing Zone (Zona - de entrada de arquivos). Depois de selecionado, os botões de Spray são - ativados. - -
- Página de zona de entrada de arquivos - - - - - - -
- - - Spray de Dados para o Cluster - - Com os botões de Spray: - ativados, basta pressionar o botão adequado para o Spray que deseja - realizar. Preencha os valores adequados quando solicitado para - concluir o spray. - - - - - - - - - - - - - - - - - - - - - -
- - - XRef - - Abaixo do ícone Files , no - submenu de navegação, há um link para o XRef. Este link irá direcioná-lo - para a página XRef. Na página XRef, é possível executar o utilitário - XREF. - -
- Página dos Clusters XRef - - - - - - -
- - O utilitário XREF fornece a capacidade de localizar arquivos - “órfãos” (orphaned), "perdidos” (lost) e "encontrados” (found). Os - arquivos Órfãos (Orphans) são aqueles encontrados nos nós, mas que não - são registrados no Sistema de arquivos distribuídos. - - - - Arquivo encontrado (Found File) - - - Um arquivo encontrado possui partes de arquivo em disco que - não estão referenciadas no servidor Dali. Todas as partes de - arquivo são levadas em conta para que possam ser adicionadas - novamente no servidor Dali. Elas também podem ser excluídas do - cluster, caso seja necessário. - - - - - Arquivo órfão (Orphan File) - - - Um arquivo órfão é aquele sem uma entrada Dali e sem um - conjunto completo de arquivos físicos. Já que alguns dos arquivos - físicos não foram encontrados, esse é um arquivo incompleto que - não pode ser usado para adicionar uma entrada de arquivo lógico de - volta ao servidor Dali. Essas partes de arquivos órfãos não - possuem uma referência no servidor Dali. - - - - - Arquivo perdido (Lost File) - - - Um arquivo lógico que não possui, no mínimo, uma parte de - arquivo em ambos locais primário e replicado no armazenamento. - Ainda assim, o arquivo lógico é referenciado no servidor Dali. A - exclusão do arquivo remove a referência do servidor Dali e - quaisquer partes restantes em disco. - - - - - - - - - - - - - - - - - Em um sistema maior, sugerimos limitar o número de - usuários que têm permissão para gerar relatórios XREF - configurando o acesso ao DfuXrefAccess para FULL (Completo) - apenas para esses usuários. - - - - - - Para gerar uma lista: - - - - Pressione o botão Generate - . - - - - - - - - - - - - - - O servidor Sasha normalmente executa o Xref nos - horários programados quando implementado. - - - - - - - - - Para ver os resultados: - - - - Clique em uma das guias ((Found Files (Arquivos encontrados), - Orphan Files (Arquivos órfãos), Lost Files (Arquivos perdidos), - Diretórios ou Erros/avisos). - - - - - Trabalhando com os resultados XREF: - - Após o XRef ser concluído, é possível ver uma lista dos - relatórios disponíveis. Clique em cada uma das abas para ver a página - de resultados de cada tipo. - -
- Erros de XRef - - - - - - -
- - As páginas Orphan and Lost Files (Arquivos perdidos e Arquivos - órfãos) listam quaisquer arquivos perdidos e órfãos. É difícil - recuperar arquivos perdidos e órfãos, a menos que você tenha cópias - das partes faltantes necessárias para reconstruir o arquivo (por - exemplo, se uma parte faltante estiver em um disco rígido que foi - trocado). - -
- XRef: Excluir Arquivos Órfãos - - - - - - -
- - Normalmente, esses arquivos precisarão ser removidos. Para - remover, marque as caixas ao lado dos arquivos que você deseja - eliminar e pressione o botão Delete - - Arquivos encontrados podem e normalmente são reanexados.
- XRef: Anexar arquivos encontrados - - - - - - -
- - Marque as caixas ao lado dos arquivos que você deseja reanexar e - pressione o botão Attach. -
-
-
- - - Consultas - - O link para o cabeçalho Published Queries (Consultas publicadas) - (ícone) oferece mais informações e detalhes sobre as consultas em relação - aos destinos disponíveis. - - - - Clique no hiperlink Published Queries (Consultas publicadas) (ícone) - para exibir as consultas publicadas e os mapas do pacote de dados no - cluster. - -
- Link da Consulta - - - - - - -
- - -
- - - Operações de T.I. - - O link Operations (Operações) oferece acesso a diversos componentes - úteis para a operação diária do sistema, além de certo acesso - administrativo do sistema.
- Menu Operations - - - - - - -
- - Há links para clusters de destino, processos de clusters e - servidores do sistema. Esses links abrem páginas com mais informações - sobre a topologia específica para os clusters selecionados. Essas páginas - são úteis na hora de se certificar de que seu sistema esteja configurado e - operando corretamente. - - Há alguns links sobre o tipo de administração de sistema, como - usuários, grupos, permissões e Resources (Recursos). Esses links permitem - que você realize algumas tarefas de administração de sistema através do - ECL Watch. - - - Topologia - - A página Topology (Topologia) exibe uma árvore com informações - sobre seus clusters, serviços e nós. - - Clique no link Topology pelo - submenu de navegação Operations para acessar a página Topology - (Topologia). - -
- Página Topologia - - - - - - -
- - - Targets (Destinos) - - O botão Targets (Destinos) - exibe seus clusters de acordo com o tipo. - - Clique na seta à esquerda do objeto/pasta Cluster para expandir. - A visão expandida é exibida. - -
- Visão expandida - - - - - - -
A visão expandida exibe os objetos e nós no contêiner - selecionado. Selecione o nó ou objeto para exibir mais informações ou - para acessar os logs. As abas Summary, Configuration e Logs ao lado - esquerdo da página exibem informações relevantes do componente - selecionado.
-
- - - Serviços - - Pressione o botão Services - (Serviços) para exibir informações sobre os diversos - serviços em execução no seu cluster. - - Clique na seta à esquerda do serviço que você deseja expandir. A - visão expandida é exibida. - -
- Serviços expandidos - - - - - - -
- - A função serviços expandidos oferece uma visão em árvore - orientada por serviços que proporciona acesso aos serviços. Abra a - árvore e selecione o componente para ver as abas Summary, - Configuration, ou Logs do componente selecionado. -
- - - Máquinas - - Pressione o botão de ação Machines - (Máquinas) para exibir mais informações sobre as diversas - máquinas ou nós em execução nos seus clusters. - -
- Visualização Máquinas - - - - - - -
- - O botão de ação Machines abre - uma visão da árvore orientada por nós. Abra os nós para ver os - serviços em cada um deles. Selecione o componente para ver as abas - Summary, Configuration ou Logs do componente selecionado. -
- - - Status de cópia de arquivos Roxie - - Na seção Topology dos clusters Roxie, a aba Roxie Files Copy Status (Status de cópia de arquivos - Roxie) mostra o número de arquivos que um cluster ainda - precisa copiar.
- Status da cópia de arquivo - - - - - - -
-
-
- - - Uso do Disco - - Ao clicar no link Operations, a página “Disk Usage” é exibida por - padrão. A página “Disk Usage” oferece informações sobre o espaço - disponível no sistema e o que está ocupando esse espaço.
- Disk Usage (Uso do Disco) - - - - - - -
- - É possível procurar ou filtrar os resultados usando o botão de - ação Filter . -
- - - Operações: Clusters de destino - - O link Clusters de destino, na barra do submenu de navegação da - página Operations, abre o link para a página Target Clusters. Essa - página oferece informações de máquina sobre os clusters que você - configurou em sua máquina.
- Clusters de destino - - - - - - -
-
- - - ESDL Dinâmica - - A aba Dynamic ESDL no ECL Watch exibe os ESPServices disponíveis. - É possível explorar os serviços DESDL e as conexões ESDL, também - conhecidas como configurações de serviço. - - Para acessar a ESDL Dynamic pelo ECL Watch, clique no link - Operations e depois em Dynamic ESDL na barra de submenu de - navegação. - -
- Resumo da Dynamic ESDL - - - - - - -
- - A aba Dynamic ESDL contém uma - lista de todos os ESP Services baseados em DESDL e suas informações de - conexão ESDL. Os serviços ESP baseados em DESDL disponíveis são listados - no painel navegador à esquerda como secundários de seu processo - ESP. - - A aba Definitions , também - acessível pelo submenu do botão Dynamic - ESDL , lista todas as definições de ESDL disponíveis e - oferece uma visão sobre qualquer uma das definições. Essas definições - são usadas para definir de forma dinâmica as interfaces para os serviços - Web ESP existentes. - - Para obter mais informações sobre a Dynamic ESDL, consulte a - documentação; Dynamic ESDL disponível no portal - HPCC Systems: https://hpccsystems.com/training/documentation/learning-ecl/dynamic-esdl - - - Utilizando Dynamic ESDL - - Para usar essa interface, selecione um serviço ESP na lista de - serviços. Clique no ícone de triângulo ao lado do processo ESP para - expandir e exibir os serviços DESDL Selecione o serviço DESDL desejado - no painel do navegador. - - As informações do serviço selecionado são exibidas na aba - Summary à direita. - - Selecione a aba Binding - (Conexões) para exibir as definições no formato XML e as - informações de configuração. Pressione o botão Definition para - visualizar o XML. - -
- Definição da Conexão da Dynamic ESDL - - - - - - -
- - Você pode selecionar Serviços ESP e atribuir-lhes uma interface - (uma Definição ESDL) e configurar cada método disponível. - - - Configurando Conexões ESDL - - É possível selecionar um serviço e, se houver uma conexão para - ele, você poderá revisar, apagar ou modificar a configuração dessa - conexão. - - Pressione o botão Configuration para ver ou editar as - configurações do método. Os métodos são configurados adicionando ou - editando esses atributos.
- Configuração da conexão da Dynamic EDSL - - - - - - -
- - Para adicionar um - atributo: - - - - Expanda os atributos de configuração do método de - destino (se houver mais de um método) e exiba os atributos e - valores. - - - - Marque a caixa de seleção próxima à método que será - removida. - - - - Pressione o botão Add Atribute. Isso abre a janela - Add attributes/values - - - - Digite o Atributo e o Valor para o método, - - - - Pressione o botão Save. - - Para remover atributos e - valores:. - - - - Marque a caixa de seleção próxima à método que será - removida. - - - - Selecione a caixa para o atributo desejado (e valor) - para remover. - - - - Pressione o botão Remove - Attribute(s) . Isso remove o atributo. - - - - Se uma configuração não possui uma conexão, é possível - adicionar uma. -
- - - Adicionar uma conexão - - Para adicionar uma conexão de serviço a um serviço ESP - não configurado . Selecione o serviço ESP não - configurado e depois pressione o botão Add - Binding . - -
- Adicionar uma conexão de serviço - - - - - - -
Isso abrirá uma caixa de diálogo que lista as interfaces - disponíveis que possuem definições. Selecione a interface para ligar - ao serviço ESP.
- -
- Adicionar a definição - - - - - - -
Pressione o botão Apply - para aplicar a definição.
-
- - - Remover uma conexão - - Para remover uma conexão de um serviço ESP - configurado . Selecione o ESP Service que - contém a conexão a ser removida. - -
- Remover conexão de serviço - - - - - - -
Pressione o botão Delete - Binding . Confirme que você deseja apagar a conexão - pressionando OK na caixa de diálogo de confirmação.
- - A conexão será então apagada. -
-
-
- - - - - - -
- - - Permissões de Usuários - - - Administração de usuário - - Há recursos de Administração de usuário disponíveis pelo ECL - Watch. - - - - - - - Recursos - - O link de recursos está disponível abaixo do ícone Operations. O - link de recursos no ECL Watch oferece um link para o portal da Web do HPCC - Systems® . Visite o portal da Web do HPCC - Systems® em http://hpccsystems.com/ para acessar - atualizações de software, plugins, suporte, documentação e muito mais. No - portal web, você encontrará recursos úteis para execução e manutenção do - HPCC. - - Também é possível acessar o link de recursos na página do portal da - Web do HPCC Systems® clicando no link Additional Resources (Recursos adicionais) - disponível no submenu na parte superior direita da barra de - navegação. - - O ECL Watch oferece um link para a página de download do portal do - HPCC: http://hpccsystems.com/download. - Essa é uma página onde é possível fazer downloads de pacotes de - instalação, imagens virtuais, código fonte, documentação e - tutoriais. - -
From 6dcf5d30aaafc19128ec02ad3526127cefd7fc2c Mon Sep 17 00:00:00 2001 From: Jake Smith Date: Fri, 23 Aug 2024 17:36:40 +0100 Subject: [PATCH 04/22] HPCC-32516 Improve error message from GetUniqueId Signed-off-by: Jake Smith --- dali/base/dacoven.cpp | 67 +++++++++++++++++++++++------------------ system/jlib/jexcept.cpp | 5 +++ system/jlib/jexcept.hpp | 1 + 3 files changed, 44 insertions(+), 29 deletions(-) diff --git a/dali/base/dacoven.cpp b/dali/base/dacoven.cpp index 081f5f2d73c..f94264453c2 100644 --- a/dali/base/dacoven.cpp +++ b/dali/base/dacoven.cpp @@ -1065,33 +1065,42 @@ DALI_UID getGlobalUniqueIds(unsigned num,SocketEndpoint *_foreignnode) { if (num==0) return 0; - if (coven) - return coven->getUniqueIds(num,_foreignnode); - if (!_foreignnode||_foreignnode->isNull()) - throw MakeStringException(99,"getUniqueIds: Not connected to dali"); - SocketEndpoint foreignnode; - foreignnode.set(*_foreignnode); - if (foreignnode.port==0) - foreignnode.port=DALI_SERVER_PORT; - CDaliUidAllocator &uidAllocator = CDaliUidAllocator::find(CCovenBase::foreginUidallocators,foreignnode); - DALI_UID uid; - CriticalBlock block(uidAllocator.crit); - while (!uidAllocator.allocUIDs(uid,num)) { - unsigned n = uidAllocator.getBankSize(); - if (n foreign; - Owned group = createIGroup(1,&foreignnode); - foreign.setown(createCommunicator(group)); - foreign->sendRecv(mb,RANK_RANDOM,MPTAG_DALI_COVEN_REQUEST); - mb.read(next); - if ((next==0)&&mb.remaining()) // server exception - throw deserializeException(mb); - uidAllocator.addUIDs((__uint64)next,n); - } - return uid; + try + { + if (coven) + return coven->getUniqueIds(num,_foreignnode); + if (!_foreignnode||_foreignnode->isNull()) + throw MakeStringException(99,"getUniqueIds: Not connected to dali"); + SocketEndpoint foreignnode; + foreignnode.set(*_foreignnode); + if (foreignnode.port==0) + foreignnode.port=DALI_SERVER_PORT; + CDaliUidAllocator &uidAllocator = CDaliUidAllocator::find(CCovenBase::foreginUidallocators,foreignnode); + DALI_UID uid; + CriticalBlock block(uidAllocator.crit); + while (!uidAllocator.allocUIDs(uid,num)) { + unsigned n = uidAllocator.getBankSize(); + if (n foreign; + Owned group = createIGroup(1,&foreignnode); + foreign.setown(createCommunicator(group)); + foreign->sendRecv(mb,RANK_RANDOM,MPTAG_DALI_COVEN_REQUEST); + mb.read(next); + if ((next==0)&&mb.remaining()) // server exception + throw deserializeException(mb); + uidAllocator.addUIDs((__uint64)next,n); + } + return uid; + } + catch (IException *e) + { + IException *wrappedException = makeWrappedException(e, e->errorCode(), "getGlobalUniqueIds"); + e->Release(); + throw wrappedException; + } } diff --git a/system/jlib/jexcept.cpp b/system/jlib/jexcept.cpp index 1cbfb8bb150..a4a673d6fee 100644 --- a/system/jlib/jexcept.cpp +++ b/system/jlib/jexcept.cpp @@ -304,6 +304,11 @@ class jlib_thrown_decl WrappedException: public StringException Linked exception; }; +IException *makeWrappedException(IException *e, int code, const char *why) +{ + return new WrappedException(e, code, why); +} + IException *makeWrappedExceptionVA(IException *e, int code, const char *format, va_list args) { StringBuffer eStr; diff --git a/system/jlib/jexcept.hpp b/system/jlib/jexcept.hpp index 3a80701c673..070960aefd1 100644 --- a/system/jlib/jexcept.hpp +++ b/system/jlib/jexcept.hpp @@ -77,6 +77,7 @@ IException jlib_decl *makeStringExceptionVA(MessageAudience aud, int code, const IException jlib_decl *makeStringException(MessageAudience aud, int code, const char *why); IException jlib_decl *makePrefixedException(const char * prefix, const IException * e); __declspec(noreturn) void jlib_decl throwStringExceptionV(int code, const char *format, ...) __attribute__((format(printf, 2, 3), noreturn)); +IException jlib_decl *makeWrappedException(IException *e, int code, const char *why); IException jlib_decl *makeWrappedExceptionVA(IException *e, int code, const char *why, va_list args) __attribute__((format(printf, 3, 0))); IException jlib_decl *makeWrappedExceptionV(IException *e, int code, const char *why, ...) __attribute__((format(printf, 3, 4))); From 67ef289e7570a15f36817cef0d5f8c56b09a1c4e Mon Sep 17 00:00:00 2001 From: Jake Smith Date: Thu, 29 Aug 2024 16:17:13 +0100 Subject: [PATCH 05/22] change jlib makeWrappedException* so owns exception Signed-off-by: Jake Smith --- dali/base/dacoven.cpp | 4 +--- plugins/javaembed/javaembed.cpp | 3 --- system/jlib/jexcept.cpp | 2 +- system/security/cryptohelper/digisign.cpp | 4 ---- 4 files changed, 2 insertions(+), 11 deletions(-) diff --git a/dali/base/dacoven.cpp b/dali/base/dacoven.cpp index f94264453c2..485e9f47dfd 100644 --- a/dali/base/dacoven.cpp +++ b/dali/base/dacoven.cpp @@ -1099,8 +1099,6 @@ DALI_UID getGlobalUniqueIds(unsigned num,SocketEndpoint *_foreignnode) } catch (IException *e) { - IException *wrappedException = makeWrappedException(e, e->errorCode(), "getGlobalUniqueIds"); - e->Release(); - throw wrappedException; + throw makeWrappedException(e, e->errorCode(), "getGlobalUniqueIds"); } } diff --git a/plugins/javaembed/javaembed.cpp b/plugins/javaembed/javaembed.cpp index 575be35f52c..b21316f65ac 100644 --- a/plugins/javaembed/javaembed.cpp +++ b/plugins/javaembed/javaembed.cpp @@ -787,7 +787,6 @@ static void setupGlobals(CheckedJNIEnv *J) } catch (IException *E) { - Owned e = E; throw makeWrappedExceptionV(E, E->errorCode(), "javaembed: Unable to load Java system classes - is classpath set properly?"); } @@ -803,7 +802,6 @@ static void setupGlobals(CheckedJNIEnv *J) } catch (IException *E) { - Owned e = E; throw makeWrappedExceptionV(E, E->errorCode(), "javaembed: Unable to find HPCC classes - is classpath set properly?"); } } @@ -4537,7 +4535,6 @@ class JavaEmbedImportContext : public CInterfaceOf } catch (IException *E) { - Owned e = E; throw makeWrappedExceptionV(E, E->errorCode(), "Failed to resolve class name %s", classname.str()); } javaClass = (jclass) JNIenv->NewGlobalRef(javaClass, "javaClass"); diff --git a/system/jlib/jexcept.cpp b/system/jlib/jexcept.cpp index a4a673d6fee..9ce509a4a57 100644 --- a/system/jlib/jexcept.cpp +++ b/system/jlib/jexcept.cpp @@ -301,7 +301,7 @@ class jlib_thrown_decl WrappedException: public StringException return str; } protected: - Linked exception; + Owned exception; }; IException *makeWrappedException(IException *e, int code, const char *why) diff --git a/system/security/cryptohelper/digisign.cpp b/system/security/cryptohelper/digisign.cpp index 41b714bf36e..6d20cb7647e 100755 --- a/system/security/cryptohelper/digisign.cpp +++ b/system/security/cryptohelper/digisign.cpp @@ -271,7 +271,6 @@ IDigitalSignatureManager * createDigitalSignatureManagerInstanceFromFiles(const exceptions.setown(makeMultiException("createDigitalSignatureManagerInstanceFromFiles")); exceptions->append(* makeWrappedExceptionV(e, -1, "createDigitalSignatureManagerInstanceFromFiles:Cannot load public key file")); - e->Release(); } } @@ -287,7 +286,6 @@ IDigitalSignatureManager * createDigitalSignatureManagerInstanceFromFiles(const exceptions.setown(makeMultiException("createDigitalSignatureManagerInstanceFromFiles")); exceptions->append(* makeWrappedExceptionV(e, -1, "createDigitalSignatureManagerInstanceFromFiles:Cannot load private key file")); - e->Release(); } } @@ -331,7 +329,6 @@ IDigitalSignatureManager * createDigitalSignatureManagerInstanceFromKeys(const c exceptions.setown(makeMultiException("createDigitalSignatureManagerInstanceFromKeys")); exceptions->append(* makeWrappedExceptionV(e, -1, "createDigitalSignatureManagerInstanceFromKeys:Cannot load public key")); - e->Release(); } } if (!isEmptyString(privKeyString)) @@ -346,7 +343,6 @@ IDigitalSignatureManager * createDigitalSignatureManagerInstanceFromKeys(const c exceptions.setown(makeMultiException("createDigitalSignatureManagerInstanceFromKeys")); exceptions->append(* makeWrappedExceptionV(e, -1, "createDigitalSignatureManagerInstanceFromKeys:Cannot load private key")); - e->Release(); } } From 6f3408498fd0d050ad80f7fa746ad16d614fe70f Mon Sep 17 00:00:00 2001 From: Richard Chapman Date: Wed, 4 Sep 2024 09:48:12 +0100 Subject: [PATCH 06/22] HPCC-32549 Roxie internal error on getSummaryStats Code appears to have been lost somewhere since 7.x Signed-off-by: Richard Chapman --- roxie/ccd/ccdquery.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/roxie/ccd/ccdquery.cpp b/roxie/ccd/ccdquery.cpp index 901810b7834..29c34c9fa2d 100644 --- a/roxie/ccd/ccdquery.cpp +++ b/roxie/ccd/ccdquery.cpp @@ -1850,6 +1850,11 @@ class CRoxieServerQueryFactory : public CQueryFactory else return NULL; } + + virtual IPropertyTree *getQueryStats(time_t from, time_t to) override + { + return queryStats->getStats(from, to); + } }; unsigned checkWorkunitVersionConsistency(const IConstWorkUnit *wu) From 98d776db38447fcebf2d2db48fce66aa37de1562 Mon Sep 17 00:00:00 2001 From: Gavin Halliday Date: Thu, 5 Sep 2024 11:06:03 +0100 Subject: [PATCH 07/22] HPCC-32621 Avoid duplicating prefix when logging exception Signed-off-by: Gavin Halliday --- system/jlib/jlog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/jlib/jlog.cpp b/system/jlib/jlog.cpp index 4adf5801a43..e5b7427a167 100644 --- a/system/jlib/jlog.cpp +++ b/system/jlib/jlog.cpp @@ -3364,7 +3364,7 @@ void ctxlogReport(const LogMsgCategory & cat, const IException * e, const char * { StringBuffer buff; e->errorMessage(buff); - ctxlogReport(cat, e->errorCode(), "%s%s%s", prefix ? prefix : "", prefix ? prefix : " : ", buff.str()); + ctxlogReport(cat, e->errorCode(), "%s%s%s", prefix ? prefix : "", prefix ? " : " : "", buff.str()); } IException * ctxlogReport(IException * e, const char * prefix, LogMsgClass cls) { From 357cd46875b586aea26691b78b1fd906f277adf5 Mon Sep 17 00:00:00 2001 From: Ken Rowland Date: Thu, 5 Sep 2024 08:51:36 -0400 Subject: [PATCH 08/22] HPCC-32602 Improve foreign Dali scope denial log message Added context to log message to aid with research Signed-Off-By: Kenneth Rowland kenneth.rowland@lexisnexisrisk.com --- dali/dfu/dfurun.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/dali/dfu/dfurun.cpp b/dali/dfu/dfurun.cpp index 160c51cf07e..9b277074d80 100644 --- a/dali/dfu/dfurun.cpp +++ b/dali/dfu/dfurun.cpp @@ -661,7 +661,16 @@ class CDFUengine: public CInterface, implements IDFUengine authorized = HASREADPERMISSION(perm); } if (!authorized) - throw makeStringExceptionV(DFSERR_LookupAccessDenied,"Lookup permission denied for foreign file: %s",logicalName.str()); + { + StringBuffer context; + StringBuffer username; + if (user) + user->getUserName(username); + else + username.append("Null user"); + context.appendf("user: '%s', assigned access %s (%d)", username.str(), getSecAccessFlagName(perm), perm); + throw makeStringExceptionV(DFSERR_LookupAccessDenied, "Lookup permission denied for foreign file: %s, %s", logicalName.str(), context.str()); + } } } From 68ee6334362cfc0cc8da5207b07850f17cdc2886 Mon Sep 17 00:00:00 2001 From: Gavin Halliday Date: Thu, 5 Sep 2024 11:41:20 +0100 Subject: [PATCH 09/22] HPCC-32622 Remove unused classes and interface for IReadSeq and IWriteSeq Signed-off-by: Gavin Halliday --- system/jlib/jfile.cpp | 73 ------ system/jlib/jfile.hpp | 8 - system/jlib/jfile.ipp | 28 --- system/jlib/jio.cpp | 562 ------------------------------------------ system/jlib/jio.hpp | 40 --- system/jlib/jio.ipp | 46 ---- system/jlib/jsort.cpp | 6 - 7 files changed, 763 deletions(-) diff --git a/system/jlib/jfile.cpp b/system/jlib/jfile.cpp index de7853eb092..07254f4ce8b 100644 --- a/system/jlib/jfile.cpp +++ b/system/jlib/jfile.cpp @@ -3099,68 +3099,6 @@ static inline bool isPCFlushAllowed() return false; } -static inline size32_t doread(IFileIOStream * stream,void *dst, size32_t size) -{ - size32_t toread=size; - while (toread) - { - int read = stream->read(toread, dst); - if (!read) - return size-toread; - toread -= read; - dst = (char *) dst + read; - } - return size; -} - - - -CIOStreamReadWriteSeq::CIOStreamReadWriteSeq(IFileIOStream * _stream, offset_t _offset, size32_t _size) -{ - stream.set(_stream); -// stream->setThrowOnError(true); - size = _size; - offset = _offset; // assumption that stream at correct location already -} - -void CIOStreamReadWriteSeq::put(const void *src) -{ - stream->write(size, src); -} - -void CIOStreamReadWriteSeq::putn(const void *src, unsigned n) -{ - stream->write(size*n, src); -} - -void CIOStreamReadWriteSeq::flush() -{ - stream->flush(); -} - -offset_t CIOStreamReadWriteSeq::getPosition() -{ - return stream->tell(); -} - -bool CIOStreamReadWriteSeq::get(void *dst) -{ - return doread(stream,dst,size)==size; -} - -unsigned CIOStreamReadWriteSeq::getn(void *dst, unsigned n) -{ - return doread(stream,dst,size*n)/size; -} - -void CIOStreamReadWriteSeq::reset() -{ - stream->seek(offset, IFSbegin); -} - - - - //-- Helper routines -------------------------------------------------------- size32_t read(IFileIO * in, offset_t pos, size32_t len, MemoryBuffer & buffer) @@ -4590,17 +4528,6 @@ IFileIOStream *createProgressIFileIOStream(IFileIOStream *iFileIOStream, offset_ return new CProgressIFileIOStream(iFileIOStream, totalSize, msg, periodSecs); } -IReadSeq *createReadSeq(IFileIOStream * stream, offset_t offset, size32_t size) -{ - return new CIOStreamReadWriteSeq(stream, offset, size); -} - -IWriteSeq *createWriteSeq(IFileIOStream * stream, size32_t size) -{ - return new CIOStreamReadWriteSeq(stream, 0, size); -} - - extern jlib_decl offset_t filesize(const char *name) { diff --git a/system/jlib/jfile.hpp b/system/jlib/jfile.hpp index fa2a27b4275..f6f46755977 100644 --- a/system/jlib/jfile.hpp +++ b/system/jlib/jfile.hpp @@ -296,14 +296,6 @@ extern jlib_decl IFileIO * createIFileIO(MemoryBuffer & buffer); //-- Creation of routines to implement other interfaces on the interfaces above. -interface IReadSeq; -interface IWriteSeq; - -// NB the following are unbuffered -extern jlib_decl IReadSeq *createReadSeq(IFileIOStream * stream, offset_t _offset, size32_t size); // no buffering -extern jlib_decl IWriteSeq *createWriteSeq(IFileIOStream * stream, size32_t size); // no buffering - - extern jlib_decl IDiscretionaryLock *createDiscretionaryLock(IFile *file); extern jlib_decl IDiscretionaryLock *createDiscretionaryLock(IFileIO *fileio); diff --git a/system/jlib/jfile.ipp b/system/jlib/jfile.ipp index 815e8163bf9..642b68bbe94 100644 --- a/system/jlib/jfile.ipp +++ b/system/jlib/jfile.ipp @@ -252,34 +252,6 @@ protected: }; -class jlib_decl CIOStreamReadWriteSeq : public IWriteSeq, public IReadSeq, public CInterface -{ -public: - IMPLEMENT_IINTERFACE; - - CIOStreamReadWriteSeq(IFileIOStream * _stream, offset_t _offset, size32_t _size); - - virtual void put(const void *src); - virtual void putn(const void *src, unsigned n); - virtual void flush(); - virtual size32_t getRecordSize() { return size; } - virtual offset_t getPosition(); - - virtual bool get(void *dst); - virtual unsigned getn(void *dst, unsigned n); - virtual void reset(); - virtual void stop() {} // no action required - -private: - offset_t offset; - size32_t size; - Linked stream; -}; - - - - - class jlib_decl DirectBufferI : implements IFileIO, public CInterface { public: diff --git a/system/jlib/jio.cpp b/system/jlib/jio.cpp index 8a51f4e2176..e193660f1d5 100644 --- a/system/jlib/jio.cpp +++ b/system/jlib/jio.cpp @@ -189,433 +189,6 @@ extern jlib_decl size32_t checked_write(const char * filename, int handle, const return (size32_t)ret; } -class CReadSeq : public IReadSeq, public CInterface -{ - int fh; - size32_t size; - char *buffer; - char *ptr; - size32_t bufSize; - size32_t bytesInBuffer; - offset_t startpos; - offset_t endpos; - offset_t nextbufpos; - bool compressed; - void *prev; - size32_t maxcompsize; - bool first; - - inline unsigned remaining() - { - return (unsigned)(buffer+bytesInBuffer-ptr); - } - - size32_t getBytes(void *dst, size32_t _size) - { - size32_t left = remaining(); - size32_t read = 0; - while (_size>left) { - if (left) { - memcpy(dst, ptr, left); - dst = (char *)dst + left; - _size -= left; - read += left; - ptr+=left; - } - refill(); - left = bytesInBuffer; - if (!left) - return read; - } - memcpy(dst, ptr, _size); - ptr += _size; - read += _size; - return read; - } - - void refill() - { - size32_t left = remaining(); - memmove(buffer,ptr,left); - size32_t rd=bufSize-left; - if (endpos-nextbufpos<(offset_t)rd) - rd = (size32_t)(endpos-nextbufpos); - if (rd) - rd = checked_pread("unknown", fh, buffer+left, rd, nextbufpos); - nextbufpos += rd; - bytesInBuffer = left+rd; - ptr = buffer; - } - - -public: - IMPLEMENT_IINTERFACE; - - CReadSeq(int _fh, offset_t _offset, unsigned maxrecs, size32_t _size, size32_t _bufsize, bool _compressed) - { - assertex(_size); - fh = _fh; - size = _size; - bufSize = (_bufsize==(unsigned) -1)?DEFAULTBUFFERSIZE:_bufsize; - bytesInBuffer = 0; - startpos = _offset; - nextbufpos = _offset; - compressed = ((size=MINCOMPRESSEDROWSIZE)&&(size<=MAXCOMPRESSEDROWSIZE))?_compressed:false; - if (compressed) { - maxcompsize = size+size/3+3; // migger than needed - buffer = (char *) malloc(bufSize+size); - prev = buffer+bufSize; - } - else - buffer = (char *) malloc(bufSize); - ptr = buffer; - first = true; - endpos = (maxrecs!=(unsigned)-1)?(_offset+(offset_t)maxrecs*(offset_t)_size):I64C(0x7ffffffffff); - - } - - ~CReadSeq() - { - free(buffer); - } - - virtual bool get(void *dst) - { - if (!compressed) - return getBytes(dst, size)==size; - return (getn(dst,1)==1); - } - - virtual unsigned getn(void *dst, unsigned n) - { - if (!compressed) - return getBytes(dst, size*n)/size; - byte *d = (byte *)dst; - byte *e = d+(size*n); - byte *p = (byte *)prev; - unsigned ret = 0; - while (d!=e) { - if (first) { - if (getBytes(d, size)!=size) - break; - first = false; - } - else { - if (remaining()reset(); // not done itself - return seq; - } - return new CReadSeq(fh, _offset, maxrecs, size, bufsize, compressed); -} - - - -//================================================================================================ - - -class CWriteSeq : public IWriteSeq, public CInterface -{ -private: - int fh; - size32_t size; - char *buffer; - char *ptr; - size32_t bufSize; - offset_t fpos; - bool compressed; - size32_t maxcompsize; - void *prev; - void *aux; - bool first; - - inline size32_t remaining() - { - return (size32_t)(bufSize - (ptr-buffer)); - } - - void putBytes(const void *src, size32_t _size) - { - fpos += _size; - size32_t left = remaining(); - if (_size>left) - { - if (ptr!=buffer) { // don't buffer if entire block - memcpy(ptr, src, left); - ptr += left; - src = (char *)src + left; - _size -= left; - flush(); - left = bufSize; - } - while (_size>=bufSize) // write out directly - { - checked_write("unknown", fh, src, bufSize); // stick to writing bufSize blocks - src = (char *)src + bufSize; - _size -= bufSize; - } - } - memcpy(ptr, src, _size); - ptr += _size; - } - -public: - IMPLEMENT_IINTERFACE; - - CWriteSeq(int _fh, size32_t _size, size32_t _bufsize, bool _compressed) - { - assertex(_fh); - assertex(_size); - fh = _fh; - size = _size; - fpos = 0; - if (_bufsize == (unsigned) -1) - _bufsize = DEFAULTBUFFERSIZE; - bufSize = _bufsize; - - compressed = ((size=MINCOMPRESSEDROWSIZE)&&(size<=MAXCOMPRESSEDROWSIZE))?_compressed:false; - if (compressed) { - maxcompsize = size+size/3+3; // bigger than needed - buffer = (char *) malloc(bufSize+size+maxcompsize); - prev = buffer+bufSize; - aux = (char *)prev+size; - } - else - buffer = (char *) malloc(bufSize); - - ptr = buffer; - first = true; - } - - ~CWriteSeq() - { - free(buffer); - } - - - void put(const void *src) - { - if (compressed) { - if (first) { - first = false; - memcpy(prev,src,size); - } - else if (remaining()>=maxcompsize) { - size32_t sz = DiffCompress(src,ptr,prev,size); - fpos += sz; - ptr += sz; - return; - } - else { - putBytes(aux, DiffCompress(src,aux,prev,size)); - return; - } - } - putBytes(src, size); - } - - void putn(const void *src, unsigned numRecs) - { - if (compressed) { - while (numRecs) { - put(src); - src = (byte *)src+size; - numRecs--; - } - } - else - putBytes(src, size*numRecs); - } - - void flush() - { - if (ptr != buffer) - { - checked_write("unknown", fh, buffer, (size32_t)(ptr-buffer)); - ptr = buffer; - } - } - - offset_t getPosition() - { - return fpos; - } - - virtual size32_t getRecordSize() - { - return size; - } - -}; - -IWriteSeq *createWriteSeq(int fh, size32_t size, size32_t bufsize, bool compressed) -{ - // Async TBD - if (!bufsize) - return new CUnbufferedReadWriteSeq(fh, 0, size); - else - return new CWriteSeq(fh, size, bufsize,compressed); -} - -IWriteSeq *createTeeWriteSeq(IWriteSeq *f1, IWriteSeq *f2) -{ - return new CTeeWriteSeq(f1, f2); -} - -//=========================================================================================== - -CUnbufferedReadWriteSeq::CUnbufferedReadWriteSeq(int _fh, offset_t _offset, size32_t _size) -{ - fh = _fh; - size = _size; - offset = _offset; - fpos = _offset; - -} - -void CUnbufferedReadWriteSeq::put(const void *src) -{ - checked_write("unknown", fh, src, size); - fpos += size; -} - -void CUnbufferedReadWriteSeq::putn(const void *src, unsigned n) -{ - checked_write("unknown", fh, src, size*n); - fpos += size*n; -} - -void CUnbufferedReadWriteSeq::flush() -{} - -offset_t CUnbufferedReadWriteSeq::getPosition() -{ - return fpos; -} - -bool CUnbufferedReadWriteSeq::get(void *dst) -{ - size32_t toread = size; - while (toread) - { - int read = checked_read("unknown", fh, dst, toread); - if (!read) - return false; - toread -= read; - dst = (char *) dst + read; - } - return true; -} - -unsigned CUnbufferedReadWriteSeq::getn(void *dst, unsigned n) -{ - size32_t toread = size*n; - size32_t totread = 0; - while (toread) - { - int read = checked_read("unknown", fh, dst, toread); - if (!read) - break; - toread -= read; - totread += read; - dst = (char *) dst + read; - } - return totread/size; -} - -void CUnbufferedReadWriteSeq::reset() -{ - checked_lseeki64(fh, offset, SEEK_SET); - fpos = offset; -} - -//=========================================================================================== - - -//=========================================================================================== - -CTeeWriteSeq::CTeeWriteSeq(IWriteSeq *_f1, IWriteSeq *_f2) -{ - w1 = _f1; - w1->Link(); - w2 = _f2; - w2->Link(); - assertex(w1->getRecordSize()==w2->getRecordSize()); -} - -CTeeWriteSeq::~CTeeWriteSeq() -{ - w1->Release(); - w2->Release(); -} - -void CTeeWriteSeq::put(const void *src) -{ - w1->put(src); - w2->put(src); -} - -void CTeeWriteSeq::putn(const void *src, unsigned n) -{ - w1->putn(src, n); - w2->putn(src, n); -} - -void CTeeWriteSeq::flush() -{ - w1->flush(); - w2->flush(); -} - -size32_t CTeeWriteSeq::getRecordSize() -{ - return w1->getRecordSize(); -} - -offset_t CTeeWriteSeq::getPosition() -{ - return w1->getPosition(); -} - //================================================================================================== class CFixedRecordSize: public IRecordSize, public CInterface @@ -677,129 +250,6 @@ extern jlib_decl IRecordSize *createDeltaRecordSize(IRecordSize * size, int delt } -//================================================================================================== -// chained routines allowing multiple streams to be concatenated -// all streams assumed to have same record size - - -class CChainedWriteSeq : public IWriteSeq, public CInterface -{ -protected: - IWriteSeq *stream; - IWriteSeqAllocator *allocator; - unsigned num; - size32_t recsize; - offset_t pos; -public: - IMPLEMENT_IINTERFACE; - CChainedWriteSeq(IWriteSeqAllocator *_allocator) - { - allocator = _allocator; - allocator->Link(); - num = 0; - recsize = 0; - pos = 0; - } - virtual ~CChainedWriteSeq() - { - ::Release(stream); - allocator->Release(); - } - void flush() { if (stream) stream->flush(); } - void put(const void *dst) { putn(dst,1); } - void putn(const void *dst, unsigned numrecs) - { - if (numrecs==0) return; - if (stream==NULL) return; // could raise exception instead - byte *out=(byte *)dst; - while (numrecs>num) { - stream->putn(out,num); - pos+=num; - numrecs-=num; - stream->flush(); - IWriteSeq *oldstream=stream; - stream = allocator->next(num); - oldstream->Release(); - if (!stream) { - return; // could raise exception - } - } - stream->putn(out,numrecs); - pos+=numrecs; - } - virtual size32_t getRecordSize() { if ((recsize==0)&&stream) recsize = stream->getRecordSize(); return recsize; } - virtual offset_t getPosition() { return pos; } -}; - - -class CChainedReadSeq : public IReadSeq, public CInterface -{ -protected: - IReadSeq *stream; - IReadSeqAllocator *allocator; - unsigned num; - size32_t recsize; -public: - IMPLEMENT_IINTERFACE; - CChainedReadSeq(IReadSeqAllocator *_allocator) - { - allocator = _allocator; - allocator->Link(); - stream = allocator->next(); - num = 0; - recsize = 0; - } - virtual ~CChainedReadSeq() - { - ::Release(stream); - allocator->Release(); - } - virtual bool get(void *dst) { return (getn(dst,1)==1); } - virtual unsigned getn(void *dst, unsigned n) - { - unsigned done=0; - while (stream&&n) { - unsigned r = stream->getn(dst,n); - if (r==0) { - IReadSeq *oldstream=stream; - stream = allocator->next(); - oldstream->Release(); - } - else { - n-=r; - done+=r; - } - } - return done; - } - virtual size32_t getRecordSize() { return stream->getRecordSize(); } - virtual void reset() { stream->reset(); } - virtual void stop() { stream->stop(); } - -}; - - - -unsigned copySeq(IReadSeq *from,IWriteSeq *to,size32_t bufsize) -{ - size32_t recsize=from->getRecordSize(); - assertex(recsize==to->getRecordSize()); - unsigned nbuf = bufsize/recsize; - if (nbuf==0) - nbuf = 1; - MemoryAttr ma; - byte *buf=(byte *)ma.allocate(nbuf*recsize); - unsigned ret = 0; - for (;;) { - unsigned n = from->getn(buf,nbuf); - if (n==0) - break; - to->putn(buf,n); - ret += n; - } - return ret; -} - ///////////////// CBufferedIOStreamBase::CBufferedIOStreamBase(size32_t _bufferSize) @@ -1072,18 +522,6 @@ class CConcatRowStream : public IRowStream, public CInterface }; -extern jlib_decl IWriteSeq *createChainedWriteSeq(IWriteSeqAllocator *iwsa) -{ - return new CChainedWriteSeq(iwsa); -} - -extern jlib_decl IReadSeq *createChainedReadSeq(IReadSeqAllocator *irsa) -{ - return new CChainedReadSeq(irsa); -} - - - IRowStream *createConcatRowStream(unsigned numstreams,IRowStream** streams,bool grouped) { switch(numstreams) diff --git a/system/jlib/jio.hpp b/system/jlib/jio.hpp index 99ff19041e0..948e9c69245 100644 --- a/system/jlib/jio.hpp +++ b/system/jlib/jio.hpp @@ -47,26 +47,6 @@ interface IRecordSize: public IInterface #endif -interface IReadSeq : public IInterface -{ -// fixed length record read interface - virtual void reset() = 0; - virtual bool get(void *dst) = 0; - virtual unsigned getn(void *dst, unsigned numrecs) = 0; - virtual size32_t getRecordSize() = 0; - virtual void stop() = 0; // indicate finished reading -}; - -interface IWriteSeq : public IInterface -{ -// fixed length record write interface - virtual void flush() = 0; - virtual void put(const void *dst) = 0; - virtual void putn(const void *dst, unsigned numrecs) = 0; - virtual size32_t getRecordSize() = 0; - virtual offset_t getPosition() = 0; -}; - interface ISimpleReadStream : public IInterface { virtual size32_t read(size32_t max_len, void * data) = 0; @@ -109,30 +89,10 @@ interface IReceiver : public IInterface virtual bool takeRecord(offset_t pos) = 0; }; -interface IWriteSeqAllocator : public IInterface -{ - virtual IWriteSeq *next(size32_t &num) = 0; -}; - -interface IReadSeqAllocator : public IInterface -{ - virtual IReadSeq *next() = 0; -}; - - -extern jlib_decl IReadSeq *createReadSeq(int fh, offset_t _offset, size32_t size, size32_t _bufsize = (size32_t)-1, // bufsize in bytes - unsigned maxrecs=(unsigned)-1, bool compress=false); // compression is *not* blocked and needs buffer size -extern jlib_decl IWriteSeq *createWriteSeq(int fh, size32_t size, size32_t bufsize = (size32_t)-1,bool compress=false); // compression is *not* blocked and needs buffer size -extern jlib_decl IWriteSeq *createTeeWriteSeq(IWriteSeq *, IWriteSeq *); -extern jlib_decl IWriteSeq *createChainedWriteSeq(IWriteSeqAllocator *iwsa); -extern jlib_decl IReadSeq *createChainedReadSeq(IReadSeqAllocator *irsa); - extern jlib_decl IRecordSize *createFixedRecordSize(size32_t recsize); extern jlib_decl IRecordSize *createDeltaRecordSize(IRecordSize * size, int delta); -extern jlib_decl unsigned copySeq(IReadSeq *from,IWriteSeq *to,size32_t bufsize); - extern jlib_decl void setIORetryCount(unsigned _ioRetryCount); // default 0 == off, retries if read op. fails extern jlib_decl offset_t checked_lseeki64(int handle, offset_t offset, int origin); extern jlib_decl size32_t checked_write(const char * filename, int handle, const void *buffer, size32_t count); diff --git a/system/jlib/jio.ipp b/system/jlib/jio.ipp index 0c6c597df78..174b2536aa1 100644 --- a/system/jlib/jio.ipp +++ b/system/jlib/jio.ipp @@ -29,52 +29,6 @@ -class CUnbufferedReadWriteSeq : public IWriteSeq, public IReadSeq, public CInterface -{ -private: - offset_t offset; - offset_t fpos; - size32_t size; - int fh; - -public: - IMPLEMENT_IINTERFACE; - - CUnbufferedReadWriteSeq(int _fh, offset_t offset, size32_t _size); - - virtual void put(const void *src); - virtual void putn(const void *src, unsigned n); - virtual void flush(); - virtual size32_t getRecordSize() { return size; } - virtual offset_t getPosition(); - - virtual bool get(void *dst); - virtual unsigned getn(void *dst, unsigned n); - virtual void reset(); - virtual void stop() {} // no action required -}; - -class CTeeWriteSeq : public IWriteSeq, public CInterface -{ -protected: - IWriteSeq *w1; - IWriteSeq *w2; - -public: - IMPLEMENT_IINTERFACE; - - CTeeWriteSeq(IWriteSeq *f1, IWriteSeq *f2); - ~CTeeWriteSeq(); - - virtual void put(const void *src); - virtual void putn(const void *src, unsigned n); - virtual void flush(); - virtual size32_t getRecordSize(); - virtual offset_t getPosition(); -}; - - - class CBufferedIOStreamBase: public CInterface { public: diff --git a/system/jlib/jsort.cpp b/system/jlib/jsort.cpp index 4086911b776..6e810ed7973 100644 --- a/system/jlib/jsort.cpp +++ b/system/jlib/jsort.cpp @@ -696,12 +696,6 @@ bool heap_push_up(unsigned c, unsigned * heap, const void ** rows, ICompare * co typedef void ** VECTOR; -interface IMergeSorter -{ -public: - virtual IWriteSeq *getOutputStream(bool isEOF) = 0; -}; - #define INSERTMAX 10000 #define BUFFSIZE 0x100000 // used for output buffer From 283909eade15d4cb2b03758443d7fd1d40a64d33 Mon Sep 17 00:00:00 2001 From: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> Date: Fri, 6 Sep 2024 11:24:48 -0400 Subject: [PATCH 10/22] HPCC-32600 ECL Watch change DFU Workunits nav tab label change the label of tabs for DFU Workunits in the navigation to read "DFU Workunits" rather than "Workunits" Signed-off-by: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> --- esp/src/eclwatch/templates/GetDFUWorkunitsWidget.html | 2 +- esp/src/eclwatch/templates/HPCCPlatformFilesWidget.html | 2 +- esp/src/src-react/components/Menu.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/esp/src/eclwatch/templates/GetDFUWorkunitsWidget.html b/esp/src/eclwatch/templates/GetDFUWorkunitsWidget.html index da361ca3d54..f2d3eb9ec81 100644 --- a/esp/src/eclwatch/templates/GetDFUWorkunitsWidget.html +++ b/esp/src/eclwatch/templates/GetDFUWorkunitsWidget.html @@ -1,7 +1,7 @@
-
+
${i18n.Refresh}
diff --git a/esp/src/eclwatch/templates/HPCCPlatformFilesWidget.html b/esp/src/eclwatch/templates/HPCCPlatformFilesWidget.html index 6a6795ff9be..d7bf3127f4f 100644 --- a/esp/src/eclwatch/templates/HPCCPlatformFilesWidget.html +++ b/esp/src/eclwatch/templates/HPCCPlatformFilesWidget.html @@ -8,7 +8,7 @@
-
+
diff --git a/esp/src/src-react/components/Menu.tsx b/esp/src/src-react/components/Menu.tsx index ad77f8c47d3..3ef9b0953ff 100644 --- a/esp/src/src-react/components/Menu.tsx +++ b/esp/src/src-react/components/Menu.tsx @@ -164,7 +164,7 @@ const subMenuItems: SubMenuItems = { "files": [ { headerText: nlsHPCC.LogicalFiles, itemKey: "/files" }, { headerText: nlsHPCC.LandingZones, itemKey: "/landingzone" }, - { headerText: nlsHPCC.Workunits, itemKey: "/dfuworkunits" }, + { headerText: nlsHPCC.title_GetDFUWorkunits, itemKey: "/dfuworkunits" }, { headerText: nlsHPCC.XRef + " (L)", itemKey: "/xref" }, ], "queries": [ From b5a80e8b6ea6f5caf0f822443f04870b257ee873 Mon Sep 17 00:00:00 2001 From: Ilhan Gelle Date: Sat, 10 Aug 2024 18:35:25 -0500 Subject: [PATCH 11/22] HPCC-32280 Documentation for Parquet Plugin data types Signed-off-by: Ilhan Gelle --- plugins/parquet/README.md | 87 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 4 deletions(-) diff --git a/plugins/parquet/README.md b/plugins/parquet/README.md index bb266c89357..e3cb87ca466 100644 --- a/plugins/parquet/README.md +++ b/plugins/parquet/README.md @@ -1,10 +1,15 @@ -# Parquet Plugin for HPCC-Systems +# Parquet Plugin for HPCC Systems -The Parquet Plugin for HPCC-Systems is a powerful tool designed to facilitate the fast transfer of data stored in a columnar format to the ECL (Enterprise Control Language) data format. This plugin provides seamless integration between Parquet files and HPCC-Systems, enabling efficient data processing and analysis. +The Parquet Plugin for HPCC Systems is a powerful tool designed to facilitate the fast transfer of data stored in a columnar format to the ECL (Enterprise Control Language) data format. This plugin provides seamless integration between Parquet files and HPCC Systems, enabling efficient data processing and analysis. ## Installation +The Parquet Plugin comes bundled with the HPCC Platform, so there's no need for a separate download. When you install or update HPCC Systems, you'll automatically have access to the latest version of the Parquet Plugin. + +If the Parquet plugin is missing, you can either ensure it's enabled by turning on the `-DUSE_PARQUET=ON` option during the build, or follow the instructions below to install it manually. + The plugin uses vcpkg and can be installed by creating a separate build directory from the platform and running the following commands: + ``` cd ./parquet-build cmake -DPARQUETEMBED=ON ../HPCC-Platform @@ -77,5 +82,79 @@ To select the fields that you wish to partition your data on pass in a string of ``` ParquetIO.HivePartition.Write(outDataset, rowSize, '/source/directory/partioned_dataset', overwriteOption, 'year;month;day'); -ParquetIO.DirectoryPartition.Read(outDataset, rowSize, '/source/directory/partioned_dataset', overwriteOption, 'year;month;day'); -``` \ No newline at end of file +ParquetIO.DirectoryPartition.Write(outDataset, rowSize, '/source/directory/partioned_dataset', overwriteOption, 'year;month;day'); +``` + +## Apache Parquet/Arrow to ECL Type Mappings +### ECL Record to Arrow Schema Mappings + +| ECL Record Type | Apache Arrow/Parquet Type | Notes | +|:----------------|:--------------------------|:------| +| BOOLEAN | Boolean | | +| INTEGER | Int64 | Defaults to 8 bytes (64-bit). Can be explicitly sized using INTEGER1, INTEGER2, INTEGER4, or INTEGER8 | +| INTEGER8 | Int64 | | +| UNSIGNED | UInt64 | Defaults to 8 bytes (64-bit). Can be explicitly sized using UNSIGNED1, UNSIGNED2, UNSIGNED4, or UNSIGNED8 | +| UNSIGNED8 | UInt64 | | +| REAL4 | Float | | +| REAL8 | Double | | +| DECIMAL | LargeString | | +| STRING | LargeString | | +| VARSTRING | LargeString | | +| UTF8 | LargeString | | +| DATA | LargeBinary | | +| DATA[n] | FixedSizeBinary[n] | Where n is the fixed length | +| SET OF | LargeList | | +| RECORD | Struct | | + + +### Default Supported Parquet/Arrow Types for ECL + +| Apache Parquet / Arrow Type | Notes | +|:------------------------------|:------| +| Boolean | | +| Int8, Int16, Int32, Int64 | Size in ECL depends on the Arrow type | +| UInt8, UInt16, UInt32, UInt64 | Size in ECL depends on the Arrow type | +| Float16 (Half Float) | Stored as REAL4 or REAL8. Processed in 64-bit buffer internally | +| Float | | +| Double | | +| Decimal128 | Precision and scale in the Parquet file schema should match the ECL record definition| +| Decimal256 | Precision and scale in the Parquet schema should match the ECL record definition. Note that arrow::Decimal256 supports larger precision and scale than the 64-digit maximum in ECL. | +| Date32, Date64 | Stored as days since epoch | +| Time32, Time64 | Stored as milliseconds or microseconds since midnight (time of day) | +| Timestamp | Stored as microseconds since epoch | +| Duration | Measure of elapsed time in either seconds, milliseconds, microseconds or nanoseconds | +| LargeString | | +| LargeBinary | | +| FixedSizeBinary | Fixed-length binary data | +| LargeList | | +| FixedSizeList | With fixed number of elements | +| Struct | Nested structure | + +For more detailed information about Apache Arrow data types, refer to the [Apache Arrow Documentation](https://arrow.apache.org/docs/cpp/api/datatype.html). + +## Example Usage + + +``` +IMPORT Parquet; + +// Record definition with both fixed-size and large binary fields +BinaryTypesRecord := RECORD + UNSIGNED1 id; + DATA10 fixedBinary; // Fixed-size binary (10 bytes) + DATA largeBinary; // Large binary (variable size) +END; + +// Sample dataset +sampleData := DATASET([ + {1, (DATA10)123.45, (DATA)6789.01}, + {2, (DATA10)234.56, (DATA)7890.12} +], BinaryTypesRecord); + +// Write and read using ParquetIO +ParquetIO.Write(sampleData, '/var/lib/HPCCSystems/mydropzone/BinaryTypes.parquet'); +readData := ParquetIO.Read(BinaryTypesRecord, '/var/lib/HPCCSystems/mydropzone/BinaryTypes.parquet'); + +OUTPUT(readData); +``` +This example demonstrates how to define an ECL record structure with fixed-size and variable-size binary fields, create a sample dataset, write it to a Parquet file, and then read it back using ParquetIO, showcasing the handling of different binary data types in HPCC Systems. From 64ca7a4abea6992dd06fdc10ae0ea538873c55ec Mon Sep 17 00:00:00 2001 From: Kunal Aswani Date: Wed, 4 Sep 2024 09:44:29 -0400 Subject: [PATCH 12/22] HPCC-32517 Add SDS unlock option in daliadmin tab of eclwatch Unlock SDS added for cloud based systems to Dali Admin. Signed-off-by: Kunal Aswani --- esp/src/package-lock.json | 5221 +++++++++++------ esp/src/package.json | 2 +- esp/src/src-react/components/DaliAdmin.tsx | 4 + .../src-react/components/DaliSDSUnlock.tsx | 84 + esp/src/src/nls/hpcc.ts | 2 + 5 files changed, 3492 insertions(+), 1821 deletions(-) create mode 100644 esp/src/src-react/components/DaliSDSUnlock.tsx diff --git a/esp/src/package-lock.json b/esp/src/package-lock.json index ecb1390c775..65b45c291e2 100644 --- a/esp/src/package-lock.json +++ b/esp/src/package-lock.json @@ -18,7 +18,7 @@ "@hpcc-js/chart": "2.84.1", "@hpcc-js/codemirror": "2.63.0", "@hpcc-js/common": "2.72.0", - "@hpcc-js/comms": "2.95.0", + "@hpcc-js/comms": "2.95.1", "@hpcc-js/dataflow": "8.1.7", "@hpcc-js/eclwatch": "2.75.3", "@hpcc-js/graph": "2.86.0", @@ -84,7 +84,6 @@ } }, "eslint": { - "name": "eslint-plugin-eclwatch", "version": "0.0.0", "dev": true }, @@ -102,21 +101,13 @@ "node": ">=12.17" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@babel/runtime": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", - "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", + "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", + "license": "MIT", "dependencies": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" @@ -126,6 +117,7 @@ "version": "3.3.4", "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.3.4.tgz", "integrity": "sha512-8vmPV/nIULFDWsnJalQJDqFLC2uTPx6A/ASA2t27QGp+7oXnbWWXCe0uV8xasIH2rGbI/XoB2vmkdP/94WvMrw==", + "license": "MIT", "engines": { "node": ">=10" } @@ -135,6 +127,7 @@ "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" } @@ -150,6 +143,7 @@ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -161,10 +155,11 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -193,6 +188,30 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@eslint/js": { "version": "8.57.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", @@ -207,17 +226,18 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/@floating-ui/core": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.5.tgz", - "integrity": "sha512-8GrTWmoFhm5BsMZOTHeGD2/0FLKLQQHvO/ZmQga4tKempYRLz8aqJGqXVuQgisnMObq2YZ2SgkwctN1LOOxcqA==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.7.tgz", + "integrity": "sha512-yDzVT/Lm101nQ5TCVeK65LtdN7Tj4Qpr9RTXJ2vPFLqtLxwOrpoxAHAJI8J3yYWUc40J0BDBheaitK5SJmno2g==", "license": "MIT", "dependencies": { - "@floating-ui/utils": "^0.2.5" + "@floating-ui/utils": "^0.2.7" } }, "node_modules/@floating-ui/devtools": { @@ -229,19 +249,19 @@ } }, "node_modules/@floating-ui/dom": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.8.tgz", - "integrity": "sha512-kx62rP19VZ767Q653wsP1XZCGIirkE09E0QUGNYTM/ttbbQHqcGPdSfWFxUyyNLc/W6aoJRBajOSXhP6GXjC0Q==", + "version": "1.6.10", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.10.tgz", + "integrity": "sha512-fskgCFv8J8OamCmyun8MfjB1Olfn+uZKjOKZ0vhYF3gRmEUXcGOjxWL8bBr7i4kIuPZ2KD2S3EUIOxnjC8kl2A==", "license": "MIT", "dependencies": { "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.5" + "@floating-ui/utils": "^0.2.7" } }, "node_modules/@floating-ui/utils": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.5.tgz", - "integrity": "sha512-sTcG+QZ6fdEUObICavU+aB3Mp8HY4n14wYHdxK4fXjPmv3PXZZeY5RaguJmGyeH/CJQhX3fqKUtS4qc1LoHwhQ==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.7.tgz", + "integrity": "sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA==", "license": "MIT" }, "node_modules/@fluentui/date-time-utilities": { @@ -265,47 +285,91 @@ } }, "node_modules/@fluentui/example-data": { - "version": "8.4.24", - "resolved": "https://registry.npmjs.org/@fluentui/example-data/-/example-data-8.4.24.tgz", - "integrity": "sha512-eoEC6a8yzUdbaLflPiL8LDPLHo/U32EACHncUaEzoHrI/FilzlsztIQ9qY7AB5k8MIhbfEBm3QkQnn6/iVyt3w==", + "version": "8.4.25", + "resolved": "https://registry.npmjs.org/@fluentui/example-data/-/example-data-8.4.25.tgz", + "integrity": "sha512-hRPPJQ3aBpAkwGsIHWlhZTxctPi9tQez/257gqdb1VRRvZSEGO4a7FEfpKBrcJadUGDsM7wWixgr2zR31lee1Q==", "license": "MIT", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@fluentui/fluent2-theme": { - "version": "8.107.91", - "resolved": "https://registry.npmjs.org/@fluentui/fluent2-theme/-/fluent2-theme-8.107.91.tgz", - "integrity": "sha512-La9on84Q+A9kTH/qLgyCnwjMAC/iZo/rbkO77R5uhAaZRs6jtuusDf+JhbWI0hHBUHDdFKg8k403scDcnbg8Jg==", + "version": "8.107.100", + "resolved": "https://registry.npmjs.org/@fluentui/fluent2-theme/-/fluent2-theme-8.107.100.tgz", + "integrity": "sha512-iF6lsYnjmVy1WnUOgQQPwjjsSeqIAO9LP/gzZwZ+ZTlHjg/vDFcAf/rW/8SULLE1HoSQ59QuxPNgTz7UWN4mDA==", "license": "MIT", "dependencies": { - "@fluentui/react": "^8.119.3", + "@fluentui/react": "^8.120.8", + "@fluentui/set-version": "^8.2.23", + "tslib": "^2.1.0" + } + }, + "node_modules/@fluentui/fluent2-theme/node_modules/@fluentui/react": { + "version": "8.120.8", + "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.120.8.tgz", + "integrity": "sha512-MN5iTz5pQFwAGremZ7EbrXifQQTXqFT+xeDst1AxfF/k+lYr80srDj4u5JrSr7D3OCxBgEtLOCrXSjtib/lB2A==", + "license": "MIT", + "dependencies": { + "@fluentui/date-time-utilities": "^8.6.9", + "@fluentui/font-icons-mdl2": "^8.5.50", + "@fluentui/foundation-legacy": "^8.4.16", + "@fluentui/merge-styles": "^8.6.13", + "@fluentui/react-focus": "^8.9.13", + "@fluentui/react-hooks": "^8.8.12", + "@fluentui/react-portal-compat-context": "^9.0.12", + "@fluentui/react-window-provider": "^2.2.28", + "@fluentui/set-version": "^8.2.23", + "@fluentui/style-utilities": "^8.10.21", + "@fluentui/theme": "^2.6.59", + "@fluentui/utilities": "^8.15.15", + "@microsoft/load-themed-styles": "^1.10.26", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/fluent2-theme/node_modules/@fluentui/react-hooks": { + "version": "8.8.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.8.12.tgz", + "integrity": "sha512-lplre6x5dONjd12D0BWs4LKq4lX++o0w07pIk2XhxikOW1e4Xfjn6VM52WSdtx+tU4rbLUoCA8drN2y/wDvhGg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-window-provider": "^2.2.28", "@fluentui/set-version": "^8.2.23", + "@fluentui/utilities": "^8.15.15", "tslib": "^2.1.0" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0" } }, "node_modules/@fluentui/font-icons-mdl2": { - "version": "8.5.47", - "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.5.47.tgz", - "integrity": "sha512-99d/cjEMz0ik9LnVrEDhZB4CnQavwgBvZuNa/EAaeHZMlQ7eheCzU3PNG4goPC7o4yg7XCNyngA7hEx3RUPUDA==", + "version": "8.5.50", + "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.5.50.tgz", + "integrity": "sha512-04pRRmuBf9r/3cnBlIedF+SFk2UW7GdRQvdfKxoMuL4dDMLPqo4ruPkI/dz8Mp3EDERQU01XDWtBx11w9obmFQ==", "license": "MIT", "dependencies": { "@fluentui/set-version": "^8.2.23", - "@fluentui/style-utilities": "^8.10.18", - "@fluentui/utilities": "^8.15.13", + "@fluentui/style-utilities": "^8.10.21", + "@fluentui/utilities": "^8.15.15", "tslib": "^2.1.0" } }, "node_modules/@fluentui/foundation-legacy": { - "version": "8.4.13", - "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.4.13.tgz", - "integrity": "sha512-LIrqiDM0Fe45XLIx/XISwRfcaB5TfoMlkjic7K6goZtssi6VSNEAWjj+V2DOZNUaaFE3J3j61EspoZEKbqGazg==", + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.4.16.tgz", + "integrity": "sha512-01/uQPQ2pEkQ6nUUF+tXaYeOG8UssfoEgAVLPolYXr1DC4tT66hPi7Smgsh6tzUkt/Ljy0nw9TIMRoHDHlfRyg==", "license": "MIT", "dependencies": { - "@fluentui/merge-styles": "^8.6.12", + "@fluentui/merge-styles": "^8.6.13", "@fluentui/set-version": "^8.2.23", - "@fluentui/style-utilities": "^8.10.18", - "@fluentui/utilities": "^8.15.13", + "@fluentui/style-utilities": "^8.10.21", + "@fluentui/utilities": "^8.15.15", "tslib": "^2.1.0" }, "peerDependencies": { @@ -332,9 +396,9 @@ } }, "node_modules/@fluentui/merge-styles": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.6.12.tgz", - "integrity": "sha512-v8njux9frUkoGGlBnQXKHaKCX2nLZVHPFMDMzibtAIt4vIkkv+oY2lFmJ2h96tSIkg4eVN7h5sSDTFVoAPwpYg==", + "version": "8.6.13", + "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.6.13.tgz", + "integrity": "sha512-IWgvi2CC+mcQ7/YlCvRjsmHL2+PUz7q+Pa2Rqk3a+QHN0V1uBvgIbKk5y/Y/awwDXy1yJHiqMCcDHjBNmS1d4A==", "license": "MIT", "dependencies": { "@fluentui/set-version": "^8.2.23", @@ -379,17 +443,19 @@ } }, "node_modules/@fluentui/react-accordion": { - "version": "9.4.4", - "resolved": "https://registry.npmjs.org/@fluentui/react-accordion/-/react-accordion-9.4.4.tgz", - "integrity": "sha512-nDkzWhz9PID94rzg06CiuzSkFuAemT2mIOs5G9/IQqIaQYr2do/Ff7WH5gbB6vK901C1b4ZqxeNnPYNf/wLhpA==", + "version": "9.5.3", + "resolved": "https://registry.npmjs.org/@fluentui/react-accordion/-/react-accordion-9.5.3.tgz", + "integrity": "sha512-QnOfHEM7do52b4mgyb0SPvKQOa6lPEsOOy+V/xGK2LNimnZSPvGAfJ/vAD4yjR5gOR5zQl7iNv3FNN0mJSefXA==", "license": "MIT", "dependencies": { - "@fluentui/react-aria": "^9.13.2", + "@fluentui/react-aria": "^9.13.4", "@fluentui/react-context-selector": "^9.1.65", "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", + "@fluentui/react-motion": "^9.5.0", + "@fluentui/react-motion-components-preview": "^0.1.2", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -426,15 +492,15 @@ } }, "node_modules/@fluentui/react-aria": { - "version": "9.13.2", - "resolved": "https://registry.npmjs.org/@fluentui/react-aria/-/react-aria-9.13.2.tgz", - "integrity": "sha512-lb93r/FiE3bj1/lfixy/Hb+LW8MQ9HCqdDWLRo1gmP4f3QgIj/Gz7oTB+NilwzytiH4OBDXq0apdUHGLwGkotA==", + "version": "9.13.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-aria/-/react-aria-9.13.4.tgz", + "integrity": "sha512-kFavxrWnOOkScy1Ue7YvnofxjjPzdEROziyApEp7QhyWd8syfNvTZh79WnBza0RBEPvWqExphS95J3vmyM8avA==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-utilities": "^9.18.13", "@swc/helpers": "^0.5.1" }, @@ -446,20 +512,20 @@ } }, "node_modules/@fluentui/react-avatar": { - "version": "9.6.33", - "resolved": "https://registry.npmjs.org/@fluentui/react-avatar/-/react-avatar-9.6.33.tgz", - "integrity": "sha512-xikMYnjtBQRv1rHOhDEc/5GvG5F46MFhgu3jcBbxyVt512AfwVgDMPj18tg4y2RaZ587FLPFifK7VlNBDAaT4g==", + "version": "9.6.37", + "resolved": "https://registry.npmjs.org/@fluentui/react-avatar/-/react-avatar-9.6.37.tgz", + "integrity": "sha512-6/5AgZ/s353FhCscFWOiec0j4vJCjHXbWO4F9JDItYDUm0t+egN7rb98LZhAezfapo4GUxdx7ZNpqWy0bZ5GDw==", "license": "MIT", "dependencies": { "@fluentui/react-badge": "^9.2.41", "@fluentui/react-context-selector": "^9.1.65", "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", - "@fluentui/react-popover": "^9.9.15", + "@fluentui/react-popover": "^9.9.19", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", - "@fluentui/react-tooltip": "^9.4.34", + "@fluentui/react-tooltip": "^9.4.37", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" @@ -493,18 +559,18 @@ } }, "node_modules/@fluentui/react-breadcrumb": { - "version": "9.0.33", - "resolved": "https://registry.npmjs.org/@fluentui/react-breadcrumb/-/react-breadcrumb-9.0.33.tgz", - "integrity": "sha512-VDnTsUPqmWRAuOwXwScItlaLzuMFlOXCRgrZuU3py8QTTjUU4jIBi2X7wI7DREpD0FRM7wbujCkN0tb4lRO4FQ==", + "version": "9.0.36", + "resolved": "https://registry.npmjs.org/@fluentui/react-breadcrumb/-/react-breadcrumb-9.0.36.tgz", + "integrity": "sha512-InuZqcokYVyEjLZWQNXUapBi7ryo8i5q0onNxDEf0J+Qolg3baqRN1jY4cKC4UzjlMJgjr+Vz/+gMIRGNLDIKw==", "license": "MIT", "dependencies": { - "@fluentui/react-aria": "^9.13.2", - "@fluentui/react-button": "^9.3.87", + "@fluentui/react-aria": "^9.13.4", + "@fluentui/react-button": "^9.3.89", "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", - "@fluentui/react-link": "^9.2.28", + "@fluentui/react-link": "^9.2.30", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -518,17 +584,17 @@ } }, "node_modules/@fluentui/react-button": { - "version": "9.3.87", - "resolved": "https://registry.npmjs.org/@fluentui/react-button/-/react-button-9.3.87.tgz", - "integrity": "sha512-Di8RWjIswa1jriYfed6FH90fqmTwBkaILWxzJzChaBbUAOtxEYn3K57F+9PS9s05z7PhlDuVnfd2RV0dIrYHtg==", + "version": "9.3.89", + "resolved": "https://registry.npmjs.org/@fluentui/react-button/-/react-button-9.3.89.tgz", + "integrity": "sha512-fliozeCpApuDpevvHLC2rTdhyVymXZHaXSR2cFqgYdYtHrXFE7JbMHVMNAszQCo+T+4uovzKU/SL1z7xMr1VhQ==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.2", + "@fluentui/react-aria": "^9.13.4", "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -542,14 +608,15 @@ } }, "node_modules/@fluentui/react-card": { - "version": "9.0.87", - "resolved": "https://registry.npmjs.org/@fluentui/react-card/-/react-card-9.0.87.tgz", - "integrity": "sha512-aH7tvf1XTtW5kVM2YzbM1OEVQ0dn9POBHEutmpSkHpxb/Wa4bAPm4Yrimt9PZqcFws1WdFapbZD0xaYGhf+9Ew==", + "version": "9.0.91", + "resolved": "https://registry.npmjs.org/@fluentui/react-card/-/react-card-9.0.91.tgz", + "integrity": "sha512-5p1d5hpEnkXNnj7BAvl6pLyvX3bOOY0kFB/gGn32rpFpdxs5vCsGe1qNs2Ju9MlMhSFh7c2mBMHOixc/eD9JiA==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", "@fluentui/react-jsx-runtime": "^9.0.42", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", + "@fluentui/react-text": "^9.4.23", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -563,17 +630,17 @@ } }, "node_modules/@fluentui/react-checkbox": { - "version": "9.2.32", - "resolved": "https://registry.npmjs.org/@fluentui/react-checkbox/-/react-checkbox-9.2.32.tgz", - "integrity": "sha512-q75W+SaGxKHFNjInGq/TYARQHeP7x1H2N0681JFhvo6Ji0BbCTKpxMTsssHvR6OlqBPjcXfkxpXiVD/V8vVgNA==", + "version": "9.2.35", + "resolved": "https://registry.npmjs.org/@fluentui/react-checkbox/-/react-checkbox-9.2.35.tgz", + "integrity": "sha512-YK6jYbW/Sg9raJ3uoHUhLO7htEA4VZponhG3vfHg1ss6BHjfArSHHMHLRaHhHmzfeQewoA7A6Y/XDSGLeffXVw==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.71", + "@fluentui/react-field": "^9.1.74", "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-label": "^9.1.74", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -587,21 +654,21 @@ } }, "node_modules/@fluentui/react-combobox": { - "version": "9.13.2", - "resolved": "https://registry.npmjs.org/@fluentui/react-combobox/-/react-combobox-9.13.2.tgz", - "integrity": "sha512-unLJyLs0rq06cl81ka89JkvKo3iXXGHC5wbZ4KTAEF3ZoXjuw7EI19tLiR+FIEV60qhSo2jOXKCF8xpHOKWIXQ==", + "version": "9.13.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-combobox/-/react-combobox-9.13.5.tgz", + "integrity": "sha512-nfhERKiTB73jcVsSJYlX1cXu/Tcd1YE9TrldgIm1Rb79vDlX0WT3hpf4yvHMuPwA6qPGISm8RmYGj6mjs4ucLA==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.2", + "@fluentui/react-aria": "^9.13.4", "@fluentui/react-context-selector": "^9.1.65", - "@fluentui/react-field": "^9.1.71", + "@fluentui/react-field": "^9.1.74", "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", - "@fluentui/react-portal": "^9.4.31", - "@fluentui/react-positioning": "^9.15.6", + "@fluentui/react-portal": "^9.4.33", + "@fluentui/react-positioning": "^9.15.7", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -704,20 +771,20 @@ } }, "node_modules/@fluentui/react-dialog": { - "version": "9.11.6", - "resolved": "https://registry.npmjs.org/@fluentui/react-dialog/-/react-dialog-9.11.6.tgz", - "integrity": "sha512-a7KQZeRcaOM8PzEHFONIxjHyiZjLwA57+Bm2XdILJsVrNL9cCSz2ChN3zaIGGZ3gfZ+YkNvfcbXAz5sVIXyKVw==", + "version": "9.11.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-dialog/-/react-dialog-9.11.12.tgz", + "integrity": "sha512-tKleAKDa97BdNXwzUs4RqdZoe5uucJnEexZIjlqSbNrCItQU5Xa9alqZvqZGDw0t4WpH6Ux9t37m3yyGpwItQA==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.2", + "@fluentui/react-aria": "^9.13.4", "@fluentui/react-context-selector": "^9.1.65", "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", - "@fluentui/react-motion": "^9.4.0", - "@fluentui/react-portal": "^9.4.31", + "@fluentui/react-motion": "^9.5.0", + "@fluentui/react-portal": "^9.4.33", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -751,16 +818,16 @@ } }, "node_modules/@fluentui/react-drawer": { - "version": "9.5.6", - "resolved": "https://registry.npmjs.org/@fluentui/react-drawer/-/react-drawer-9.5.6.tgz", - "integrity": "sha512-vfn4G+gRpNETqBFQ3cnWJajKbCyMNeqInzDaeEh7eU+8/YANGIofMU8bPublVcSD5Ew9Ly++GEte4dIGvQiB8A==", + "version": "9.5.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-drawer/-/react-drawer-9.5.12.tgz", + "integrity": "sha512-7Daj+KG37B2bsBsrFmpX3FMWtC0Q1zvOvnCdKu3D1XXDIgOdUTzcnmMqqMVKYl6p8Lwe8778FQ0+eRdI23G/RQ==", "license": "MIT", "dependencies": { - "@fluentui/react-dialog": "^9.11.6", + "@fluentui/react-dialog": "^9.11.12", "@fluentui/react-jsx-runtime": "^9.0.42", - "@fluentui/react-motion-preview": "^0.5.25", + "@fluentui/react-motion": "^9.5.0", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -802,9 +869,9 @@ } }, "node_modules/@fluentui/react-field": { - "version": "9.1.71", - "resolved": "https://registry.npmjs.org/@fluentui/react-field/-/react-field-9.1.71.tgz", - "integrity": "sha512-DqvLa3ZPm+vhIvbQrZqV8d2Nr/+dJv3mOxlootqMVu4v1l8K6fux4qUzwXvSyydIx7U73R99sC/iOCic2SYDFw==", + "version": "9.1.74", + "resolved": "https://registry.npmjs.org/@fluentui/react-field/-/react-field-9.1.74.tgz", + "integrity": "sha512-Z4RJXJ4PP2YnAzz+TWYXv0QcaREV9eW1lv0fcWQKWzmHgOdeIqHruUigteoRaatmOfW6t/SjttTheoV09h/8LA==", "license": "MIT", "dependencies": { "@fluentui/react-context-selector": "^9.1.65", @@ -824,16 +891,16 @@ } }, "node_modules/@fluentui/react-focus": { - "version": "8.9.10", - "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.9.10.tgz", - "integrity": "sha512-9kV15td8uuYhQS4bTLImxVo75dmbeOK0rZ4gQgOAY/0nKRYwiCLfH9SwQuEa+eCmjsBTNuDlXgghjQJyKFh5+A==", + "version": "8.9.13", + "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.9.13.tgz", + "integrity": "sha512-oUtY4F+tp0RmV0Wr30CoYFdTQEqHWKjU3/dYHPbI0xKH4emLrf8+sc0FAHJdeHH2rx4T1XSA807pm7YB4CQqWw==", "license": "MIT", "dependencies": { "@fluentui/keyboard-key": "^0.4.23", - "@fluentui/merge-styles": "^8.6.12", + "@fluentui/merge-styles": "^8.6.13", "@fluentui/set-version": "^8.2.23", - "@fluentui/style-utilities": "^8.10.18", - "@fluentui/utilities": "^8.15.13", + "@fluentui/style-utilities": "^8.10.21", + "@fluentui/utilities": "^8.15.15", "tslib": "^2.1.0" }, "peerDependencies": { @@ -858,9 +925,9 @@ } }, "node_modules/@fluentui/react-icons": { - "version": "2.0.249", - "resolved": "https://registry.npmjs.org/@fluentui/react-icons/-/react-icons-2.0.249.tgz", - "integrity": "sha512-VcOCbqv3MxzMZdH6jyqpzsfyNV0cG5F4TKXnnXcJ/QVQcWsN2BU6NrCiwkZHKEjbOYbxwBTdBHq1gnR5qz4baw==", + "version": "2.0.257", + "resolved": "https://registry.npmjs.org/@fluentui/react-icons/-/react-icons-2.0.257.tgz", + "integrity": "sha512-9dqBpfE3D2O2mKpa5IzXUHYk0FqgWOQtsIsfocI6r+RYk9y9JuaIMPio49ey6mMMvIi46bNHpMbYUcuCob53Yw==", "license": "MIT", "dependencies": { "@griffel/react": "^1.0.0", @@ -887,13 +954,13 @@ } }, "node_modules/@fluentui/react-icons-mdl2/node_modules/@fluentui/react-icon-provider": { - "version": "1.3.68", - "resolved": "https://registry.npmjs.org/@fluentui/react-icon-provider/-/react-icon-provider-1.3.68.tgz", - "integrity": "sha512-Mhxx8p+p0h0bN4gIoo+jGQ9jDBhAGc3HuRcS0CD9cld9eVGB/hr/RIiBj+39JQGJqzRB4rntLnLPFvjRAjPWiA==", + "version": "1.3.71", + "resolved": "https://registry.npmjs.org/@fluentui/react-icon-provider/-/react-icon-provider-1.3.71.tgz", + "integrity": "sha512-Lv3ZuFgVemUIfT9YiuGbEfk0rYrMnRM6rTXTdBbGIfwvvtWxwZWakR8Xi9GF/kxnnFeXaTNvbOQUSyum1swFaw==", "license": "MIT", "dependencies": { "@fluentui/set-version": "^8.2.23", - "@fluentui/style-utilities": "^8.10.18", + "@fluentui/style-utilities": "^8.10.21", "tslib": "^2.1.0" }, "peerDependencies": { @@ -947,16 +1014,16 @@ } }, "node_modules/@fluentui/react-infolabel": { - "version": "9.0.40", - "resolved": "https://registry.npmjs.org/@fluentui/react-infolabel/-/react-infolabel-9.0.40.tgz", - "integrity": "sha512-3hXmmiuv5gEqZWTNK25tp/YdLoIgIZ64XgFXDgtaRjK94evzEIYR2jRhhfQUWZorMOhTqqSBMfKK/+M8dwfk2g==", + "version": "9.0.44", + "resolved": "https://registry.npmjs.org/@fluentui/react-infolabel/-/react-infolabel-9.0.44.tgz", + "integrity": "sha512-GWw6UlF0s8HujWaCkGLfnbGaukQycfax7GPe38xVn/TkQp7KPNMgFp1Ag7kwaQtMqDbPIKJeDkaz8kdFziIT9w==", "license": "MIT", "dependencies": { "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-label": "^9.1.74", - "@fluentui/react-popover": "^9.9.15", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-popover": "^9.9.19", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -970,12 +1037,12 @@ } }, "node_modules/@fluentui/react-input": { - "version": "9.4.83", - "resolved": "https://registry.npmjs.org/@fluentui/react-input/-/react-input-9.4.83.tgz", - "integrity": "sha512-mM2aU0Xsqfx7LKFs1X0VBCyXncxRQBRHwEh+1MTvkbhgOYLxD3f2qEy/XNk0vyJ2rya/A2zHE9vwDHKn7Ck44A==", + "version": "9.4.87", + "resolved": "https://registry.npmjs.org/@fluentui/react-input/-/react-input-9.4.87.tgz", + "integrity": "sha512-rIJEL+/xUrTWVi4CJlaCPyauQRMs3nTNvOuy3vBy3+C4IipTOAEM6cyR3RJUCt5IjKLsxJBTLZWRzwhZhAGx8Q==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.71", + "@fluentui/react-field": "^9.1.74", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-shared-contexts": "^9.20.0", "@fluentui/react-theme": "^9.1.19", @@ -1005,12 +1072,6 @@ "react": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-jsx-runtime/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "license": "MIT" - }, "node_modules/@fluentui/react-label": { "version": "9.1.74", "resolved": "https://registry.npmjs.org/@fluentui/react-label/-/react-label-9.1.74.tgz", @@ -1032,15 +1093,15 @@ } }, "node_modules/@fluentui/react-link": { - "version": "9.2.28", - "resolved": "https://registry.npmjs.org/@fluentui/react-link/-/react-link-9.2.28.tgz", - "integrity": "sha512-k1/i8ktTCbztK88YogIt2FYCpJJMFxC4IzXAvpKLioTw6N3ITmxo9KuNNMvOYckGgHyvJliWutu/rSozFXTDmg==", + "version": "9.2.30", + "resolved": "https://registry.npmjs.org/@fluentui/react-link/-/react-link-9.2.30.tgz", + "integrity": "sha512-Vgd3x6wyDvG20P6t3j0zXqncy5grkCDV05Gpt6Q77qwqDLNUUpu/DoolgCxVidp91Vlvt6/M9NZAJS4XXDBqTA==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -1054,20 +1115,20 @@ } }, "node_modules/@fluentui/react-menu": { - "version": "9.14.11", - "resolved": "https://registry.npmjs.org/@fluentui/react-menu/-/react-menu-9.14.11.tgz", - "integrity": "sha512-E1LWDywVukrbmKN8GIbdmTxP3w3q9V7ig4xDJNIt3VQxNoHdDS/Dz00pT6SZT/zP9VqCnfhpuF0xu+q5sOh4Nw==", + "version": "9.14.14", + "resolved": "https://registry.npmjs.org/@fluentui/react-menu/-/react-menu-9.14.14.tgz", + "integrity": "sha512-QBwpi6qUWCNNTdxtn+n/xpzbC4L2stdRnzYedodvby2Q1MQ95RmCFkxjjujJvcF4R5lOxwaNQAoVDtRY6rhxzw==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.2", + "@fluentui/react-aria": "^9.13.4", "@fluentui/react-context-selector": "^9.1.65", "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", - "@fluentui/react-portal": "^9.4.31", - "@fluentui/react-positioning": "^9.15.6", + "@fluentui/react-portal": "^9.4.33", + "@fluentui/react-positioning": "^9.15.7", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -1081,12 +1142,12 @@ } }, "node_modules/@fluentui/react-message-bar": { - "version": "9.2.6", - "resolved": "https://registry.npmjs.org/@fluentui/react-message-bar/-/react-message-bar-9.2.6.tgz", - "integrity": "sha512-A1OwuzCK9Rce4PHYyPnB56qVMj2bg9Qb9h2qpHrChhz6Giol5Ty45lmmVqEpd/w+lyMC73Sgqyfg2Lucy/p3vw==", + "version": "9.2.9", + "resolved": "https://registry.npmjs.org/@fluentui/react-message-bar/-/react-message-bar-9.2.9.tgz", + "integrity": "sha512-r8KN/CECCKzMTSDzN4Iztn+Ta5mXz4LW4E8vYRl8l4LV5/Si5msK2VYAgVAVnIL0KTBDO9XIsXS+zxHl2xwFHw==", "license": "MIT", "dependencies": { - "@fluentui/react-button": "^9.3.87", + "@fluentui/react-button": "^9.3.89", "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-shared-contexts": "^9.20.0", @@ -1128,9 +1189,9 @@ } }, "node_modules/@fluentui/react-motion": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@fluentui/react-motion/-/react-motion-9.4.0.tgz", - "integrity": "sha512-WeLA0/INSf74DKFjCxHjn16p0Pak7LnKlaxva8r5ZMNNQ2Mcl7dFGdY+2e+qejghR7+8fzeojr+nQfKXH94uVQ==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-motion/-/react-motion-9.5.0.tgz", + "integrity": "sha512-UQP62emJhfJOrVwNtfH+Mw8hELHhLW09PbKD8rGioth3TJpYTMMeaspF1LuhsFGNCqfww3ZqtB7vz1MxIuMEsA==", "license": "MIT", "dependencies": { "@fluentui/react-shared-contexts": "^9.20.0", @@ -1145,17 +1206,13 @@ "react-dom": ">=16.8.0 <19.0.0" } }, - "node_modules/@fluentui/react-motion-preview": { - "version": "0.5.25", - "resolved": "https://registry.npmjs.org/@fluentui/react-motion-preview/-/react-motion-preview-0.5.25.tgz", - "integrity": "sha512-TRmDFTuIEOeCs5HCyk5NCpMXBgY8L7tSkjAyZVdZtBY5KxFGlMys+7DnXTXJNDud5OvgDphU6XEvKEGFmaq/Uw==", + "node_modules/@fluentui/react-motion-components-preview": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-motion-components-preview/-/react-motion-components-preview-0.1.2.tgz", + "integrity": "sha512-G3CdWZPJ6XW5DV9eBEYOxBJI2fvnhs7G7wEipWUVieQdPhJDmKlTXB2pANBJOlhF3zJMuYq9IIhszjhaDP7nxA==", "license": "MIT", "dependencies": { - "@fluentui/react-jsx-runtime": "^9.0.42", - "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-theme": "^9.1.19", - "@fluentui/react-utilities": "^9.18.13", - "@griffel/react": "^1.5.22", + "@fluentui/react-motion": "*", "@swc/helpers": "^0.5.1" }, "peerDependencies": { @@ -1165,16 +1222,10 @@ "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-motion/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "license": "MIT" - }, "node_modules/@fluentui/react-overflow": { - "version": "9.1.25", - "resolved": "https://registry.npmjs.org/@fluentui/react-overflow/-/react-overflow-9.1.25.tgz", - "integrity": "sha512-NfZF6D+5xlaUN9bJ5sziE5VkO0SHmJeoUXu+K0wXTpexVQVc16xh9Ob9wF4FouQ6JnD86WWdEGkALKpyaNQieQ==", + "version": "9.1.28", + "resolved": "https://registry.npmjs.org/@fluentui/react-overflow/-/react-overflow-9.1.28.tgz", + "integrity": "sha512-J6WDAy22IJTCQAZiIRGn+DEqKnCS2xWHrAz+6F4JwTfjWWdbgTYofIQNTus8p4/vBjw5/ORwCERBkfrRsLBEBQ==", "license": "MIT", "dependencies": { "@fluentui/priority-overflow": "^9.1.13", @@ -1192,12 +1243,12 @@ } }, "node_modules/@fluentui/react-persona": { - "version": "9.2.92", - "resolved": "https://registry.npmjs.org/@fluentui/react-persona/-/react-persona-9.2.92.tgz", - "integrity": "sha512-TNbCR0NY4JIM217DZlSZBaCFkbFPzd6KRuVwC9XGLhHhTtA+Wr3J86OgWldtjTAUWcX6eJ94JsW0aYT4exCbYA==", + "version": "9.2.96", + "resolved": "https://registry.npmjs.org/@fluentui/react-persona/-/react-persona-9.2.96.tgz", + "integrity": "sha512-SG2y8EKKMGdHqJjtilT2uDrlbTDPxrrTjQYRLj8Rlr7P2NT4SkiMpx826eexV6/8ZNcmyn/kvaR5EvlG9SWkbg==", "license": "MIT", "dependencies": { - "@fluentui/react-avatar": "^9.6.33", + "@fluentui/react-avatar": "^9.6.37", "@fluentui/react-badge": "^9.2.41", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-shared-contexts": "^9.20.0", @@ -1214,19 +1265,19 @@ } }, "node_modules/@fluentui/react-popover": { - "version": "9.9.15", - "resolved": "https://registry.npmjs.org/@fluentui/react-popover/-/react-popover-9.9.15.tgz", - "integrity": "sha512-9KVRpKa1IDL6RGOJF7CYZvC+ayhye65fTshRYz17kiSXPHX3oshrPS+TwsrQq6ENmOuoirVva7AA6AqyooDrjQ==", + "version": "9.9.19", + "resolved": "https://registry.npmjs.org/@fluentui/react-popover/-/react-popover-9.9.19.tgz", + "integrity": "sha512-iT/UvfwBdtPbYgQC2nNyogrocrhVHKftd30yElDnFN/tz8TIFyIS8Wghxtti0Qmg5bo7H5CQGUU7+wkL/bNI7Q==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.2", + "@fluentui/react-aria": "^9.13.4", "@fluentui/react-context-selector": "^9.1.65", "@fluentui/react-jsx-runtime": "^9.0.42", - "@fluentui/react-portal": "^9.4.31", - "@fluentui/react-positioning": "^9.15.6", + "@fluentui/react-portal": "^9.4.33", + "@fluentui/react-positioning": "^9.15.7", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -1240,13 +1291,13 @@ } }, "node_modules/@fluentui/react-portal": { - "version": "9.4.31", - "resolved": "https://registry.npmjs.org/@fluentui/react-portal/-/react-portal-9.4.31.tgz", - "integrity": "sha512-c/mrsn29MvBIxkyYrIAdI9E9JCMicF7mCxpWFbQQZMYKdu4/qLCtkmQfvQKEI9WFQzLS8IzTRM+NajNewUi/nA==", + "version": "9.4.33", + "resolved": "https://registry.npmjs.org/@fluentui/react-portal/-/react-portal-9.4.33.tgz", + "integrity": "sha512-x+RaGu5ICWgsBXTu2onF34bitZVK362j+9EGqXDpq0FoEb/e3/pFvBW2J2dou+rmviaKhNNprwL29dII8aUPZw==", "license": "MIT", "dependencies": { "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1", @@ -1273,9 +1324,9 @@ } }, "node_modules/@fluentui/react-positioning": { - "version": "9.15.6", - "resolved": "https://registry.npmjs.org/@fluentui/react-positioning/-/react-positioning-9.15.6.tgz", - "integrity": "sha512-733OgnMAJt9OQ7yvjsshNR+mWtQE7+236HM6gf1SSL8D9j1W481b+jxnXbo6qiPDkAn1Me5wdGZoJmEN5jFO1w==", + "version": "9.15.7", + "resolved": "https://registry.npmjs.org/@fluentui/react-positioning/-/react-positioning-9.15.7.tgz", + "integrity": "sha512-Zb+Td/a3nFDeLvz3pH6ebod7Bq9tsDtx2MGQ/aarfKAvbp9JRrmb/1nkqMEauth7NPg/JV9NfXJMGq5hvBQtrw==", "license": "MIT", "dependencies": { "@floating-ui/devtools": "0.2.1", @@ -1294,12 +1345,12 @@ } }, "node_modules/@fluentui/react-progress": { - "version": "9.1.82", - "resolved": "https://registry.npmjs.org/@fluentui/react-progress/-/react-progress-9.1.82.tgz", - "integrity": "sha512-r4aZ57rEoReNZoIDG65OvXVk5/19HZGLFghBQ6J8ytLLnIYwqhOueUyv2HEcRXpK16ayhN37GpQE7eBLnMLGGg==", + "version": "9.1.85", + "resolved": "https://registry.npmjs.org/@fluentui/react-progress/-/react-progress-9.1.85.tgz", + "integrity": "sha512-cHFvJnZ5Em5RKiK4tq8c+ZbPF9JlJJcydE2j/y2aXKtufsCrD0SuNDDjEyCP7UUdJ8FWeoO2Azq3oSsP/VaT7A==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.71", + "@fluentui/react-field": "^9.1.74", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-shared-contexts": "^9.20.0", "@fluentui/react-theme": "^9.1.19", @@ -1315,15 +1366,15 @@ } }, "node_modules/@fluentui/react-provider": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/@fluentui/react-provider/-/react-provider-9.17.0.tgz", - "integrity": "sha512-z2nKk8MEDmDivxhcySLhD4xuEuSJgXjO14SjMcLnerAimm3Wftgoayga23cvwGgLmoeqAjG7ykEgLEfAzRDk7A==", + "version": "9.17.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-provider/-/react-provider-9.17.2.tgz", + "integrity": "sha512-0JNFaL6fqDxV0IvXov/QBqJbjuCoGJw8SOE5Fn7X0wORtGpGlR6rJgsccNs4s/hEOlmmnS79d0q3xyyDiGSuUg==", "license": "MIT", "dependencies": { "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/core": "^1.16.0", @@ -1338,16 +1389,16 @@ } }, "node_modules/@fluentui/react-radio": { - "version": "9.2.27", - "resolved": "https://registry.npmjs.org/@fluentui/react-radio/-/react-radio-9.2.27.tgz", - "integrity": "sha512-CNGloT6Jc11I8fMpn9pqTgpN2gImgNuNY5YulOUQZ8Z4afT1P0YCWDTY6kRIUo3LFH4x4A1YsN3O05Sn2dImcA==", + "version": "9.2.30", + "resolved": "https://registry.npmjs.org/@fluentui/react-radio/-/react-radio-9.2.30.tgz", + "integrity": "sha512-1FklLprqvi4307PcA0aH0H4LtvtyD0hP/xqvrAP5uZdrBwFxMcbP258E4zmsRcUPAi1bQNUbUOrwe4GuQFjSog==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.71", + "@fluentui/react-field": "^9.1.74", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-label": "^9.1.74", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -1361,14 +1412,14 @@ } }, "node_modules/@fluentui/react-rating": { - "version": "9.0.15", - "resolved": "https://registry.npmjs.org/@fluentui/react-rating/-/react-rating-9.0.15.tgz", - "integrity": "sha512-fa8rDyvxQplqL234IMThWRVfVj3U7y3LiJcjliZ1YrTNkTVRg/w7LK010625Ased2IOBIWS4YLP1UFBFdxIflw==", + "version": "9.0.17", + "resolved": "https://registry.npmjs.org/@fluentui/react-rating/-/react-rating-9.0.17.tgz", + "integrity": "sha512-nNe/YZXnUFYzCTvAiFMo18X/hpmXFgOQIs8itBbLWUUu0H48dbjO/HQFhd/1aOeEPURc/h+XbozztGDj5LbJNA==", "license": "MIT", "dependencies": { "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -1382,13 +1433,13 @@ } }, "node_modules/@fluentui/react-search": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/@fluentui/react-search/-/react-search-9.0.12.tgz", - "integrity": "sha512-63Yxkx0JeQ8ueSr37tc/OA+yYQFPQHAoVmvJyqhYngRLJUzuGT3ErvM6WjBtZjQ49ErRXjmwJw9Rcf3HowUZCg==", + "version": "9.0.16", + "resolved": "https://registry.npmjs.org/@fluentui/react-search/-/react-search-9.0.16.tgz", + "integrity": "sha512-daJUhwD659svOlhT6lvTwmvdFTSN53MmE80btdYYCnahJfBn27OT7askdH7iiqiogI/7VP2+sZnbWANEkd2Zvw==", "license": "MIT", "dependencies": { "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-input": "^9.4.83", + "@fluentui/react-input": "^9.4.87", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", @@ -1403,12 +1454,12 @@ } }, "node_modules/@fluentui/react-select": { - "version": "9.1.82", - "resolved": "https://registry.npmjs.org/@fluentui/react-select/-/react-select-9.1.82.tgz", - "integrity": "sha512-anu9A918H13HRRFdnmWk2XrjiVkefreUKsY5gA07qK94TJRH/drw1GPCOX5fOkQF60J7fqZShyNVTqE4fJ+9pQ==", + "version": "9.1.85", + "resolved": "https://registry.npmjs.org/@fluentui/react-select/-/react-select-9.1.85.tgz", + "integrity": "sha512-4mgCTMoQN68vW+1WjptvIkWmnfdiz0WmyY670dp0JEL5KvMp5WVYIUmXjmR/fP1Nbp0df0BspUDPMrKTS6DEyw==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.71", + "@fluentui/react-field": "^9.1.74", "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-shared-contexts": "^9.20.0", @@ -1439,12 +1490,12 @@ } }, "node_modules/@fluentui/react-skeleton": { - "version": "9.1.10", - "resolved": "https://registry.npmjs.org/@fluentui/react-skeleton/-/react-skeleton-9.1.10.tgz", - "integrity": "sha512-W0OkdaS7+5NkK32WTTP1sbBWu+NBL343YYU0R52LHfXBMJXlhJ/pNIcfIPrBSij6szmMiRZrPzYGtDzFx/S4qA==", + "version": "9.1.14", + "resolved": "https://registry.npmjs.org/@fluentui/react-skeleton/-/react-skeleton-9.1.14.tgz", + "integrity": "sha512-4rSQdV2W98uiK9k3o8ivTaUcpxo9GDyBWkECNCtLYNxvjG1RSpGooNCaT5YlMGWvZYjr0QQy/3KVztY9ZFBYQw==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.71", + "@fluentui/react-field": "^9.1.74", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-shared-contexts": "^9.20.0", "@fluentui/react-theme": "^9.1.19", @@ -1460,15 +1511,15 @@ } }, "node_modules/@fluentui/react-slider": { - "version": "9.1.89", - "resolved": "https://registry.npmjs.org/@fluentui/react-slider/-/react-slider-9.1.89.tgz", - "integrity": "sha512-cKCGAGVbKK6hYIQKfnveQehfCEr75gKPUSP9B7HdQX8CLiPUgUSrwXGouSYgJSLcpD3BN7boLj7DUfs3mhxMqQ==", + "version": "9.1.92", + "resolved": "https://registry.npmjs.org/@fluentui/react-slider/-/react-slider-9.1.92.tgz", + "integrity": "sha512-MwbvKQRxwSvGWa/6mnb81cN23QsCEWaYfkcmYdLkP9ijf0BFKlMscyv9E3UdbEdZ8WtJEm0gaQ62BTR6wTATOA==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.71", + "@fluentui/react-field": "^9.1.74", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -1482,13 +1533,13 @@ } }, "node_modules/@fluentui/react-spinbutton": { - "version": "9.2.83", - "resolved": "https://registry.npmjs.org/@fluentui/react-spinbutton/-/react-spinbutton-9.2.83.tgz", - "integrity": "sha512-wWdggoxT0nUnbE8PqnUojnH0OznnkUvHHINwE0l3II8EDz0YXTPBZMoaRfB84+FykdDAfyNm2BWa+uEtRH47ZA==", + "version": "9.2.86", + "resolved": "https://registry.npmjs.org/@fluentui/react-spinbutton/-/react-spinbutton-9.2.86.tgz", + "integrity": "sha512-LOgLKBSRsli0zEMSlV+Kqvj3tFs6w7y+VP7dQQ7zPlvhGcm/U9/R5ax/tJ1DC6iRDIUQlNHXpyXITHscilodvA==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-field": "^9.1.71", + "@fluentui/react-field": "^9.1.74", "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-shared-contexts": "^9.20.0", @@ -1526,16 +1577,16 @@ } }, "node_modules/@fluentui/react-swatch-picker": { - "version": "9.1.6", - "resolved": "https://registry.npmjs.org/@fluentui/react-swatch-picker/-/react-swatch-picker-9.1.6.tgz", - "integrity": "sha512-vLpmM2ENFPs+4qemjswfO5gEveUFIqSS/Gu1z7FiBbp/tUNS13rXYQBiUPFCS8xEsQG4gNcozBs9Lejdyean4g==", + "version": "9.1.8", + "resolved": "https://registry.npmjs.org/@fluentui/react-swatch-picker/-/react-swatch-picker-9.1.8.tgz", + "integrity": "sha512-zlAghHbgHBUiK3CCxebQzbyyGkRc68IIpsSEq0wDZ8D/sSjageBdcveavKLSRChXp4qkdGPnMIMWyHyenl6Z5A==", "license": "MIT", "dependencies": { "@fluentui/react-context-selector": "^9.1.65", "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -1549,17 +1600,17 @@ } }, "node_modules/@fluentui/react-switch": { - "version": "9.1.89", - "resolved": "https://registry.npmjs.org/@fluentui/react-switch/-/react-switch-9.1.89.tgz", - "integrity": "sha512-9gYOhubFq5+4c2bnD6VJGfRCwl9X5RFp3AXztfrYELRTgwSsIeCAoa6VM3bu9nUi3V60GHCNHk38j8lVwDgy/w==", + "version": "9.1.92", + "resolved": "https://registry.npmjs.org/@fluentui/react-switch/-/react-switch-9.1.92.tgz", + "integrity": "sha512-Rd9vz+R8fniGsSv5yfaRRmc4y6vbnr8pnttQA67Mku5jhbwB2aUFEZ8iL0FOIxyS8RSJEi0yyar96Hn1sMhaAA==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.71", + "@fluentui/react-field": "^9.1.74", "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-label": "^9.1.74", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -1573,21 +1624,21 @@ } }, "node_modules/@fluentui/react-table": { - "version": "9.15.11", - "resolved": "https://registry.npmjs.org/@fluentui/react-table/-/react-table-9.15.11.tgz", - "integrity": "sha512-6eK8v22lbZpMnBPVEwf7qaaueSrrVcLSMs9U4f3nNGo2pJVOnOcg9Vhvom/GL2D8FItpOOcTwxT7Asg/FGRIIA==", + "version": "9.15.15", + "resolved": "https://registry.npmjs.org/@fluentui/react-table/-/react-table-9.15.15.tgz", + "integrity": "sha512-UVYVprXZwx108qzSNwiflqPKuZTvf0r8JFOKFsO65hV3gSeYncOM6FcCdQAHJ2RTpPHQJ4ba+iwJvaaHG4JQ5w==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.2", - "@fluentui/react-avatar": "^9.6.33", - "@fluentui/react-checkbox": "^9.2.32", + "@fluentui/react-aria": "^9.13.4", + "@fluentui/react-avatar": "^9.6.37", + "@fluentui/react-checkbox": "^9.2.35", "@fluentui/react-context-selector": "^9.1.65", "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", - "@fluentui/react-radio": "^9.2.27", + "@fluentui/react-radio": "^9.2.30", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -1601,15 +1652,15 @@ } }, "node_modules/@fluentui/react-tabs": { - "version": "9.4.27", - "resolved": "https://registry.npmjs.org/@fluentui/react-tabs/-/react-tabs-9.4.27.tgz", - "integrity": "sha512-aJmaTqXz77neyJpgffdKi9gpLtGQjRZcVcvhR/Ft0ZMC+u8XGkTlrtF0ntZZcnPwzeZ7P2qjMMrdvIyDsaSxMg==", + "version": "9.4.30", + "resolved": "https://registry.npmjs.org/@fluentui/react-tabs/-/react-tabs-9.4.30.tgz", + "integrity": "sha512-pYGL80Wwg2UCU837+R9ehOuGteeBej2tWbqbERb9cvRdwdbLCdKcbI+Cy9V+ny1zSRZ+U/7ltlmxosP5DiaM+w==", "license": "MIT", "dependencies": { "@fluentui/react-context-selector": "^9.1.65", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -1623,9 +1674,9 @@ } }, "node_modules/@fluentui/react-tabster": { - "version": "9.22.3", - "resolved": "https://registry.npmjs.org/@fluentui/react-tabster/-/react-tabster-9.22.3.tgz", - "integrity": "sha512-z/icX1sMTHVXJxq2tlNKGM9A9J7RYLgu03vVh+0z4N+Q4k5Oe0HvKFNyi447+R5UEHbWebMEpabbTIox3DuLQw==", + "version": "9.22.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-tabster/-/react-tabster-9.22.5.tgz", + "integrity": "sha512-ddSy6/v1JLNH09SCXLwSf4ERKHTxcqN/dX8yl18jEk34VxveAXFR5x+0XbO5/8nPBxkdl1LEkTgn5EKH4joDCg==", "license": "MIT", "dependencies": { "@fluentui/react-shared-contexts": "^9.20.0", @@ -1644,23 +1695,23 @@ } }, "node_modules/@fluentui/react-tag-picker": { - "version": "9.2.3", - "resolved": "https://registry.npmjs.org/@fluentui/react-tag-picker/-/react-tag-picker-9.2.3.tgz", - "integrity": "sha512-5VvdPcFUY1PrvlLFDCfx1oOiwViukZiI9fQDeX2606wj3g+1lFmzao+8DLxjQ/jX9rEiLFrCrF0RIg+xcjRtxA==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-tag-picker/-/react-tag-picker-9.3.1.tgz", + "integrity": "sha512-XIVmCRWxRGV35cXivKdA4OMI8ND4l7nRUK0VzlAb7rDESc4fzAhhao5YuB4JwAUHrfagP8aCmH7V8NRS0a9J4g==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.2", - "@fluentui/react-combobox": "^9.13.2", + "@fluentui/react-aria": "^9.13.4", + "@fluentui/react-combobox": "^9.13.5", "@fluentui/react-context-selector": "^9.1.65", - "@fluentui/react-field": "^9.1.71", + "@fluentui/react-field": "^9.1.74", "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", - "@fluentui/react-portal": "^9.4.31", - "@fluentui/react-positioning": "^9.15.6", + "@fluentui/react-portal": "^9.4.33", + "@fluentui/react-positioning": "^9.15.7", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", - "@fluentui/react-tags": "^9.3.12", + "@fluentui/react-tabster": "^9.22.5", + "@fluentui/react-tags": "^9.3.16", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -1674,18 +1725,18 @@ } }, "node_modules/@fluentui/react-tags": { - "version": "9.3.12", - "resolved": "https://registry.npmjs.org/@fluentui/react-tags/-/react-tags-9.3.12.tgz", - "integrity": "sha512-Qm77lq/lWoG0g7bOPZcvjJfyjqezI+uUTAYo1+5mugIhZ+7AyBzgsnCdrmdwn1yFgsSlNNes1+A78V/jHdUE0w==", + "version": "9.3.16", + "resolved": "https://registry.npmjs.org/@fluentui/react-tags/-/react-tags-9.3.16.tgz", + "integrity": "sha512-NESGP9hUOmN3fqfKtAe2/fWc/Buvyt6cbp3eNgLUsZq9J1lwn4cnHBvEfvAJVv4fd8qwb8W2UTJ57/jrtISy4w==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.2", - "@fluentui/react-avatar": "^9.6.33", + "@fluentui/react-aria": "^9.13.4", + "@fluentui/react-avatar": "^9.6.37", "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -1699,19 +1750,19 @@ } }, "node_modules/@fluentui/react-teaching-popover": { - "version": "9.1.11", - "resolved": "https://registry.npmjs.org/@fluentui/react-teaching-popover/-/react-teaching-popover-9.1.11.tgz", - "integrity": "sha512-qjA764EpNLHgYg41KplqDpKc4OuA0zsEZmomO256Q5MdLpaj6A5tPcpWb/cHb3XsdKHoOysbW4V3Fd9Gn1XBIQ==", + "version": "9.1.15", + "resolved": "https://registry.npmjs.org/@fluentui/react-teaching-popover/-/react-teaching-popover-9.1.15.tgz", + "integrity": "sha512-pDTTL/xHr/pb+D/5UeYirTaxlTRqBwquc1GjvtibaxXrTgIfDfs/20HkgB5EPtPa7o6z2gd0OoByfseD0EgMwg==", "license": "MIT", "dependencies": { - "@fluentui/react-aria": "^9.13.2", - "@fluentui/react-button": "^9.3.87", + "@fluentui/react-aria": "^9.13.4", + "@fluentui/react-button": "^9.3.89", "@fluentui/react-context-selector": "^9.1.65", "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", - "@fluentui/react-popover": "^9.9.15", + "@fluentui/react-popover": "^9.9.19", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -1746,12 +1797,12 @@ } }, "node_modules/@fluentui/react-textarea": { - "version": "9.3.83", - "resolved": "https://registry.npmjs.org/@fluentui/react-textarea/-/react-textarea-9.3.83.tgz", - "integrity": "sha512-Oiy5Ahkx44Gpm3g0rch1YyskW7xejiF5gWNR0LgoNJVSFeOS5eHz6GdHOva710IOGVQf71408uFZLancXxFz0A==", + "version": "9.3.86", + "resolved": "https://registry.npmjs.org/@fluentui/react-textarea/-/react-textarea-9.3.86.tgz", + "integrity": "sha512-ZUDXTiaFxIico7n14yVStNa3emLrm3one3HWTwpifr2vBuZtDHczShn+5E4rfHIZZfB0p0i0o2sX/gUBldVi6w==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.71", + "@fluentui/react-field": "^9.1.74", "@fluentui/react-jsx-runtime": "^9.0.42", "@fluentui/react-shared-contexts": "^9.20.0", "@fluentui/react-theme": "^9.1.19", @@ -1770,25 +1821,26 @@ "version": "9.1.19", "resolved": "https://registry.npmjs.org/@fluentui/react-theme/-/react-theme-9.1.19.tgz", "integrity": "sha512-mrVhKbr4o9UKERPxgghIRDU59S7gRizrgz3/wwyMt7elkr8Sw+OpwKIeEw9x6P0RTcFDC00nggaMJhBGs7Xo4A==", + "license": "MIT", "dependencies": { "@fluentui/tokens": "1.0.0-alpha.16", "@swc/helpers": "^0.5.1" } }, "node_modules/@fluentui/react-toast": { - "version": "9.3.51", - "resolved": "https://registry.npmjs.org/@fluentui/react-toast/-/react-toast-9.3.51.tgz", - "integrity": "sha512-msbIdN1x4XlifDDxaoV54aQ+dCjIVH7l9J37mG98ySrjP1F+QpDcaZ87xPb0Cpfg/oUkdvsK6FCeCl6HrWIGWA==", + "version": "9.3.54", + "resolved": "https://registry.npmjs.org/@fluentui/react-toast/-/react-toast-9.3.54.tgz", + "integrity": "sha512-y/BW/ojmb4EFGEo/dxbZhVBC/feQ2ttftqQkY477wWWOcRm9rnOTfZ/cnSRdeOGvzZcoMylnWQR6cj2Fz0PrsQ==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.2", + "@fluentui/react-aria": "^9.13.4", "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", - "@fluentui/react-motion": "^9.4.0", - "@fluentui/react-portal": "^9.4.31", + "@fluentui/react-motion": "^9.5.0", + "@fluentui/react-portal": "^9.4.33", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -1802,18 +1854,18 @@ } }, "node_modules/@fluentui/react-toolbar": { - "version": "9.1.90", - "resolved": "https://registry.npmjs.org/@fluentui/react-toolbar/-/react-toolbar-9.1.90.tgz", - "integrity": "sha512-nN/18X/ef2uwJ6uDQOq1yv71RGuwOXUVXZHcMdp7OuePqb9G33S9p1s4dp8TFeBO2yzNOB3kh1hNswVVQ4PyFw==", + "version": "9.2.3", + "resolved": "https://registry.npmjs.org/@fluentui/react-toolbar/-/react-toolbar-9.2.3.tgz", + "integrity": "sha512-6cXvalIkqTG0Rc8KojLGv16ah4lhyYOCPzdmZr6L55yGr2AZujkc31DIOv/nWMQmubZP0yXKN9jX+uC79xyi9w==", "license": "MIT", "dependencies": { - "@fluentui/react-button": "^9.3.87", + "@fluentui/react-button": "^9.3.89", "@fluentui/react-context-selector": "^9.1.65", "@fluentui/react-divider": "^9.2.73", "@fluentui/react-jsx-runtime": "^9.0.42", - "@fluentui/react-radio": "^9.2.27", + "@fluentui/react-radio": "^9.2.30", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -1827,17 +1879,17 @@ } }, "node_modules/@fluentui/react-tooltip": { - "version": "9.4.34", - "resolved": "https://registry.npmjs.org/@fluentui/react-tooltip/-/react-tooltip-9.4.34.tgz", - "integrity": "sha512-mwyuCEiFrVGmyU/W/U2VVGT9i9uKKQMXNoy1NDGjARs7gzxXRvsFr0xME+7PhA8gyvK393rDn9d5aK3XqmuDVA==", + "version": "9.4.37", + "resolved": "https://registry.npmjs.org/@fluentui/react-tooltip/-/react-tooltip-9.4.37.tgz", + "integrity": "sha512-Tk8a3W+8UBu0y1vAfLNU/OPWXuoDgX3Kts6ml8bZAKmKbq5M9OlnoXA7rOEU2IV7LWHTw25mkqUpPebjW4zpRw==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", "@fluentui/react-jsx-runtime": "^9.0.42", - "@fluentui/react-portal": "^9.4.31", - "@fluentui/react-positioning": "^9.15.6", + "@fluentui/react-portal": "^9.4.33", + "@fluentui/react-positioning": "^9.15.7", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -1851,22 +1903,24 @@ } }, "node_modules/@fluentui/react-tree": { - "version": "9.7.5", - "resolved": "https://registry.npmjs.org/@fluentui/react-tree/-/react-tree-9.7.5.tgz", - "integrity": "sha512-RShNuaSJPKIUPtX7SQ0VXJgWTcSOMjrZQMUQDibqK+YoV1xQbtgs0k3ykU1OeqtwUAdOWjywqwtism4jFlZENg==", + "version": "9.7.11", + "resolved": "https://registry.npmjs.org/@fluentui/react-tree/-/react-tree-9.7.11.tgz", + "integrity": "sha512-2WDc3J27XYDqpMNVk4k9T7VWosVHru+c0YYGWtx7gWKTrGwoNHdnxtSK+22o8YQKN8+GFmWQIse6thdpqsCA1A==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.2", - "@fluentui/react-avatar": "^9.6.33", - "@fluentui/react-button": "^9.3.87", - "@fluentui/react-checkbox": "^9.2.32", + "@fluentui/react-aria": "^9.13.4", + "@fluentui/react-avatar": "^9.6.37", + "@fluentui/react-button": "^9.3.89", + "@fluentui/react-checkbox": "^9.2.35", "@fluentui/react-context-selector": "^9.1.65", "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.0.42", - "@fluentui/react-radio": "^9.2.27", + "@fluentui/react-motion": "^9.5.0", + "@fluentui/react-motion-components-preview": "^0.1.2", + "@fluentui/react-radio": "^9.2.30", "@fluentui/react-shared-contexts": "^9.20.0", - "@fluentui/react-tabster": "^9.22.3", + "@fluentui/react-tabster": "^9.22.5", "@fluentui/react-theme": "^9.1.19", "@fluentui/react-utilities": "^9.18.13", "@griffel/react": "^1.5.22", @@ -1914,9 +1968,9 @@ } }, "node_modules/@fluentui/react-window-provider": { - "version": "2.2.27", - "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.27.tgz", - "integrity": "sha512-Dg0G9bizjryV0Q/r0CPtCVTPa2II/EsT9E6JT3jPSALjQADDLlW4/+ZXbcEC7geZ/40+KpZDmhplvk/AJSFBKg==", + "version": "2.2.28", + "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.28.tgz", + "integrity": "sha512-YdZ74HTaoDwlvLDzoBST80/17ExIl93tLJpTxnqK5jlJOAUVQ+mxLPF2HQEJq+SZr5IMXHsQ56w/KaZVRn72YA==", "license": "MIT", "dependencies": { "@fluentui/set-version": "^8.2.23", @@ -1937,28 +1991,28 @@ } }, "node_modules/@fluentui/style-utilities": { - "version": "8.10.18", - "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.10.18.tgz", - "integrity": "sha512-nsXc6LI/UaPrJUh71WIqR19+mmfPl0b4qhaBUOzBGznGKU8jKlHT94pJbAIhWIjytdS8Zk8qtgStI+oYMxz9xg==", + "version": "8.10.21", + "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.10.21.tgz", + "integrity": "sha512-tqdSQI1MAnNUPtNKKV9LeNqmEhBZL+lpV+m6Ngl6SDuR0aQkMkuo1jA9rPxNRLUf5+pbI8LrNQ4WiCWqYkV/QQ==", "license": "MIT", "dependencies": { - "@fluentui/merge-styles": "^8.6.12", + "@fluentui/merge-styles": "^8.6.13", "@fluentui/set-version": "^8.2.23", - "@fluentui/theme": "^2.6.56", - "@fluentui/utilities": "^8.15.13", + "@fluentui/theme": "^2.6.59", + "@fluentui/utilities": "^8.15.15", "@microsoft/load-themed-styles": "^1.10.26", "tslib": "^2.1.0" } }, "node_modules/@fluentui/theme": { - "version": "2.6.56", - "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.56.tgz", - "integrity": "sha512-uUDfZpye7e+oXpmP0DOboBYKlyAxbLamnVdWs1a7l6fWEqTNfwDPIPZpMkdDmIBTjE6Q9eHP1u1PmQpMSlz0wA==", + "version": "2.6.59", + "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.59.tgz", + "integrity": "sha512-o/6UgKgPW6QI/+2OfCXeJfcOCbtzLIwM/3W/DzI2Pjt56ubT98IEcb32NCHoIKB2xkEnJoTjGgN1m+vHAvcQxA==", "license": "MIT", "dependencies": { - "@fluentui/merge-styles": "^8.6.12", + "@fluentui/merge-styles": "^8.6.13", "@fluentui/set-version": "^8.2.23", - "@fluentui/utilities": "^8.15.13", + "@fluentui/utilities": "^8.15.15", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1970,19 +2024,20 @@ "version": "1.0.0-alpha.16", "resolved": "https://registry.npmjs.org/@fluentui/tokens/-/tokens-1.0.0-alpha.16.tgz", "integrity": "sha512-Gr9G8LIlUhZYX5j6CfDQrofQqsWAz/q54KabWn1tWV/1083WwyoTZXiG1k6b37NnK7Feye7D7Nz+4MNqoKpXGw==", + "license": "MIT", "dependencies": { "@swc/helpers": "^0.5.1" } }, "node_modules/@fluentui/utilities": { - "version": "8.15.13", - "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.15.13.tgz", - "integrity": "sha512-DrPv5baKHYtwB+OFqtGiOucdHFbqbnW7TSyxigADYkZQzJj1lnw5DoEGsVyMMVacD4vR21L3JfkMmfrhWm6hyw==", + "version": "8.15.15", + "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.15.15.tgz", + "integrity": "sha512-7GpET/AuWR8aBEQSQj9iO2j+9riAaoK1qBduCB4Ht6353d25vwwsKXreHZGqS8efv+NNIxQTlLWz0Rq73iQFWw==", "license": "MIT", "dependencies": { "@fluentui/dom-utilities": "^2.3.7", - "@fluentui/merge-styles": "^8.6.12", - "@fluentui/react-window-provider": "^2.2.27", + "@fluentui/merge-styles": "^8.6.13", + "@fluentui/react-window-provider": "^2.2.28", "@fluentui/set-version": "^8.2.23", "tslib": "^2.1.0" }, @@ -1992,9 +2047,9 @@ } }, "node_modules/@griffel/core": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@griffel/core/-/core-1.17.1.tgz", - "integrity": "sha512-K3osVOktJ5nioY62idtkjLiIdVcazMwraNxkUMhLtoapDthnKVSC3+gYTuPCBZMdfLH5Hl5Y29YUClRlDjyb7g==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@griffel/core/-/core-1.18.0.tgz", + "integrity": "sha512-3Dkn6f7ULeSzJ1wLyLfN1vc+v3q5shuEejeMe4XymBozQo0l35WIfH8FWcwB+Xrgip4fLLOy1p3sYN85gFGZxw==", "license": "MIT", "dependencies": { "@emotion/hash": "^0.9.0", @@ -2006,12 +2061,12 @@ } }, "node_modules/@griffel/react": { - "version": "1.5.24", - "resolved": "https://registry.npmjs.org/@griffel/react/-/react-1.5.24.tgz", - "integrity": "sha512-WDxWyg182kL/aFCViybARAm/ZFVZoJDiW52pguveZx6cJvvc51esZ2qYJhsbMoy8cqOfnfOrWhOibdb89kgXAQ==", + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@griffel/react/-/react-1.5.25.tgz", + "integrity": "sha512-ZGiCdn71VIX56fd3AxM7ouCxgClPvunOFIpXxFKebGJ94/rdj4sIbahuI1QBUFuU4/bqUyD6QonjDEpFBl9ORw==", "license": "MIT", "dependencies": { - "@griffel/core": "^1.17.1", + "@griffel/core": "^1.18.0", "tslib": "^2.1.0" }, "peerDependencies": { @@ -2027,6 +2082,13 @@ "csstype": "^3.1.3" } }, + "node_modules/@hapi/bourne": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-3.0.0.tgz", + "integrity": "sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/@hpcc-js/api": { "version": "2.13.0", "resolved": "https://registry.npmjs.org/@hpcc-js/api/-/api-2.13.0.tgz", @@ -2081,9 +2143,9 @@ } }, "node_modules/@hpcc-js/comms": { - "version": "2.95.0", - "resolved": "https://registry.npmjs.org/@hpcc-js/comms/-/comms-2.95.0.tgz", - "integrity": "sha512-kzEyDxf1Msus5rhU0yO826JxgIl2kh/bI7yNTxHAlCfLKp4SU//zrj/MK5SuEDs2lUHvmTkfx1jbfGUAK3RGFg==", + "version": "2.95.1", + "resolved": "https://registry.npmjs.org/@hpcc-js/comms/-/comms-2.95.1.tgz", + "integrity": "sha512-zygjJDGYzh0hhZhVf+RAnEXu4jPtlEbGB9+23klrPCvrKXzzQv426N9+Ui7i82HFtzJzQg+orjfI8Tu2NavsuQ==", "license": "Apache-2.0", "dependencies": { "@hpcc-js/ddl-shim": "^2.21.0", @@ -2096,25 +2158,6 @@ "undici": "5.28.4" } }, - "node_modules/@hpcc-js/comms/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/@hpcc-js/dataflow": { "version": "8.1.7", "resolved": "https://registry.npmjs.org/@hpcc-js/dataflow/-/dataflow-8.1.7.tgz", @@ -2126,6 +2169,7 @@ "resolved": "https://registry.npmjs.org/@hpcc-js/ddl-shim/-/ddl-shim-2.21.0.tgz", "integrity": "sha512-Q66GJqvmTNysmgj/Du8/6+1xIhKgylNu8XVbx1ovNLcLoCxJIhtfWBhCYx0aY2aFHN+QnjC0BGXWyn3xCyxpnw==", "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "ajv": "6.12.6" }, @@ -2346,47 +2390,6 @@ "dot-wasm": "bin/dot-wasm.js" } }, - "node_modules/@hpcc-js/wasm/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@hpcc-js/wasm/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@hpcc-js/wasm/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -2403,10 +2406,34 @@ "node": ">=10.10.0" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "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": { @@ -2544,10 +2571,11 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -2563,20 +2591,22 @@ } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", @@ -2594,6 +2624,7 @@ "resolved": "https://registry.npmjs.org/@koa/cors/-/cors-5.0.0.tgz", "integrity": "sha512-x/iUDjcS90W69PryLDIMgFyV21YLTnG9zOpPXS7Bkt2b8AsY3zZsIpOLBkYr9fBcF3HbkKaER5hOBZLfpLgYNw==", "dev": true, + "license": "MIT", "dependencies": { "vary": "^1.1.2" }, @@ -2759,15 +2790,17 @@ } }, "node_modules/@microsoft/load-themed-styles": { - "version": "1.10.247", - "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.247.tgz", - "integrity": "sha512-vKbuG3Mcbc4kkNAcIE13aIv5KoI2g+tHFFIZnFhtUilpYHc0VsMd4Fw7Jz81A8AB7L3wWu3OZB2CNiRnr1a3ew==" + "version": "1.10.295", + "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.295.tgz", + "integrity": "sha512-W+IzEBw8a6LOOfRJM02dTT7BDZijxm+Z7lhtOAz1+y9vQm1Kdz9jlAO+qCEKsfxtUOmKilW8DIRqFw2aUgKeGg==", + "license": "MIT" }, "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==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2781,6 +2814,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -2790,6 +2824,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2799,9 +2834,10 @@ } }, "node_modules/@octokit/app": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/@octokit/app/-/app-14.0.2.tgz", - "integrity": "sha512-NCSCktSx+XmjuSUVn2dLfqQ9WIYePGP95SDJs4I9cn/0ZkeXcPkaoCLl64Us3dRKL2ozC7hArwze5Eu+/qt1tg==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@octokit/app/-/app-14.1.0.tgz", + "integrity": "sha512-g3uEsGOQCBl1+W1rgfwoRFUIR6PtvB2T1E4RpygeUU5LrLvlOqcxrt5lfykIeRpUPpupreGJUYl70fqMDXdTpw==", + "license": "MIT", "dependencies": { "@octokit/auth-app": "^6.0.0", "@octokit/auth-unauthenticated": "^5.0.0", @@ -2816,41 +2852,50 @@ } }, "node_modules/@octokit/auth-app": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-6.0.1.tgz", - "integrity": "sha512-tjCD4nzQNZgmLH62+PSnTF6eGerisFgV4v6euhqJik6yWV96e1ZiiGj+NXIqbgnpjLmtnBqVUrNyGKu3DoGEGA==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-6.1.2.tgz", + "integrity": "sha512-fWjIOpxnL8/YFY3kqquciFQ4o99aCqHw5kMFoGPYbz/h5HNZ11dJlV9zag5wS2nt0X1wJ5cs9BUo+CsAPfW4jQ==", + "license": "MIT", "dependencies": { - "@octokit/auth-oauth-app": "^7.0.0", - "@octokit/auth-oauth-user": "^4.0.0", - "@octokit/request": "^8.0.2", - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^12.0.0", + "@octokit/auth-oauth-app": "^7.1.0", + "@octokit/auth-oauth-user": "^4.1.0", + "@octokit/request": "^8.3.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", "deprecation": "^2.3.1", "lru-cache": "^10.0.0", - "universal-github-app-jwt": "^1.1.1", + "universal-github-app-jwt": "^1.1.2", "universal-user-agent": "^6.0.0" }, "engines": { "node": ">= 18" } }, - "node_modules/@octokit/auth-app/node_modules/lru-cache": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", - "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", - "engines": { - "node": "14 || >=16.14" + "node_modules/@octokit/auth-app/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", + "license": "MIT" + }, + "node_modules/@octokit/auth-app/node_modules/@octokit/types": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", + "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" } }, "node_modules/@octokit/auth-oauth-app": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-7.0.1.tgz", - "integrity": "sha512-RE0KK0DCjCHXHlQBoubwlLijXEKfhMhKm9gO56xYvFmP1QTMb+vvwRPmQLLx0V+5AvV9N9I3lr1WyTzwL3rMDg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-7.1.0.tgz", + "integrity": "sha512-w+SyJN/b0l/HEb4EOPRudo7uUOSW51jcK1jwLa+4r7PA8FPFpoxEnHBHMITqCsc/3Vo2qqFjgQfz/xUUvsSQnA==", + "license": "MIT", "dependencies": { - "@octokit/auth-oauth-device": "^6.0.0", - "@octokit/auth-oauth-user": "^4.0.0", - "@octokit/request": "^8.0.2", - "@octokit/types": "^12.0.0", + "@octokit/auth-oauth-device": "^6.1.0", + "@octokit/auth-oauth-user": "^4.1.0", + "@octokit/request": "^8.3.1", + "@octokit/types": "^13.0.0", "@types/btoa-lite": "^1.0.0", "btoa-lite": "^1.0.0", "universal-user-agent": "^6.0.0" @@ -2859,29 +2904,61 @@ "node": ">= 18" } }, + "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", + "license": "MIT" + }, + "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/types": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", + "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, "node_modules/@octokit/auth-oauth-device": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-6.0.1.tgz", - "integrity": "sha512-yxU0rkL65QkjbqQedgVx3gmW7YM5fF+r5uaSj9tM/cQGVqloXcqP2xK90eTyYvl29arFVCW8Vz4H/t47mL0ELw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-6.1.0.tgz", + "integrity": "sha512-FNQ7cb8kASufd6Ej4gnJ3f1QB5vJitkoV1O0/g6e6lUsQ7+VsSNRHRmFScN2tV4IgKA12frrr/cegUs0t+0/Lw==", + "license": "MIT", "dependencies": { - "@octokit/oauth-methods": "^4.0.0", - "@octokit/request": "^8.0.0", - "@octokit/types": "^12.0.0", + "@octokit/oauth-methods": "^4.1.0", + "@octokit/request": "^8.3.1", + "@octokit/types": "^13.0.0", "universal-user-agent": "^6.0.0" }, "engines": { "node": ">= 18" } }, + "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", + "license": "MIT" + }, + "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/types": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", + "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, "node_modules/@octokit/auth-oauth-user": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-4.0.1.tgz", - "integrity": "sha512-N94wWW09d0hleCnrO5wt5MxekatqEJ4zf+1vSe8MKMrhZ7gAXKFOKrDEZW2INltvBWJCyDUELgGRv8gfErH1Iw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-4.1.0.tgz", + "integrity": "sha512-FrEp8mtFuS/BrJyjpur+4GARteUCrPeR/tZJzD8YourzoVhRics7u7we/aDcKv+yywRNwNi/P4fRi631rG/OyQ==", + "license": "MIT", "dependencies": { - "@octokit/auth-oauth-device": "^6.0.0", - "@octokit/oauth-methods": "^4.0.0", - "@octokit/request": "^8.0.2", - "@octokit/types": "^12.0.0", + "@octokit/auth-oauth-device": "^6.1.0", + "@octokit/oauth-methods": "^4.1.0", + "@octokit/request": "^8.3.1", + "@octokit/types": "^13.0.0", "btoa-lite": "^1.0.0", "universal-user-agent": "^6.0.0" }, @@ -2889,10 +2966,26 @@ "node": ">= 18" } }, + "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", + "license": "MIT" + }, + "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/types": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", + "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, "node_modules/@octokit/auth-token": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", + "license": "MIT", "engines": { "node": ">= 18" } @@ -2901,6 +2994,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-5.0.1.tgz", "integrity": "sha512-oxeWzmBFxWd+XolxKTc4zr+h3mt+yofn4r7OfoIkR/Cj/o70eEGmPsFbueyJE2iBAGpjgTnEOKM3pnuEGVmiqg==", + "license": "MIT", "dependencies": { "@octokit/request-error": "^5.0.0", "@octokit/types": "^12.0.0" @@ -2910,15 +3004,16 @@ } }, "node_modules/@octokit/core": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.0.2.tgz", - "integrity": "sha512-cZUy1gUvd4vttMic7C0lwPed8IYXWYp8kHIMatyhY8t8n3Cpw2ILczkV5pGMPqef7v0bLo0pOHrEHarsau2Ydg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz", + "integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==", + "license": "MIT", "dependencies": { "@octokit/auth-token": "^4.0.0", - "@octokit/graphql": "^7.0.0", - "@octokit/request": "^8.0.2", - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^12.0.0", + "@octokit/graphql": "^7.1.0", + "@octokit/request": "^8.3.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.0.0", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" }, @@ -2926,35 +3021,83 @@ "node": ">= 18" } }, + "node_modules/@octokit/core/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", + "license": "MIT" + }, + "node_modules/@octokit/core/node_modules/@octokit/types": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", + "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, "node_modules/@octokit/endpoint": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.3.tgz", - "integrity": "sha512-TXVX57fJV7SA6LvRkeXPIOBr8AKvKDlhwNVBP/26O9DjIFi+CkYZGFLP9WtPdVOicRIhqGHxBCC6Fdj5AWWGgQ==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", + "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", + "license": "MIT", "dependencies": { - "@octokit/types": "^12.0.0", + "@octokit/types": "^13.1.0", "universal-user-agent": "^6.0.0" }, "engines": { "node": ">= 18" } }, + "node_modules/@octokit/endpoint/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", + "license": "MIT" + }, + "node_modules/@octokit/endpoint/node_modules/@octokit/types": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", + "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, "node_modules/@octokit/graphql": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.2.tgz", - "integrity": "sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz", + "integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==", + "license": "MIT", "dependencies": { - "@octokit/request": "^8.0.1", - "@octokit/types": "^12.0.0", + "@octokit/request": "^8.3.0", + "@octokit/types": "^13.0.0", "universal-user-agent": "^6.0.0" }, "engines": { "node": ">= 18" } }, + "node_modules/@octokit/graphql/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", + "license": "MIT" + }, + "node_modules/@octokit/graphql/node_modules/@octokit/types": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", + "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, "node_modules/@octokit/oauth-app": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@octokit/oauth-app/-/oauth-app-6.0.0.tgz", - "integrity": "sha512-bNMkS+vJ6oz2hCyraT9ZfTpAQ8dZNqJJQVNaKjPLx4ue5RZiFdU1YWXguOPR8AaSHS+lKe+lR3abn2siGd+zow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@octokit/oauth-app/-/oauth-app-6.1.0.tgz", + "integrity": "sha512-nIn/8eUJ/BKUVzxUXd5vpzl1rwaVxMyYbQkNZjHrF7Vk/yu98/YDF/N2KeWO7uZ0g3b5EyiFXFkZI8rJ+DH1/g==", + "license": "MIT", "dependencies": { "@octokit/auth-oauth-app": "^7.0.0", "@octokit/auth-oauth-user": "^4.0.0", @@ -2973,25 +3116,42 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-6.0.2.tgz", "integrity": "sha512-CdoJukjXXxqLNK4y/VOiVzQVjibqoj/xHgInekviUJV73y/BSIcwvJ/4aNHPBPKcPWFnd4/lO9uqRV65jXhcLA==", + "license": "MIT", "engines": { "node": ">= 18" } }, "node_modules/@octokit/oauth-methods": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-4.0.1.tgz", - "integrity": "sha512-1NdTGCoBHyD6J0n2WGXg9+yDLZrRNZ0moTEex/LSPr49m530WNKcCfXDghofYptr3st3eTii+EHoG5k/o+vbtw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-4.1.0.tgz", + "integrity": "sha512-4tuKnCRecJ6CG6gr0XcEXdZtkTDbfbnD5oaHBmLERTjTMZNi2CbfEHZxPU41xXLDG4DfKf+sonu00zvKI9NSbw==", + "license": "MIT", "dependencies": { "@octokit/oauth-authorization-url": "^6.0.2", - "@octokit/request": "^8.0.2", - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^12.0.0", + "@octokit/request": "^8.3.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.0.0", "btoa-lite": "^1.0.0" }, "engines": { "node": ">= 18" } }, + "node_modules/@octokit/oauth-methods/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", + "license": "MIT" + }, + "node_modules/@octokit/oauth-methods/node_modules/@octokit/types": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", + "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, "node_modules/@octokit/openapi-types": { "version": "20.0.0", "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", @@ -2999,9 +3159,10 @@ "license": "MIT" }, "node_modules/@octokit/plugin-paginate-graphql": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-graphql/-/plugin-paginate-graphql-4.0.0.tgz", - "integrity": "sha512-7HcYW5tP7/Z6AETAPU14gp5H5KmCPT3hmJrS/5tO7HIgbwenYmgw4OY9Ma54FDySuxMwD+wsJlxtuGWwuZuItA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-graphql/-/plugin-paginate-graphql-4.0.1.tgz", + "integrity": "sha512-R8ZQNmrIKKpHWC6V2gum4x9LG2qF1RxRjo27gjQcG3j+vf2tLsEfE7I/wRWEPzYMaenr1M+qDAtNcwZve1ce1A==", + "license": "MIT", "engines": { "node": ">= 18" }, @@ -3010,17 +3171,18 @@ } }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.4.tgz", - "integrity": "sha512-MvZx4WvfhBnt7PtH5XE7HORsO7bBk4er1FgRIUr1qJ89NR2I6bWjGyKsxk8z42FPQ34hFQm0Baanh4gzdZR4gQ==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.1.tgz", + "integrity": "sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==", + "license": "MIT", "dependencies": { - "@octokit/types": "^12.3.0" + "@octokit/types": "^12.6.0" }, "engines": { "node": ">= 18" }, "peerDependencies": { - "@octokit/core": ">=5" + "@octokit/core": "5" } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { @@ -3042,6 +3204,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-6.0.1.tgz", "integrity": "sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==", + "license": "MIT", "dependencies": { "@octokit/request-error": "^5.0.0", "@octokit/types": "^12.0.0", @@ -3055,9 +3218,10 @@ } }, "node_modules/@octokit/plugin-throttling": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-8.1.3.tgz", - "integrity": "sha512-pfyqaqpc0EXh5Cn4HX9lWYsZ4gGbjnSmUILeu4u2gnuM50K/wIk9s1Pxt3lVeVwekmITgN/nJdoh43Ka+vye8A==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-8.2.0.tgz", + "integrity": "sha512-nOpWtLayKFpgqmgD0y3GqXafMFuKcA4tRPZIfu7BArd2lEZeb1988nhWhwx4aZWmjDmUfdgVf7W+Tt4AmvRmMQ==", + "license": "MIT", "dependencies": { "@octokit/types": "^12.2.0", "bottleneck": "^2.15.3" @@ -3070,13 +3234,14 @@ } }, "node_modules/@octokit/request": { - "version": "8.1.6", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.1.6.tgz", - "integrity": "sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", + "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", + "license": "MIT", "dependencies": { - "@octokit/endpoint": "^9.0.0", - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^12.0.0", + "@octokit/endpoint": "^9.0.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", "universal-user-agent": "^6.0.0" }, "engines": { @@ -3084,11 +3249,12 @@ } }, "node_modules/@octokit/request-error": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.1.tgz", - "integrity": "sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", + "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", + "license": "MIT", "dependencies": { - "@octokit/types": "^12.0.0", + "@octokit/types": "^13.1.0", "deprecation": "^2.0.0", "once": "^1.4.0" }, @@ -3096,6 +3262,36 @@ "node": ">= 18" } }, + "node_modules/@octokit/request-error/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", + "license": "MIT" + }, + "node_modules/@octokit/request-error/node_modules/@octokit/types": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", + "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/@octokit/request/node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", + "license": "MIT" + }, + "node_modules/@octokit/request/node_modules/@octokit/types": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", + "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, "node_modules/@octokit/types": { "version": "12.6.0", "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", @@ -3106,13 +3302,14 @@ } }, "node_modules/@octokit/webhooks": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-12.0.8.tgz", - "integrity": "sha512-IndolsepJQtsGo7pyNRnftla/6Gn6Vejk6iV/RmKP76Z7QNFLanZvoJkU8CLMcOjmJk/6X8T2TfpCXVw68RenQ==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-12.2.0.tgz", + "integrity": "sha512-CyuLJ0/P7bKZ+kIYw+fnkeVdhUzNuDKgNSI7pU/m7Nod0T7kP+s4s2f0pNmG9HL8/RZN1S0ZWTDll3VTMrFLAw==", + "license": "MIT", "dependencies": { "@octokit/request-error": "^5.0.0", - "@octokit/webhooks-methods": "^4.0.0", - "@octokit/webhooks-types": "7.1.0", + "@octokit/webhooks-methods": "^4.1.0", + "@octokit/webhooks-types": "7.4.0", "aggregate-error": "^3.1.0" }, "engines": { @@ -3120,17 +3317,19 @@ } }, "node_modules/@octokit/webhooks-methods": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-4.0.0.tgz", - "integrity": "sha512-M8mwmTXp+VeolOS/kfRvsDdW+IO0qJ8kYodM/sAysk093q6ApgmBXwK1ZlUvAwXVrp/YVHp6aArj4auAxUAOFw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-4.1.0.tgz", + "integrity": "sha512-zoQyKw8h9STNPqtm28UGOYFE7O6D4Il8VJwhAtMHFt2C4L0VQT1qGKLeefUOqHNs1mNRYSadVv7x0z8U2yyeWQ==", + "license": "MIT", "engines": { "node": ">= 18" } }, "node_modules/@octokit/webhooks-types": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-7.1.0.tgz", - "integrity": "sha512-y92CpG4kFFtBBjni8LHoV12IegJ+KFxLgKRengrVjKmGE5XMeCuGvlfRe75lTRrgXaG6XIWJlFpIDTlkoJsU8w==" + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-7.4.0.tgz", + "integrity": "sha512-FE2V+QZ2UYlh+9wWd5BPLNXG+J/XUD/PPq0ovS+nCcGX4+3qVbi3jYOmCTW48hg9SBBLtInx9+o7fFt4H5iP0Q==", + "license": "MIT" }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", @@ -3148,14 +3347,16 @@ "resolved": "https://registry.npmjs.org/@simbathesailor/use-what-changed/-/use-what-changed-2.0.0.tgz", "integrity": "sha512-ulBNrPSvfho9UN6zS2fii3AsdEcp2fMaKeqUZZeCNPaZbB6aXyTUhpEN9atjMAbu/eyK3AY8L4SYJUG62Ekocw==", "dev": true, + "license": "MIT", "peerDependencies": { "react": ">=16" } }, "node_modules/@swc/helpers": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", - "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", + "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.4.0" } @@ -3165,20 +3366,23 @@ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/@types/aws-lambda": { - "version": "8.10.129", - "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.129.tgz", - "integrity": "sha512-0Rl7CpTPVws5cp0Ui1gZh4Q+TXC65bXVwTOGoI2RKW45dxWzyZGbjIX0uFjFYdIJ8vnD45y584rIIqvD2vBBfQ==" + "version": "8.10.145", + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.145.tgz", + "integrity": "sha512-dtByW6WiFk5W5Jfgz1VM+YPA21xMXTuSFoLYIDY0L44jDLLflVPtZkYuu3/YxpGcvjzKFBZLU+GyKjR0HOYtyw==", + "license": "MIT" }, "node_modules/@types/body-parser": { "version": "1.19.5", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dev": true, + "license": "MIT", "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -3189,6 +3393,7 @@ "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -3196,18 +3401,21 @@ "node_modules/@types/btoa-lite": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@types/btoa-lite/-/btoa-lite-1.0.2.tgz", - "integrity": "sha512-ZYbcE2x7yrvNFJiU7xJGrpF/ihpkM7zKgw8bha3LNJSesvTtUNxbpzaT7WXBIryf6jovisrxTBvymxMeLLj1Mg==" + "integrity": "sha512-ZYbcE2x7yrvNFJiU7xJGrpF/ihpkM7zKgw8bha3LNJSesvTtUNxbpzaT7WXBIryf6jovisrxTBvymxMeLLj1Mg==", + "license": "MIT" }, "node_modules/@types/caseless": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz", - "integrity": "sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==" + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz", + "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==", + "license": "MIT" }, "node_modules/@types/connect": { "version": "3.4.38", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -3217,6 +3425,7 @@ "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", "dev": true, + "license": "MIT", "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" @@ -3225,12 +3434,14 @@ "node_modules/@types/d3-array": { "version": "1.2.12", "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-1.2.12.tgz", - "integrity": "sha512-zIq9wCg/JO7MGC6vq3HRDaVYkqgSPIDjpo3JhAQxl7PHYVPA5D9SMiBfjW/ZoAvPd2a+rkovqBg0nS0QOChsJQ==" + "integrity": "sha512-zIq9wCg/JO7MGC6vq3HRDaVYkqgSPIDjpo3JhAQxl7PHYVPA5D9SMiBfjW/ZoAvPd2a+rkovqBg0nS0QOChsJQ==", + "license": "MIT" }, "node_modules/@types/d3-brush": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-1.1.8.tgz", "integrity": "sha512-tPVjYAjJt02fgazF9yiX/309sj6qhIiIopLuHhP4FFFq9VKqu9NQBeCK3ger0RHVZGs9RKaSBUWyPUzii5biGQ==", + "license": "MIT", "dependencies": { "@types/d3-selection": "^1" } @@ -3238,22 +3449,26 @@ "node_modules/@types/d3-collection": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/@types/d3-collection/-/d3-collection-1.0.13.tgz", - "integrity": "sha512-v0Rgw3IZebRyamcwVmtTDCZ8OmQcj4siaYjNc7wGMZT7PmdSHawGsCOQMxyLvZ7lWjfohYLK0oXtilMOMgfY8A==" + "integrity": "sha512-v0Rgw3IZebRyamcwVmtTDCZ8OmQcj4siaYjNc7wGMZT7PmdSHawGsCOQMxyLvZ7lWjfohYLK0oXtilMOMgfY8A==", + "license": "MIT" }, "node_modules/@types/d3-color": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-1.4.5.tgz", - "integrity": "sha512-5sNP3DmtSnSozxcjqmzQKsDOuVJXZkceo1KJScDc1982kk/TS9mTPc6lpli1gTu1MIBF1YWutpHpjucNWcIj5g==" + "integrity": "sha512-5sNP3DmtSnSozxcjqmzQKsDOuVJXZkceo1KJScDc1982kk/TS9mTPc6lpli1gTu1MIBF1YWutpHpjucNWcIj5g==", + "license": "MIT" }, "node_modules/@types/d3-dispatch": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-1.0.12.tgz", - "integrity": "sha512-vrhleoVNhGJGx7GQZ4207lYGyMbW/yj/iJTSvLKyfAp8nXFF+19dnMpPN/nEVs6fudIsQc7ZelBFUMe3aJDmKw==" + "integrity": "sha512-vrhleoVNhGJGx7GQZ4207lYGyMbW/yj/iJTSvLKyfAp8nXFF+19dnMpPN/nEVs6fudIsQc7ZelBFUMe3aJDmKw==", + "license": "MIT" }, "node_modules/@types/d3-drag": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-1.2.8.tgz", "integrity": "sha512-QM6H8E6r9/51BcE4NEluQ0f9dTECCTDEALJSQIWn183+Mtz/6KvEjOxW8VzKYSnhhL+qMljMKKA1WOUUf/4Qhw==", + "license": "MIT", "dependencies": { "@types/d3-selection": "^1" } @@ -3261,22 +3476,26 @@ "node_modules/@types/d3-dsv": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-1.2.8.tgz", - "integrity": "sha512-x1m1s0lVstZQ5/Kzp4bVIMee3fFuDm+hphVnvrYA7wU16XqwgbCBfeVvHYZzVQQIy4jyi3MEtgduLVuwIRCKLQ==" + "integrity": "sha512-x1m1s0lVstZQ5/Kzp4bVIMee3fFuDm+hphVnvrYA7wU16XqwgbCBfeVvHYZzVQQIy4jyi3MEtgduLVuwIRCKLQ==", + "license": "MIT" }, "node_modules/@types/d3-ease": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-1.0.13.tgz", - "integrity": "sha512-VAA4H8YNaNN0+UNIlpkwkLOj7xL5EGdyiQpdlAvOIRHckjGFCLK8eMoUd4+IMNEhQgweq0Yk/Dfzr70xhUo6hA==" + "integrity": "sha512-VAA4H8YNaNN0+UNIlpkwkLOj7xL5EGdyiQpdlAvOIRHckjGFCLK8eMoUd4+IMNEhQgweq0Yk/Dfzr70xhUo6hA==", + "license": "MIT" }, "node_modules/@types/d3-format": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-mLxrC1MSWupOSncXN/HOlWUAAIffAEBaI4+PKy2uMPsKe4FNZlk7qrbTjmzJXITQQqBHivaks4Td18azgqnotA==" + "integrity": "sha512-mLxrC1MSWupOSncXN/HOlWUAAIffAEBaI4+PKy2uMPsKe4FNZlk7qrbTjmzJXITQQqBHivaks4Td18azgqnotA==", + "license": "MIT" }, "node_modules/@types/d3-interpolate": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-1.4.5.tgz", "integrity": "sha512-k9L18hXXv7OvK4PqW1kSFYIzasGOvfhPUWmHFkoZ8/ci99EAmY4HoF6zMefrHl0SGV7XYc7Qq2MNh8dK3edg5A==", + "license": "MIT", "dependencies": { "@types/d3-color": "^1" } @@ -3285,6 +3504,7 @@ "version": "1.0.22", "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-1.0.22.tgz", "integrity": "sha512-9XHVg/pVr+4qbowUNKHYNouFCXQUQ0ZZr1ppGgh10DVUaEb6nKuyPj0May0mmTiLhuDEaa9di1t0Hmg6lYTSFw==", + "license": "MIT", "dependencies": { "@types/d3-time": "^1" } @@ -3292,22 +3512,26 @@ "node_modules/@types/d3-selection": { "version": "1.4.6", "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-1.4.6.tgz", - "integrity": "sha512-0MhJ/LzJe6/vQVxiYJnvNq5CD/MF6Qy0dLp4BEQ6Dz8oOaB0EMXfx1GGeBFSW+3VzgjaUrxK6uECDQj9VLa/Mg==" + "integrity": "sha512-0MhJ/LzJe6/vQVxiYJnvNq5CD/MF6Qy0dLp4BEQ6Dz8oOaB0EMXfx1GGeBFSW+3VzgjaUrxK6uECDQj9VLa/Mg==", + "license": "MIT" }, "node_modules/@types/d3-time": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-1.1.4.tgz", - "integrity": "sha512-JIvy2HjRInE+TXOmIGN5LCmeO0hkFZx5f9FZ7kiN+D+YTcc8pptsiLiuHsvwxwC7VVKmJ2ExHUgNlAiV7vQM9g==" + "integrity": "sha512-JIvy2HjRInE+TXOmIGN5LCmeO0hkFZx5f9FZ7kiN+D+YTcc8pptsiLiuHsvwxwC7VVKmJ2ExHUgNlAiV7vQM9g==", + "license": "MIT" }, "node_modules/@types/d3-time-format": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-2.3.4.tgz", - "integrity": "sha512-xdDXbpVO74EvadI3UDxjxTdR6QIxm1FKzEA/+F8tL4GWWUg/hgvBqf6chql64U5A9ZUGWo7pEu4eNlyLwbKdhg==" + "integrity": "sha512-xdDXbpVO74EvadI3UDxjxTdR6QIxm1FKzEA/+F8tL4GWWUg/hgvBqf6chql64U5A9ZUGWo7pEu4eNlyLwbKdhg==", + "license": "MIT" }, "node_modules/@types/d3-transition": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-1.3.5.tgz", "integrity": "sha512-gVj9AXXkoj0yKr1jsPJFkKoYTEmSdaYh8W7XBeRIhcspFX9b3MSwLxTerVHeEPXer9kYLvZfAINk8HcjWhwZSQ==", + "license": "MIT", "dependencies": { "@types/d3-selection": "^1" } @@ -3316,6 +3540,7 @@ "version": "1.8.7", "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-1.8.7.tgz", "integrity": "sha512-HJWci3jXwFIuFKDqGn5PmuwrhZvuFdrnUmtSKCLXFAWyf2lAIUKMKh1/lHOkWBl/f4KVupGricJiqkQy+cVTog==", + "license": "MIT", "dependencies": { "@types/d3-interpolate": "^1", "@types/d3-selection": "^1" @@ -3325,23 +3550,26 @@ "version": "1.9.48", "resolved": "https://registry.npmjs.org/@types/dojo/-/dojo-1.9.48.tgz", "integrity": "sha512-+/wltO++J0mmLoPa+mqElzilBahIfSY5Lz3o7RJkyIB0GDPnWhw3RUxU+xuZRCJE7uOFnNgqTdL76n/E0wDJ5w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/eslint": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", - "integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "node_modules/@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dev": true, + "license": "MIT", "dependencies": { "@types/eslint": "*", "@types/estree": "*" @@ -3351,13 +3579,15 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/express": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -3366,10 +3596,11 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.41", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", - "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", + "version": "4.19.5", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz", + "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -3387,6 +3618,7 @@ "version": "3.3.5", "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", + "license": "MIT", "dependencies": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" @@ -3396,32 +3628,37 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/http-proxy": { - "version": "1.17.14", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", - "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "version": "1.17.15", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", + "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/js-yaml": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz", - "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==" + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", + "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", + "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 + "dev": true, + "license": "MIT" }, "node_modules/@types/jsonwebtoken": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.5.tgz", - "integrity": "sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==", + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.6.tgz", + "integrity": "sha512-/5hndP5dCjloafCXns6SZyESp3Ldq7YjH3zwzwczYnjxIT0Fqzk5ROSYVGfFyczIue7IUEj8hkvLbPoLQ18vQw==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -3439,46 +3676,53 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "20.10.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.5.tgz", - "integrity": "sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==", + "version": "20.16.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.5.tgz", + "integrity": "sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA==", + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.19.2" } }, "node_modules/@types/node-forge": { - "version": "1.3.10", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.10.tgz", - "integrity": "sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==", + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/prop-types": { - "version": "15.7.4", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", - "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "license": "MIT" }, "node_modules/@types/qs": { - "version": "6.9.10", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", - "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==", - "dev": true + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", + "dev": true, + "license": "MIT" }, "node_modules/@types/range-parser": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/react": { "version": "17.0.80", "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.80.tgz", "integrity": "sha512-LrgHIu2lEtIo8M7d1FcI3BdwXWoRQwMoXOZ7+dPTW0lYREjmlHl3P0U1VD0i/9tppOuv8/sam7sOjx34TxSFbA==", + "license": "MIT", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "^0.16", @@ -3489,14 +3733,16 @@ "version": "17.0.25", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.25.tgz", "integrity": "sha512-urx7A7UxkZQmThYA4So0NelOVjx3V4rNFVJwp0WZlbIK5eM4rNJDiN3R/E9ix0MBh6kAEojk/9YL+Te6D9zHNA==", + "license": "MIT", "dependencies": { "@types/react": "^17" } }, "node_modules/@types/request": { - "version": "2.48.8", - "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.8.tgz", - "integrity": "sha512-whjk1EDJPcAR2kYHRbFl/lKeeKYTi05A15K9bnLInCVroNDCtXce57xKdI0/rQaA3K+6q0eFyUBPmqfSndUZdQ==", + "version": "2.48.12", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz", + "integrity": "sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==", + "license": "MIT", "dependencies": { "@types/caseless": "*", "@types/node": "*", @@ -3512,21 +3758,24 @@ "license": "MIT" }, "node_modules/@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", + "license": "MIT" }, "node_modules/@types/semver": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz", - "integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==", - "dev": true + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true, + "license": "MIT" }, "node_modules/@types/send": { "version": "0.17.4", "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dev": true, + "license": "MIT", "dependencies": { "@types/mime": "^1", "@types/node": "*" @@ -3537,19 +3786,21 @@ "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", "dev": true, + "license": "MIT", "dependencies": { "@types/express": "*" } }, "node_modules/@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "dev": true, + "license": "MIT", "dependencies": { "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" + "@types/node": "*", + "@types/send": "*" } }, "node_modules/@types/sockjs": { @@ -3557,19 +3808,22 @@ "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/tough-cookie": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", - "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==" + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "license": "MIT" }, "node_modules/@types/ws": { - "version": "8.5.10", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", - "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "version": "8.5.12", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz", + "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -3579,6 +3833,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.5.1", "@typescript-eslint/scope-manager": "6.21.0", @@ -3614,6 +3869,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/scope-manager": "6.21.0", "@typescript-eslint/types": "6.21.0", @@ -3642,6 +3898,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.21.0", "@typescript-eslint/visitor-keys": "6.21.0" @@ -3659,6 +3916,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "6.21.0", "@typescript-eslint/utils": "6.21.0", @@ -3686,6 +3944,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, + "license": "MIT", "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -3699,6 +3958,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "6.21.0", "@typescript-eslint/visitor-keys": "6.21.0", @@ -3722,35 +3982,12 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@typescript-eslint/utils": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", @@ -3776,6 +4013,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.21.0", "eslint-visitor-keys": "^3.4.1" @@ -3800,6 +4038,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/helper-numbers": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6" @@ -3809,25 +4048,29 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", @@ -3838,13 +4081,15 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", @@ -3857,6 +4102,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dev": true, + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -3866,6 +4112,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } @@ -3874,13 +4121,15 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", @@ -3897,6 +4146,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", @@ -3910,6 +4160,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", @@ -3922,6 +4173,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-api-error": "1.11.6", @@ -3936,6 +4188,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", "@xtuc/long": "4.2.2" @@ -3946,6 +4199,7 @@ "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.15.0" }, @@ -3959,6 +4213,7 @@ "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.15.0" }, @@ -3972,6 +4227,7 @@ "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.15.0" }, @@ -3989,6 +4245,7 @@ "version": "0.8.10", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "license": "MIT", "engines": { "node": ">=10.0.0" } @@ -3997,18 +4254,21 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/abort-controller": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", "dependencies": { "event-target-shim": "^5.0.0" }, @@ -4021,6 +4281,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -4030,10 +4291,11 @@ } }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -4066,6 +4328,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "4" }, @@ -4077,6 +4340,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -4089,6 +4353,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -4105,6 +4370,7 @@ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -4118,15 +4384,16 @@ } }, "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -4137,22 +4404,25 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } }, "node_modules/ansi-escape-sequences": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-6.2.1.tgz", - "integrity": "sha512-0gK95MrLXv+Vy5h4eKGvSX1yXopBqSYBi3/w4hekUxs/hHakF6asH9Gg7UXbb7IH9weAlVIrUzVOITNBr8Imag==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-6.2.2.tgz", + "integrity": "sha512-mBPG9BZy4dMOJQ9BehU6ph8IKslvVppbqZ8APHnpfP+Hsx/hGow5PY46lSQL1vPPi1F5XTtO6p3GcH8O9c0cUg==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^6.2.2" }, @@ -4168,6 +4438,7 @@ "engines": [ "node >= 0.8.0" ], + "license": "Apache-2.0", "bin": { "ansi-html": "bin/ansi-html" } @@ -4176,6 +4447,7 @@ "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" } @@ -4184,6 +4456,7 @@ "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" }, @@ -4197,8 +4470,9 @@ "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", - "dev": true + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" }, "node_modules/anymatch": { "version": "3.1.3", @@ -4217,30 +4491,81 @@ "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==" + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" }, "node_modules/array-back": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true, + "license": "MIT" + }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "license": "MIT", "dependencies": { "safer-buffer": "~2.1.0" } @@ -4248,7 +4573,8 @@ "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "license": "MIT", "engines": { "node": ">=0.8" } @@ -4256,32 +4582,53 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "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/aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "license": "Apache-2.0", "engines": { "node": "*" } }, "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", + "license": "MIT" }, "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/basic-auth": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "5.1.2" }, @@ -4289,21 +4636,31 @@ "node": ">= 0.8" } }, + "node_modules/basic-auth/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/batch-processor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz", - "integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=" + "integrity": "sha512-xoLQD8gmmR32MeuBHgH0Tzd5PuSZx71ZsbhVxOCRbgktZEPe4SQy7s9Z50uPp0F/f7iw2XmkHN2xkgbMfckMDA==", + "license": "MIT" }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "license": "BSD-3-Clause", "dependencies": { "tweetnacl": "^0.14.3" } @@ -4311,13 +4668,15 @@ "node_modules/before-after-hook": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "license": "Apache-2.0" }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } @@ -4340,6 +4699,7 @@ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dev": true, + "license": "MIT", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -4364,6 +4724,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -4373,6 +4734,7 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -4384,17 +4746,48 @@ "node": ">= 0.8" } }, + "node_modules/body-parser/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/body-parser/node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -4413,16 +4806,17 @@ "node_modules/bottleneck": { "version": "2.19.5", "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", - "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==" + "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", + "license": "MIT" }, "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==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { @@ -4439,9 +4833,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", - "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", "dev": true, "funding": [ { @@ -4459,10 +4853,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001629", - "electron-to-chromium": "^1.4.796", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.16" + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -4474,32 +4868,37 @@ "node_modules/btoa-lite": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", - "integrity": "sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==" + "integrity": "sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==", + "license": "MIT" }, "node_modules/buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/byline": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", + "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/byte-size": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-8.1.0.tgz", - "integrity": "sha512-FkgMTAg44I0JtEaUAvuZTtU2a2YDmBRbQxdsQNSMtLCjhG0hMcF5b1IMN9UjSCJaU4nvlj/GER7B9sI4nKdCgA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-9.0.0.tgz", + "integrity": "sha512-xrJ8Hki7eQ6xew55mM6TG9zHI852OoAHcPfduWWtR6yxk2upTuIZy13VioRBDyHReHDdbeDPifUboeNkK/sXXA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } @@ -4509,6 +4908,7 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -4518,6 +4918,7 @@ "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", "dev": true, + "license": "MIT", "dependencies": { "mime-types": "^2.1.18", "ylru": "^1.2.0" @@ -4527,13 +4928,20 @@ } }, "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==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4550,9 +4958,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001637", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001637.tgz", - "integrity": "sha512-1x0qRI1mD1o9e+7mBI7XtzFAP4XszbHaVWsMiGbSPLYekKTJF7K+FNk6AsXH4sUpc+qrsI3pVgf1Jdl/uGkuSQ==", + "version": "1.0.30001658", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001658.tgz", + "integrity": "sha512-N2YVqWbJELVdrnsW5p+apoQyYt51aBMSsBZki1XZEfeBCexcM/sf4xiAHcXQBkuOwJBXtWF7aW1sYX6tKebPHw==", "dev": true, "funding": [ { @@ -4573,13 +4981,15 @@ "node_modules/caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "license": "Apache-2.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" @@ -4591,6 +5001,22 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -4639,10 +5065,11 @@ } }, "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0" } @@ -4651,6 +5078,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", "engines": { "node": ">=6" } @@ -4659,6 +5087,7 @@ "version": "2.0.11", "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", + "license": "MIT", "dependencies": { "good-listener": "^1.2.2", "select": "^1.1.2", @@ -4666,14 +5095,17 @@ } }, "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/clone-deep": { @@ -4681,6 +5113,7 @@ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -4695,27 +5128,34 @@ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, + "license": "MIT", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" } }, "node_modules/co-body": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz", - "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.2.0.tgz", + "integrity": "sha512-Kbpv2Yd1NdL1V/V4cwLVxraHDV6K8ayohr2rmH0J87Er8+zJjcTa6dAn9QMPC9CRgU8+aNajKbSf1TzDB1yKPA==", "dev": true, + "license": "MIT", "dependencies": { + "@hapi/bourne": "^3.0.0", "inflation": "^2.0.0", "qs": "^6.5.2", "raw-body": "^2.3.3", "type-is": "^1.6.16" + }, + "engines": { + "node": ">=8.0.0" } }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -4726,18 +5166,21 @@ "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==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "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" }, @@ -4746,153 +5189,52 @@ } }, "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-6.0.0.tgz", + "integrity": "sha512-zDdHxHzlCp/gA1gy0VtPK3YL0Aob3ijJdwZ7H3HSl55hh8EziLtRlyj/od8EGRJfX8IjussC/mQkScl2Ms5Suw==", "dev": true, + "license": "MIT", "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", + "array-back": "^6.2.2", + "find-replace": "^5.0.1", "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" + "typical": "^7.1.1" }, "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-args/node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/command-line-args/node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true, - "engines": { - "node": ">=8" + "node": ">=12.20" } }, "node_modules/command-line-usage": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", - "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", - "dev": true, - "dependencies": { - "array-back": "^4.0.2", - "chalk": "^2.4.2", - "table-layout": "^1.0.2", - "typical": "^5.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/command-line-usage/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/command-line-usage/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/command-line-usage/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/command-line-usage/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/command-line-usage/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/command-line-usage/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/command-line-usage/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.3.tgz", + "integrity": "sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "array-back": "^6.2.2", + "chalk-template": "^0.4.0", + "table-layout": "^4.1.0", + "typical": "^7.1.1" }, "engines": { - "node": ">=4" + "node": ">=12.20.0" } }, - "node_modules/command-line-usage/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 10" } }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "node_modules/common-log-format": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/common-log-format/-/common-log-format-1.0.0.tgz", "integrity": "sha512-fFn/WPNbsTCGTTwdCpZfVZSa5mgqMEkA0gMTRApFSlEsYN+9B2FPfiqch5FT+jsv5IV1RHV3GeZvCa7Qg+jssw==", "dev": true, + "license": "MIT", "bin": { "clf": "bin/cli.js" }, @@ -4905,6 +5247,7 @@ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, + "license": "MIT", "dependencies": { "mime-db": ">= 1.43.0 < 2" }, @@ -4917,6 +5260,7 @@ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", @@ -4935,6 +5279,7 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -4944,6 +5289,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -4952,19 +5298,29 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" }, "node_modules/connect-history-api-fallback": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } @@ -4974,6 +5330,7 @@ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" }, @@ -4981,31 +5338,12 @@ "node": ">= 0.6" } }, - "node_modules/content-disposition/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==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "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==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -5015,6 +5353,7 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -5023,13 +5362,15 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cookies": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", - "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", + "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==", "dev": true, + "license": "MIT", "dependencies": { "depd": "~2.0.0", "keygrip": "~1.1.0" @@ -5041,14 +5382,16 @@ "node_modules/copy-to": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz", - "integrity": "sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU=", - "dev": true + "integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==", + "dev": true, + "license": "MIT" }, "node_modules/copyfiles": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", "dev": true, + "license": "MIT", "dependencies": { "glob": "^7.0.5", "minimatch": "^3.0.3", @@ -5063,17 +5406,84 @@ "copyup": "copyfiles" } }, + "node_modules/copyfiles/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/copyfiles/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/copyfiles/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/copyfiles/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "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" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/copyfiles/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/create-mixin": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/create-mixin/-/create-mixin-3.0.0.tgz", "integrity": "sha512-LkdMqnWT9LaqBN4huqpUnMz56Yr1mVSoCduAd2xXefgH/YZP2sXCMAyztXjk4q8hTF/TlcDa+zQW2aTgGdjjKQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -5083,6 +5493,7 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -5156,10 +5567,11 @@ "license": "MIT" }, "node_modules/current-module-paths": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/current-module-paths/-/current-module-paths-1.1.1.tgz", - "integrity": "sha512-8Ga5T8oMXBaSsHq9Gj+bddX7kHSaJKsl2vaAd3ep51eQLkr4W18eFEmEZM5bLo1zrz8tt3jE1U8QK9QGhaLR4g==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/current-module-paths/-/current-module-paths-1.1.2.tgz", + "integrity": "sha512-H4s4arcLx/ugbu1XkkgSvcUZax0L6tXUqnppGniQb8l5VjUKGHoayXE5RiriiPhYDd+kjZnaok1Uig13PKtKYQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } @@ -5168,6 +5580,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "license": "ISC", "dependencies": { "commander": "7", "iconv-lite": "0.6", @@ -5188,43 +5601,80 @@ "node": ">=12" } }, - "node_modules/d3-dsv/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, "engines": { - "node": ">= 10" + "node": ">=0.10" } }, - "node_modules/d3-dsv/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", "dependencies": { - "assert-plus": "^1.0.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { - "node": ">=0.10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -5239,6 +5689,7 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "license": "MIT", "engines": { "node": ">=0.10" } @@ -5246,7 +5697,8 @@ "node_modules/deep-assign": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/deep-assign/-/deep-assign-2.0.0.tgz", - "integrity": "sha1-6+BrHwfwja5ZdiDj3RYi83GhxXI=", + "integrity": "sha512-2QhG3Kxulu4XIF3WL5C5x0sc/S17JLgm1SfvDfIRsR/5m7ZGmcejII7fZ2RyWhN0UWIJm0TNM/eKow6LAn3evQ==", + "license": "MIT", "dependencies": { "is-obj": "^1.0.0" }, @@ -5258,13 +5710,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -5273,12 +5727,14 @@ "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 + "dev": true, + "license": "MIT" }, "node_modules/deepmerge": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -5288,6 +5744,7 @@ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "execa": "^5.0.0" }, @@ -5295,31 +5752,57 @@ "node": ">= 10" } }, + "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-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "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": { - "object-keys": "^1.0.12" + "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": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -5327,19 +5810,22 @@ "node_modules/delegate": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", + "license": "MIT" }, "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -5347,13 +5833,15 @@ "node_modules/deprecation": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "license": "ISC" }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -5363,12 +5851,14 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/dijit": { "version": "1.17.3", "resolved": "https://registry.npmjs.org/dijit/-/dijit-1.17.3.tgz", "integrity": "sha512-QS+1bNhPT+BF9E+iomQSi5qI+o3oUNSx1r5TF8WlGH4LybGZP+IIGJBOO5/41YduBPljVXhY7vaPsgrycxC6UQ==", + "license": "BSD-3-Clause OR AFL-2.1", "dependencies": { "dojo": "1.17.3" } @@ -5377,6 +5867,7 @@ "version": "1.17.3", "resolved": "https://registry.npmjs.org/dijit-themes/-/dijit-themes-1.17.3.tgz", "integrity": "sha512-AxQvinSkvA0PyOszdNIhIQdmF0PS0s9hqBnXRgKMZPkLT6ody4k1+SdHhs6Eq0zKVKnQXcZLxHnx07AtnU7FEQ==", + "license": "BSD-3-Clause OR AFL-2.1", "peerDependencies": { "dijit": "1.17.3", "dojo": "1.17.3" @@ -5387,6 +5878,7 @@ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -5412,6 +5904,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -5422,7 +5915,8 @@ "node_modules/dojo": { "version": "1.17.3", "resolved": "https://registry.npmjs.org/dojo/-/dojo-1.17.3.tgz", - "integrity": "sha512-iWDx1oSfCEDnIrs8cMW7Zh9Fbjgxu8iRagFz+Qi2eya3MXIAxFXKhv2A7dpi+bfpMpFozLwcsLV8URLw6BsHsA==" + "integrity": "sha512-iWDx1oSfCEDnIrs8cMW7Zh9Fbjgxu8iRagFz+Qi2eya3MXIAxFXKhv2A7dpi+bfpMpFozLwcsLV8URLw6BsHsA==", + "license": "BSD-3-Clause OR AFL-2.1" }, "node_modules/dojo-util": { "version": "1.17.3", @@ -5434,6 +5928,7 @@ "resolved": "https://registry.npmjs.org/dojo-webpack-plugin/-/dojo-webpack-plugin-3.0.6.tgz", "integrity": "sha512-alyVD0Oa8Og2mCJo5PX07oNHb2Qp60sXZ7+xtkRnAIIenkR2iiQhW5VUeUq4LCCWyjtzyfNJQvlCHva/YusQnQ==", "dev": true, + "license": "(MIT OR Apache-2.0)", "dependencies": { "loader-utils": "2.0.4", "node-stringify": "0.2.1", @@ -5449,8 +5944,9 @@ "node_modules/dojo-webpack-plugin/node_modules/tmp": { "version": "0.0.30", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", "dev": true, + "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.1" }, @@ -5462,6 +5958,7 @@ "version": "1.17.3", "resolved": "https://registry.npmjs.org/dojox/-/dojox-1.17.3.tgz", "integrity": "sha512-n2SvGoVTZlOQUQmoqEfW6oGAfmyBtjl4DzWkxoojdTxBq8O0r7pDKBrW3nRrpQW9uZFHfB1XIA3BXS0cnrue/Q==", + "license": "BSD-3-Clause OR AFL-2.1", "dependencies": { "dijit": "1.17.3", "dojo": "1.17.3" @@ -5487,7 +5984,8 @@ "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "license": "MIT", "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -5497,6 +5995,7 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" } @@ -5504,13 +6003,14 @@ "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true, + "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.4.812", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.812.tgz", - "integrity": "sha512-7L8fC2Ey/b6SePDFKR2zHAy4mbdp1/38Yk5TsARO66W3hC5KEaeKMMHoxwtuH+jcu2AYLSn9QX04i95t6Fl1Hg==", + "version": "1.5.17", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.17.tgz", + "integrity": "sha512-Q6Q+04tjC2KJ8qsSOSgovvhWcv5t+SmpH6/YfAWmhpE5/r+zw6KQy1/yWVFFNyEBvy68twTTXr2d5eLfCq7QIw==", "dev": true, "license": "ISC" }, @@ -5518,6 +6018,7 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.2.4.tgz", "integrity": "sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg==", + "license": "MIT", "dependencies": { "batch-processor": "1.0.0" } @@ -5525,13 +6026,15 @@ "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==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -5541,14 +6044,15 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/enhanced-resolve": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz", - "integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dev": true, "license": "MIT", "dependencies": { @@ -5559,72 +6063,154 @@ "node": ">=10.13.0" } }, - "node_modules/envinfo": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", - "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "node_modules/envinfo": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", + "dev": true, + "license": "MIT", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "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-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", "dev": true, + "license": "MIT", "dependencies": { - "is-arrayish": "^0.2.1" + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-module-lexer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", - "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", - "dev": true - }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -5640,12 +6226,13 @@ "node_modules/es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "license": "MIT" }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "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" @@ -5654,14 +6241,16 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true, + "license": "MIT" }, "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" }, @@ -5743,35 +6332,11 @@ } }, "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -5783,78 +6348,41 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/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/eslint/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==", + "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": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, + "license": "Apache-2.0", "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/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==", + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/eslint/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==", + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "p-limit": "^3.0.2" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "*" } }, "node_modules/espree": { @@ -5876,10 +6404,11 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "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" }, @@ -5887,20 +6416,12 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -5908,20 +6429,12 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { + "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, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -5931,6 +6444,7 @@ "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" } @@ -5938,8 +6452,9 @@ "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -5948,6 +6463,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -5956,13 +6472,15 @@ "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.x" } @@ -5972,6 +6490,7 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -5995,6 +6514,7 @@ "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -6032,17 +6552,12 @@ "node": ">= 0.10.0" } }, - "node_modules/express/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==", - "dev": true - }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -6052,6 +6567,7 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -6067,39 +6583,38 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/express/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==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/express/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==", + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, - "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", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/express/node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -6107,26 +6622,30 @@ "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" }, "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", "engines": [ "node >=0.6.0" - ] + ], + "license": "MIT" }, "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==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -6143,6 +6662,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -6153,25 +6673,39 @@ "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==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "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 + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "license": "MIT" }, "node_modules/fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -6181,6 +6715,7 @@ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, + "license": "Apache-2.0", "dependencies": { "websocket-driver": ">=0.5.1" }, @@ -6193,6 +6728,7 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -6205,6 +6741,7 @@ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", "dev": true, + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" @@ -6237,6 +6774,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6246,6 +6784,7 @@ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -6264,6 +6803,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -6272,58 +6812,68 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/finalhandler/node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-5.0.1.tgz", + "integrity": "sha512-o5/Y8HrCNRuFF5rdNTkX8Vhv6kTFTV0t1zIoigwlCdbkA9qaapRzxvWPND2VvlFa9LBI05Q1i8ml/saMqkOJUQ==", "dev": true, + "license": "MIT", "dependencies": { - "array-back": "^3.0.1" + "array-back": "^6.2.2" }, "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/find-replace/node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true, - "engines": { - "node": ">=6" + "node": ">=14" } }, "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "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": "^5.0.0", + "locate-path": "^6.0.0", "path-exists": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" } }, "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, + "license": "MIT", "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { @@ -6334,7 +6884,9 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -6346,15 +6898,16 @@ } }, "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "dev": true, "funding": [ { @@ -6362,6 +6915,7 @@ "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -6374,15 +6928,26 @@ "node_modules/font-awesome": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz", - "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM=", + "integrity": "sha512-U6kGnykA/6bFmg1M/oT9EkFeIYv7JlX3bozwQJWiiLz6L0w3F5vBVPxHlwyX/vtNq1ckcpRKOB9f2Qal/VtFpg==", + "license": "(OFL-1.1 AND MIT)", "engines": { "node": ">=0.10.3" } }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, "node_modules/foreground-child": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", - "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, "license": "ISC", "dependencies": { @@ -6412,7 +6977,8 @@ "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "license": "Apache-2.0", "engines": { "node": "*" } @@ -6421,6 +6987,7 @@ "version": "2.5.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -6460,6 +7027,7 @@ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -6469,6 +7037,7 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -6507,8 +7076,9 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", @@ -6526,28 +7096,68 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "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==", + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6556,13 +7166,15 @@ "node_modules/get-node-dimensions": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-node-dimensions/-/get-node-dimensions-1.2.1.tgz", - "integrity": "sha512-2MSPMu7S1iOTL+BOa6K1S62hB2zUAYNF/lV0gSVlOaacd087lc6nR1H1r0e3B1CerTo+RceOmi1iJW+vp21xcQ==" + "integrity": "sha512-2MSPMu7S1iOTL+BOa6K1S62hB2zUAYNF/lV0gSVlOaacd087lc6nR1H1r0e3B1CerTo+RceOmi1iJW+vp21xcQ==", + "license": "MIT" }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -6571,13 +7183,15 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" @@ -6589,21 +7203,24 @@ "node_modules/getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "license": "MIT", "dependencies": { "assert-plus": "^1.0.0" } }, "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "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", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -6619,6 +7236,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -6630,7 +7248,32 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } }, "node_modules/globals": { "version": "13.24.0", @@ -6648,11 +7291,29 @@ "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/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -6669,9 +7330,10 @@ } }, "node_modules/goober": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.10.tgz", - "integrity": "sha512-7PpuQMH10jaTWm33sQgBQvz45pHR8N4l3Cu3WMGEWmHShAcTuuP7I+5/DwKo39fwti5A80WAjvqgz6SSlgWmGA==", + "version": "2.1.14", + "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.14.tgz", + "integrity": "sha512-4UpC0NdGyAFqLNPnhCT2iHpza2q+RAY3GV85a/mRPdzyPQMsj0KmMMuetdIkzWRbJ+Hgau1EZztq8ImmiMGhsg==", + "license": "MIT", "peerDependencies": { "csstype": "^3.0.10" } @@ -6679,33 +7341,51 @@ "node_modules/good-listener": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", + "license": "MIT", "dependencies": { "delegate": "^3.1.2" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "license": "ISC", "engines": { "node": ">=4" } @@ -6715,6 +7395,7 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "deprecated": "this library is no longer supported", + "license": "MIT", "dependencies": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -6723,23 +7404,12 @@ "node": ">=6" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6749,15 +7419,43 @@ "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.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6766,12 +7464,13 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "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.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -6780,25 +7479,47 @@ "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", "dependencies": { "react-is": "^16.7.0" } }, + "node_modules/hoist-non-react-statics/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/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -6810,13 +7531,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/hpack.js/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -6827,19 +7550,27 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, "node_modules/hpack.js/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/html-entities": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", - "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", "dev": true, "funding": [ { @@ -6850,13 +7581,15 @@ "type": "patreon", "url": "https://patreon.com/mdevils" } - ] + ], + "license": "MIT" }, "node_modules/http-assert": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", "dev": true, + "license": "MIT", "dependencies": { "deep-equal": "~1.0.1", "http-errors": "~1.8.0" @@ -6869,13 +7602,15 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/http-errors": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", @@ -6890,8 +7625,9 @@ "node_modules/http-errors/node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -6900,13 +7636,15 @@ "version": "0.5.8", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -6921,6 +7659,7 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, + "license": "MIT", "dependencies": { "@tootallnate/once": "1", "agent-base": "6", @@ -6935,6 +7674,7 @@ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dev": true, + "license": "MIT", "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", @@ -6957,7 +7697,8 @@ "node_modules/http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "license": "MIT", "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -6969,10 +7710,11 @@ } }, "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "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==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -6986,17 +7728,18 @@ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "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==", - "dev": true, + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" @@ -7007,6 +7750,7 @@ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -7015,10 +7759,11 @@ } }, "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "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" } @@ -7041,10 +7786,11 @@ } }, "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, + "license": "MIT", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -7062,8 +7808,9 @@ "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -7072,15 +7819,17 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/inflation": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", - "integrity": "sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.1.0.tgz", + "integrity": "sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -7088,8 +7837,10 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "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.", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -7099,16 +7850,18 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { @@ -7120,6 +7873,7 @@ "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.13.0" } @@ -7128,30 +7882,51 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", "dependencies": { "loose-envify": "^1.0.0" } }, "node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10" } }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" }, "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, + "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" }, @@ -7177,6 +7952,7 @@ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -7189,10 +7965,11 @@ } }, "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "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" }, @@ -7201,12 +7978,32 @@ } }, "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "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.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dev": true, + "license": "MIT", "dependencies": { - "has": "^1.0.3" + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7217,6 +8014,7 @@ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -7232,6 +8030,7 @@ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -7245,8 +8044,9 @@ "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7255,6 +8055,7 @@ "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" } @@ -7264,6 +8065,7 @@ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -7279,6 +8081,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -7287,10 +8090,11 @@ } }, "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -7309,10 +8113,11 @@ } }, "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -7326,7 +8131,8 @@ "node_modules/is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7346,6 +8152,7 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -7358,6 +8165,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -7370,6 +8178,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -7382,10 +8191,17 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7395,6 +8211,7 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -7407,6 +8224,7 @@ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -7422,6 +8240,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -7432,16 +8251,34 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -7454,6 +8291,7 @@ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -7464,20 +8302,23 @@ "node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true, + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7486,6 +8327,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", + "license": "MIT", "peerDependencies": { "ws": "*" } @@ -7493,20 +8335,18 @@ "node_modules/isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "license": "MIT" }, "node_modules/jackspeak": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.2.tgz", - "integrity": "sha512-qH3nOSj8q/8+Eg8LUPOq3C+6HWkpUioIjDsq1+D4zY91oZvpPttw8GwtF1nReRYKXl+1AORyFqtm2f5Q1SB6/Q==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": "14 >=14.21 || 16 >=16.20 || >=18" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -7519,6 +8359,7 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -7533,6 +8374,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -7544,9 +8386,10 @@ } }, "node_modules/jose": { - "version": "4.15.5", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.5.tgz", - "integrity": "sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg==", + "version": "4.15.9", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz", + "integrity": "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==", + "license": "MIT", "optional": true, "funding": { "url": "https://github.com/sponsors/panva" @@ -7555,12 +8398,14 @@ "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==" + "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==", + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -7571,46 +8416,61 @@ "node_modules/jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "license": "MIT" + }, + "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-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "license": "(AFL-2.1 OR BSD-3-Clause)" }, "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==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "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": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" }, "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": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -7621,11 +8481,12 @@ "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true, "engines": [ "node >= 0.2.0" - ] + ], + "license": "MIT" }, "node_modules/jsonpath-plus": { "version": "7.2.0", @@ -7641,6 +8502,7 @@ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, + "license": "(MIT OR Apache-2.0)", "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" @@ -7656,6 +8518,7 @@ "version": "9.0.2", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "license": "MIT", "dependencies": { "jws": "^3.2.2", "lodash.includes": "^4.3.0", @@ -7677,6 +8540,7 @@ "version": "1.4.2", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "license": "MIT", "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -7691,6 +8555,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "license": "MIT", "dependencies": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", @@ -7701,6 +8566,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "license": "MIT", "dependencies": { "jwa": "^1.4.1", "safe-buffer": "^5.0.1" @@ -7717,6 +8583,7 @@ "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", "dev": true, + "license": "MIT", "dependencies": { "tsscmp": "1.0.6" }, @@ -7724,26 +8591,38 @@ "node": ">= 0.6" } }, + "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/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/koa": { - "version": "2.13.4", - "resolved": "https://registry.npmjs.org/koa/-/koa-2.13.4.tgz", - "integrity": "sha512-43zkIKubNbnrULWlHdN5h1g3SEKXOEzoAlRsHOTFpnlDu8JlAOZSMJBLULusuXRequboiwJcj5vtYXKB3k7+2g==", + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.15.3.tgz", + "integrity": "sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "^1.3.5", "cache-content-type": "^1.0.0", "content-disposition": "~0.5.2", "content-type": "^1.0.4", - "cookies": "~0.8.0", + "cookies": "~0.9.0", "debug": "^4.3.2", "delegates": "^1.0.0", "depd": "^2.0.0", @@ -7768,13 +8647,15 @@ } }, "node_modules/koa-bodyparser": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz", - "integrity": "sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.4.1.tgz", + "integrity": "sha512-kBH3IYPMb+iAXnrxIhXnW+gXV8OTzCu8VPDqvcDHW9SQrbkHmqPQtiZwrltNmSq6/lpipHnT7k7PsjlVD7kK0w==", "dev": true, + "license": "MIT", "dependencies": { "co-body": "^6.0.0", - "copy-to": "^2.0.1" + "copy-to": "^2.0.1", + "type-is": "^1.6.18" }, "engines": { "node": ">=8.0.0" @@ -7784,44 +8665,38 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/koa-compress": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/koa-compress/-/koa-compress-5.1.0.tgz", - "integrity": "sha512-G3Ppo9jrUwlchp6qdoRgQNMiGZtM0TAHkxRZQ7EoVvIG8E47J4nAsMJxXHAUQ+0oc7t0MDxSdONWTFcbzX7/Bg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/koa-compress/-/koa-compress-5.1.1.tgz", + "integrity": "sha512-UgMIN7ZoEP2DuoSQmD6CYvFSLt0NReGlc2qSY4bO4Oq0L56OiD9pDG41Kj/zFmVY/A3Wvmn4BqKcfq5H30LGIg==", "dev": true, + "license": "MIT", "dependencies": { - "bytes": "^3.0.0", - "compressible": "^2.0.0", - "http-errors": "^1.8.0", - "koa-is-json": "^1.0.0", - "statuses": "^2.0.1" + "bytes": "^3.1.2", + "compressible": "^2.0.18", + "http-errors": "^1.8.1", + "koa-is-json": "^1.0.0" }, "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/koa-compress/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" + "node": ">= 12" } }, "node_modules/koa-conditional-get": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/koa-conditional-get/-/koa-conditional-get-2.0.0.tgz", - "integrity": "sha1-pD83I8HQFLcwo07Oit8wuTyCM/I=", - "dev": true + "integrity": "sha512-FTZYr681zfyW0bz8FDc55RJrRnicz6KPv2oA3GOf6knksJd0uJdfenKud+RtBjHzO0g1tVHNjwN6gk7OfHAtbQ==", + "dev": true, + "license": "MIT" }, "node_modules/koa-convert": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", "dev": true, + "license": "MIT", "dependencies": { "co": "^4.6.0", "koa-compose": "^4.1.0" @@ -7833,8 +8708,9 @@ "node_modules/koa-etag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/koa-etag/-/koa-etag-3.0.0.tgz", - "integrity": "sha1-nvc4Ld1agqsN6xU0FckVg293HT8=", + "integrity": "sha512-HYU1zIsH4S9xOlUZGuZIP1PIiJ0EkBXgwL8PjFECb/pUYmAee8gfcvIovregBMYxECDhLulEWT2+ZRsA/lczCQ==", "dev": true, + "license": "MIT", "dependencies": { "etag": "^1.3.0", "mz": "^2.1.0" @@ -7843,14 +8719,16 @@ "node_modules/koa-is-json": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/koa-is-json/-/koa-is-json-1.0.0.tgz", - "integrity": "sha1-JzwH7c3Ljfaiwat9We52SRRR7BQ=", - "dev": true + "integrity": "sha512-+97CtHAlWDx0ndt0J8y3P12EWLwTLMXIfMnYDev3wOTwH/RpBGMlfn4bDXlMEg1u73K6XRE9BbUp+5ZAYoRYWw==", + "dev": true, + "license": "MIT" }, "node_modules/koa-json": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/koa-json/-/koa-json-2.0.2.tgz", - "integrity": "sha1-Nq8U5uofXWRtfESihXAcb4Wk/eQ=", + "integrity": "sha512-8+dz0T2ekDuNN1svYoKPCV2txotQ3Ufg8Fn5bft1T48MPJWiC/HKmkk+3xj9EC/iNZuFYeLRazN2h2o3RSUXuQ==", "dev": true, + "license": "MIT", "dependencies": { "koa-is-json": "1", "streaming-json-stringify": "3" @@ -7859,8 +8737,9 @@ "node_modules/koa-morgan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/koa-morgan/-/koa-morgan-1.0.1.tgz", - "integrity": "sha1-CAUuDODYOdPEMXi5CluzQkvvH5k=", + "integrity": "sha512-JOUdCNlc21G50afBXfErUrr1RKymbgzlrO5KURY+wmDG1Uvd2jmxUJcHgylb/mYXy2SjiNZyYim/ptUBGsIi3A==", "dev": true, + "license": "MIT", "dependencies": { "morgan": "^1.6.1" } @@ -7868,8 +8747,9 @@ "node_modules/koa-range": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/koa-range/-/koa-range-0.3.0.tgz", - "integrity": "sha1-NYjjSWRzqDmhvSZNKkKx2FvX/qw=", + "integrity": "sha512-Ich3pCz6RhtbajYXRWjIl6O5wtrLs6kE3nkXc9XmaWe+MysJyZO7K4L3oce1Jpg/iMgCbj+5UCiMm/rqVtcDIg==", "dev": true, + "license": "MIT", "dependencies": { "stream-slice": "^0.1.2" }, @@ -7880,8 +8760,9 @@ "node_modules/koa-route": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/koa-route/-/koa-route-3.2.0.tgz", - "integrity": "sha1-dimLmaa8+p44yrb+XHmocz51i84=", + "integrity": "sha512-8FsuWw/L+CUWJfpgN6vrlYUDNTheEinG8Zkm97GyuLJNyWjCVUs9p10Ih3jTIWwmDVQcz6827l0RKadAS5ibqA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "*", "methods": "~1.1.0", @@ -7893,6 +8774,7 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", "dev": true, + "license": "MIT", "dependencies": { "isarray": "0.0.1" } @@ -7902,6 +8784,7 @@ "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.1", "http-errors": "^1.7.3", @@ -7916,6 +8799,7 @@ "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz", "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.1.0", "koa-send": "^5.0.0" @@ -7929,15 +8813,17 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/launch-editor": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", - "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", + "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^1.0.0", "shell-quote": "^1.8.1" @@ -7954,6 +8840,7 @@ "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" @@ -7965,8 +8852,9 @@ "node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "parse-json": "^4.0.0", @@ -7978,22 +8866,24 @@ } }, "node_modules/load-module": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/load-module/-/load-module-4.2.1.tgz", - "integrity": "sha512-Sbfg6R4LjvyThJpqUoADHMjyoI2+cL4msbCQeZ9kkY/CqP/TT2938eftKm7x4I2gd4/A+DEe6nePkbfWYbXwSw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/load-module/-/load-module-5.0.0.tgz", + "integrity": "sha512-zZBnYIvAuP2TprnRisam+N/A3v+JX60pvdKoHQRKyl4xlHLQQLpp7JKNyEQ6D3Si0/QIQMgXko3PtV+cx6L7mA==", "dev": true, + "license": "MIT", "dependencies": { - "array-back": "^6.2.0" + "array-back": "^6.2.2" }, "engines": { - "node": ">=12.17" + "node": ">=12.20" } }, "node_modules/loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.11.5" } @@ -8003,6 +8893,7 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -8045,83 +8936,100 @@ } }, "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "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": "^4.1.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=8" + "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==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" }, "node_modules/lodash-es": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" }, "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.includes": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" }, "node_modules/lodash.isboolean": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" }, "node_modules/lodash.isinteger": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" }, "node_modules/lodash.isnumber": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" }, "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" }, "node_modules/lodash.isstring": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "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 + "dev": true, + "license": "MIT" }, "node_modules/lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" }, "node_modules/lodash.throttle": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", + "license": "MIT" }, "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" }, @@ -8130,39 +9038,35 @@ } }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } + "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/lws": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lws/-/lws-4.1.2.tgz", - "integrity": "sha512-hm6mlYa5ZM+iLbFIEiifGnXJWbNRQL80DZ5gXfkdgBJSMIvjnVyVIPpw1fCU/IMcgHBvn1iCrFc391FP12NguQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lws/-/lws-4.2.0.tgz", + "integrity": "sha512-J6mZB9mNauMBjIEh0wCF3U5bdhhuiamwTmDQ0nCTXWp6tvXNi/3RCgc4F1UN6rGpTaKgEfDnDQEo9ThLsc0UAg==", "dev": true, + "license": "MIT", "dependencies": { - "@75lb/deep-merge": "^1.1.1", - "ansi-escape-sequences": "^6.2.1", + "@75lb/deep-merge": "^1.1.2", + "ansi-escape-sequences": "^6.2.2", "array-back": "^6.2.2", - "byte-size": "^8.1.0", - "command-line-args": "^5.2.1", - "command-line-usage": "^6.1.3", + "byte-size": "^9.0.0", + "command-line-args": "^6.0.0", + "command-line-usage": "^7.0.3", "create-mixin": "^3.0.0", - "current-module-paths": "^1.1.0", - "koa": "^2.13.4", - "load-module": "^4.2.1", - "open": "^8.4.0", + "current-module-paths": "^1.1.1", + "koa": "^2.15.3", + "load-module": "^5.0.0", + "open": "^8.4.2", "qrcode-terminal": "^0.12.0", "typical": "^7.1.1", "walk-back": "^5.1.0" }, "bin": { - "lws": "bin/cli.mjs" + "lws": "bin/cli.js" }, "engines": { "node": ">=12.20" @@ -8173,6 +9077,7 @@ "resolved": "https://registry.npmjs.org/lws-basic-auth/-/lws-basic-auth-2.0.0.tgz", "integrity": "sha512-zzyoGFLQPuKaQJvHMLmmSyfT6lIvocwcDXllTVW5brD0t0YgHYopILkzja+x+MIlJX/YhNKniaTSasujniYVjw==", "dev": true, + "license": "MIT", "dependencies": { "basic-auth": "^2.0.1" }, @@ -8185,6 +9090,7 @@ "resolved": "https://registry.npmjs.org/lws-blacklist/-/lws-blacklist-3.0.0.tgz", "integrity": "sha512-KNXGDBmbj+UGfWMBAefe2vrfuWpEQms/9Fd7kfMScTqAKF6nrVoEs4pkxfefArG3bX0bu7jWLyB4tJGma5WC6Q==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^4.0.1", "path-to-regexp": "^6.1.0" @@ -8198,17 +9104,19 @@ "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/lws-body-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lws-body-parser/-/lws-body-parser-3.0.0.tgz", - "integrity": "sha512-led36Um61ppeQoMTG7yvphn+NQPMbzuFuGUYD09eEx1UT7e8bsaLw1gkBZB9vAIkeTlXRbXjPmOqlm26eUzhfg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lws-body-parser/-/lws-body-parser-3.0.1.tgz", + "integrity": "sha512-HUlTGYukWRXnmAFlpJhaJWSFsfkOP4fC9fjEiYeyI0kTy0/SaMLwcLzi5hQ/eriLZNGuF+PqnhBMtOys6nPdfw==", "dev": true, + "license": "MIT", "dependencies": { - "koa-bodyparser": "^4.3.0" + "koa-bodyparser": "^4.4.1" }, "engines": { "node": ">=12.17" @@ -8219,6 +9127,7 @@ "resolved": "https://registry.npmjs.org/lws-compress/-/lws-compress-3.1.0.tgz", "integrity": "sha512-uBlpYFNBUD3FuQjXbtwasvD90w3HH6GRivknvbibSSsDQf1MtIM8WZ5fS4795n1ozTYnQD+Ai8T+Cpy0q0xuhA==", "dev": true, + "license": "MIT", "dependencies": { "koa-compress": "^5.0.1" }, @@ -8231,6 +9140,7 @@ "resolved": "https://registry.npmjs.org/lws-conditional-get/-/lws-conditional-get-2.0.0.tgz", "integrity": "sha512-U05yDlFJKIYa7gJZYfnc1HIEuXbKpDJztgkvNYyxCqJC28j/k9ORoNnFNOIHpBh/jlPJgV8x7uH34mIxFAryWA==", "dev": true, + "license": "MIT", "dependencies": { "koa-conditional-get": "^2.0.0", "koa-etag": "^3.0.0" @@ -8244,6 +9154,7 @@ "resolved": "https://registry.npmjs.org/lws-cors/-/lws-cors-4.2.1.tgz", "integrity": "sha512-KXsAn0Wn8n0riJ3SDHQzEAuzTrdeQZDJIxPHWEupsImW2hnQuBZVW5zqsmfzxD8SkCDDnQyFNuQZjSlBZmexKg==", "dev": true, + "license": "MIT", "dependencies": { "@koa/cors": "^5.0.0" }, @@ -8256,6 +9167,7 @@ "resolved": "https://registry.npmjs.org/lws-index/-/lws-index-3.1.1.tgz", "integrity": "sha512-f1rjsCkrKHVbSe03lm6xQ1GNnqzq/tL5f0ge8kXJFRorpS8Sv7WDXzUsGswmGAgxPPvDj8L7E6zwD+BCjQRU8w==", "dev": true, + "license": "MIT", "dependencies": { "serve-index-75lb": "^2.0.1" }, @@ -8268,6 +9180,7 @@ "resolved": "https://registry.npmjs.org/lws-json/-/lws-json-2.0.0.tgz", "integrity": "sha512-vqUFrAQ5BGpkMS2Mm/ZhgvUMi6Tgia7YtESG7pKjNoiSsD+TxncG0nqp8YjUh2xrEzi/SYFc/ed+9ZOl/t0A0g==", "dev": true, + "license": "MIT", "dependencies": { "koa-json": "^2.0.2" }, @@ -8280,6 +9193,7 @@ "resolved": "https://registry.npmjs.org/lws-log/-/lws-log-2.0.0.tgz", "integrity": "sha512-YveoazSZ0Qb1Tljdm8G8yn9c+mAMXgvLMACZzh5aZIk7p8YJwiXf9r1S+xY7wbXEcKG629KfVO0B5G5gRFcyDQ==", "dev": true, + "license": "MIT", "dependencies": { "koa-morgan": "^1.0.1", "stream-log-stats": "^3.0.2" @@ -8293,6 +9207,7 @@ "resolved": "https://registry.npmjs.org/lws-mime/-/lws-mime-2.0.0.tgz", "integrity": "sha512-mfrAgRQ5+hkQ7LJ6EAgwnUeymNeYxwLXZY3UQ6C2hSTr7BqMSzm9k5O0C8wWP2dzdhChzITYKwzWbUnAYVBwtA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -8302,6 +9217,7 @@ "resolved": "https://registry.npmjs.org/lws-range/-/lws-range-4.0.1.tgz", "integrity": "sha512-rUkHpsRv5Ixr+8/E4cDCz6jUi6En6hnEaDZhPb0a1GU1vasOHhGcW0qilkgf0dtS0xDJzdKixdfcCW40ankIeQ==", "dev": true, + "license": "MIT", "dependencies": { "koa-range": "^0.3.0" }, @@ -8314,6 +9230,7 @@ "resolved": "https://registry.npmjs.org/lws-request-monitor/-/lws-request-monitor-2.0.0.tgz", "integrity": "sha512-ZTo0/pS42qiejcYlL+wlpurSbDSS0J7pDDohqBx7jjUQkgni2Qd8cPzn/kW8QI82gXgDmdZH+ps0vheLHlgdgg==", "dev": true, + "license": "MIT", "dependencies": { "byte-size": "^6.2.0" }, @@ -8326,6 +9243,7 @@ "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-6.2.0.tgz", "integrity": "sha512-6EspYUCAPMc7E2rltBgKwhG+Cmk0pDm9zDtF1Awe2dczNUL3YpZ8mTs/dueOTS1hqGWBOatqef4jYMGjln7WmA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8335,6 +9253,7 @@ "resolved": "https://registry.npmjs.org/lws-rewrite/-/lws-rewrite-3.1.1.tgz", "integrity": "sha512-cOeaPXIlLUVLxS6BZ52QzZVzI8JjCzlWD4RWizB5Hd+0YGO0SPa3Vgk7CIghtAOsSdjtXg/wSOap2H1h+tw8BQ==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^4.0.1", "http-proxy-agent": "^4.0.1", @@ -8354,15 +9273,17 @@ "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/lws-spa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lws-spa/-/lws-spa-4.1.0.tgz", - "integrity": "sha512-B1YhxAY02EYu7J9dKBQMpYRwOd4iOtKK3TDdUR2GnJ4nsnvoxsJnMUpg8yxGmWZ6NI8itdUdQJlwqKg/Gji/vQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lws-spa/-/lws-spa-4.1.1.tgz", + "integrity": "sha512-v032GXet8j818l6vUyAlQm1HfcxPVM+Flvxptv6EcDveUJqvfNX5j1bo9PqKB8HbyEScek5OH8guFAqrSOwBNw==", "dev": true, + "license": "MIT", "dependencies": { "koa-send": "^5.0.1" }, @@ -8371,10 +9292,11 @@ } }, "node_modules/lws-static": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lws-static/-/lws-static-3.1.0.tgz", - "integrity": "sha512-0fWZRluPda0raMEzTd2mY/REWsa5LxDz03j+Zer8yhFfbicJGaocTK1jOlRo/H5UEDImBdfSDZGlrmzMaF9Xcg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lws-static/-/lws-static-3.1.1.tgz", + "integrity": "sha512-4Xb6rE4gVp2ZmuiVYwvFaSsMUbQ8CwxSxzHzfK6URFz4g3vVT8+e+ekGlItp8ePf9w7u9l96HU7+QDswsmwhCg==", "dev": true, + "license": "MIT", "dependencies": { "koa-static": "^5.0.0" }, @@ -8385,8 +9307,9 @@ "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -8407,7 +9330,7 @@ "node_modules/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", "dev": true, "engines": { "node": ">= 0.10.0" @@ -8417,19 +9340,22 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "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==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -8437,19 +9363,21 @@ "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -8461,6 +9389,7 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -8469,29 +9398,32 @@ } }, "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==", + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", + "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "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.51.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" } }, "node_modules/mime-types/node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "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" } @@ -8501,6 +9433,7 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -8509,28 +9442,32 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, + "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "license": "ISC", "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=8" } }, "node_modules/minizlib": { @@ -8562,6 +9499,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -8574,6 +9512,7 @@ "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", "dev": true, + "license": "MIT", "dependencies": { "basic-auth": "~2.0.1", "debug": "2.6.9", @@ -8590,6 +9529,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -8597,14 +9537,16 @@ "node_modules/morgan/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" }, "node_modules/morgan/node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "dev": true, + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -8613,9 +9555,10 @@ } }, "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==" + "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/multicast-dns": { "version": "7.2.5", @@ -8636,6 +9579,7 @@ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "dev": true, + "license": "MIT", "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", @@ -8653,6 +9597,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -8663,14 +9608,16 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -8679,18 +9626,21 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -8711,21 +9661,24 @@ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "dev": true, + "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" } }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" }, "node_modules/node-stringify": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/node-stringify/-/node-stringify-0.2.1.tgz", "integrity": "sha512-EdzBiPO2hmQOpG8eZtJmBK0bAWPTdla2GAU4Tb7fztLkAiMEYcJAHWvC/4FI8E9ZOxB1zmoAJpM6upTQ54xNDw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -8733,8 +9686,9 @@ "node_modules/noms": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", - "integrity": "sha1-2o69nzr51nYJGbJ9nNyAkqczKFk=", + "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", "dev": true, + "license": "ISC", "dependencies": { "inherits": "^2.0.1", "readable-stream": "~1.0.31" @@ -8745,6 +9699,7 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -8757,6 +9712,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -8776,6 +9732,7 @@ "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "chalk": "^2.4.1", @@ -8801,6 +9758,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -8808,11 +9766,23 @@ "node": ">=4" } }, + "node_modules/npm-run-all/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/npm-run-all/node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -8827,6 +9797,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -8834,14 +9805,16 @@ "node_modules/npm-run-all/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" }, "node_modules/npm-run-all/node_modules/cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, + "license": "MIT", "dependencies": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -8856,8 +9829,9 @@ "node_modules/npm-run-all/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -8865,17 +9839,32 @@ "node_modules/npm-run-all/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, + "node_modules/npm-run-all/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/npm-run-all/node_modules/path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -8885,6 +9874,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -8892,8 +9882,9 @@ "node_modules/npm-run-all/node_modules/shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^1.0.0" }, @@ -8904,8 +9895,9 @@ "node_modules/npm-run-all/node_modules/shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -8915,6 +9907,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -8927,6 +9920,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -8939,6 +9933,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -8950,6 +9945,7 @@ "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "license": "Apache-2.0", "engines": { "node": "*" } @@ -8957,7 +9953,8 @@ "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -8966,16 +9963,21 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", + "license": "MIT", "optional": true, "engines": { "node": ">= 6" } }, "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8985,19 +9987,21 @@ "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.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, "engines": { @@ -9011,7 +10015,8 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/octokit": { "version": "3.1.2", @@ -9035,9 +10040,10 @@ } }, "node_modules/oidc-token-hash": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.1.tgz", - "integrity": "sha512-EvoOtz6FIEBzE+9q253HsLCVRiK/0doEJ2HCvvqMQb3dHZrP3WlJKYtJ55CRTw4jmYomzH4wkPuCj/I3ZvpKxQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.3.tgz", + "integrity": "sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==", + "license": "MIT", "optional": true, "engines": { "node": "^10.13.0 || >=12.0.0" @@ -9048,6 +10054,7 @@ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -9060,6 +10067,7 @@ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -9067,7 +10075,8 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", "dependencies": { "wrappy": "1" } @@ -9077,6 +10086,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -9094,10 +10104,11 @@ "dev": true }, "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, + "license": "MIT", "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -9111,32 +10122,47 @@ } }, "node_modules/openid-client": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.4.0.tgz", - "integrity": "sha512-hgJa2aQKcM2hn3eyVtN12tEA45ECjTJPXCgUh5YzTzy9qwapCvmDTVPWOcWVL0d34zeQoQ/hbG9lJhl3AYxJlQ==", + "version": "5.6.5", + "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.6.5.tgz", + "integrity": "sha512-5P4qO9nGJzB5PI0LFlhj4Dzg3m4odt0qsJTfyEtZyOlkgpILwEioOhVVJOrS1iVH494S4Ee5OCjjg6Bf5WOj3w==", + "license": "MIT", "optional": true, "dependencies": { - "jose": "^4.10.0", + "jose": "^4.15.5", "lru-cache": "^6.0.0", - "object-hash": "^2.0.1", - "oidc-token-hash": "^5.0.1" + "object-hash": "^2.2.0", + "oidc-token-hash": "^5.0.3" }, "funding": { "url": "https://github.com/sponsors/panva" } }, + "node_modules/openid-client/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -9145,37 +10171,43 @@ "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "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": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "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": "^2.2.0" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-retry": { @@ -9197,6 +10229,7 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -9224,8 +10257,9 @@ "node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, + "license": "MIT", "dependencies": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" @@ -9239,6 +10273,7 @@ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -9248,6 +10283,7 @@ "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" } @@ -9255,8 +10291,9 @@ "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": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9266,6 +10303,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -9274,7 +10312,8 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-scurry": { "version": "1.11.1", @@ -9293,23 +10332,18 @@ "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==", - "dev": true, - "license": "ISC" - }, "node_modules/path-to-regexp": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.0.tgz", - "integrity": "sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg==" + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", + "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==", + "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -9317,12 +10351,13 @@ "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "license": "MIT" }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", "dev": true, "license": "ISC" }, @@ -9331,50 +10366,120 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" }, "engines": { - "node": ">=0.10" + "node": ">=8" } }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, "engines": { - "node": ">=4" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { - "find-up": "^4.0.0" + "p-limit": "^2.2.0" }, "engines": { "node": ">=8" } }, + "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.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.45", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.45.tgz", + "integrity": "sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==", "dev": true, "funding": [ { @@ -9390,10 +10495,11 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -9451,6 +10557,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, + "license": "ISC", "dependencies": { "icss-utils": "^5.0.0" }, @@ -9462,9 +10569,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", - "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "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==", "dev": true, "license": "MIT", "dependencies": { @@ -9497,6 +10604,7 @@ "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" } @@ -9505,23 +10613,32 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "dev": true, + "license": "MIT" }, "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/prop-types/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/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, + "license": "MIT", "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -9535,19 +10652,22 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "license": "MIT" }, "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", "engines": { "node": ">=6" } @@ -9567,12 +10687,13 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -9585,6 +10706,7 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "license": "MIT", "dependencies": { "decode-uri-component": "^0.2.2", "filter-obj": "^1.1.0", @@ -9616,13 +10738,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } @@ -9632,6 +10756,7 @@ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -9641,6 +10766,7 @@ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, + "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -9656,6 +10782,7 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -9667,11 +10794,25 @@ "node": ">= 0.8" } }, + "node_modules/raw-body/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/raw-body/node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -9679,13 +10820,14 @@ "node_modules/raw-loader": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", + "integrity": "sha512-sf7oGoLuaYAScB4VGr0tzetsYlS8EJH6qnTCfQ/WVEa89hALQ4RQfCKt5xCyPQKPDUbVUAIP1QsxAwfAjlDp7Q==", "dev": true }, "node_modules/react": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -9698,6 +10840,7 @@ "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -9707,10 +10850,21 @@ "react": "17.0.2" } }, + "node_modules/react-dom/node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, "node_modules/react-fast-compare": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", - "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" + "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==", + "license": "MIT" }, "node_modules/react-hook-form": { "version": "7.51.2", @@ -9732,6 +10886,7 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.4.1.tgz", "integrity": "sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ==", + "license": "MIT", "dependencies": { "goober": "^2.1.10" }, @@ -9744,14 +10899,16 @@ } }, "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==" + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "license": "MIT" }, "node_modules/react-reflex": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/react-reflex/-/react-reflex-4.2.6.tgz", "integrity": "sha512-MLGty/ii/BTipKZ47dfs8Ue5g1xqgCxUCDM34ruEr0UVJuXGDzcSX9wPMzRcv4dUR+1tw4hm4c3a6V6hLO2XcA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.0.0", "lodash.throttle": "^4.1.1", @@ -9766,6 +10923,7 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/react-measure/-/react-measure-2.5.2.tgz", "integrity": "sha512-M+rpbTLWJ3FD6FXvYV6YEGvQ5tMayQ3fGrZhRPHrE9bVlBYfDCLuDcgNttYfk8IqfOI03jz6cbpqMRTUclQnaA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.2.0", "get-node-dimensions": "^1.2.1", @@ -9781,6 +10939,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/react-sizeme/-/react-sizeme-3.0.2.tgz", "integrity": "sha512-xOIAOqqSSmKlKFJLO3inBQBdymzDuXx4iuwkNcJmC96jeiOg5ojByvL+g3MW9LPEsojLbC6pf68zOfobK8IPlw==", + "license": "MIT", "dependencies": { "element-resize-detector": "^1.2.2", "invariant": "^2.2.4", @@ -9807,8 +10966,9 @@ "node_modules/read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", "dev": true, + "license": "MIT", "dependencies": { "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", @@ -9823,6 +10983,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, + "license": "MIT", "dependencies": { "pify": "^3.0.0" }, @@ -9833,8 +10994,9 @@ "node_modules/readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -9860,6 +11022,7 @@ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, + "license": "MIT", "dependencies": { "resolve": "^1.20.0" }, @@ -9872,20 +11035,42 @@ "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "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.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "license": "Apache-2.0", "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -9916,6 +11101,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -9929,6 +11115,7 @@ "version": "6.5.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.6" } @@ -9936,7 +11123,8 @@ "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9946,6 +11134,7 @@ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9954,20 +11143,23 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/resize-observer-polyfill": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -9983,6 +11175,7 @@ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, + "license": "MIT", "dependencies": { "resolve-from": "^5.0.0" }, @@ -9995,6 +11188,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -10012,8 +11206,9 @@ "node_modules/resolve-path": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", - "integrity": "sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc=", + "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==", "dev": true, + "license": "MIT", "dependencies": { "http-errors": "~1.6.2", "path-is-absolute": "1.0.1" @@ -10025,8 +11220,9 @@ "node_modules/resolve-path/node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -10034,8 +11230,9 @@ "node_modules/resolve-path/node_modules/http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -10049,14 +11246,16 @@ "node_modules/resolve-path/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true, + "license": "ISC" }, "node_modules/resolve-path/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/retry": { "version": "0.13.1", @@ -10073,15 +11272,17 @@ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/rfc4648": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.5.1.tgz", - "integrity": "sha512-60e/YWs2/D3MV1ErdjhJHcmlgnyLUiG4X/14dgsfm9/zmCWLN16xI6YqJYSCd/OANM7bUNzJqPY5B8/02S9Ibw==" + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.5.3.tgz", + "integrity": "sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==", + "license": "MIT" }, "node_modules/rimraf": { "version": "5.0.5", @@ -10102,16 +11303,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/rimraf/node_modules/glob": { "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", @@ -10149,6 +11340,16 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/rtl-css-js": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.16.1.tgz", @@ -10177,6 +11378,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -10184,32 +11386,95 @@ "node_modules/rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/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/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "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-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, "node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" } }, "node_modules/schema-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.2.0.tgz", - "integrity": "sha512-0zTyLGyDJYd/MBxG1AhJkKa6fpEBds4OQO2ut0w7OYG+ZGhGea09lijvzsqegYSik88zc7cUtIlnnO+/BvD6gQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -10226,19 +11491,22 @@ "node_modules/select": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" + "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==", + "license": "MIT" }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/selfsigned": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/node-forge": "^1.3.0", "node-forge": "^1" @@ -10248,12 +11516,10 @@ } }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -10266,6 +11532,7 @@ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -10290,6 +11557,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -10298,13 +11566,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/send/node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -10316,17 +11586,12 @@ "node": ">= 0.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==", - "dev": true - }, "node_modules/send/node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -10336,6 +11601,7 @@ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -10345,6 +11611,7 @@ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -10363,6 +11630,7 @@ "resolved": "https://registry.npmjs.org/serve-index-75lb/-/serve-index-75lb-2.0.1.tgz", "integrity": "sha512-/d9r8bqJlFQcwy0a0nb1KnWAA+Mno+V+VaoKocdkbW5aXKRQd/+4bfnRhQRQr6uEoYwTRJ4xgztOyCJvWcpBpQ==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -10381,6 +11649,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -10390,6 +11659,7 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -10399,6 +11669,7 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -10413,25 +11684,29 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/serve-index-75lb/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/serve-index-75lb/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/serve-index/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -10441,6 +11716,7 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -10450,6 +11726,7 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -10464,25 +11741,29 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/serve-index/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/serve-static": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dev": true, + "license": "MIT", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -10493,17 +11774,53 @@ "node": ">= 0.8.0" } }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "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/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -10514,13 +11831,15 @@ "node_modules/shallowequal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" }, "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==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -10533,6 +11852,7 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -10542,19 +11862,25 @@ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "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==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10564,13 +11890,15 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -10580,6 +11908,7 @@ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, + "license": "MIT", "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", @@ -10591,6 +11920,7 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -10600,15 +11930,17 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -10618,6 +11950,7 @@ "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", "dev": true, + "license": "MIT", "dependencies": { "iconv-lite": "^0.6.3", "source-map-js": "^1.0.2" @@ -10633,65 +11966,59 @@ "webpack": "^5.72.1" } }, - "node_modules/source-map-loader/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, + "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "dev": true + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "dev": true, + "license": "CC0-1.0" }, "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", @@ -10708,6 +12035,7 @@ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", @@ -10722,6 +12050,7 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -10731,31 +12060,12 @@ "node": ">= 6" } }, - "node_modules/spdy-transport/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==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/spdy-transport/node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } @@ -10764,14 +12074,16 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "license": "MIT", "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -10795,16 +12107,18 @@ "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/stream-buffers": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz", - "integrity": "sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.3.tgz", + "integrity": "sha512-pqMqwQCso0PBJt2PQmDO0cFj0lyqmiwOMiMSkVtRokl7e+ZTRYgDHKnuZNbqjiJXgsg4nuqtD/zxuo9KqTp0Yw==", + "license": "Unlicense", "engines": { "node": ">= 0.10.0" } @@ -10814,6 +12128,7 @@ "resolved": "https://registry.npmjs.org/stream-log-stats/-/stream-log-stats-3.0.2.tgz", "integrity": "sha512-393j7aeF9iRdHvyANqEQU82UQmpw2CTxgsT83caefh+lOxavVLbVrw8Mr4zjXeZLh2+xeHZMKfVx4T0rJ/EchA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escape-sequences": "^5.1.2", "byte-size": "^6.2.0", @@ -10835,6 +12150,7 @@ "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-5.1.2.tgz", "integrity": "sha512-JcpoVp1W1bl1Qn4cVuiXEhD6+dyXKSOgCn2zlzE8inYgCJCBy1aPnUhlz6I4DFum8D4ovb9Qi/iAjUcGvG2lqw==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^4.0.0" }, @@ -10847,6 +12163,7 @@ "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -10856,21 +12173,64 @@ "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-6.2.0.tgz", "integrity": "sha512-6EspYUCAPMc7E2rltBgKwhG+Cmk0pDm9zDtF1Awe2dczNUL3YpZ8mTs/dueOTS1hqGWBOatqef4jYMGjln7WmA==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/stream-log-stats/node_modules/table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/stream-log-stats/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/stream-log-stats/node_modules/wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "dev": true, + "license": "MIT", + "dependencies": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/stream-slice": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/stream-slice/-/stream-slice-0.1.2.tgz", - "integrity": "sha1-LcT04bk2+xPz6zmi3vGTJ5jQeks=", - "dev": true + "integrity": "sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==", + "dev": true, + "license": "MIT" }, "node_modules/stream-via": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -10878,8 +12238,9 @@ "node_modules/streaming-json-stringify": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/streaming-json-stringify/-/streaming-json-stringify-3.1.0.tgz", - "integrity": "sha1-gCAEN6mTzDnE/gAmO3s7kDrIevU=", + "integrity": "sha512-axtfs3BDxAsrZ9swD163FBrXZ8dhJJp6kUI6C97TvUZG9RHKfbg9nFbXqEheFNOb3IYMEt2ag9F62sWLFUZ4ug==", "dev": true, + "license": "MIT", "dependencies": { "json-stringify-safe": "5", "readable-stream": "2" @@ -10888,14 +12249,16 @@ "node_modules/streaming-json-stringify/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" }, "node_modules/streaming-json-stringify/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -10906,11 +12269,19 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/streaming-json-stringify/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, "node_modules/streaming-json-stringify/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -10919,6 +12290,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "license": "MIT", "engines": { "node": ">=4" } @@ -10926,14 +12298,16 @@ "node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true, + "license": "MIT" }, "node_modules/string-replace-loader": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-replace-loader/-/string-replace-loader-3.1.0.tgz", "integrity": "sha512-5AOMUZeX5HE/ylKDnEa/KKBqvlnFmRZudSOjVJHxhoJg9QYTwl1rECx7SLR8BBH7tfxb4Rp7EM2XVfQFxIhsbQ==", "dev": true, + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" @@ -10946,6 +12320,7 @@ "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", @@ -10972,14 +12347,35 @@ } }, "node_modules/string.prototype.padend": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz", - "integrity": "sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "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/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -10989,26 +12385,33 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "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": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11018,6 +12421,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -11042,8 +12446,9 @@ "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -11053,6 +12458,7 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -11075,6 +12481,7 @@ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12.13.0" }, @@ -11087,9 +12494,9 @@ } }, "node_modules/stylis": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", - "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.4.tgz", + "integrity": "sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==", "license": "MIT" }, "node_modules/supports-color": { @@ -11097,6 +12504,7 @@ "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" }, @@ -11109,6 +12517,7 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11116,37 +12525,18 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/table-layout": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", - "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", - "dev": true, - "dependencies": { - "array-back": "^4.0.1", - "deep-extend": "~0.6.0", - "typical": "^5.2.0", - "wordwrapjs": "^4.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/table-layout/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/table-layout/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "node_modules/table-layout": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-4.1.1.tgz", + "integrity": "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==", "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^6.2.2", + "wordwrapjs": "^5.1.0" + }, "engines": { - "node": ">=8" + "node": ">=12.17" } }, "node_modules/tabster": { @@ -11164,6 +12554,7 @@ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -11185,20 +12576,12 @@ "node": ">=10" } }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "license": "ISC", - "engines": { - "node": ">=8" - } - }, "node_modules/terser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", - "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", + "version": "5.31.6", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz", + "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -11217,6 +12600,7 @@ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.20", "jest-worker": "^27.4.5", @@ -11246,17 +12630,26 @@ } } }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", "dev": true, + "license": "MIT", "dependencies": { "any-promise": "^1.0.0" } @@ -11264,8 +12657,9 @@ "node_modules/thenify-all": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", "dev": true, + "license": "MIT", "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -11277,6 +12671,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz", "integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==", + "license": "MIT", "engines": { "node": ">=10" } @@ -11284,14 +12679,16 @@ "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" }, "node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -11300,14 +12697,16 @@ "node_modules/through2/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" }, "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -11318,11 +12717,19 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, "node_modules/through2/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -11337,17 +12744,20 @@ "node_modules/tiny-emitter": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", + "license": "MIT" }, "node_modules/tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "license": "MIT" }, "node_modules/tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "license": "MIT", "engines": { "node": ">=14.14" } @@ -11370,6 +12780,7 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6" } @@ -11378,6 +12789,7 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -11389,15 +12801,17 @@ "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, "node_modules/ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=16.13.0" + "node": ">=16" }, "peerDependencies": { "typescript": ">=4.2.0" @@ -11414,6 +12828,7 @@ "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6.x" } @@ -11421,7 +12836,8 @@ "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -11432,13 +12848,15 @@ "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "license": "Unlicense" }, "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" }, @@ -11464,6 +12882,7 @@ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -11472,6 +12891,83 @@ "node": ">= 0.6" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typescript": { "version": "5.4.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz", @@ -11491,19 +12987,21 @@ "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } }, "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" }, "funding": { @@ -11514,6 +13012,7 @@ "version": "5.28.4", "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", + "license": "MIT", "dependencies": { "@fastify/busboy": "^2.0.0" }, @@ -11522,23 +13021,26 @@ } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" }, "node_modules/universal-github-app-jwt": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.1.1.tgz", - "integrity": "sha512-G33RTLrIBMFmlDV4u4CBF7dh71eWwykck4XgaxaIVeZKOYZRAAxvcGMRFTUclVY6xoUPQvO4Ne5wKGxYm/Yy9w==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.1.2.tgz", + "integrity": "sha512-t1iB2FmLFE+yyJY9+3wMx0ejB+MQpEVkH0gQv7dR6FZyltyq+ZZO0uDpbopxhrZ3SLEO4dCEkIujOMldEQ2iOA==", + "license": "MIT", "dependencies": { "@types/jsonwebtoken": "^9.0.0", - "jsonwebtoken": "^9.0.0" + "jsonwebtoken": "^9.0.2" } }, "node_modules/universal-router": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/universal-router/-/universal-router-9.2.0.tgz", "integrity": "sha512-V5PyhtX7JaUDF+EM8YvP4NlfPcqYfswMJV3J0LVPqBC70sabj6UAu3rPI7kSMNwRDZ+F6Wf0zcEmECcglHx2xg==", + "license": "MIT", "dependencies": { "path-to-regexp": "^6.2.0" } @@ -11546,13 +13048,15 @@ "node_modules/universal-user-agent": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", - "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==" + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", + "license": "ISC" }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -11562,14 +13066,15 @@ "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/update-browserslist-db": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", - "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "dev": true, "funding": [ { @@ -11601,6 +13106,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -11610,6 +13116,7 @@ "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", "dev": true, + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "mime-types": "^2.1.27", @@ -11656,14 +13163,16 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" }, "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==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4.0" } @@ -11673,6 +13182,7 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "license": "MIT", "bin": { "uuid": "bin/uuid" } @@ -11682,6 +13192,7 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -11690,8 +13201,9 @@ "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -11699,10 +13211,11 @@ "node_modules/verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "engines": [ "node >=0.6.0" ], + "license": "MIT", "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -11712,22 +13225,25 @@ "node_modules/verror/node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "license": "MIT" }, "node_modules/walk-back": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.0.tgz", - "integrity": "sha512-Uhxps5yZcVNbLEAnb+xaEEMdgTXl9qAQDzKYejG2AZ7qPwRQ81lozY9ECDbjLPNWm7YsO1IK5rsP1KoQzXAcGA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.1.tgz", + "integrity": "sha512-e/FRLDVdZQWFrAzU6Hdvpm7D7m2ina833gIKLptQykRK49mmCYHLHq7UqjPDbxbKLZkTkW1rFqbengdE3sLfdw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } }, "node_modules/watchpack": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", - "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, + "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -11741,6 +13257,7 @@ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, + "license": "MIT", "dependencies": { "minimalistic-assert": "^1.0.0" } @@ -11748,7 +13265,8 @@ "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" }, "node_modules/webpack": { "version": "5.91.0", @@ -11803,6 +13321,7 @@ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", "dev": true, + "license": "MIT", "dependencies": { "@discoveryjs/json-ext": "^0.5.0", "@webpack-cli/configtest": "^2.1.1", @@ -11848,6 +13367,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } @@ -11877,16 +13397,16 @@ } }, "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -11994,15 +13514,16 @@ } }, "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -12014,6 +13535,7 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -12025,7 +13547,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/webpack-dev-server/node_modules/rimraf": { "version": "3.0.2", @@ -12049,6 +13572,7 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -12064,12 +13588,14 @@ } }, "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", "dev": true, + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", + "flat": "^5.0.2", "wildcard": "^2.0.0" }, "engines": { @@ -12081,15 +13607,41 @@ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.13.0" } }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", @@ -12104,6 +13656,7 @@ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=0.8.0" } @@ -12112,6 +13665,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -12122,6 +13676,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -12137,6 +13692,7 @@ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, + "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -12148,38 +13704,58 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "node_modules/wordwrapjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", - "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, + "license": "MIT", "dependencies": { - "reduce-flatten": "^2.0.0", - "typical": "^5.2.0" + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wordwrapjs/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true, + "license": "MIT" + }, + "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": ">=8" + "node": ">=0.10.0" + } + }, + "node_modules/wordwrapjs": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", + "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.17" } }, "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==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -12214,12 +13790,13 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" }, "node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -12250,6 +13827,7 @@ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4" } @@ -12258,6 +13836,7 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", "engines": { "node": ">=10" } @@ -12265,40 +13844,42 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/ylru": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz", - "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.4.0.tgz", + "integrity": "sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.0.0" } diff --git a/esp/src/package.json b/esp/src/package.json index e9d7224d6f4..9f8a9aeac61 100644 --- a/esp/src/package.json +++ b/esp/src/package.json @@ -44,7 +44,7 @@ "@hpcc-js/chart": "2.84.1", "@hpcc-js/codemirror": "2.63.0", "@hpcc-js/common": "2.72.0", - "@hpcc-js/comms": "2.95.0", + "@hpcc-js/comms": "2.95.1", "@hpcc-js/dataflow": "8.1.7", "@hpcc-js/eclwatch": "2.75.3", "@hpcc-js/graph": "2.86.0", diff --git a/esp/src/src-react/components/DaliAdmin.tsx b/esp/src/src-react/components/DaliAdmin.tsx index 5d0605fd98e..cc9638d20b5 100644 --- a/esp/src/src-react/components/DaliAdmin.tsx +++ b/esp/src/src-react/components/DaliAdmin.tsx @@ -14,6 +14,7 @@ import { GetLogicalFilePart } from "./GetLogicalFilePart"; import { GetProtectedList } from "./GetProtectedList"; import { GetValue } from "./GetValue"; import { SetLogicalFilePartAttr } from "./SetLogicalFilePartAttr"; +import { DaliSDSUnlock } from "./DaliSDSUnlock"; import { SetProtected } from "./SetProtected"; import { SetUnprotected } from "./SetUnprotected"; import { SetValue } from "./SetValue"; @@ -67,6 +68,9 @@ export const DaliAdmin: React.FunctionComponent = ({ + + + diff --git a/esp/src/src-react/components/DaliSDSUnlock.tsx b/esp/src/src-react/components/DaliSDSUnlock.tsx new file mode 100644 index 00000000000..6d1b9f6498c --- /dev/null +++ b/esp/src/src-react/components/DaliSDSUnlock.tsx @@ -0,0 +1,84 @@ +import * as React from "react"; +import { DefaultButton, DetailsList, DetailsListLayoutMode, IColumn } from "@fluentui/react"; +import { SizeMe } from "react-sizeme"; +import { csvParse } from "d3-dsv"; +import { DaliService } from "@hpcc-js/comms"; +import { scopedLogger } from "@hpcc-js/util"; +import { TableGroup } from "./forms/Groups"; +import { useConfirm } from "../hooks/confirm"; +import nlsHPCC from "src/nlsHPCC"; +import { HolyGrail } from "../layouts/HolyGrail"; + +const logger = scopedLogger("src-react/components/DaliSDSUnlock.tsx"); + +const myDaliService = new DaliService({ baseUrl: "" }); + +interface DaliSDSUnlockProps { +} + +export const DaliSDSUnlock: React.FunctionComponent = ({ + +}) => { + + const [columns, setColumns] = React.useState([]); + const [items, setItems] = React.useState([]); + const [connectionId, setConnectionId] = React.useState(""); + const [close, setClose] = React.useState(false); + + const [DaliPromptConfirm, setDaliPromptConfirm] = useConfirm({ + title: nlsHPCC.DaliAdmin, + message: nlsHPCC.DaliPromptConfirm, + onSubmit: React.useCallback(() => { + myDaliService.UnlockSDSLock({ ConnectionID: connectionId, Close: close }).then(response => { + const data = csvParse(response.Result); + setColumns(data.columns.map((col, idx) => { + return { + key: col, + name: col, + fieldName: col, + minWidth: 100 + }; + })); + setItems(data); + }).catch(err => logger.error(err)); + }, [connectionId, close]) + }); + + const onSubmit = React.useCallback(() => { + setDaliPromptConfirm(true); + }, [setDaliPromptConfirm]); + + return { + switch (id) { + case "ConnectionID": + setConnectionId(value); + break; + case "Close": + setClose(value); + break; + default: + logger.debug(`${id}: ${value}`); + } + }} />} + main={{({ size }) => { + const height = `${size.height}px`; + return
+
+ + +
+
; + }}
} + />; +}; \ No newline at end of file diff --git a/esp/src/src/nls/hpcc.ts b/esp/src/src/nls/hpcc.ts index 03f5324c2d0..771aa083995 100644 --- a/esp/src/src/nls/hpcc.ts +++ b/esp/src/src/nls/hpcc.ts @@ -144,6 +144,7 @@ export = { Configuration: "Configuration", ConfirmPassword: "Confirm Password", ConfirmRemoval: "Are you sure you want to do this?", + ConnectionID: "Connection ID", ContactAdmin: "If you wish to rename this group, please contact your LDAP admin.", Container: "Container", ContainerName: "Container Name", @@ -1081,6 +1082,7 @@ export = { undefined: "undefined", Unknown: "Unknown", Unlock: "Unlock", + UnlockSDSLock: "Unlock SDS Lock", Unprotect: "Unprotect", UnsupportedIE9FF: "Unsupported (IE <= 9, FireFox)", Unsuspend: "Unsuspend", From bf533d6598876c32f5b0f220176ea18bb5b2bec4 Mon Sep 17 00:00:00 2001 From: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> Date: Thu, 5 Sep 2024 15:52:12 -0400 Subject: [PATCH 13/22] HPCC-32592 ECL Watch v9 remote copy dialog feedback displays a loading message and disables the remote copy dialog's submit button until the request comes back Signed-off-by: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> --- esp/src/src-react/components/forms/RemoteCopy.tsx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/esp/src/src-react/components/forms/RemoteCopy.tsx b/esp/src/src-react/components/forms/RemoteCopy.tsx index baf5fcce2c2..2eaa0e3b7c3 100644 --- a/esp/src/src-react/components/forms/RemoteCopy.tsx +++ b/esp/src/src-react/components/forms/RemoteCopy.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { Checkbox, DefaultButton, IDropdownOption, mergeStyleSets, MessageBar, MessageBarType, PrimaryButton, Stack, TextField } from "@fluentui/react"; +import { Checkbox, DefaultButton, IDropdownOption, mergeStyleSets, MessageBar, MessageBarType, PrimaryButton, Spinner, Stack, TextField } from "@fluentui/react"; import { Controller, useForm } from "react-hook-form"; import { scopedLogger } from "@hpcc-js/util"; import nlsHPCC from "src/nlsHPCC"; @@ -58,20 +58,28 @@ export const RemoteCopy: React.FunctionComponent = ({ const [showError, setShowError] = React.useState(false); const [errorMessage, setErrorMessage] = React.useState(""); - + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const [selectedDestGroup, setSelectedDestGroup] = React.useState(""); const [replicateDisabled, setReplicateDisabled] = React.useState(true); const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); + FileSpray.Copy({ request: data }).then(({ CopyResponse, Exceptions }) => { if (Exceptions?.Exception) { + setSubmitDisabled(false); + setSpinnerHidden(true); setShowError(true); setErrorMessage(Exceptions?.Exception[0]?.Message); } else { + setSubmitDisabled(false); + setSpinnerHidden(true); setShowForm(false); reset(defaultValues); if (refreshGrid) refreshGrid(true); @@ -113,7 +121,8 @@ export const RemoteCopy: React.FunctionComponent = ({ return - + + setShowForm(false)} /> }> {showError && From f8773e48e3c81a10cf9fbe6250a8fae949fb81ae Mon Sep 17 00:00:00 2001 From: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> Date: Thu, 5 Sep 2024 15:19:33 -0400 Subject: [PATCH 14/22] HPCC-32601 ECL Watch v9 fix disappearing subnavigation fixes an issue where the subnavigation would not display properly on page load if a query-string existed in the url Signed-off-by: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> --- esp/src/src-react/components/Menu.tsx | 7 ++++--- esp/src/src-react/util/history.ts | 8 ++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/esp/src/src-react/components/Menu.tsx b/esp/src/src-react/components/Menu.tsx index ad77f8c47d3..2b8fdad4eb8 100644 --- a/esp/src/src-react/components/Menu.tsx +++ b/esp/src/src-react/components/Menu.tsx @@ -4,6 +4,7 @@ import { useConst } from "@fluentui/react-hooks"; import nlsHPCC from "src/nlsHPCC"; import { hasLogAccess } from "src/ESPLog"; import { containerized, bare_metal } from "src/BuildInfo"; +import { navCategory } from "../util/history"; import { MainNav, routes } from "../routes"; import { useFavorite, useFavorites, useHistory } from "../hooks/favorite"; import { useSessionStore } from "../hooks/store"; @@ -98,7 +99,7 @@ routes.forEach((route: any) => { }); function navSelectedKey(hashPath) { - const rootPath = navIdx(`/${hashPath?.split("/")[1]}`); + const rootPath = navIdx(`/${navCategory(hashPath)?.split("/")[1]}`); if (rootPath?.length) { return rootPath[0]; } @@ -214,8 +215,8 @@ for (const key in subMenuItems) { } function subNavSelectedKey(hashPath) { - const hashCategory = hashPath.split("/").slice(0, 3).join("/"); - return subNavIdx(hashCategory).length ? hashCategory : null; + const category = navCategory(hashPath); + return subNavIdx(category).length ? category : null; } interface SubNavigationProps { diff --git a/esp/src/src-react/util/history.ts b/esp/src/src-react/util/history.ts index d4420fc4d7e..6f54845db45 100644 --- a/esp/src/src-react/util/history.ts +++ b/esp/src/src-react/util/history.ts @@ -278,3 +278,11 @@ export function updateState(key: string, val?: string | string[] | number | bool } globalHistory.replaceState(state, ""); } + +export function navCategory(hash: string): string { + let category = hash.split("/").slice(0, 2).join("/"); + if (category.indexOf("?") > -1) { + category = category.substring(0, category.indexOf("?")); + } + return category; +} \ No newline at end of file From da1c54ed9df00707a4c35775a3c3a98a25b8e7b3 Mon Sep 17 00:00:00 2001 From: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> Date: Thu, 5 Sep 2024 17:00:05 -0400 Subject: [PATCH 15/22] HPCC-32593 ECL Watch v9 WU details fix sticky infogrid headers fixes the sticky column headers of the Infogrid component Signed-off-by: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> --- esp/src/src-react/components/InfoGrid.tsx | 26 +++++----- esp/src/src-react/components/LogViewer.tsx | 19 ++++---- .../src-react/components/controls/Grid.tsx | 47 +++++-------------- 3 files changed, 34 insertions(+), 58 deletions(-) diff --git a/esp/src/src-react/components/InfoGrid.tsx b/esp/src/src-react/components/InfoGrid.tsx index 1bcca1178b9..9b17d896e86 100644 --- a/esp/src/src-react/components/InfoGrid.tsx +++ b/esp/src/src-react/components/InfoGrid.tsx @@ -237,23 +237,19 @@ export const InfoGrid: React.FunctionComponent = ({ } }, [data.length]); - return
+ return
{({ size }) => -
-
- { }} - setTotal={setTotal} - refresh={refreshTable} - height={`${size.height - (44 + 8 + 45 + 12)}px`} - selectionMode={SelectionMode.none} - > -
-
+ { }} + setTotal={setTotal} + refresh={refreshTable} + height={`${size.height - (44 + 8 + 45 + 12)}px`} + selectionMode={SelectionMode.none} + > }
; }; diff --git a/esp/src/src-react/components/LogViewer.tsx b/esp/src/src-react/components/LogViewer.tsx index 82e027a55b4..2e44c369051 100644 --- a/esp/src/src-react/components/LogViewer.tsx +++ b/esp/src/src-react/components/LogViewer.tsx @@ -102,13 +102,16 @@ export const LogViewer: React.FunctionComponent = ({ return } main={ - } +
+ +
+ } />; }; diff --git a/esp/src/src-react/components/controls/Grid.tsx b/esp/src/src-react/components/controls/Grid.tsx index 770b5b759ba..129271d47b3 100644 --- a/esp/src/src-react/components/controls/Grid.tsx +++ b/esp/src/src-react/components/controls/Grid.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { DetailsList, DetailsListLayoutMode, Dropdown, IColumn as _IColumn, ICommandBarItemProps, IDetailsHeaderProps, IDetailsListStyles, mergeStyleSets, Selection, Stack, TooltipHost, TooltipOverflowMode, IRenderFunction, IDetailsRowProps, SelectionMode, ConstrainMode, ISelection } from "@fluentui/react"; +import { DetailsList, DetailsListLayoutMode, Dropdown, IColumn as _IColumn, ICommandBarItemProps, IDetailsHeaderProps, IDetailsListStyles, mergeStyleSets, Selection, Stack, TooltipHost, TooltipOverflowMode, IRenderFunction, IDetailsRowProps, SelectionMode, ConstrainMode, ISelection, ScrollablePane, Sticky } from "@fluentui/react"; import { Pagination } from "@fluentui/react-experiments/lib/Pagination"; import { useConst } from "@fluentui/react-hooks"; import { BaseStore, Memory, QueryRequest, QuerySortItem } from "src/store/Memory"; @@ -293,45 +293,22 @@ const FluentStoreGrid: React.FunctionComponent = ({ }, [memoizedColumns]); const renderDetailsHeader = React.useCallback((props: IDetailsHeaderProps, defaultRender?: any) => { - return defaultRender({ - ...props, - onRenderColumnHeaderTooltip: (tooltipHostProps) => { - return ; - }, - styles: { root: { paddingTop: 1 } } - }); + return + {defaultRender({ + ...props, + onRenderColumnHeaderTooltip: (tooltipHostProps) => { + return ; + }, + styles: { root: { paddingTop: 1 } } + })} + ; }, []); const columnResize = React.useCallback((column: IColumn, newWidth: number, columnIndex?: number) => { columnWidths.set(column.key, newWidth); }, [columnWidths]); - /* Monitor Scroll Events (hack) - - Essentially we are setting the scrollElement of the DetailsList to the div that contains the DetailsList (rather than a scrollable pane host). - See: https://github.com/microsoft/fluentui/blob/55d3a31042e8972ea373841bef616c68e6ab69f9/packages/react/src/components/List/List.tsx#L355-L369 - - Note: Not sure if `_onScroll` call is needed, but excluding for now as it seems to work without it and is more performant. - */ - // const id = useId("fluent-store-grid-"); - // const detailListScrollComponent = React.useRef(null); - // const detailListComponent = React.useRef(null); - // const [detailListElement, setDetailListElement] = React.useState(null); - // useMount(() => { - // const detailListElement = document.querySelector(`#${id} .ms-DetailsList`); - // setDetailListElement(detailListElement); - // if (detailListComponent.current?._list?.current) { - // detailListComponent.current._list.current._scrollElement = detailListElement; - // } - // }); - // useOnEvent(detailListScrollComponent, "scroll", () => { - // detailListComponent.current?._list?.current?._onScroll(); - // }); - // useOnEvent(detailListScrollComponent, "scroll", () => { - // detailListComponent.current?._list?.current?._onAsyncScrollDebounced(); - // }); - - return
+ return = ({ styles={gridStyles(height)} selectionMode={selectionMode} /> -
; + ; }; interface FluentGridProps { From ad7509d4d256d9d2f6e4cde989bf9f68a74c2ad0 Mon Sep 17 00:00:00 2001 From: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> Date: Tue, 10 Sep 2024 15:02:36 -0400 Subject: [PATCH 16/22] HPCC-32604 ECL Watch v9 forms add progress indicator add progress indicators to various form components, and disable the primary button until completion to block multiple unintentional submits Signed-off-by: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> --- esp/src/src-react/components/forms/AddBinding.tsx | 12 ++++++++++-- esp/src/src-react/components/forms/AddGroup.tsx | 11 +++++++++-- .../src-react/components/forms/AddGroupResource.tsx | 11 +++++++++-- .../src-react/components/forms/AddPackageMap.tsx | 13 +++++++++++-- .../components/forms/AddPackageMapPart.tsx | 13 +++++++++++-- .../src-react/components/forms/AddPermission.tsx | 13 +++++++++++-- .../src-react/components/forms/AddToSuperfile.tsx | 11 +++++++++-- esp/src/src-react/components/forms/AddUser.tsx | 13 +++++++++++-- esp/src/src-react/components/forms/CopyFile.tsx | 13 +++++++++++-- esp/src/src-react/components/forms/DesprayFile.tsx | 13 +++++++++++-- esp/src/src-react/components/forms/GroupAddUser.tsx | 13 +++++++++++-- esp/src/src-react/components/forms/PublishQuery.tsx | 11 +++++++++-- esp/src/src-react/components/forms/PushEvent.tsx | 13 +++++++++++-- esp/src/src-react/components/forms/RenameFile.tsx | 11 +++++++++-- .../src-react/components/forms/ReplicateFile.tsx | 11 +++++++++-- .../src-react/components/forms/TitlebarConfig.tsx | 11 +++++++++-- esp/src/src-react/components/forms/UserAddGroup.tsx | 13 +++++++++++-- .../components/forms/landing-zone/AddFileForm.tsx | 11 +++++++++-- .../forms/landing-zone/BlobImportForm.tsx | 11 +++++++++-- .../forms/landing-zone/DelimitedImportForm.tsx | 11 +++++++++-- .../forms/landing-zone/FixedImportForm.tsx | 11 +++++++++-- .../forms/landing-zone/JsonImportForm.tsx | 11 +++++++++-- .../forms/landing-zone/VariableImportForm.tsx | 11 +++++++++-- .../components/forms/landing-zone/XmlImportForm.tsx | 11 +++++++++-- 24 files changed, 235 insertions(+), 48 deletions(-) diff --git a/esp/src/src-react/components/forms/AddBinding.tsx b/esp/src/src-react/components/forms/AddBinding.tsx index 33df4fa0127..abc26d8d4c9 100644 --- a/esp/src/src-react/components/forms/AddBinding.tsx +++ b/esp/src/src-react/components/forms/AddBinding.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { DefaultButton, IDropdownOption, PrimaryButton, TextField, } from "@fluentui/react"; +import { DefaultButton, IDropdownOption, PrimaryButton, Spinner, TextField, } from "@fluentui/react"; import { scopedLogger } from "@hpcc-js/util"; import { useForm, Controller } from "react-hook-form"; import { EsdlDefinitionsTextField, EsdlEspProcessesTextField } from "./Fields"; @@ -39,6 +39,8 @@ export const AddBindingForm: React.FunctionComponent = ({ }) => { const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const closeForm = React.useCallback(() => { setShowForm(false); @@ -47,11 +49,16 @@ export const AddBindingForm: React.FunctionComponent = ({ const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); + const request: any = data; request.Overwrite = true; WsESDLConfig.PublishESDLBinding({ request: request }) .then(() => { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); reset(defaultValues); if (refreshGrid) refreshGrid(); @@ -66,7 +73,8 @@ export const AddBindingForm: React.FunctionComponent = ({ return - + + closeForm()} /> }> = ({ }) => { const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const closeForm = React.useCallback(() => { setShowForm(false); @@ -41,10 +43,14 @@ export const AddGroupForm: React.FunctionComponent = ({ const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); const request: any = data; WsAccess.GroupAdd({ request: request }) .then(() => { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); reset(defaultValues); if (refreshGrid) refreshGrid(); @@ -58,7 +64,8 @@ export const AddGroupForm: React.FunctionComponent = ({ return - + + { reset(defaultValues); closeForm(); }} /> }> { const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const closeForm = React.useCallback(() => { setShowForm(false); @@ -51,6 +53,8 @@ export const AddGroupResourceForm: React.FunctionComponent { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); const request: any = data; request["action"] = "update"; @@ -60,6 +64,8 @@ export const AddGroupResourceForm: React.FunctionComponent { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); reset(defaultValues); if (refreshGrid) refreshGrid(); @@ -73,7 +79,8 @@ export const AddGroupResourceForm: React.FunctionComponent - + + { reset(defaultValues); closeForm(); }} /> }> = ({ }) => { const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const [remoteTargets, setRemoteTargets] = React.useState([]); @@ -67,15 +69,21 @@ export const AddPackageMap: React.FunctionComponent = ({ const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); WsPackageMaps.AddPackage({ request: data }) .then(({ AddPackageResponse, Exceptions }) => { if (AddPackageResponse?.status?.Code === 0) { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); refreshData(true); reset(defaultValues); } else if (Exceptions) { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); logger.error(Exceptions.Exception[0].Message); } @@ -99,7 +107,8 @@ export const AddPackageMap: React.FunctionComponent = ({ return - + + closeForm()} /> }> diff --git a/esp/src/src-react/components/forms/AddPackageMapPart.tsx b/esp/src/src-react/components/forms/AddPackageMapPart.tsx index cae4d80a7c1..23193c02259 100644 --- a/esp/src/src-react/components/forms/AddPackageMapPart.tsx +++ b/esp/src/src-react/components/forms/AddPackageMapPart.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { Checkbox, DefaultButton, PrimaryButton, Stack, TextField, } from "@fluentui/react"; +import { Checkbox, DefaultButton, PrimaryButton, Spinner, Stack, TextField, } from "@fluentui/react"; import { useForm, Controller } from "react-hook-form"; import { scopedLogger } from "@hpcc-js/util"; import * as WsPackageMaps from "src/WsPackageMaps"; @@ -50,6 +50,8 @@ export const AddPackageMapPart: React.FunctionComponent refreshData, }) => { const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const closeForm = React.useCallback(() => { setShowForm(false); @@ -58,15 +60,21 @@ export const AddPackageMapPart: React.FunctionComponent const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); WsPackageMaps.AddPartToPackageMap({ request: { ...data, Target: target, PackageMap: packageMap } }) .then(({ AddPartToPackageMapResponse, Exceptions }) => { if (AddPartToPackageMapResponse?.status?.Code === 0) { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); if (refreshData) refreshData(); reset(defaultValues); } else if (Exceptions) { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); logger.error(Exceptions.Exception[0].Message); } @@ -82,7 +90,8 @@ export const AddPackageMapPart: React.FunctionComponent return - + + closeForm()} /> }> diff --git a/esp/src/src-react/components/forms/AddPermission.tsx b/esp/src/src-react/components/forms/AddPermission.tsx index 5b44b6eb7e2..40a31d8a604 100644 --- a/esp/src/src-react/components/forms/AddPermission.tsx +++ b/esp/src/src-react/components/forms/AddPermission.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { DefaultButton, IDropdownOption, MessageBar, MessageBarType, PrimaryButton, TextField, } from "@fluentui/react"; +import { DefaultButton, IDropdownOption, MessageBar, MessageBarType, PrimaryButton, Spinner, TextField, } from "@fluentui/react"; import { scopedLogger } from "@hpcc-js/util"; import { useForm, Controller } from "react-hook-form"; import nlsHPCC from "src/nlsHPCC"; @@ -34,6 +34,8 @@ export const AddPermissionForm: React.FunctionComponent }) => { const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const [showError, setShowError] = React.useState(false); const [errorMessage, setErrorMessage] = React.useState(""); @@ -45,6 +47,8 @@ export const AddPermissionForm: React.FunctionComponent const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); const request: any = data; WsAccess.ResourceAdd({ request: request }) @@ -52,9 +56,13 @@ export const AddPermissionForm: React.FunctionComponent if (ResourceAddResponse?.retcode < 0) { //log exception from API setShowError(true); + setSubmitDisabled(false); + setSpinnerHidden(true); setErrorMessage(ResourceAddResponse?.retmsg); logger.error(ResourceAddResponse?.retmsg); } else { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); reset(defaultValues); if (refreshGrid) refreshGrid(); @@ -69,7 +77,8 @@ export const AddPermissionForm: React.FunctionComponent return - + + { reset(defaultValues); closeForm(); }} /> }> = ({ }) => { const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const closeForm = React.useCallback(() => { setShowForm(false); @@ -56,8 +58,12 @@ export const AddToSuperfile: React.FunctionComponent = ({ const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); WsDfu.AddtoSuperfile(data.names, data.superFile, data.existingFile) .then(response => { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); if (refreshGrid) refreshGrid(true); }) @@ -83,7 +89,8 @@ export const AddToSuperfile: React.FunctionComponent = ({ return - + + closeForm()} /> }> diff --git a/esp/src/src-react/components/forms/AddUser.tsx b/esp/src/src-react/components/forms/AddUser.tsx index b74977e1403..377025fdabd 100644 --- a/esp/src/src-react/components/forms/AddUser.tsx +++ b/esp/src/src-react/components/forms/AddUser.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { DefaultButton, MessageBar, MessageBarType, PrimaryButton, TextField, } from "@fluentui/react"; +import { DefaultButton, MessageBar, MessageBarType, PrimaryButton, Spinner, TextField, } from "@fluentui/react"; import { scopedLogger } from "@hpcc-js/util"; import { useForm, Controller } from "react-hook-form"; import nlsHPCC from "src/nlsHPCC"; @@ -41,6 +41,8 @@ export const AddUserForm: React.FunctionComponent = ({ }) => { const { handleSubmit, control, reset, watch } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const pwd1 = watch("password1"); @@ -54,6 +56,8 @@ export const AddUserForm: React.FunctionComponent = ({ const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); const request: any = data; WsAccess.AddUser({ request: request }) @@ -61,9 +65,13 @@ export const AddUserForm: React.FunctionComponent = ({ if (AddUserResponse?.retcode < 0) { //log exception from API setShowError(true); + setSubmitDisabled(false); + setSpinnerHidden(true); setErrorMessage(AddUserResponse?.retmsg); logger.error(AddUserResponse?.retmsg); } else { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); reset(defaultValues); if (refreshGrid) refreshGrid(); @@ -78,7 +86,8 @@ export const AddUserForm: React.FunctionComponent = ({ return - + + { reset(defaultValues); closeForm(); }} /> }> = ({ }) => { const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const closeForm = React.useCallback(() => { setShowForm(false); @@ -64,10 +66,14 @@ export const CopyFile: React.FunctionComponent = ({ const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); if (logicalFiles.length > 0) { if (logicalFiles.length === 1) { const request = { ...data, sourceLogicalName: logicalFiles[0] }; FileSpray.Copy({ request: request }).then(response => { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); pushUrl(`/dfuworkunits/${response.CopyResponse.result}`); }); @@ -77,6 +83,8 @@ export const CopyFile: React.FunctionComponent = ({ const requests = []; requests.push(FileSpray.Copy({ request: request })); Promise.all(requests).then(_ => { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); if (refreshGrid) refreshGrid(); }); @@ -115,7 +123,8 @@ export const CopyFile: React.FunctionComponent = ({ return - + + closeForm()} /> }> diff --git a/esp/src/src-react/components/forms/DesprayFile.tsx b/esp/src/src-react/components/forms/DesprayFile.tsx index b57a171d0d1..ee70122c138 100644 --- a/esp/src/src-react/components/forms/DesprayFile.tsx +++ b/esp/src/src-react/components/forms/DesprayFile.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { Checkbox, DefaultButton, IDropdownOption, mergeStyleSets, PrimaryButton, Stack, TextField, } from "@fluentui/react"; +import { Checkbox, DefaultButton, IDropdownOption, mergeStyleSets, PrimaryButton, Spinner, Stack, TextField, } from "@fluentui/react"; import { useForm, Controller } from "react-hook-form"; import { FileSpray, FileSprayService } from "@hpcc-js/comms"; import { scopedLogger } from "@hpcc-js/util"; @@ -67,6 +67,8 @@ export const DesprayFile: React.FunctionComponent = ({ const [os, setOs] = React.useState(); const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const closeForm = React.useCallback(() => { setShowForm(false); @@ -75,6 +77,8 @@ export const DesprayFile: React.FunctionComponent = ({ const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); if (logicalFiles.length > 0) { if (logicalFiles.length === 1) { const request = { @@ -84,6 +88,8 @@ export const DesprayFile: React.FunctionComponent = ({ sourceLogicalName: logicalFiles[0] } as FileSpray.Despray; myFileSprayService.Despray(request).then(response => { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); reset(defaultValues); if (refreshGrid) refreshGrid(true); @@ -99,6 +105,8 @@ export const DesprayFile: React.FunctionComponent = ({ requests.push(myFileSprayService.Despray(request)); }); Promise.all(requests).then(_ => { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); if (refreshGrid) refreshGrid(true); }).catch(err => logger.error(err)); @@ -136,7 +144,8 @@ export const DesprayFile: React.FunctionComponent = ({ return - + + closeForm()} /> }> diff --git a/esp/src/src-react/components/forms/GroupAddUser.tsx b/esp/src/src-react/components/forms/GroupAddUser.tsx index c8f1cef78b9..518231f1d17 100644 --- a/esp/src/src-react/components/forms/GroupAddUser.tsx +++ b/esp/src/src-react/components/forms/GroupAddUser.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { DefaultButton, IDropdownOption, MessageBar, MessageBarType, PrimaryButton, } from "@fluentui/react"; +import { DefaultButton, IDropdownOption, MessageBar, MessageBarType, PrimaryButton, Spinner, } from "@fluentui/react"; import { scopedLogger } from "@hpcc-js/util"; import { useForm, Controller } from "react-hook-form"; import nlsHPCC from "src/nlsHPCC"; @@ -32,6 +32,8 @@ export const GroupAddUserForm: React.FunctionComponent = ({ }) => { const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const [showError, setShowError] = React.useState(false); const [errorMessage, setErrorMessage] = React.useState(""); @@ -43,6 +45,8 @@ export const GroupAddUserForm: React.FunctionComponent = ({ const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); const request: any = data; request.groupname = groupname; request.action = "add"; @@ -52,9 +56,13 @@ export const GroupAddUserForm: React.FunctionComponent = ({ if (GroupMemberEditResponse?.retcode < 0) { //log exception from API setShowError(true); + setSubmitDisabled(false); + setSpinnerHidden(true); setErrorMessage(GroupMemberEditResponse?.retmsg); logger.error(GroupMemberEditResponse?.retmsg); } else { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); reset(defaultValues); if (refreshGrid) refreshGrid(); @@ -69,7 +77,8 @@ export const GroupAddUserForm: React.FunctionComponent = ({ return - + + { reset(defaultValues); closeForm(); }} /> }> = ({ const [workunit] = useWorkunit(wuid); const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const closeForm = React.useCallback(() => { setShowForm(false); @@ -54,6 +56,8 @@ export const PublishQueryForm: React.FunctionComponent = ({ const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); const request = { Wuid: workunit?.Wuid, Cluster: workunit?.Cluster, @@ -70,6 +74,8 @@ export const PublishQueryForm: React.FunctionComponent = ({ workunit.publishEx(request).then(() => { return workunit.update({ Jobname: data.jobName }); }).then(() => { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); reset(defaultValues); }).catch(err => logger.error(err)); @@ -86,7 +92,8 @@ export const PublishQueryForm: React.FunctionComponent = ({ return - + + closeForm()} /> }> = ({ }) => { const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const [showError, setShowError] = React.useState(false); const [errorMessage, setErrorMessage] = React.useState(""); @@ -40,6 +42,8 @@ export const PushEventForm: React.FunctionComponent = ({ const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); const request: any = data; WsWorkunits.WUPushEvent({ request: request }) @@ -47,9 +51,13 @@ export const PushEventForm: React.FunctionComponent = ({ if (WUPushEventResponse?.retcode < 0) { //log exception from API setShowError(true); + setSubmitDisabled(false); + setSpinnerHidden(true); setErrorMessage(WUPushEventResponse?.retmsg); logger.error(WUPushEventResponse?.retmsg); } else { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); reset(defaultValues); } @@ -62,7 +70,8 @@ export const PushEventForm: React.FunctionComponent = ({ return - + + { reset(defaultValues); closeForm(); }} /> }> = ({ }) => { const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const service = useConst(() => new FileSprayService({ baseUrl: "" })); @@ -49,6 +51,8 @@ export const RenameFile: React.FunctionComponent = ({ const onSubmit = React.useCallback(() => { handleSubmit( async (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); const renameRequests = []; const getDfuWuRequests = []; @@ -87,6 +91,8 @@ export const RenameFile: React.FunctionComponent = ({ } } }); + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); if (refreshGrid) refreshGrid(true); }, @@ -116,7 +122,8 @@ export const RenameFile: React.FunctionComponent = ({ return - + + closeForm()} /> }> diff --git a/esp/src/src-react/components/forms/ReplicateFile.tsx b/esp/src/src-react/components/forms/ReplicateFile.tsx index 4a8b61034f9..ed504ec3b23 100644 --- a/esp/src/src-react/components/forms/ReplicateFile.tsx +++ b/esp/src/src-react/components/forms/ReplicateFile.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { DefaultButton, IDropdownOption, PrimaryButton, Stack, TextField, } from "@fluentui/react"; +import { DefaultButton, IDropdownOption, PrimaryButton, Spinner, Stack, TextField, } from "@fluentui/react"; import { useForm, Controller } from "react-hook-form"; import nlsHPCC from "src/nlsHPCC"; import * as FileSpray from "src/FileSpray"; @@ -37,6 +37,8 @@ export const ReplicateFile: React.FunctionComponent = ({ const [file] = useFile(cluster, logicalFile); const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const closeForm = React.useCallback(() => { setShowForm(false); @@ -45,8 +47,12 @@ export const ReplicateFile: React.FunctionComponent = ({ const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); const request = { ...data, srcname: logicalFile }; FileSpray.Replicate({ request: request }).then(response => { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); pushUrl(`/dfuworkunits/${response?.ReplicateResponse?.wuid}`); }); @@ -64,7 +70,8 @@ export const ReplicateFile: React.FunctionComponent = ({ return - + + closeForm()} /> }> diff --git a/esp/src/src-react/components/forms/TitlebarConfig.tsx b/esp/src/src-react/components/forms/TitlebarConfig.tsx index b0682975468..59d49193871 100644 --- a/esp/src/src-react/components/forms/TitlebarConfig.tsx +++ b/esp/src/src-react/components/forms/TitlebarConfig.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { Checkbox, ColorPicker, DefaultButton, getColorFromString, IColor, Label, PrimaryButton, TextField, TooltipHost } from "@fluentui/react"; +import { Checkbox, ColorPicker, DefaultButton, getColorFromString, IColor, Label, PrimaryButton, Spinner, TextField, TooltipHost } from "@fluentui/react"; import { useForm, Controller } from "react-hook-form"; import { MessageBox } from "../../layouts/MessageBox"; import { useGlobalStore } from "../../hooks/store"; @@ -32,6 +32,8 @@ export const TitlebarConfig: React.FunctionComponent = ({ setShowForm }) => { const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const [color, setColor] = React.useState(white); const updateColor = React.useCallback((evt: any, colorObj: IColor) => setColor(colorObj), []); const [showEnvironmentTitle, setShowEnvironmentTitle] = useGlobalStore("HPCCPlatformWidget_Toolbar_Active", toolbarThemeDefaults.active, true); @@ -45,6 +47,8 @@ export const TitlebarConfig: React.FunctionComponent = ({ const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); const request: any = data; request.titlebarColor = color.str; @@ -52,6 +56,8 @@ export const TitlebarConfig: React.FunctionComponent = ({ setEnvironmentTitle(request?.environmentTitle); setTitlebarColor(request.titlebarColor); + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); }, )(); @@ -78,7 +84,8 @@ export const TitlebarConfig: React.FunctionComponent = ({ return - + + { reset(defaultValues); closeForm(); }} /> { onReset(); }} /> }> diff --git a/esp/src/src-react/components/forms/UserAddGroup.tsx b/esp/src/src-react/components/forms/UserAddGroup.tsx index b09393c30f1..467271fdeb9 100644 --- a/esp/src/src-react/components/forms/UserAddGroup.tsx +++ b/esp/src/src-react/components/forms/UserAddGroup.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { DefaultButton, IDropdownOption, MessageBar, MessageBarType, PrimaryButton, } from "@fluentui/react"; +import { DefaultButton, IDropdownOption, MessageBar, MessageBarType, PrimaryButton, Spinner, } from "@fluentui/react"; import { scopedLogger } from "@hpcc-js/util"; import { useForm, Controller } from "react-hook-form"; import nlsHPCC from "src/nlsHPCC"; @@ -32,6 +32,8 @@ export const UserAddGroupForm: React.FunctionComponent = ({ }) => { const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const [showError, setShowError] = React.useState(false); const [errorMessage, setErrorMessage] = React.useState(""); @@ -43,6 +45,8 @@ export const UserAddGroupForm: React.FunctionComponent = ({ const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); const request: any = data; request.username = username; request.action = "add"; @@ -52,9 +56,13 @@ export const UserAddGroupForm: React.FunctionComponent = ({ if (UserGroupEditResponse?.retcode < 0) { //log exception from API setShowError(true); + setSubmitDisabled(false); + setSpinnerHidden(true); setErrorMessage(UserGroupEditResponse?.retmsg); logger.error(UserGroupEditResponse?.retmsg); } else { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); reset(defaultValues); if (refreshGrid) refreshGrid(); @@ -69,7 +77,8 @@ export const UserAddGroupForm: React.FunctionComponent = ({ return - + + { reset(defaultValues); closeForm(); }} /> }> = ({ }) => { const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const closeForm = React.useCallback(() => { setShowForm(false); @@ -39,6 +41,8 @@ export const AddFileForm: React.FunctionComponent = ({ const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); const dropZone = { ...store.get(data.NetAddress), NetAddress: data.NetAddress @@ -57,6 +61,8 @@ export const AddFileForm: React.FunctionComponent = ({ }; store.addUserFile(file); refreshGrid(); + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); reset(defaultValues); }, @@ -68,7 +74,8 @@ export const AddFileForm: React.FunctionComponent = ({ return - + + closeForm()} /> }> = ({ const [, { isContainer }] = useBuildInfo(); const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const closeForm = React.useCallback(() => { setShowForm(false); @@ -74,6 +76,8 @@ export const BlobImportForm: React.FunctionComponent = ({ const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); let request = {}; const files = data.selectedFiles; @@ -115,6 +119,8 @@ export const BlobImportForm: React.FunctionComponent = ({ } }); if (errors.length === 0) { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); } } @@ -153,7 +159,8 @@ export const BlobImportForm: React.FunctionComponent = ({ return - + + closeForm()} /> }> diff --git a/esp/src/src-react/components/forms/landing-zone/DelimitedImportForm.tsx b/esp/src/src-react/components/forms/landing-zone/DelimitedImportForm.tsx index 93510cf8191..ceb386cf2a4 100644 --- a/esp/src/src-react/components/forms/landing-zone/DelimitedImportForm.tsx +++ b/esp/src/src-react/components/forms/landing-zone/DelimitedImportForm.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { Checkbox, DefaultButton, Dropdown, IDropdownOption, mergeStyleSets, PrimaryButton, Stack, TextField } from "@fluentui/react"; +import { Checkbox, DefaultButton, Dropdown, IDropdownOption, mergeStyleSets, PrimaryButton, Spinner, Stack, TextField } from "@fluentui/react"; import { scopedLogger } from "@hpcc-js/util"; import { useForm, Controller } from "react-hook-form"; import * as FileSpray from "src/FileSpray"; @@ -82,6 +82,8 @@ export const DelimitedImportForm: React.FunctionComponent({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const closeForm = React.useCallback(() => { setShowForm(false); @@ -91,6 +93,8 @@ export const DelimitedImportForm: React.FunctionComponent { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); let request = {}; const files = data.selectedFiles; @@ -136,6 +140,8 @@ export const DelimitedImportForm: React.FunctionComponent - + + closeForm()} /> }> diff --git a/esp/src/src-react/components/forms/landing-zone/FixedImportForm.tsx b/esp/src/src-react/components/forms/landing-zone/FixedImportForm.tsx index 6b8a5cbaa02..34846ef4bef 100644 --- a/esp/src/src-react/components/forms/landing-zone/FixedImportForm.tsx +++ b/esp/src/src-react/components/forms/landing-zone/FixedImportForm.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { Checkbox, DefaultButton, IDropdownOption, mergeStyleSets, PrimaryButton, Stack, TextField } from "@fluentui/react"; +import { Checkbox, DefaultButton, IDropdownOption, mergeStyleSets, PrimaryButton, Spinner, Stack, TextField } from "@fluentui/react"; import { scopedLogger } from "@hpcc-js/util"; import { useForm, Controller } from "react-hook-form"; import * as FileSpray from "src/FileSpray"; @@ -65,6 +65,8 @@ export const FixedImportForm: React.FunctionComponent = ({ const [, { isContainer }] = useBuildInfo(); const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const closeForm = React.useCallback(() => { setShowForm(false); @@ -74,6 +76,8 @@ export const FixedImportForm: React.FunctionComponent = ({ const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); let request = {}; const files = data.selectedFiles; @@ -120,6 +124,8 @@ export const FixedImportForm: React.FunctionComponent = ({ } }); if (errors.length === 0) { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); } } @@ -160,7 +166,8 @@ export const FixedImportForm: React.FunctionComponent = ({ return - + + closeForm()} /> }> diff --git a/esp/src/src-react/components/forms/landing-zone/JsonImportForm.tsx b/esp/src/src-react/components/forms/landing-zone/JsonImportForm.tsx index 7132df1e0fa..590f26e9aba 100644 --- a/esp/src/src-react/components/forms/landing-zone/JsonImportForm.tsx +++ b/esp/src/src-react/components/forms/landing-zone/JsonImportForm.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { Checkbox, DefaultButton, Dropdown, IDropdownOption, mergeStyleSets, PrimaryButton, Stack, TextField } from "@fluentui/react"; +import { Checkbox, DefaultButton, Dropdown, IDropdownOption, mergeStyleSets, PrimaryButton, Spinner, Stack, TextField } from "@fluentui/react"; import { scopedLogger } from "@hpcc-js/util"; import { useForm, Controller } from "react-hook-form"; import * as FileSpray from "src/FileSpray"; @@ -69,6 +69,8 @@ export const JsonImportForm: React.FunctionComponent = ({ const [, { isContainer }] = useBuildInfo(); const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const closeForm = React.useCallback(() => { setShowForm(false); @@ -77,6 +79,8 @@ export const JsonImportForm: React.FunctionComponent = ({ const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); let request = {}; const files = data.selectedFiles; @@ -125,6 +129,8 @@ export const JsonImportForm: React.FunctionComponent = ({ } }); if (errors.length === 0) { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); } } @@ -165,7 +171,8 @@ export const JsonImportForm: React.FunctionComponent = ({ return - + + closeForm()} /> }> diff --git a/esp/src/src-react/components/forms/landing-zone/VariableImportForm.tsx b/esp/src/src-react/components/forms/landing-zone/VariableImportForm.tsx index 64fadc72493..6ae0bbf3c1c 100644 --- a/esp/src/src-react/components/forms/landing-zone/VariableImportForm.tsx +++ b/esp/src/src-react/components/forms/landing-zone/VariableImportForm.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { Checkbox, DefaultButton, Dropdown, IDropdownOption, mergeStyleSets, PrimaryButton, Stack, TextField } from "@fluentui/react"; +import { Checkbox, DefaultButton, Dropdown, IDropdownOption, mergeStyleSets, PrimaryButton, Spinner, Stack, TextField } from "@fluentui/react"; import { scopedLogger } from "@hpcc-js/util"; import { useForm, Controller } from "react-hook-form"; import * as FileSpray from "src/FileSpray"; @@ -65,6 +65,8 @@ export const VariableImportForm: React.FunctionComponent({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const closeForm = React.useCallback(() => { setShowForm(false); @@ -73,6 +75,8 @@ export const VariableImportForm: React.FunctionComponent { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); let request = {}; const files = data.selectedFiles; @@ -117,6 +121,8 @@ export const VariableImportForm: React.FunctionComponent - + + closeForm()} /> }> diff --git a/esp/src/src-react/components/forms/landing-zone/XmlImportForm.tsx b/esp/src/src-react/components/forms/landing-zone/XmlImportForm.tsx index e5f01992294..f40fd9aca23 100644 --- a/esp/src/src-react/components/forms/landing-zone/XmlImportForm.tsx +++ b/esp/src/src-react/components/forms/landing-zone/XmlImportForm.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { Checkbox, DefaultButton, Dropdown, IDropdownOption, mergeStyleSets, PrimaryButton, Stack, TextField } from "@fluentui/react"; +import { Checkbox, DefaultButton, Dropdown, IDropdownOption, mergeStyleSets, PrimaryButton, Spinner, Stack, TextField } from "@fluentui/react"; import { scopedLogger } from "@hpcc-js/util"; import { useForm, Controller } from "react-hook-form"; import * as FileSpray from "src/FileSpray"; @@ -69,6 +69,8 @@ export const XmlImportForm: React.FunctionComponent = ({ const [, { isContainer }] = useBuildInfo(); const { handleSubmit, control, reset } = useForm({ defaultValues }); + const [submitDisabled, setSubmitDisabled] = React.useState(false); + const [spinnerHidden, setSpinnerHidden] = React.useState(true); const closeForm = React.useCallback(() => { setShowForm(false); @@ -77,6 +79,8 @@ export const XmlImportForm: React.FunctionComponent = ({ const onSubmit = React.useCallback(() => { handleSubmit( (data, evt) => { + setSubmitDisabled(true); + setSpinnerHidden(false); let request = {}; const files = data.selectedFiles; @@ -123,6 +127,8 @@ export const XmlImportForm: React.FunctionComponent = ({ } }); if (errors.length === 0) { + setSubmitDisabled(false); + setSpinnerHidden(true); closeForm(); } } @@ -163,7 +169,8 @@ export const XmlImportForm: React.FunctionComponent = ({ return - + + closeForm()} /> }> From 364e9f955cd1ef3d94396152df8e17e8c53cf104 Mon Sep 17 00:00:00 2001 From: Gavin Halliday Date: Wed, 11 Sep 2024 11:36:50 +0100 Subject: [PATCH 17/22] HPCC-32647 Improve logging for slow index node reads Signed-off-by: Gavin Halliday --- system/jhtree/jhtree.cpp | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/system/jhtree/jhtree.cpp b/system/jhtree/jhtree.cpp index 024cbd59b4a..2ba4ba5e961 100644 --- a/system/jhtree/jhtree.cpp +++ b/system/jhtree/jhtree.cpp @@ -2639,9 +2639,6 @@ void CNodeCache::getCacheInfo(ICacheInfoRecorder &cacheInfo) //Critical sections are 40bytes on linux so < 0.5% overhead for an 8K page and trivial overhead when constructed (<10ns) static std::atomic lastLockingReportCycles{0}; static std::atomic lastLoadReportCycles{0}; -static std::atomic countExcessiveLock_x1{0}; -static std::atomic countExcessiveLock_x10{0}; -static std::atomic countExcessiveLock_x100{0}; const CJHTreeNode *CNodeCache::getCachedNode(const INodeLoader *keyIndex, unsigned iD, offset_t pos, NodeType type, IContextLogger *ctx, bool isTLK) { @@ -2761,24 +2758,10 @@ const CJHTreeNode *CNodeCache::getCachedNode(const INodeLoader *keyIndex, unsign cycle_t lockingCycles = startLoadCycles - startCycles; if (lockingCycles > traceCacheLockingThreshold) { - if (lockingCycles >= traceCacheLockingThreshold*100) - countExcessiveLock_x100++; - else if (lockingCycles >= traceCacheLockingThreshold*10) - countExcessiveLock_x10++; - else - countExcessiveLock_x1++; - if ((endLoadCycles - lastLockingReportCycles) >= traceCacheLockingFrequency) { lastLockingReportCycles = endLoadCycles; - WARNLOG("CNodeCache::getNode lock(%s) took %lluns counts(>=%lluns, %u, %u, %u) (x1,x10,x100)", cacheTypeText[cacheType], cycle_to_nanosec(lockingCycles), - cycle_to_nanosec(traceCacheLockingThreshold), - countExcessiveLock_x1.load() + countExcessiveLock_x10.load() + countExcessiveLock_x100.load(), - countExcessiveLock_x10.load() + countExcessiveLock_x100.load(), - countExcessiveLock_x100.load()); - countExcessiveLock_x1 = 0; - countExcessiveLock_x10 = 0; - countExcessiveLock_x100 = 0; + WARNLOG("CNodeCache::getNode lock(%s) took %lluns", cacheTypeText[cacheType], cycle_to_nanosec(lockingCycles)); } } cycle_t actualLoadCycles = endLoadCycles - startLoadCycles; @@ -2787,7 +2770,8 @@ const CJHTreeNode *CNodeCache::getCachedNode(const INodeLoader *keyIndex, unsign if ((endLoadCycles - lastLoadReportCycles) >= traceNodeLoadFrequency) { lastLoadReportCycles = endLoadCycles; - WARNLOG("CNodeCache::getNode load(%s %x:%llu) took %lluus size(%u)", cacheTypeText[cacheType], iD, pos, cycle_to_microsec(actualLoadCycles), ownedCacheEntry->queryNode()->getMemSize()); + WARNLOG("CNodeCache::getNode load(%s %x:%llu) took %lluus fetch(%lluus) size(%u)", cacheTypeText[cacheType], iD, pos, + cycle_to_microsec(actualLoadCycles), cycle_to_microsec(fetchCycles), ownedCacheEntry->queryNode()->getMemSize()); } } From 67a5ea97ab207ccf1fb39569ae9309ad30b3633c Mon Sep 17 00:00:00 2001 From: Gavin Halliday Date: Wed, 11 Sep 2024 16:06:41 +0100 Subject: [PATCH 18/22] HPCC-32651 Support reading zero length file as a compressed file Signed-off-by: Gavin Halliday --- system/jlib/jlzw.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/system/jlib/jlzw.cpp b/system/jlib/jlzw.cpp index 2dbf48aca62..3c18d04dc93 100644 --- a/system/jlib/jlzw.cpp +++ b/system/jlib/jlzw.cpp @@ -2466,7 +2466,7 @@ static bool isCompressedType(__int64 compressedType) return 0 != getCompressedMethod(compressedType); } -bool isCompressedFile(IFileIO *iFileIO, CompressedFileTrailer *trailer=nullptr) +static bool isCompressedFile(IFileIO *iFileIO, CompressedFileTrailer *trailer=nullptr) { if (iFileIO) { @@ -2484,6 +2484,16 @@ bool isCompressedFile(IFileIO *iFileIO, CompressedFileTrailer *trailer=nullptr) return true; } } + else if ((fsize == 0) && trailer) + { + //If the file is empty, but we are expecting a compressed file, fill in the trailer with default information + memset(trailer,0,sizeof(*trailer)); + trailer->crc = ~0U; + trailer->compressedType = LZ4COMPRESSEDFILEFLAG; + trailer->blockSize = LZ4COMPRESSEDFILEBLOCKSIZE; + trailer->recordSize = 0; + return true; + } } return false; } From ffa06c7cc39485f9b6ba9f227fdb1d2a73294ed1 Mon Sep 17 00:00:00 2001 From: Jake Smith Date: Thu, 12 Sep 2024 17:43:21 +0100 Subject: [PATCH 19/22] HPCC-32661 Sort k8s workers to avoid storage stripe clumping Previously the worker order was indeterminate, they would register on a 1st come 1st served basis. That could cause workers that striped to a particular storage account to clump. Sort by pod/container name, to reduce the number that would modulate to the same storage account from clumping on the same pod. Signed-off-by: Jake Smith --- thorlcr/master/thgraphmanager.cpp | 27 +++++---- thorlcr/master/thgraphmanager.hpp | 20 ++++++- thorlcr/master/thmastermain.cpp | 97 +++++++++++++++++-------------- 3 files changed, 85 insertions(+), 59 deletions(-) diff --git a/thorlcr/master/thgraphmanager.cpp b/thorlcr/master/thgraphmanager.cpp index dc78ae4c416..4654afddf15 100644 --- a/thorlcr/master/thgraphmanager.cpp +++ b/thorlcr/master/thgraphmanager.cpp @@ -1344,23 +1344,26 @@ static int recvNextGraph(unsigned timeoutMs, const char *wuid, StringBuffer &ret } -static std::vector> connectedWorkerPods; -void addConnectedWorkerPod(const char *podName, const char *containerName) -{ - connectedWorkerPods.emplace_back(podName, containerName); -} - -void publishPodNames(IWorkUnit *workunit, const char *graphName) +static std::vector connectedWorkers; +void publishPodNames(IWorkUnit *workunit, const char *graphName, const std::vector *_connectedWorkers) { // skip if Thor manager already published (implying worker pods already published too) // NB: this will always associate the new 'graphName' with the manager pod meta info. if (workunit->setContainerizedProcessInfo("Thor", globals->queryProp("@name"), k8s::queryMyPodName(), k8s::queryMyContainerName(), graphName, nullptr)) { - for (unsigned workerNum=0; workerNumsetContainerizedProcessInfo("ThorWorker", globals->queryProp("@name"), workerPodName, workerContainerName, nullptr, std::to_string(workerNum+1).c_str()); + const CConnectedWorkerDetail &worker = connectedWorkers[workerNum]; + workunit->setContainerizedProcessInfo("ThorWorker", globals->queryProp("@name"), worker.podName.c_str(), worker.containerName.c_str(), nullptr, std::to_string(workerNum+1).c_str()); } } } @@ -1484,7 +1487,7 @@ void thorMain(ILogMsgHandler *logHandler, const char *wuid, const char *graphNam { Owned wu = &workunit->lock(); - publishPodNames(wu, currentGraphName); + publishPodNames(wu, currentGraphName, nullptr); } SocketEndpoint dummyAgentEp; jobManager->execute(workunit, currentWuid, currentGraphName, dummyAgentEp); diff --git a/thorlcr/master/thgraphmanager.hpp b/thorlcr/master/thgraphmanager.hpp index d705259b17f..c46c6314836 100644 --- a/thorlcr/master/thgraphmanager.hpp +++ b/thorlcr/master/thgraphmanager.hpp @@ -18,6 +18,9 @@ #ifndef _THGRAPHMANAGER_HPP #define _THGRAPHMANAGER_HPP +#include +#include + class CSDSServerStatus; interface IException; CSDSServerStatus &queryServerStatus(); @@ -31,8 +34,21 @@ void abortThor(IException *e, unsigned errCode, bool abortCurrentJob=true); void setExitCode(int code); int queryExitCode(); -void addConnectedWorkerPod(const char *podName, const char *containerName); -void publishPodNames(IWorkUnit *workunit, const char *graphName); +struct CConnectedWorkerDetail +{ + CConnectedWorkerDetail() {} + CConnectedWorkerDetail(const std::string& h) : host(h) + { + } + CConnectedWorkerDetail(const std::string& h, const std::string& p, const std::string& c) : host(h), podName(p), containerName(c) + { + } + std::string host; + std::string podName; + std::string containerName; + +}; +void publishPodNames(IWorkUnit *workunit, const char *graphName, const std::vector *connectedWorkers); void relayWuidException(IConstWorkUnit *wu, const IException *exception); void auditThorSystemEvent(const char *eventName); void auditThorSystemEvent(const char *eventName, std::initializer_list args); diff --git a/thorlcr/master/thmastermain.cpp b/thorlcr/master/thmastermain.cpp index d1a97cd210f..27e4c070cbb 100644 --- a/thorlcr/master/thmastermain.cpp +++ b/thorlcr/master/thmastermain.cpp @@ -19,6 +19,10 @@ #include "platform.h" +#include +#include +#include + #include #include #include @@ -266,8 +270,8 @@ class CRegistryServer : public CSimpleInterface } void connect(unsigned slaves) { - IPointerArrayOf connectedSlaves; - connectedSlaves.ensureCapacity(slaves); + std::vector connectedWorkers; + connectedWorkers.reserve(slaves); unsigned remaining = slaves; INode *_sender = nullptr; CMessageBuffer msg; @@ -300,11 +304,15 @@ class CRegistryServer : public CSimpleInterface else { Owned sender = _sender; - if (NotFound != connectedSlaves.find(sender)) + StringBuffer workerEPStr; + sender->endpoint().getEndpointHostText(workerEPStr); + + auto findFunc = [&workerEPStr](const CConnectedWorkerDetail& worker) { - StringBuffer epStr; - throw makeStringExceptionV(TE_AbortException, "Same slave registered twice!! : %s", sender->endpoint().getEndpointHostText(epStr).str()); - } + return streq(worker.host.c_str(), workerEPStr.str()); + }; + if (connectedWorkers.end() != std::find_if(connectedWorkers.begin(), connectedWorkers.end(), findFunc)) + throw makeStringExceptionV(TE_AbortException, "Same slave registered twice!! : %s", workerEPStr.str()); /* NB: in base metal setup, the slaves know which slave number they are in advance, and send their slavenum at registration. * In non attached storage setup, they do not send a slave by default and instead are given a # once all are registered @@ -314,42 +322,29 @@ class CRegistryServer : public CSimpleInterface StringBuffer workerPodName, workerContainerName; if (NotFound == slaveNum) { - connectedSlaves.append(sender.getLink()); - slaveNum = connectedSlaves.ordinality(); if (isContainerized()) { msg.read(workerPodName); msg.read(workerContainerName); - addConnectedWorkerPod(workerPodName, workerContainerName); // NB: these are added in worker # order } + connectedWorkers.emplace_back(workerEPStr.str(), workerPodName.str(), workerContainerName.str()); + PROGLOG("Slave connected from %s", workerEPStr.str()); } else { unsigned pos = slaveNum - 1; // NB: slaveNum is 1 based - while (connectedSlaves.ordinality() < pos) - connectedSlaves.append(nullptr); - if (connectedSlaves.ordinality() == pos) - connectedSlaves.append(sender.getLink()); + while (connectedWorkers.size() < pos) + connectedWorkers.emplace_back(); + if (connectedWorkers.size() == pos) + connectedWorkers.emplace_back(workerEPStr.str()); else - connectedSlaves.replace(sender.getLink(), pos); + connectedWorkers[pos] = {workerEPStr.str()}; + PROGLOG("Slave %u connected from %s", slaveNum, workerEPStr.str()); } - StringBuffer epStr; - PROGLOG("Slave %u connected from %s", slaveNum, sender->endpoint().getEndpointHostText(epStr).str()); --remaining; } } - assertex(slaves == connectedSlaves.ordinality()); - - if (isContainerized()) - { - unsigned wfid = globals->getPropInt("@wfid"); - const char *wuid = globals->queryProp("@workunit"); - const char *graphName = globals->queryProp("@graphName"); - Owned factory = getWorkUnitFactory(); - Owned workunit = factory->updateWorkUnit(wuid); - addTimeStamp(workunit, wfid, graphName, StWhenK8sReady); - publishPodNames(workunit, graphName); - } + assertex(slaves == connectedWorkers.size()); unsigned localThorPortInc = globals->getPropInt("@localThorPortInc", DEFAULT_SLAVEPORTINC); unsigned slaveBasePort = globals->getPropInt("@slaveport", DEFAULT_THORSLAVEPORT); @@ -357,31 +352,43 @@ class CRegistryServer : public CSimpleInterface Owned processGroup; - // NB: in bare metal Thor is bound to a group and cluster/communicator have alreday been setup (see earlier setClusterGroup call) + // NB: in bare metal Thor is bound to a group and cluster/communicator have already been setup (see earlier setClusterGroup call) if (clusterInitialized()) processGroup.set(&queryProcessGroup()); else { - /* sort by {port, ip} - * So that workers are not bunched on same node, but striped across the pod ips - */ - auto compareINodeOrder = [](IInterface * const *ll, IInterface * const *rr) + if (isContainerized()) { - INode *l = (INode *) *ll; - INode *r = (INode *) *rr; - const SocketEndpoint &lep = l->endpoint(); - const SocketEndpoint &rep = r->endpoint(); - if (lep.port < rep.port) - return -1; - else if (lep.port > rep.port) - return 1; - return lep.ipcompare(rep); - }; - connectedSlaves.sort(compareINodeOrder); - processGroup.setown(createIGroup(connectedSlaves.ordinality(), connectedSlaves.getArray())); + // sort by pod+container name so that storage striping doesn't clump too much within single pods + auto sortFunc = [](const CConnectedWorkerDetail& a, const CConnectedWorkerDetail& b) + { + if (a.podName != b.podName) + return a.podName < b.podName; + return a.containerName < b.containerName; + }; + std::sort(connectedWorkers.begin(), connectedWorkers.end(), sortFunc); + } + SocketEndpointArray connectedWorkerEps; + for (const auto &worker: connectedWorkers) + { + SocketEndpoint ep(worker.host.c_str()); + connectedWorkerEps.append(ep); + } + processGroup.setown(createIGroup(connectedWorkerEps)); setupCluster(queryMyNode(), processGroup, channelsPerWorker, slaveBasePort, localThorPortInc); } + if (isContainerized()) + { + unsigned wfid = globals->getPropInt("@wfid"); + const char *wuid = globals->queryProp("@workunit"); + const char *graphName = globals->queryProp("@graphName"); + Owned factory = getWorkUnitFactory(); + Owned workunit = factory->updateWorkUnit(wuid); + addTimeStamp(workunit, wfid, graphName, StWhenK8sReady); + publishPodNames(workunit, graphName, &connectedWorkers); + } + PROGLOG("Slaves connected, initializing.."); msg.clear(); msg.append(THOR_VERSION_MAJOR).append(THOR_VERSION_MINOR); From 8f05acab2828fc78f878c9210d9031354adcbd28 Mon Sep 17 00:00:00 2001 From: Gordon Smith Date: Fri, 13 Sep 2024 12:00:31 +0100 Subject: [PATCH 20/22] HPCC-32593 ECL Watch v9 WU details fix sticky infogrid headers fixes the sticky column headers of the Infogrid component Signed-off-by: Gordon Smith --- esp/src/src-react/components/InfoGrid.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/esp/src/src-react/components/InfoGrid.tsx b/esp/src/src-react/components/InfoGrid.tsx index 9b17d896e86..ec028305d8b 100644 --- a/esp/src/src-react/components/InfoGrid.tsx +++ b/esp/src/src-react/components/InfoGrid.tsx @@ -5,7 +5,6 @@ import { formatCost, formatTwoDigits } from "src/Session"; import nlsHPCC from "src/nlsHPCC"; import { useWorkunitExceptions } from "../hooks/workunit"; import { FluentGrid, useCopyButtons, useFluentStoreState, FluentColumns } from "./controls/Grid"; -import { pivotItemStyle } from "../layouts/pivot"; function extractGraphInfo(msg) { const regex = /^([a-zA-Z0-9 :]+: )(graph graph(\d+)\[(\d+)\], )(([a-zA-Z]+)\[(\d+)\]: )?(.*)$/gmi; From 46540e52d90b47d9821d03d4c6ad42ed6312d8a2 Mon Sep 17 00:00:00 2001 From: Gordon Smith Date: Fri, 13 Sep 2024 13:01:31 +0100 Subject: [PATCH 21/22] HPCC-32663 New TypeScript Error Bumped tsc version highlighting new error Signed-off-by: Gordon Smith --- esp/src/src-react/hooks/platform.ts | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/esp/src/src-react/hooks/platform.ts b/esp/src/src-react/hooks/platform.ts index 8e90b4ab363..66dac5d9487 100644 --- a/esp/src/src-react/hooks/platform.ts +++ b/esp/src/src-react/hooks/platform.ts @@ -137,8 +137,14 @@ export function useCheckFeatures(): Features { timestamp }; } - -const fetchReleases = () => { +interface OctokitRelease { + id: number; + draft: boolean; + prerelease: boolean; + tag_name: string; + html_url: string; +} +const fetchReleases = (): Promise<{ data: OctokitRelease[] }> => { const octokit = new Octokit({}); return octokit.request("GET /repos/{owner}/{repo}/releases", { owner: "hpcc-systems", @@ -149,16 +155,12 @@ const fetchReleases = () => { } }); }; -type ReleasesPromise = ReturnType; -type ReleasesResponse = Awaited; -type Releases = ReleasesResponse["data"]; -type Release = Releases[number]; -const _fetchLatestReleases = (): Promise => { +const _fetchLatestReleases = (): Promise => { return fetchReleases().then(response => { - const latest: { [id: string]: Release } = response.data + const latest: { [releaseID: string]: OctokitRelease } = response.data .filter(release => !release.draft || !release.prerelease) - .reduce((prev, curr: Release) => { + .reduce((prev, curr: OctokitRelease) => { const versionParts = curr.tag_name.split("."); versionParts.length = 2; const partialVersion = versionParts.join("."); @@ -167,14 +169,14 @@ const _fetchLatestReleases = (): Promise => { } return prev; }, {}); - return Object.values(latest) as Releases; + return Object.values(latest); }).catch(err => { logger.error(err); - return [] as Releases; + return []; }); }; -let releasesPromise: Promise | undefined; -export const fetchLatestReleases = (): Promise => { +let releasesPromise: Promise | undefined; +export const fetchLatestReleases = (): Promise => { if (!releasesPromise) { releasesPromise = _fetchLatestReleases(); } From a7ab184d43720994f7b7dec820a06fa8cc96187e Mon Sep 17 00:00:00 2001 From: Jake Smith Date: Mon, 9 Sep 2024 13:15:18 +0100 Subject: [PATCH 22/22] HPCC-32636 Add a fsync/retry mechanism on close Configured on by default on containerized. Configurable with expert/@fileSyncMaxRetrySecs at the component or global level. e.g. // 10 minute retry expert: fileSyncMaxRetrySecs: 600 // no retry, but fsync on close and validate expert: fileSyncMaxRetrySecs: 0 // disable expert: fileSyncMaxRetrySecs: -2 Signed-off-by: Jake Smith --- system/jlib/jfile.cpp | 186 +++++++++++++++++++++++--- system/jlib/jfile.hpp | 9 +- system/jlib/jfile.ipp | 2 +- system/jlib/jlz4.cpp | 2 +- thorlcr/activities/thactivityutil.cpp | 3 +- 5 files changed, 176 insertions(+), 26 deletions(-) diff --git a/system/jlib/jfile.cpp b/system/jlib/jfile.cpp index de7853eb092..c7dd84d3ccf 100644 --- a/system/jlib/jfile.cpp +++ b/system/jlib/jfile.cpp @@ -1868,6 +1868,27 @@ IFileIO * CFile::openShared(IFOmode mode,IFSHmode share,IFEflags extraFlags) //--------------------------------------------------------------------------- +static int globalFileSyncMaxRetrySecs = fileSyncRetryDisabled; +static std::atomic globalFileSyncMaxRetrySecsConfigured{false}; +static CriticalSection globalFileSyncCS; +static int getGlobalMaxFileSyncSecs() +{ + if (!globalFileSyncMaxRetrySecsConfigured) + { + CriticalBlock b(globalFileSyncCS); + if (!globalFileSyncMaxRetrySecsConfigured) + { + Owned global = getGlobalConfig(); + Owned config = getComponentConfig(); + globalFileSyncMaxRetrySecs = global->getPropInt("expert/@fileSyncMaxRetrySecs", defaultGlobalFileSyncMaxRetrySecs); + globalFileSyncMaxRetrySecs = config->getPropInt("expert/@fileSyncMaxRetrySecs", globalFileSyncMaxRetrySecs); + globalFileSyncMaxRetrySecsConfigured = true; + // NB: -1 == infinite, -2 == disable checking altogether + } + } + return globalFileSyncMaxRetrySecs; +} + extern jlib_decl IFileIO *createIFileIO(IFile * creator,HANDLE handle,IFOmode openmode,IFEflags extraFlags) { @@ -2023,18 +2044,61 @@ void CFileIO::setSize(offset_t pos) //-- Unix implementation ---------------------------------------------------- -static void syncFileData(int fd, bool notReadOnly, IFEflags extraFlags, bool wait_previous=false) +// -2 disabled - don't validate fsync/fdatasync +// -1 retry forever +// 0 no retry +static void retrySync(int fd, int retrySecs, bool dataOnly) { - if (notReadOnly) - { - if (extraFlags & IFEsync) - { #ifdef F_FULLFSYNC - fcntl(fd, F_FULLFSYNC); + // No EIO type retry available + fcntl(fd, F_FULLFSYNC); #else - fdatasync(fd); -#endif + CCycleTimer timer; + unsigned retryMaxMs; + if (retrySecs < 0) + retryMaxMs = UINT_MAX; + else + { + assertex(((unsigned)retrySecs) <= UINT_MAX/1000); + retryMaxMs = ((unsigned)retrySecs) * 1000; + } + unsigned delayMs = 200; // start with .2 secs + unsigned retryAttempts = 0; + while (true) + { + int ret = dataOnly ? fdatasync(fd) : fsync(fd); + if (ret == 0) + break; + if (fileSyncRetryDisabled == retrySecs) // error, but unchecked! Temporary, to allow to be disabled JIC causes unexpected side-effects + break; + if (EIO != errno) + throw makeErrnoException(errno, "retrySync"); + if ((retrySecs >= 0) && timer.elapsedMs() > retryMaxMs) + { + printStackReport(); + Owned e = makeErrnoExceptionV(errno, "retrySync: failed with EIO, retrying after %u seconds (%u retries)", retryMaxMs/1000, retryAttempts); + OWARNLOG(e); + throw e.getClear(); + } + // In the event, not sure I care about burst of logging on retries (there won't be that many and this is fatal last throw of dice) + IWARNLOG("retrySync: failed with EIO, retry: %u", ++retryAttempts); + if (delayMs >= 60000) // cap max delay to 1 minute + MilliSleep(60000); + else + { + MilliSleep(delayMs); + delayMs *= 2; } + } +#endif +} + +static void syncFileData(int fd, bool notReadOnly, IFEflags extraFlags, int syncRetrySecs, bool wait_previous=false) +{ + if (notReadOnly) + { + if (extraFlags & IFEsync) + retrySync(fd, syncRetrySecs, true); #if defined(__linux__) else if (extraFlags & IFEnocache) { @@ -2052,6 +2116,7 @@ static void syncFileData(int fd, bool notReadOnly, IFEflags extraFlags, bool wai #endif } + // More errorno checking TBD CFileIO::CFileIO(IFile * _creator, HANDLE handle, IFOmode _openmode, IFSHmode _sharemode, IFEflags _extraFlags) : creator(_creator), unflushedReadBytes(0), unflushedWriteBytes(0) @@ -2071,6 +2136,22 @@ CFileIO::CFileIO(IFile * _creator, HANDLE handle, IFOmode _openmode, IFSHmode _s extraFlags = static_cast(extraFlags | expertEnableIFileFlagsMask); extraFlags = static_cast(extraFlags & ~expertDisableIFileFlagsMask); + if (isContainerized() && (openmode!=IFOread)) // only containerized (with planes writing to storage types like blob for now) + { + const char *filePath = querySafeFilename(); + if ('/' == filePath[0]) // only for absolute paths + { + unsigned __int64 value; + if (findPlaneAttrFromPath(filePath, FileSyncMaxRetrySecs, getGlobalMaxFileSyncSecs(), value)) // NB: returns only if plane found + { + // fileSyncMaxRetrySecs applies to IFEsync and IFEsyncAtClose + fileSyncMaxRetrySecs = value; + if (fileSyncRetryDisabled != fileSyncMaxRetrySecs) + extraFlags = static_cast(extraFlags | IFEsyncAtClose); + } + } + } + #ifdef CFILEIOTRACE DBGLOG("CFileIO::CfileIO(%d,%d,%d,%d)", handle, _openmode, _sharemode, extraFlags); #endif @@ -2111,7 +2192,9 @@ void CFileIO::close() DBGLOG("CFileIO::close(%d), extraFlags = %d", tmpHandle, extraFlags); #endif if (extraFlags & (IFEnocache | IFEsync)) - syncFileData(tmpHandle, openmode!=IFOread, extraFlags, false); + syncFileData(tmpHandle, openmode!=IFOread, extraFlags, fileSyncMaxRetrySecs, false); + else if (extraFlags & IFEsyncAtClose) + retrySync(tmpHandle, fileSyncMaxRetrySecs, false); if (::close(tmpHandle) < 0) throw makeErrnoExceptionV(errno, "CFileIO::close for file '%s'", querySafeFilename()); @@ -2125,7 +2208,7 @@ void CFileIO::flush() CriticalBlock procedure(cs); - syncFileData(file, true, extraFlags, false); + syncFileData(file, true, extraFlags, fileSyncMaxRetrySecs, false); } @@ -2162,7 +2245,7 @@ size32_t CFileIO::read(offset_t pos, size32_t len, void * data) if (unflushedReadBytes.add_fetch(ret) >= PGCFLUSH_BLKSIZE) { unflushedReadBytes.store(0); - syncFileData(file, false, extraFlags, false); + syncFileData(file, false, extraFlags, 0, false); } } return ret; @@ -2192,7 +2275,7 @@ size32_t CFileIO::write(offset_t pos, size32_t len, const void * data) { unflushedWriteBytes.store(0); // request to write-out dirty pages - syncFileData(file, true, extraFlags, true); + syncFileData(file, true, extraFlags, fileSyncMaxRetrySecs, true); } } return ret; @@ -7937,25 +8020,36 @@ static unsigned jFileHookId = 0; static const std::array planeAttributeTypeStrings = { "blockedFileIOKB", - "blockedRandomIOKB" + "blockedRandomIOKB", + "fileSyncMaxRetrySecs" }; -static std::unordered_map> planeAttributesMap; -static CriticalSection planeAttriubuteMapCrit; +// {prefix, {key1: value1, key2: value2, ...}} +typedef std::pair> PlaneAttributesMapElement; + +static std::unordered_map planeAttributesMap; +static CriticalSection planeAttributeMapCrit; +static constexpr unsigned __int64 unsetPlaneAttrValue = 0xFFFFFFFF00000000; MODULE_INIT(INIT_PRIORITY_STANDARD) { auto updateFunc = [&](const IPropertyTree *oldComponentConfiguration, const IPropertyTree *oldGlobalConfiguration) { - CriticalBlock b(planeAttriubuteMapCrit); + CriticalBlock b(planeAttributeMapCrit); planeAttributesMap.clear(); Owned planesIter = getPlanesIterator(nullptr, nullptr); ForEach(*planesIter) { const IPropertyTree &plane = planesIter->query(); - auto &values = planeAttributesMap[plane.queryProp("@name")]; - values[BlockedSequentialIO] = plane.getPropInt(("@" + std::string(planeAttributeTypeStrings[BlockedSequentialIO])).c_str()) * 1024; - values[BlockedRandomIO] = plane.getPropInt(("@" + std::string(planeAttributeTypeStrings[BlockedRandomIO])).c_str()) * 1024; + PlaneAttributesMapElement &element = planeAttributesMap[plane.queryProp("@name")]; + element.first = plane.queryProp("@prefix"); + auto &values = element.second; + unsigned __int64 value; + value = plane.getPropInt64(("@" + std::string(planeAttributeTypeStrings[BlockedSequentialIO])).c_str(), unsetPlaneAttrValue); + values[BlockedSequentialIO] = (unsetPlaneAttrValue != value) ? value * 1024 : value; + value = plane.getPropInt64(("@" + std::string(planeAttributeTypeStrings[BlockedRandomIO])).c_str(), unsetPlaneAttrValue); + values[BlockedRandomIO] = (unsetPlaneAttrValue != value) ? value * 1024 : value; + values[FileSyncMaxRetrySecs] = plane.getPropInt64(("@" + std::string(planeAttributeTypeStrings[FileSyncMaxRetrySecs])).c_str(), unsetPlaneAttrValue); } // reset defaults @@ -7968,6 +8062,9 @@ MODULE_INIT(INIT_PRIORITY_STANDARD) if (getComponentConfigSP()->getProp("expert/@disableIFileMask", fileFlagsStr.clear()) || getGlobalConfigSP()->getProp("expert/@disableIFileMask", fileFlagsStr)) expertDisableIFileFlagsMask = (IFEflags)strtoul(fileFlagsStr, NULL, 0); + + // clear for getGlobalMaxFileSyncSecs() to re-evaluate + globalFileSyncMaxRetrySecsConfigured = false; }; jFileHookId = installConfigUpdateHook(updateFunc, true); @@ -7988,17 +8085,58 @@ const char *getPlaneAttributeString(PlaneAttributeType attr) unsigned __int64 getPlaneAttributeValue(const char *planeName, PlaneAttributeType planeAttrType, unsigned __int64 defaultValue) { assertex(planeAttrType < PlaneAttributeCount); - CriticalBlock b(planeAttriubuteMapCrit); + CriticalBlock b(planeAttributeMapCrit); auto it = planeAttributesMap.find(planeName); if (it != planeAttributesMap.end()) { - unsigned v = it->second[planeAttrType]; - if (v) // a plane attribute value of 0 is considered as not set + unsigned __int64 v = it->second.second[planeAttrType]; + if (v != unsetPlaneAttrValue) return v; } return defaultValue; } +static PlaneAttributesMapElement *findPlaneElementFromPath(const char *filePath) +{ + for (auto &e: planeAttributesMap) + { + const char *prefix = e.second.first.c_str(); + if (prefix) // sanity check, but should never be null + { + if (startsWith(filePath, prefix)) + return &e.second; + } + } + return nullptr; +} + +const char *findPlaneFromPath(const char *filePath, StringBuffer &result) +{ + CriticalBlock b(planeAttributeMapCrit); + PlaneAttributesMapElement *e = findPlaneElementFromPath(filePath); + if (!e) + return nullptr; + + result.append(e->first.c_str()); + return result; +} + +bool findPlaneAttrFromPath(const char *filePath, PlaneAttributeType planeAttrType, unsigned __int64 defaultValue, unsigned __int64 &resultValue) +{ + CriticalBlock b(planeAttributeMapCrit); + PlaneAttributesMapElement *e = findPlaneElementFromPath(filePath); + if (e) + { + unsigned __int64 value = e->second[planeAttrType]; + if (unsetPlaneAttrValue != value) + resultValue = value; + else + resultValue = defaultValue; + return true; + } + return false; +} + size32_t getBlockedFileIOSize(const char *planeName, size32_t defaultSize) { return (size32_t)getPlaneAttributeValue(planeName, BlockedSequentialIO, defaultSize); @@ -8009,3 +8147,7 @@ size32_t getBlockedRandomIOSize(const char *planeName, size32_t defaultSize) return (size32_t)getPlaneAttributeValue(planeName, BlockedRandomIO, defaultSize); } +int getMaxFileSyncSecs(const char *planeName, int defaultSecs) +{ + return (int)getPlaneAttributeValue(planeName, FileSyncMaxRetrySecs, defaultSecs); +} diff --git a/system/jlib/jfile.hpp b/system/jlib/jfile.hpp index fa2a27b4275..14eb7a81f37 100644 --- a/system/jlib/jfile.hpp +++ b/system/jlib/jfile.hpp @@ -46,7 +46,7 @@ enum IFOmode { IFOcreate, IFOread, IFOwrite, IFOreadwrite, IFOcreaterw }; // enum IFSHmode { IFSHnone, IFSHread=0x8, IFSHfull=0x10}; // sharing modes enum IFSmode { IFScurrent = FILE_CURRENT, IFSend = FILE_END, IFSbegin = FILE_BEGIN }; // seek mode enum CFPmode { CFPcontinue, CFPcancel, CFPstop }; // modes for ICopyFileProgress::onProgress return -enum IFEflags { IFEnone=0x0, IFEnocache=0x1, IFEcache=0x2, IFEsync=0x4 }; // mask +enum IFEflags { IFEnone=0x0, IFEnocache=0x1, IFEcache=0x2, IFEsync=0x4, IFEsyncAtClose=0x8 }; // mask constexpr offset_t unknownFileSize = -1; class CDateTime; @@ -756,12 +756,19 @@ enum PlaneAttributeType { BlockedSequentialIO, BlockedRandomIO, + FileSyncMaxRetrySecs, PlaneAttributeCount }; extern jlib_decl const char *getPlaneAttributeString(PlaneAttributeType attr); extern jlib_decl unsigned __int64 getPlaneAttributeValue(const char *planeName, PlaneAttributeType planeAttrType, unsigned __int64 defaultValue); +extern jlib_decl const char *findPlaneFromPath(const char *filePath, StringBuffer &result); +//returns true if plane exists, fills resultValue with defaultValue if attribute is unset +extern jlib_decl bool findPlaneAttrFromPath(const char *filePath, PlaneAttributeType planeAttrType, unsigned __int64 defaultValue, unsigned __int64 &resultValue); extern jlib_decl size32_t getBlockedFileIOSize(const char *planeName, size32_t defaultSize=0); extern jlib_decl size32_t getBlockedRandomIOSize(const char *planeName, size32_t defaultSize=0); +constexpr int fileSyncRetryDisabled = -2; +constexpr int defaultGlobalFileSyncMaxRetrySecs = fileSyncRetryDisabled; +extern jlib_decl int getMaxFileSyncSecs(const char *planeName, int defaultSecs = defaultGlobalFileSyncMaxRetrySecs); //---- Pluggable file type related functions ---------------------------------------------- diff --git a/system/jlib/jfile.ipp b/system/jlib/jfile.ipp index 815e8163bf9..299943aa133 100644 --- a/system/jlib/jfile.ipp +++ b/system/jlib/jfile.ipp @@ -87,7 +87,6 @@ protected: unsigned flags; }; - class jlib_decl CFileIO : implements IFileIO, public CInterface { public: @@ -121,6 +120,7 @@ protected: IFOmode openmode; IFEflags extraFlags; FileIOStats stats; + int fileSyncMaxRetrySecs = fileSyncRetryDisabled; // enabled conditionally in ctor RelaxedAtomic unflushedReadBytes; // more: If this recorded flushedReadBytes it could have a slightly lower overhead RelaxedAtomic unflushedWriteBytes; private: diff --git a/system/jlib/jlz4.cpp b/system/jlib/jlz4.cpp index 2c32f362c15..6a854c39fbf 100644 --- a/system/jlib/jlz4.cpp +++ b/system/jlib/jlz4.cpp @@ -276,7 +276,7 @@ class jlib_decl CLZ4Expander : public CFcmpExpander for (;;) { - //Try and compress into the current target buffer. If too small increase size and repeat + //Try and decompress into the current target buffer. If too small increase size and repeat written = LZ4_decompress_safe((const char *)in, (char *)target.reserve(maxOut), szchunk, maxOut); if ((int)written > 0) { diff --git a/thorlcr/activities/thactivityutil.cpp b/thorlcr/activities/thactivityutil.cpp index fe9a960bb74..400506b8708 100644 --- a/thorlcr/activities/thactivityutil.cpp +++ b/thorlcr/activities/thactivityutil.cpp @@ -800,6 +800,7 @@ IFileIO *createMultipleWrite(CActivityBase *activity, IPartDescriptor &partDesc, { unsigned compMethod = COMPRESS_METHOD_LZ4; // rowdif used if recordSize > 0, else fallback to compMethod + IFEflags fileIOExtaFlags = IFEnone; if (!ecomp) { if (twFlags & TW_Temporary) @@ -822,7 +823,7 @@ IFileIO *createMultipleWrite(CActivityBase *activity, IPartDescriptor &partDesc, else if (activity->getOptBool(THOROPT_COMP_FORCELZ4HC, false)) compMethod = COMPRESS_METHOD_LZ4HC; } - fileio.setown(createCompressedFileWriter(file, recordSize, 0 != (twFlags & TW_Extend), true, ecomp, compMethod)); + fileio.setown(createCompressedFileWriter(file, recordSize, 0 != (twFlags & TW_Extend), true, ecomp, compMethod, fileIOExtaFlags)); if (!fileio) { compress = false;