diff --git a/common/workunit/workunit.cpp b/common/workunit/workunit.cpp index 3aee35ac84b..e317d0c2df8 100644 --- a/common/workunit/workunit.cpp +++ b/common/workunit/workunit.cpp @@ -8758,14 +8758,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; } } @@ -8843,14 +8855,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 ae94e98d447..743672a82f3 100644 --- a/common/workunit/workunit.hpp +++ b/common/workunit/workunit.hpp @@ -59,6 +59,7 @@ enum : unsigned { WUERR_ModifyFilterAfterFinalize = WORKUNIT_ERROR_START, WUERR_FinalizeAfterFinalize, + WUERR_InvalidDebugValueName, }; // error codes diff --git a/dali/base/dacoven.cpp b/dali/base/dacoven.cpp index 8aa60877944..fc5661219ed 100644 --- a/dali/base/dacoven.cpp +++ b/dali/base/dacoven.cpp @@ -1067,33 +1067,40 @@ 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) + { + throw makeWrappedException(e, e->errorCode(), "getGlobalUniqueIds"); + } } diff --git a/dali/dfu/dfurun.cpp b/dali/dfu/dfurun.cpp index 3b470723a66..48cd5df344b 100644 --- a/dali/dfu/dfurun.cpp +++ b/dali/dfu/dfurun.cpp @@ -670,7 +670,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()); + } } } 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. - -
diff --git a/esp/services/ws_workunits/ws_workunitsHelpers.cpp b/esp/services/ws_workunits/ws_workunitsHelpers.cpp index 166b0e9ac31..30bf1715fe8 100644 --- a/esp/services/ws_workunits/ws_workunitsHelpers.cpp +++ b/esp/services/ws_workunits/ws_workunitsHelpers.cpp @@ -3741,81 +3741,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) 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/package-lock.json b/esp/src/package-lock.json index 3391efbb526..3281d6c476e 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", @@ -85,7 +85,6 @@ } }, "eslint": { - "name": "eslint-plugin-eclwatch", "version": "0.0.0", "dev": true }, @@ -103,21 +102,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" @@ -127,6 +118,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" } @@ -136,6 +128,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" } @@ -151,6 +144,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" }, @@ -162,10 +156,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" } @@ -194,6 +189,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", @@ -208,17 +227,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": { @@ -230,19 +250,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": { @@ -266,47 +286,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": { @@ -333,9 +397,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", @@ -380,17 +444,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", @@ -427,15 +493,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" }, @@ -447,20 +513,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" @@ -494,18 +560,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", @@ -519,17 +585,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", @@ -543,14 +609,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", @@ -564,17 +631,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", @@ -588,21 +655,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", @@ -705,20 +772,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", @@ -752,16 +819,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", @@ -803,9 +870,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", @@ -825,16 +892,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": { @@ -859,9 +926,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", @@ -888,13 +955,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": { @@ -948,16 +1015,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", @@ -971,12 +1038,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", @@ -1006,12 +1073,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", @@ -1033,15 +1094,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", @@ -1055,20 +1116,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", @@ -1082,12 +1143,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", @@ -1129,9 +1190,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", @@ -1146,17 +1207,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": { @@ -1166,16 +1223,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", @@ -1193,12 +1244,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", @@ -1215,19 +1266,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", @@ -1241,13 +1292,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", @@ -1274,9 +1325,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", @@ -1295,12 +1346,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", @@ -1316,15 +1367,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", @@ -1339,16 +1390,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", @@ -1362,14 +1413,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", @@ -1383,13 +1434,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", @@ -1404,12 +1455,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", @@ -1440,12 +1491,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", @@ -1461,15 +1512,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", @@ -1483,13 +1534,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", @@ -1527,16 +1578,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", @@ -1550,17 +1601,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", @@ -1574,21 +1625,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", @@ -1602,15 +1653,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", @@ -1624,9 +1675,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", @@ -1645,23 +1696,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", @@ -1675,18 +1726,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", @@ -1700,19 +1751,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", @@ -1747,12 +1798,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", @@ -1771,25 +1822,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", @@ -1803,18 +1855,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", @@ -1828,17 +1880,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", @@ -1852,22 +1904,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", @@ -1915,9 +1969,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", @@ -1938,28 +1992,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": { @@ -1971,19 +2025,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" }, @@ -1993,9 +2048,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", @@ -2007,12 +2062,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": { @@ -2028,6 +2083,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", @@ -2082,9 +2144,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", @@ -2097,25 +2159,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", @@ -2127,6 +2170,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" }, @@ -2347,47 +2391,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", @@ -2404,10 +2407,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": { @@ -2545,10 +2572,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" } @@ -2564,20 +2592,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", @@ -2595,6 +2625,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" }, @@ -2760,15 +2791,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" @@ -2782,6 +2815,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" } @@ -2791,6 +2825,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" @@ -2800,9 +2835,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", @@ -2817,41 +2853,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" @@ -2860,29 +2905,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" }, @@ -2890,10 +2967,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" } @@ -2902,6 +2995,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" @@ -2911,15 +3005,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" }, @@ -2927,35 +3022,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", @@ -2974,25 +3117,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", @@ -3000,9 +3160,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" }, @@ -3011,17 +3172,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": { @@ -3043,6 +3205,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", @@ -3056,9 +3219,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" @@ -3071,13 +3235,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": { @@ -3085,11 +3250,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" }, @@ -3097,6 +3263,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", @@ -3107,13 +3303,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": { @@ -3121,17 +3318,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", @@ -3149,14 +3348,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" } @@ -3166,20 +3367,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": "*" @@ -3190,6 +3394,7 @@ "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -3197,18 +3402,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": "*" } @@ -3218,6 +3426,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": "*" @@ -3226,12 +3435,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" } @@ -3239,22 +3450,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" } @@ -3262,22 +3477,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" } @@ -3286,6 +3505,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" } @@ -3293,22 +3513,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" } @@ -3317,6 +3541,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" @@ -3326,23 +3551,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": "*" @@ -3352,13 +3580,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", @@ -3367,10 +3597,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": "*", @@ -3388,6 +3619,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" @@ -3397,32 +3629,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": "*" } @@ -3440,46 +3677,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", @@ -3490,14 +3734,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": "*", @@ -3513,21 +3759,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": "*" @@ -3538,19 +3787,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": { @@ -3558,19 +3809,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": "*" } @@ -3580,6 +3834,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", @@ -3615,6 +3870,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", @@ -3643,6 +3899,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" @@ -3660,6 +3917,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", @@ -3687,6 +3945,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" }, @@ -3700,6 +3959,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", @@ -3723,35 +3983,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", @@ -3777,6 +4014,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" @@ -3801,6 +4039,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" @@ -3810,25 +4049,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", @@ -3839,13 +4082,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", @@ -3858,6 +4103,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" } @@ -3867,6 +4113,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" } @@ -3875,13 +4122,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", @@ -3898,6 +4147,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", @@ -3911,6 +4161,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", @@ -3923,6 +4174,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", @@ -3937,6 +4189,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" @@ -3947,6 +4200,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" }, @@ -3960,6 +4214,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" }, @@ -3973,6 +4228,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" }, @@ -3990,6 +4246,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" } @@ -3998,18 +4255,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" }, @@ -4022,6 +4282,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" @@ -4031,10 +4292,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" }, @@ -4067,6 +4329,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" }, @@ -4078,6 +4341,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" @@ -4090,6 +4354,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", @@ -4106,6 +4371,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" }, @@ -4119,15 +4385,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", @@ -4138,22 +4405,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" }, @@ -4169,6 +4439,7 @@ "engines": [ "node >= 0.8.0" ], + "license": "Apache-2.0", "bin": { "ansi-html": "bin/ansi-html" } @@ -4177,6 +4448,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" } @@ -4185,6 +4457,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" }, @@ -4198,8 +4471,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", @@ -4218,30 +4492,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" } @@ -4249,7 +4574,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" } @@ -4257,32 +4583,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" }, @@ -4290,21 +4637,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" } @@ -4312,13 +4669,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": "*" } @@ -4341,6 +4700,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", @@ -4365,6 +4725,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" } @@ -4374,6 +4735,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", @@ -4385,17 +4747,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" } @@ -4414,16 +4807,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": { @@ -4440,9 +4834,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": [ { @@ -4460,10 +4854,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" @@ -4475,32 +4869,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" } @@ -4510,6 +4909,7 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -4519,6 +4919,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" @@ -4528,13 +4929,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" @@ -4551,9 +4959,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": [ { @@ -4574,13 +4982,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" @@ -4592,6 +5002,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", @@ -4640,10 +5066,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" } @@ -4652,6 +5079,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" } @@ -4660,6 +5088,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", @@ -4667,14 +5096,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": { @@ -4682,6 +5114,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", @@ -4696,27 +5129,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" }, @@ -4727,18 +5167,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" }, @@ -4747,153 +5190,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" }, @@ -4906,6 +5248,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" }, @@ -4918,6 +5261,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", @@ -4936,6 +5280,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" } @@ -4945,6 +5290,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" } @@ -4953,19 +5299,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" } @@ -4975,6 +5331,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" }, @@ -4982,31 +5339,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" } @@ -5016,6 +5354,7 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -5024,13 +5363,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" @@ -5042,14 +5383,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", @@ -5064,17 +5407,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" } @@ -5084,6 +5494,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", @@ -5157,10 +5568,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" } @@ -5169,6 +5581,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", @@ -5189,43 +5602,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" @@ -5240,6 +5690,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" } @@ -5247,7 +5698,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" }, @@ -5259,13 +5711,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" } @@ -5274,12 +5728,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" } @@ -5289,6 +5745,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" }, @@ -5296,31 +5753,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" } @@ -5328,19 +5811,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" } @@ -5348,13 +5834,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" @@ -5364,12 +5852,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" } @@ -5378,6 +5868,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" @@ -5388,6 +5879,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" }, @@ -5413,6 +5905,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" }, @@ -5423,7 +5916,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", @@ -5435,6 +5929,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", @@ -5450,8 +5945,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" }, @@ -5463,6 +5959,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" @@ -5488,7 +5985,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" @@ -5498,6 +5996,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" } @@ -5505,13 +6004,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" }, @@ -5519,6 +6019,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" } @@ -5526,13 +6027,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" } @@ -5542,14 +6045,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": { @@ -5560,72 +6064,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", @@ -5641,12 +6227,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" @@ -5655,14 +6242,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" }, @@ -5744,35 +6333,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" @@ -5784,78 +6349,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": { @@ -5877,10 +6405,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" }, @@ -5888,20 +6417,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" }, @@ -5909,20 +6430,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" } @@ -5932,6 +6445,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" } @@ -5939,8 +6453,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" } @@ -5949,6 +6464,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" } @@ -5957,13 +6473,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" } @@ -5973,6 +6491,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", @@ -5996,6 +6515,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", @@ -6033,17 +6553,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" } @@ -6053,6 +6568,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", @@ -6068,39 +6584,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" } @@ -6108,26 +6623,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", @@ -6144,6 +6663,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" }, @@ -6154,25 +6674,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" } @@ -6182,6 +6716,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" }, @@ -6194,6 +6729,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" }, @@ -6206,6 +6742,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" @@ -6238,6 +6775,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" } @@ -6247,6 +6785,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", @@ -6265,6 +6804,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" } @@ -6273,58 +6813,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": { @@ -6335,7 +6885,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" }, @@ -6347,15 +6899,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": [ { @@ -6363,6 +6916,7 @@ "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -6375,15 +6929,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": { @@ -6413,7 +6978,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": "*" } @@ -6422,6 +6988,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", @@ -6461,6 +7028,7 @@ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -6470,6 +7038,7 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -6508,8 +7077,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", @@ -6527,28 +7097,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" @@ -6557,13 +7167,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" }, @@ -6572,13 +7184,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" @@ -6590,21 +7204,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" }, @@ -6620,6 +7237,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" }, @@ -6631,7 +7249,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", @@ -6649,11 +7292,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", @@ -6670,9 +7331,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" } @@ -6680,33 +7342,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" } @@ -6716,6 +7396,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" @@ -6724,23 +7405,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" } @@ -6750,15 +7420,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" }, @@ -6767,12 +7465,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" @@ -6781,25 +7480,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", @@ -6811,13 +7532,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", @@ -6828,19 +7551,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": [ { @@ -6851,13 +7582,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" @@ -6870,13 +7603,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", @@ -6891,8 +7626,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" } @@ -6901,13 +7637,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", @@ -6922,6 +7660,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", @@ -6936,6 +7675,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", @@ -6958,7 +7698,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", @@ -6970,10 +7711,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" @@ -6987,17 +7729,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" @@ -7008,6 +7751,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" }, @@ -7016,10 +7760,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" } @@ -7042,10 +7787,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" @@ -7063,8 +7809,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" } @@ -7073,15 +7820,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" } @@ -7089,8 +7838,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" @@ -7100,16 +7851,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": { @@ -7121,6 +7874,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" } @@ -7129,30 +7883,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" }, @@ -7178,6 +7953,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" @@ -7190,10 +7966,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" }, @@ -7202,12 +7979,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" @@ -7218,6 +8015,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" }, @@ -7233,6 +8031,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" }, @@ -7246,8 +8045,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" } @@ -7256,6 +8056,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" } @@ -7265,6 +8066,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" }, @@ -7280,6 +8082,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" }, @@ -7288,10 +8091,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" }, @@ -7310,10 +8114,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" }, @@ -7327,7 +8132,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" } @@ -7347,6 +8153,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" }, @@ -7359,6 +8166,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" }, @@ -7371,6 +8179,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" @@ -7383,10 +8192,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" } @@ -7396,6 +8212,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" }, @@ -7408,6 +8225,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" }, @@ -7423,6 +8241,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" }, @@ -7433,16 +8252,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" }, @@ -7455,6 +8292,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" }, @@ -7465,20 +8303,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" } @@ -7487,6 +8328,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": "*" } @@ -7494,20 +8336,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" }, @@ -7520,6 +8360,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", @@ -7534,6 +8375,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" }, @@ -7545,9 +8387,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" @@ -7556,12 +8399,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" }, @@ -7572,46 +8417,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" }, @@ -7622,11 +8482,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", @@ -7642,6 +8503,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" @@ -7657,6 +8519,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", @@ -7678,6 +8541,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", @@ -7692,6 +8556,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", @@ -7702,6 +8567,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" @@ -7718,6 +8584,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" }, @@ -7725,26 +8592,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", @@ -7769,13 +8648,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" @@ -7785,44 +8666,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" @@ -7834,8 +8709,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" @@ -7844,14 +8720,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" @@ -7860,8 +8738,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" } @@ -7869,8 +8748,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" }, @@ -7881,8 +8761,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", @@ -7894,6 +8775,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" } @@ -7903,6 +8785,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", @@ -7917,6 +8800,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" @@ -7930,15 +8814,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" @@ -7955,6 +8841,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" @@ -7966,8 +8853,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", @@ -7979,22 +8867,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" } @@ -8004,6 +8894,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", @@ -8046,83 +8937,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" }, @@ -8131,39 +9039,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" @@ -8174,6 +9078,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" }, @@ -8186,6 +9091,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" @@ -8199,17 +9105,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" @@ -8220,6 +9128,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" }, @@ -8232,6 +9141,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" @@ -8245,6 +9155,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" }, @@ -8257,6 +9168,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" }, @@ -8269,6 +9181,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" }, @@ -8281,6 +9194,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" @@ -8294,6 +9208,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" } @@ -8303,6 +9218,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" }, @@ -8315,6 +9231,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" }, @@ -8327,6 +9244,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" } @@ -8336,6 +9254,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", @@ -8355,15 +9274,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" }, @@ -8372,10 +9293,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" }, @@ -8386,8 +9308,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" } @@ -8408,7 +9331,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" @@ -8418,19 +9341,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" } @@ -8438,19 +9364,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": { @@ -8462,6 +9390,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" }, @@ -8470,29 +9399,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" } @@ -8502,6 +9434,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" } @@ -8510,28 +9443,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": { @@ -8563,6 +9500,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" }, @@ -8575,6 +9513,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", @@ -8591,6 +9530,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" } @@ -8598,14 +9538,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" }, @@ -8614,9 +9556,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", @@ -8637,6 +9580,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", @@ -8654,6 +9598,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -8664,14 +9609,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" } @@ -8680,18 +9627,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" }, @@ -8712,21 +9662,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" } @@ -8734,8 +9687,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" @@ -8746,6 +9700,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", @@ -8758,6 +9713,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" } @@ -8777,6 +9733,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", @@ -8802,6 +9759,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" }, @@ -8809,11 +9767,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", @@ -8828,6 +9798,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" } @@ -8835,14 +9806,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", @@ -8857,8 +9830,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" } @@ -8866,17 +9840,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" } @@ -8886,6 +9875,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" } @@ -8893,8 +9883,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" }, @@ -8905,8 +9896,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" } @@ -8916,6 +9908,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" }, @@ -8928,6 +9921,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" }, @@ -8940,6 +9934,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" }, @@ -8951,6 +9946,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": "*" } @@ -8958,7 +9954,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" } @@ -8967,16 +9964,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" } @@ -8986,19 +9988,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": { @@ -9012,7 +10016,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", @@ -9036,9 +10041,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" @@ -9049,6 +10055,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" }, @@ -9061,6 +10068,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" } @@ -9068,7 +10076,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" } @@ -9078,6 +10087,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" }, @@ -9095,10 +10105,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", @@ -9112,32 +10123,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" @@ -9146,37 +10172,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": { @@ -9198,6 +10230,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" } @@ -9225,8 +10258,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" @@ -9240,6 +10274,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" } @@ -9249,6 +10284,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" } @@ -9256,8 +10292,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" } @@ -9267,6 +10304,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" } @@ -9275,7 +10313,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", @@ -9294,23 +10333,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" } @@ -9318,12 +10352,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" }, @@ -9332,50 +10367,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": [ { @@ -9391,10 +10496,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" @@ -9452,6 +10558,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" }, @@ -9463,9 +10570,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": { @@ -9498,6 +10605,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" } @@ -9506,23 +10614,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" @@ -9536,19 +10653,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" } @@ -9568,12 +10688,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" @@ -9586,6 +10707,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", @@ -9617,13 +10739,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" } @@ -9633,6 +10757,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" } @@ -9642,6 +10767,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", @@ -9657,6 +10783,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", @@ -9668,11 +10795,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" } @@ -9680,13 +10821,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" @@ -9699,6 +10841,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", @@ -9708,10 +10851,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", @@ -9733,6 +10887,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" }, @@ -9745,14 +10900,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", @@ -9767,6 +10924,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", @@ -9799,6 +10957,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", @@ -9825,8 +10984,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", @@ -9841,6 +11001,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" }, @@ -9851,8 +11012,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", @@ -9878,6 +11040,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" }, @@ -9890,20 +11053,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", @@ -9934,6 +11119,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", @@ -9947,6 +11133,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" } @@ -9954,7 +11141,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" } @@ -9964,6 +11152,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" } @@ -9972,20 +11161,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" }, @@ -10001,6 +11193,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" }, @@ -10013,6 +11206,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" } @@ -10030,8 +11224,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" @@ -10043,8 +11238,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" } @@ -10052,8 +11248,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", @@ -10067,14 +11264,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", @@ -10091,15 +11290,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", @@ -10120,16 +11321,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", @@ -10167,6 +11358,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", @@ -10195,6 +11396,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -10202,32 +11404,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", @@ -10244,19 +11509,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" @@ -10266,12 +11534,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" }, @@ -10284,6 +11550,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", @@ -10308,6 +11575,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" } @@ -10316,13 +11584,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", @@ -10334,17 +11604,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" } @@ -10354,6 +11619,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" } @@ -10363,6 +11629,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", @@ -10381,6 +11648,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", @@ -10399,6 +11667,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" } @@ -10408,6 +11677,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" } @@ -10417,6 +11687,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", @@ -10431,25 +11702,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" } @@ -10459,6 +11734,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" } @@ -10468,6 +11744,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", @@ -10482,25 +11759,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", @@ -10511,17 +11792,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" }, @@ -10532,13 +11849,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" }, @@ -10551,6 +11870,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" } @@ -10560,19 +11880,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" @@ -10582,13 +11908,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" } @@ -10598,6 +11926,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", @@ -10609,6 +11938,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" } @@ -10618,15 +11948,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" } @@ -10636,6 +11968,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" @@ -10651,65 +11984,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", @@ -10726,6 +12053,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", @@ -10740,6 +12068,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", @@ -10749,31 +12078,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" } @@ -10782,14 +12092,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", @@ -10813,16 +12125,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" } @@ -10832,6 +12146,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", @@ -10853,6 +12168,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" }, @@ -10865,6 +12181,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" } @@ -10874,21 +12191,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" } @@ -10896,8 +12256,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" @@ -10906,14 +12267,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", @@ -10924,11 +12287,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" } @@ -10937,6 +12308,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" } @@ -10944,14 +12316,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" @@ -10964,6 +12338,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", @@ -10990,14 +12365,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" @@ -11007,26 +12403,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" @@ -11036,6 +12439,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" }, @@ -11060,8 +12464,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" } @@ -11071,6 +12476,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" } @@ -11093,6 +12499,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" }, @@ -11105,9 +12512,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": { @@ -11115,6 +12522,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" }, @@ -11127,6 +12535,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" }, @@ -11134,37 +12543,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": { @@ -11182,6 +12572,7 @@ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -11203,20 +12594,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", @@ -11235,6 +12618,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", @@ -11264,17 +12648,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" } @@ -11282,8 +12675,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" }, @@ -11295,6 +12689,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" } @@ -11302,14 +12697,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" @@ -11318,14 +12715,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", @@ -11336,11 +12735,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" } @@ -11355,17 +12762,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" } @@ -11388,6 +12798,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" } @@ -11396,6 +12807,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" @@ -11407,15 +12819,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" @@ -11432,6 +12846,7 @@ "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6.x" } @@ -11439,7 +12854,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" }, @@ -11450,13 +12866,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" }, @@ -11482,6 +12900,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" @@ -11490,6 +12909,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", @@ -11509,19 +13005,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": { @@ -11532,6 +13030,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" }, @@ -11540,23 +13039,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" } @@ -11564,13 +13066,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" } @@ -11580,14 +13084,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": [ { @@ -11619,6 +13124,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" } @@ -11628,6 +13134,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", @@ -11674,14 +13181,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" } @@ -11691,6 +13200,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" } @@ -11700,6 +13210,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" @@ -11708,8 +13219,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" } @@ -11717,10 +13229,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", @@ -11730,22 +13243,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" @@ -11759,6 +13275,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" } @@ -11766,7 +13283,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", @@ -11821,6 +13339,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", @@ -11866,6 +13385,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } @@ -11895,16 +13415,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", @@ -12012,15 +13532,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", @@ -12032,6 +13553,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" }, @@ -12043,7 +13565,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", @@ -12067,6 +13590,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", @@ -12082,12 +13606,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": { @@ -12099,15 +13625,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", @@ -12122,6 +13674,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" } @@ -12130,6 +13683,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" @@ -12140,6 +13694,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" }, @@ -12155,6 +13710,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", @@ -12166,38 +13722,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", @@ -12232,12 +13808,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" @@ -12268,6 +13845,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" } @@ -12276,6 +13854,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" } @@ -12283,40 +13862,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 de3511485ec..6432e2fd582 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-react/components/InfoGrid.tsx b/esp/src/src-react/components/InfoGrid.tsx index 160a0dc0271..da3a212ba8b 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; @@ -237,23 +236,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/Menu.tsx b/esp/src/src-react/components/Menu.tsx index 7f291c40944..ea6b9601d00 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]; } @@ -164,7 +165,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": [ @@ -215,8 +216,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/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/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 { 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 [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 && diff --git a/esp/src/src-react/components/forms/RenameFile.tsx b/esp/src/src-react/components/forms/RenameFile.tsx index eeedfba61a3..b003f1cc280 100644 --- a/esp/src/src-react/components/forms/RenameFile.tsx +++ b/esp/src/src-react/components/forms/RenameFile.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { Checkbox, DefaultButton, mergeStyleSets, PrimaryButton, Stack, TextField, } from "@fluentui/react"; +import { Checkbox, DefaultButton, mergeStyleSets, PrimaryButton, Spinner, Stack, TextField, } from "@fluentui/react"; import { useConst } from "@fluentui/react-hooks"; import { useForm, Controller } from "react-hook-form"; import { FileSprayService, FileSprayStates } from "@hpcc-js/comms"; @@ -39,6 +39,8 @@ export const RenameFile: React.FunctionComponent = ({ }) => { 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()} /> }> 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(); } 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]; } 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 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", 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/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. 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) diff --git a/system/jhtree/jhtree.cpp b/system/jhtree/jhtree.cpp index 86279960c2d..e522d11d208 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()); } } diff --git a/system/jlib/jexcept.cpp b/system/jlib/jexcept.cpp index 313fbf9bef9..4aecef4f168 100644 --- a/system/jlib/jexcept.cpp +++ b/system/jlib/jexcept.cpp @@ -303,9 +303,14 @@ class jlib_thrown_decl WrappedException: public StringException return str; } protected: - Linked exception; + Owned 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 733513d4e49..1621c329c74 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))); diff --git a/system/jlib/jfile.cpp b/system/jlib/jfile.cpp index ffe331155f1..bd21866dc1c 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; @@ -3099,68 +3182,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 +4611,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) { @@ -7937,25 +7947,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 +7989,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 +8012,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 +8074,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..4e93ab84239 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; @@ -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); @@ -756,12 +748,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..023897f0587 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: @@ -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/jlog.cpp b/system/jlib/jlog.cpp index 59a7b625a72..ee167a2ee82 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) { 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/system/jlib/jlzw.cpp b/system/jlib/jlzw.cpp index 827223950b1..f289c185717 100644 --- a/system/jlib/jlzw.cpp +++ b/system/jlib/jlzw.cpp @@ -2529,7 +2529,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) { @@ -2547,6 +2547,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; } 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 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(); } } diff --git a/thorlcr/activities/thactivityutil.cpp b/thorlcr/activities/thactivityutil.cpp index 2beb728f227..afa10f9b282 100644 --- a/thorlcr/activities/thactivityutil.cpp +++ b/thorlcr/activities/thactivityutil.cpp @@ -786,6 +786,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) @@ -808,7 +809,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; diff --git a/thorlcr/master/thgraphmanager.cpp b/thorlcr/master/thgraphmanager.cpp index 8f7f0ed6086..955e8fb9716 100644 --- a/thorlcr/master/thgraphmanager.cpp +++ b/thorlcr/master/thgraphmanager.cpp @@ -1345,23 +1345,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()); } } } @@ -1485,7 +1488,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 2c53522b21d..c3a50234c91 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 b9af9d5b57c..0414548c55e 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 workers) { - IPointerArrayOf connectedWorkers; - connectedWorkers.ensureCapacity(workers); + std::vector connectedWorkers; + connectedWorkers.reserve(workers); unsigned remaining = workers; INode *_sender = nullptr; CMessageBuffer msg; @@ -300,11 +304,15 @@ class CRegistryServer : public CSimpleInterface else { Owned sender = _sender; - if (NotFound != connectedWorkers.find(sender)) + StringBuffer workerEPStr; + sender->endpoint().getEndpointHostText(workerEPStr); + + auto findFunc = [&workerEPStr](const CConnectedWorkerDetail& worker) { - StringBuffer epStr; - throw makeStringExceptionV(TE_AbortException, "Same worker 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 worker registered twice!! : %s", workerEPStr.str()); /* NB: in base metal setup, the workers know which worker number they are in advance, and send their workerNum at registration. * In non attached storage setup, they do not send a worker by default and instead are given a # once all are registered @@ -314,42 +322,29 @@ class CRegistryServer : public CSimpleInterface StringBuffer workerPodName, workerContainerName; if (NotFound == workerNum) { - connectedWorkers.append(sender.getLink()); - workerNum = connectedWorkers.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("Worker connected from %s", workerEPStr.str()); } else { unsigned pos = workerNum - 1; // NB: workerNum is 1 based - while (connectedWorkers.ordinality() < pos) - connectedWorkers.append(nullptr); - if (connectedWorkers.ordinality() == pos) - connectedWorkers.append(sender.getLink()); + while (connectedWorkers.size() < pos) + connectedWorkers.emplace_back(); + if (connectedWorkers.size() == pos) + connectedWorkers.emplace_back(workerEPStr.str()); else - connectedWorkers.replace(sender.getLink(), pos); + connectedWorkers[pos] = {workerEPStr.str()}; + PROGLOG("Worker %u connected from %s", workerNum, workerEPStr.str()); } - StringBuffer epStr; - PROGLOG("Worker %u connected from %s", workerNum, sender->endpoint().getEndpointHostText(epStr).str()); --remaining; } } - assertex(workers == connectedWorkers.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(workers == connectedWorkers.size()); unsigned localThorPortInc = globals->getPropInt("@localThorPortInc", DEFAULT_WORKERPORTINC); unsigned workerBasePort = globals->getPropInt("@slaveport", DEFAULT_THORWORKERPORT); @@ -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); - }; - connectedWorkers.sort(compareINodeOrder); - processGroup.setown(createIGroup(connectedWorkers.ordinality(), connectedWorkers.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, workerBasePort, 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("Workers connected, initializing.."); msg.clear(); msg.append(THOR_VERSION_MAJOR).append(THOR_VERSION_MINOR);