From cdda6086910bc93134e96e64db93bdbd2453b4fc Mon Sep 17 00:00:00 2001 From: Idundun Michael <163633000+Mikitechguy@users.noreply.github.com> Date: Wed, 27 Mar 2024 06:54:09 +0100 Subject: [PATCH 001/176] Added model.css --- apps/model/model.css | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/apps/model/model.css b/apps/model/model.css index 9322502c3..78fa4fbf7 100644 --- a/apps/model/model.css +++ b/apps/model/model.css @@ -576,4 +576,39 @@ input:checked + .slider1:after { content:'YES'; left: 35%; -} \ No newline at end of file +} + +@media screen and (max-width: 500px) { + + #mtable { + table-layout: auto; + display: flex; + + + + } + + #mtable thead tr th { + display: inline-block; /* Display headers inline */ + width: auto; /* Allow natural width for each header */ + text-align: center; /* Center text within each header */ + margin: 3px; + gap:5px; /* Add optional margin for spacing */ + } + thead tr th { + height:100px; + } + + } + + + @media screen and (max-width: 1200px) { + + #mtable { + table-layout: auto; + display: block; + } + + + + } \ No newline at end of file From bbb1b251487b886757d6523494ed4bdeb4887aca Mon Sep 17 00:00:00 2001 From: Cornelius Emase Date: Fri, 29 Mar 2024 14:07:43 +0300 Subject: [PATCH 002/176] feat: implementinput validation --- apps/signup/signup.css | 14 ++++++++++++++ apps/signup/signup.html | 14 +++++++------- apps/signup/signup.js | 37 +++++++++++++++++++++++++++++++++---- 3 files changed, 54 insertions(+), 11 deletions(-) diff --git a/apps/signup/signup.css b/apps/signup/signup.css index 40d071bfb..612ff3e60 100644 --- a/apps/signup/signup.css +++ b/apps/signup/signup.css @@ -7,6 +7,20 @@ body { font-family: 'Roboto', sans-serif; overflow-x: hidden; } +.popup { + position: fixed; + top: 10%; + right: 5%; + max-width: 300px; + height: 50px; + padding: 10px; + background-color: #28a745; + color: #fff; + text-align: center; + border-radius: 5px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); + z-index:9999; +} .bg-dark { background-color: #343a40!important; } diff --git a/apps/signup/signup.html b/apps/signup/signup.html index 55fdaaa02..78a91ab59 100644 --- a/apps/signup/signup.html +++ b/apps/signup/signup.html @@ -64,7 +64,6 @@ style="text-align:center; background: #17a2b8; font-size: xx-large; color: white; padding: 4px; border-radius: 5px 5px 0px 0px;"> caMicroscope -

User Signup

@@ -75,16 +74,17 @@

User Signup

- +
+

- +
+

@@ -102,8 +102,6 @@

User Signup

-

Non-admin users have to submit a request ticket to admins to get their approval to signup new users. If you are an Admin, you can directly signup users. @@ -115,7 +113,9 @@

User Signup

Copyright caMicroscope

- + From 9b3c53c1991702e12197c296cc4988d872fe965a Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Wed, 3 Jul 2024 12:46:34 +0100 Subject: [PATCH 032/176] changed slides page title --- apps/table.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/table.html b/apps/table.html index ae8075125..b3cb9afcc 100644 --- a/apps/table.html +++ b/apps/table.html @@ -25,7 +25,7 @@ - CaMicroscope Data Table + caMicroscope - Slides Data Table From c2e023197b6d0ba3499c18c1339a50487216e4b2 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Thu, 4 Jul 2024 01:48:32 +0900 Subject: [PATCH 033/176] add log annotation icon --- apps/viewer/init.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 751d35145..f0410db13 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -674,8 +674,9 @@ async function initUIcomponents() { // log subToolsOpt.push({ name: 'log', - icon: 'log', // material icons' name + icon: 'summarize', // material icons' name title: 'LogAnnotaition', + value: 'log', type: 'btn', callback: logAnnotaiton, }); From d9b78d5169ec223e8a802baa90be88f9e1551b3f Mon Sep 17 00:00:00 2001 From: YukaUU Date: Sat, 6 Jul 2024 16:16:06 +0900 Subject: [PATCH 034/176] draft pull request --- apps/viewer/uicallbacks.js | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/viewer/uicallbacks.js b/apps/viewer/uicallbacks.js index ebacf211b..ec89eb3e8 100644 --- a/apps/viewer/uicallbacks.js +++ b/apps/viewer/uicallbacks.js @@ -2738,6 +2738,7 @@ async function captureSlide() { /* Log annotaiton */ let isSidemenuOpen = true; +// 他のものを全て閉じる処理を追加 function logAnnotaiton() { if (isSidemenuOpen == true) { $UI.logsSideMenu.open(); From a1f8279c2e02a7c5324b8318ea1813037c7cf4ac Mon Sep 17 00:00:00 2001 From: YukaUU Date: Sat, 6 Jul 2024 18:55:05 +0900 Subject: [PATCH 035/176] add sideMenu on right --- apps/viewer/init.js | 2 ++ apps/viewer/viewer.html | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index f0410db13..5d9174362 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -754,6 +754,8 @@ async function initUIcomponents() { id: 'log_panel', width: 250, contentPadding: 5, + position: 'right', + height: '75vh', // , isOpen:true callback: toggleSideMenu, }); diff --git a/apps/viewer/viewer.html b/apps/viewer/viewer.html index a1ef20569..64fdc2b36 100644 --- a/apps/viewer/viewer.html +++ b/apps/viewer/viewer.html @@ -410,7 +410,7 @@
-
+
@@ -425,7 +425,7 @@
-
+
From 08ed4f3f2a6216a76066f87e72fc389f536a4c9c Mon Sep 17 00:00:00 2001 From: YukaUU Date: Sun, 7 Jul 2024 02:16:59 +0900 Subject: [PATCH 036/176] add collapsiblelist in Log Panel --- apps/viewer/init.js | 39 ++++++++++++++++++++++++++++++++++++--- apps/viewer/viewer.html | 1 + 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 5d9174362..578d4c712 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -138,7 +138,6 @@ function initialize() { }, 100); console.log('$UI', $UI); console.log('$D', $D); -} // setting core functionalities function initCore() { @@ -904,16 +903,40 @@ async function initUIcomponents() { // console.log(e); }, }); + + $UI.logsList = new CollapsibleList({ + id: 'logslist', + list: [ + { + id: 'logsAnnotation', + title: 'Annotation', + content: 'No Template Loaded', // $UI.annotOptPanel.elt + // isExpand:true + }, + // { + // id: 'heatMap', + // title: 'HeatMap', + // content: 'No Template Loaded', // $UI.algOptPanel.elt, + // }, + ], + changeCallBack: function(e) { + // console.log(e); + }, + }); $UI.layersSideMenu.clearContent(); // add to layers side menu const title = document.createElement('div'); title.classList.add('item_head'); title.textContent = 'Layers Manager'; - // add to layers side menu + // add to log side menu const titleLog = document.createElement('div'); titleLog.classList.add('item_head'); - titleLog.textContent = 'Log Annotations'; + titleLog.textContent = 'Log Panel'; + // add CSS + titleLog.style.color = '#365f9c'; + titleLog.style.fontSize = '20px'; + titleLog.style.backgroundColor = 'rgba(220, 220, 220, 1)'; $UI.logsSideMenu.addContent(titleLog); @@ -955,6 +978,16 @@ async function initUIcomponents() { $UI.layersList.elt.parentNode.removeChild($UI.layersList.elt); closeMinorControlPanel(); $UI.layersSideMenu.addContent($UI.layersList.elt); + + // logs + $UI.logsList.clearContent('logsAnnotation'); + $UI.logsList.addContent('logsAnnotation', $UI.layersViewer.elt); + $UI.logsList.clearContent('heatMap'); + $UI.logsList.addContent('heatMap', $UI.layersViewerMinor.elt); + + $UI.logsList.elt.parentNode.removeChild($UI.logsList.elt); + closeMinorControlPanel(); + $UI.logsSideMenu.addContent($UI.logsList.elt); } }, 300); diff --git a/apps/viewer/viewer.html b/apps/viewer/viewer.html index 64fdc2b36..edf2f1d63 100644 --- a/apps/viewer/viewer.html +++ b/apps/viewer/viewer.html @@ -417,6 +417,7 @@
+
From a154cbbe87e18dcd9b91662a1655440b8d5600b0 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Sun, 7 Jul 2024 12:16:06 +0900 Subject: [PATCH 037/176] add collapsible list on right side menu --- apps/viewer/uicallbacks.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/viewer/uicallbacks.js b/apps/viewer/uicallbacks.js index ec89eb3e8..0d2bcde09 100644 --- a/apps/viewer/uicallbacks.js +++ b/apps/viewer/uicallbacks.js @@ -323,6 +323,9 @@ function toolsOff() { case 'download_selection': downloadSelectionOff(); break; + case 'log': + $UI.logsSideMenu.close(); + break; } } From 50f70a0ffb3b76a6dc4163df0cffa6f696bb642a Mon Sep 17 00:00:00 2001 From: YukaUU Date: Sun, 7 Jul 2024 16:55:56 +0900 Subject: [PATCH 038/176] add collapsiblelist in Log Panel --- apps/viewer/init.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 578d4c712..e30cae4fa 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -138,7 +138,7 @@ function initialize() { }, 100); console.log('$UI', $UI); console.log('$D', $D); - +} // setting core functionalities function initCore() { // start initial From 4940cfe2f2758e07db0dd669f26b37d6c6612932 Mon Sep 17 00:00:00 2001 From: Joice-crypto Date: Sun, 7 Jul 2024 22:46:19 -0300 Subject: [PATCH 039/176] Fixed the Name Suggestion error on the Slide Viewer Page --- common/pureform/pure-form.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/pureform/pure-form.js b/common/pureform/pure-form.js index 8aec716f1..dcbc42c98 100644 --- a/common/pureform/pure-form.js +++ b/common/pureform/pure-form.js @@ -1851,7 +1851,7 @@ // check required status if (!ignoreRequired && schemaItem.required && ((schemaItem.type !== 'boolean' && !value) || (Array.isArray(value) && value.length <= 0))) { - return 'This field must have a value'; + return 'Please provide a name for the annotation. The name should be descriptive and unique'; } if (schemaItem.minItems && (Array.isArray(value) && value.length < schemaItem.minItems)) { From ce904b4a72a3311cf70e15aae902eace8dd4b41a Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Mon, 8 Jul 2024 12:03:26 +0100 Subject: [PATCH 040/176] improved email validation error msg --- apps/signup/signup.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/signup/signup.js b/apps/signup/signup.js index ddf6d1348..0c388e97a 100644 --- a/apps/signup/signup.js +++ b/apps/signup/signup.js @@ -14,7 +14,7 @@ function addUser(){ if (email === '') { emailErr.textContent = 'Please enter your email'; } else if (!(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(email))) { - emailErr.textContent = 'Please enter a valid email'; + emailErr.textContent = 'Please enter a valid email address. For example: name@example.com'; } @@ -119,4 +119,4 @@ $(window).on('load', function() { function loginPage(){ const url = "/login.html"; window.location.href = url; -} \ No newline at end of file +} From 7efbf1dd880f749126690321ab6c9af7d6142ac5 Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Mon, 8 Jul 2024 12:35:27 +0100 Subject: [PATCH 041/176] improved steps for uploading --- apps/table.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/table.html b/apps/table.html index ae8075125..b103ba266 100644 --- a/apps/table.html +++ b/apps/table.html @@ -213,7 +213,7 @@

Steps for uploading.

  • Select the file you wish to upload. The Token field should be automatically populated .
  • Enter the desired filename, including its extension, for the destination file.
  • -
  • Click on the button to preview the slide.
  • +
  • Click on the Preview Slide button to preview the slide.
  • Click on Finish Upload to complete the process and post the slide to caMicroscope.
From 7f7a6ce16394ffe3428d6cff8a1275ac298b316a Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Mon, 8 Jul 2024 12:59:33 +0100 Subject: [PATCH 042/176] added text to arrow icon --- apps/table.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/table.html b/apps/table.html index b103ba266..ab16d9a51 100644 --- a/apps/table.html +++ b/apps/table.html @@ -262,7 +262,7 @@

Steps for uploading.

+ value="Finish Upload" onclick="validateForm(finishUpload)">Preview Slide
From 78026e7084228a0066d53f754e666cdd68221310 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Mon, 8 Jul 2024 23:11:59 +0900 Subject: [PATCH 043/176] add layers on log panel using $UI.layers,$UI.layers.list --- apps/viewer/init.js | 43 ++++++++++++++++++++++++++++--- apps/viewer/uicallbacks.js | 52 +++++++++++++++++++------------------- apps/viewer/viewer.html | 4 +++ 3 files changed, 69 insertions(+), 30 deletions(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index e30cae4fa..53fe57e06 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -877,6 +877,20 @@ async function initUIcomponents() { callback.bind('minor'), rootCallback.bind('minor'), ); + // create UI and set data + $UI.logsViewer = createLogsViewer( + 'overlogs', + null, + callback.bind('main'), + rootCallback.bind('main'), + ); + // create UI and set data - minor + $UI.logsViewerMinor = createLogsViewer( + 'overlogsMinor', + null, + callback.bind('minor'), + rootCallback.bind('minor'), + ); // TODO move to add layers // if ($D.params.states && $D.params.states.l) { // $D.params.states.l.forEach((id) => @@ -979,11 +993,11 @@ async function initUIcomponents() { closeMinorControlPanel(); $UI.layersSideMenu.addContent($UI.layersList.elt); - // logs + // logs $UI.logsList.clearContent('logsAnnotation'); - $UI.logsList.addContent('logsAnnotation', $UI.layersViewer.elt); - $UI.logsList.clearContent('heatMap'); - $UI.logsList.addContent('heatMap', $UI.layersViewerMinor.elt); + $UI.logsList.addContent('logsAnnotation', $UI.logsViewer.elt); + // $UI.logsList.clearContent('heatMap'); + // $UI.logsList.addContent('heatMap', $UI.logsViewerMinor.elt); $UI.logsList.elt.parentNode.removeChild($UI.logsList.elt); closeMinorControlPanel(); @@ -1354,6 +1368,19 @@ function createLayerViewer(id, viewerData, callback, rootCallback) { return layersViewer; } +function createLogsViewer(id, viewerData, callback, rootCallback) { + const logsViewer = new LayersViewer({ + id: id, + data: viewerData, + removeCallback: removeCallback, + locationCallback: locationCallback, + callback: callback, + rootCallback: rootCallback, + + }); + logsViewer.elt.parentNode.removeChild(logsViewer.elt); + return logsViewer; +} // create lay panel for side-by-side control function createLayPanelControl() { $UI.layCtrlbar = document.createElement('div'); @@ -1472,6 +1499,7 @@ function addHumanLayerItems() { }, mainViewerItems); $UI.layersViewer.addHumanItems(mainViewerItems); + $UI.logsViewer.addHumanItems(mainViewerItems); // minor viewer minorViewer const minorViewerItems = { @@ -1512,6 +1540,7 @@ function addHumanLayerItems() { }, minorViewerItems); $UI.layersViewerMinor.addHumanItems(minorViewerItems); + $UI.logsViewerMinor.addHumanItems(minorViewerItems); } function openLoadStatus(text) { const txt = $UI.loadStatus.querySelector('.text'); @@ -1531,6 +1560,8 @@ function addRulerLayerItems(data) { }); $UI.layersViewer.addItems(mainViewerData, 'ruler'); $UI.layersViewerMinor.addItems(minorViewerData, 'ruler'); + $UI.logsViewer.addItems(mainViewerData, 'ruler'); + $UI.logsViewerMinor.addItems(minorViewerData, 'ruler'); } function addComputerLayerItems(data) { @@ -1543,6 +1574,8 @@ function addComputerLayerItems(data) { }); $UI.layersViewer.addItems(mainViewerData, 'segmentation'); $UI.layersViewerMinor.addItems(minorViewerData, 'segmentation'); + $UI.logsViewer.addItems(mainViewerData, 'segmentation'); + $UI.logsViewerMinor.addItems(minorViewerData, 'segmentation'); } function addHeatmapLayerItems(data) { @@ -1555,6 +1588,8 @@ function addHeatmapLayerItems(data) { }); $UI.layersViewer.addItems(mainViewerData, 'heatmap'); $UI.layersViewerMinor.addItems(minorViewerData, 'heatmap'); + $UI.logsViewer.addItems(mainViewerData, 'heatmap'); + $UI.logsViewerMinor.addItems(minorViewerData, 'heatmap'); } // const mainViewerData = $D.overlayers.map((d) => { diff --git a/apps/viewer/uicallbacks.js b/apps/viewer/uicallbacks.js index 0d2bcde09..5108b72bc 100644 --- a/apps/viewer/uicallbacks.js +++ b/apps/viewer/uicallbacks.js @@ -2750,32 +2750,32 @@ function logAnnotaiton() { $UI.logsSideMenu.close(); isSidemenuOpen = true; }; - let log = $CAMIC.store.fetchMark($D.params.slideId); - console.log('$CAMIC.fetchMark', log); - console.log('kotae', log); - let aa = []; - fetchAndSortAnnotations(); - // 注釈を取得する関数 - function fetchAndSortAnnotations(slideId= $D.params.slideId) { - // 注釈を取得するPromiseを返す - $CAMIC.store.fetchMark(slideId).then((annotations) => { - // 注釈が存在する場合にのみソートする - if (annotations && annotations.length > 0) { - // 新しい順にソート - annotations.sort((a, b) => { - return new Date(b.created_date) - new Date(a.created_date); - }); - } - console.log('annotations', annotations[0].states.x); - aa.push(annotations); - const jsonString = JSON.stringify(annotations[0].states.x, null, 2); - const loading = `
${jsonString}
`; - $UI.logSideMenu.addContent(loading); - }).catch((error) => { - console.error('Error fetching annotations:', error); - throw error; - }); - } + // let log = $CAMIC.store.fetchMark($D.params.slideId); + // console.log('$CAMIC.fetchMark', log); + // console.log('kotae', log); + // let aa = []; + // fetchAndSortAnnotations(); + // // 注釈を取得する関数 + // function fetchAndSortAnnotations(slideId= $D.params.slideId) { + // // 注釈を取得するPromiseを返す + // $CAMIC.store.fetchMark(slideId).then((annotations) => { + // // 注釈が存在する場合にのみソートする + // if (annotations && annotations.length > 0) { + // // 新しい順にソート + // annotations.sort((a, b) => { + // return new Date(b.created_date) - new Date(a.created_date); + // }); + // } + // console.log('annotations', annotations[0].states.x); + // aa.push(annotations); + // const jsonString = JSON.stringify(annotations[0].states.x, null, 2); + // const loading = `
${jsonString}
`; + // $UI.logSideMenu.addContent(loading); + // }).catch((error) => { + // console.error('Error fetching annotations:', error); + // throw error; + // }); + // } } function downloadSlideCapture(combiningCanvas) { diff --git a/apps/viewer/viewer.html b/apps/viewer/viewer.html index edf2f1d63..9d4f8b670 100644 --- a/apps/viewer/viewer.html +++ b/apps/viewer/viewer.html @@ -423,6 +423,10 @@
+
+ +
+
From 71c3d1363c3758debdd076c63c47925f9143a272 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Tue, 9 Jul 2024 22:21:25 +0900 Subject: [PATCH 044/176] add original component --- apps/viewer/init.js | 56 ++++++++++++++++++---------- apps/viewer/viewer.html | 12 ++++++ components/logsviewer/logsviewer.css | 0 components/logsviewer/logsviewer.js | 42 +++++++++++++++++++++ 4 files changed, 91 insertions(+), 19 deletions(-) create mode 100644 components/logsviewer/logsviewer.css create mode 100644 components/logsviewer/logsviewer.js diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 53fe57e06..338e365ea 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -878,19 +878,25 @@ async function initUIcomponents() { rootCallback.bind('minor'), ); // create UI and set data + // $UI.logsViewer = createLogsViewer( + // 'overlogs', + // null, + // callback.bind('main'), + // rootCallback.bind('main'), + // ); + // // create UI and set data - minor + // $UI.logsViewerMinor = createLogsViewer( + // 'overlogsMinor', + // null, + // callback.bind('minor'), + // rootCallback.bind('minor'), + // ); $UI.logsViewer = createLogsViewer( 'overlogs', null, callback.bind('main'), rootCallback.bind('main'), ); - // create UI and set data - minor - $UI.logsViewerMinor = createLogsViewer( - 'overlogsMinor', - null, - callback.bind('minor'), - rootCallback.bind('minor'), - ); // TODO move to add layers // if ($D.params.states && $D.params.states.l) { // $D.params.states.l.forEach((id) => @@ -1368,15 +1374,27 @@ function createLayerViewer(id, viewerData, callback, rootCallback) { return layersViewer; } +// function createLogsViewer(id, viewerData, callback, rootCallback) { +// const logsViewer = new LayersViewer({ +// id: id, +// data: viewerData, +// removeCallback: removeCallback, +// locationCallback: locationCallback, +// callback: callback, +// rootCallback: rootCallback, + +// }); +// logsViewer.elt.parentNode.removeChild(logsViewer.elt); +// return logsViewer; +// } function createLogsViewer(id, viewerData, callback, rootCallback) { - const logsViewer = new LayersViewer({ + const logsViewer = new LogsViewer({ id: id, data: viewerData, removeCallback: removeCallback, locationCallback: locationCallback, callback: callback, rootCallback: rootCallback, - }); logsViewer.elt.parentNode.removeChild(logsViewer.elt); return logsViewer; @@ -1498,8 +1516,8 @@ function addHumanLayerItems() { return items; }, mainViewerItems); - $UI.layersViewer.addHumanItems(mainViewerItems); - $UI.logsViewer.addHumanItems(mainViewerItems); + // $UI.layersViewer.addHumanItems(mainViewerItems); + // $UI.logsViewer.addHumanItems(mainViewerItems); // minor viewer minorViewer const minorViewerItems = { @@ -1539,8 +1557,8 @@ function addHumanLayerItems() { return items; }, minorViewerItems); - $UI.layersViewerMinor.addHumanItems(minorViewerItems); - $UI.logsViewerMinor.addHumanItems(minorViewerItems); + // $UI.layersViewerMinor.addHumanItems(minorViewerItems); + // $UI.logsViewerMinor.addHumanItems(minorViewerItems); } function openLoadStatus(text) { const txt = $UI.loadStatus.querySelector('.text'); @@ -1560,8 +1578,8 @@ function addRulerLayerItems(data) { }); $UI.layersViewer.addItems(mainViewerData, 'ruler'); $UI.layersViewerMinor.addItems(minorViewerData, 'ruler'); - $UI.logsViewer.addItems(mainViewerData, 'ruler'); - $UI.logsViewerMinor.addItems(minorViewerData, 'ruler'); + // $UI.logsViewer.addItems(mainViewerData, 'ruler'); + // $UI.logsViewerMinor.addItems(minorViewerData, 'ruler'); } function addComputerLayerItems(data) { @@ -1574,8 +1592,8 @@ function addComputerLayerItems(data) { }); $UI.layersViewer.addItems(mainViewerData, 'segmentation'); $UI.layersViewerMinor.addItems(minorViewerData, 'segmentation'); - $UI.logsViewer.addItems(mainViewerData, 'segmentation'); - $UI.logsViewerMinor.addItems(minorViewerData, 'segmentation'); + // $UI.logsViewer.addItems(mainViewerData, 'segmentation'); + // $UI.logsViewerMinor.addItems(minorViewerData, 'segmentation'); } function addHeatmapLayerItems(data) { @@ -1588,8 +1606,8 @@ function addHeatmapLayerItems(data) { }); $UI.layersViewer.addItems(mainViewerData, 'heatmap'); $UI.layersViewerMinor.addItems(minorViewerData, 'heatmap'); - $UI.logsViewer.addItems(mainViewerData, 'heatmap'); - $UI.logsViewerMinor.addItems(minorViewerData, 'heatmap'); + // $UI.logsViewer.addItems(mainViewerData, 'heatmap'); + // $UI.logsViewerMinor.addItems(minorViewerData, 'heatmap'); } // const mainViewerData = $D.overlayers.map((d) => { diff --git a/apps/viewer/viewer.html b/apps/viewer/viewer.html index 9d4f8b670..3412290b7 100644 --- a/apps/viewer/viewer.html +++ b/apps/viewer/viewer.html @@ -149,6 +149,13 @@ media="all" href="../../components/modalbox/modalbox.css" /> + + @@ -300,6 +307,11 @@ type="text/javascript" src="../../components/ml-assistant/ml-assistant.js" > + + diff --git a/components/logsviewer/logsviewer.css b/components/logsviewer/logsviewer.css new file mode 100644 index 000000000..e69de29bb diff --git a/components/logsviewer/logsviewer.js b/components/logsviewer/logsviewer.js new file mode 100644 index 000000000..4cf0f5c50 --- /dev/null +++ b/components/logsviewer/logsviewer.js @@ -0,0 +1,42 @@ +/** + * CaMicroscope Logs Viewer. A component that shows logs of annotation by timeline. + * @constructor + * @param {Object} options + * All required and optional settings for instantiating a new instance of a Layer Manager. + * @param {String} options.id + * Id of the element to append the Layer Manager's container element to. + * @param {Object[]} options.data + * the data set of the layers. + * @param {String} options.data.id + * layer's id + * @param {String} options.data.name + * layer's name + * @param {String} options.data.typeId + * layer's type id + * @param {String} options.data.typeName + * layer's type name + * + */ +function LogsViewer(options) { + this.className = 'LogsViewer'; + this.setting = { + // id: doc element + // data: layers dataset + // categoricalData + isSortableView: false, + }; + // setting dataset + extend(this.setting, options); + this.elt = document.getElementById(this.setting.id); + if (!this.elt) { + console.error(`${this.className}: No Main Elements...`); + return; + } + this.elt.classList.add('logs_viewer'); + empty(this.elt); + const usuDiv = document.createElement('div'); + usuDiv.classList.add('usulist'); + usuDiv.style.display = 'block'; + usuDiv.innerHTML = `
Hello World!
`; + this.elt.appendChild(usuDiv); +} From 99499f305fb4d67c856d6aa63ae039db8b81ec36 Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Thu, 11 Jul 2024 16:09:05 +0100 Subject: [PATCH 045/176] added aria-label to toolbar icons --- apps/viewer/init.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 94f89c2b0..cbfa11398 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -438,6 +438,7 @@ async function initUIcomponents() { title: 'Home', type: 'btn', // btn/check/dropdown value: 'home', + ariaLabel: 'Home', callback: goHome, }); } @@ -447,6 +448,7 @@ async function initUIcomponents() { icon: 'create', // material icons' name title: 'Draw', type: 'multistates', + ariaLabel: 'Draw', callback: draw, }); @@ -456,6 +458,7 @@ async function initUIcomponents() { title: 'Preset Labels', type: 'check', value: 'prelabels', + ariaLabel: 'Preset labels', callback: drawLabel, }); @@ -466,6 +469,7 @@ async function initUIcomponents() { title: 'Magnifier', type: 'dropdown', value: 'magn', + ariaLabel: 'Magnifier', dropdownList: [ { value: 0.5, @@ -491,17 +495,20 @@ async function initUIcomponents() { title: 'Measurement', type: 'dropdown', value: 'measure', + ariaLabel: 'Measurement', dropdownList: [ { value: 'straight', title: 'straight', icon: 'straighten', + ariaLabel: 'straight', checked: true, }, { value: 'coordinate', title: 'coordinate', icon: 'square_foot', + ariaLabel: 'coordinate', }, ], callback: toggleMeasurement, @@ -514,6 +521,7 @@ async function initUIcomponents() { title: 'Download Selection', type: 'check', value: 'download', + ariaLabel: 'Download selection', callback: toggleDownloadSelection, }); // enhance @@ -523,27 +531,32 @@ async function initUIcomponents() { title: 'Enhance', type: 'dropdown', value: 'Enhance', + ariaLabel: 'Enhance', dropdownList: [ { value: 'Histogram Eq', title: 'Histogram Equalization', icon: 'leaderboard', + ariaLabel: 'Histogram equalization', checked: true, }, { value: 'Edge', title: 'Edge', icon: 'show_chart', + ariaLabel: 'Edge', }, { value: 'Sharpen', title: 'Sharpen', icon: 'change_history', + ariaLabel: 'Sharpen', }, { value: 'Custom', title: 'Custom', icon: 'api', + ariaLabel: 'Custom', }, ], callback: enhance, @@ -556,6 +569,7 @@ async function initUIcomponents() { title: 'Share View', type: 'btn', value: 'share', + ariaLabel: 'Share', callback: shareURL, }); } @@ -566,6 +580,7 @@ async function initUIcomponents() { title: 'Side By Side Viewer', value: 'dbviewers', type: 'check', + ariaLabel: 'Side by side viewer', callback: toggleViewerMode, }); // heatmap @@ -575,6 +590,7 @@ async function initUIcomponents() { title: 'Heat Map', value: 'heatmap', type: 'btn', + ariaLabel: 'Heat map', callback: openHeatmap, }); subToolsOpt.push({ @@ -583,6 +599,7 @@ async function initUIcomponents() { title: 'Labeling', value: 'labeling', type: 'btn', + ariaLabel: 'Labeling', callback: function() { window.location.href = `../labeling/labeling.html${window.location.search}`; }, @@ -593,6 +610,7 @@ async function initUIcomponents() { type: 'btn', value: 'rect', title: 'Segment', + ariaLabel: 'Segment', callback: function() { if (window.location.search.length > 0) { window.location.href = @@ -608,6 +626,7 @@ async function initUIcomponents() { type: 'btn', value: 'rect', title: 'Predict', + ariaLabel: 'Predict', callback: function() { if (window.location.search.length > 0) { window.location.href = '../model/model.html' + window.location.search; @@ -626,6 +645,7 @@ async function initUIcomponents() { title: 'Download Marks', type: 'btn', value: 'download', + ariaLabel: 'Download marks', callback: Store.prototype.DownloadMarksToFile, }); subToolsOpt.push({ @@ -634,6 +654,7 @@ async function initUIcomponents() { title: 'Load Marks', type: 'btn', value: 'upload', + ariaLabel: 'Load marks', callback: Store.prototype.LoadMarksFromFile, }); } @@ -647,6 +668,7 @@ async function initUIcomponents() { title: 'has reviewed', type: 'btn', value: 'review', + ariaLabel: 'Has reviewed', callback: updateSlideView, }); } @@ -657,6 +679,7 @@ async function initUIcomponents() { title: 'Slide Capture', type: 'btn', value: 'slCap', + ariaLabel: 'Slide capture', callback: captureSlide, }); subToolsOpt.push({ @@ -665,6 +688,7 @@ async function initUIcomponents() { title: 'Tutorial', value: 'tutorial', type: 'btn', + ariaLabel: 'Tutorial', callback: function() { tour.init(); tour.start(true); From ab77a40fb0f934962ff79d80b22566df4ec80d39 Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Thu, 11 Jul 2024 16:56:33 +0100 Subject: [PATCH 046/176] Update toolbar.js --- components/toolbar/toolbar.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/toolbar/toolbar.js b/components/toolbar/toolbar.js index b0b69a891..1820c2e0a 100644 --- a/components/toolbar/toolbar.js +++ b/components/toolbar/toolbar.js @@ -84,12 +84,14 @@ function CaToolbar(options) { title: 'Applications', type: 'check', value: 'apps', + ariaLabel: 'Applications', }, { icon: 'view_list', title: 'Layers', type: 'check', value: 'layers', + ariaLabel: 'Layers', }, ], }; From 0fd78dbe7733ac9bf5e409632c3e366bd208569f Mon Sep 17 00:00:00 2001 From: YukaUU Date: Sat, 13 Jul 2024 22:23:01 +0900 Subject: [PATCH 047/176] =?UTF-8?q?log=E3=81=AE=E6=83=85=E5=A0=B1=E3=82=92?= =?UTF-8?q?=E5=8F=96=E3=82=8A=E5=87=BA=E3=81=99=20=E3=81=9F=E3=81=A0?= =?UTF-8?q?=E3=81=97=E3=80=81ID=E6=8C=87=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/viewer/uicallbacks.js | 6 ++++-- core/Store.js | 17 +++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/apps/viewer/uicallbacks.js b/apps/viewer/uicallbacks.js index 5108b72bc..4b9446c4f 100644 --- a/apps/viewer/uicallbacks.js +++ b/apps/viewer/uicallbacks.js @@ -2750,8 +2750,10 @@ function logAnnotaiton() { $UI.logsSideMenu.close(); isSidemenuOpen = true; }; - // let log = $CAMIC.store.fetchMark($D.params.slideId); - // console.log('$CAMIC.fetchMark', log); + let log = $CAMIC.store.getLog($D.params.slideId).then((annotations) => { + console.log('テスト', annotations); + }); + // console.log('kotae', log); // let aa = []; // fetchAndSortAnnotations(); diff --git a/core/Store.js b/core/Store.js index 5beead6fc..94f83ea5b 100644 --- a/core/Store.js +++ b/core/Store.js @@ -840,6 +840,23 @@ class Store { body: JSON.stringify(json), }).then(this.errorHandler); } + /** + * get log by id + ** @param {object} json - the log data + * @return {promise} - promise which resolves with data + **/ + getLog(id) { + const suffix = 'Log/find'; + const url = this.base + suffix; + const query = { + '_id': '65f564d7dd62a90013124d3e', + }; + + return fetch(url + '?' + objToParamStr(query), { + credentials: 'include', + mode: 'cors', + }).then(this.errorHandler).then((x) => this.filterBroken(x, 'log')); + } /** * get a config setting From 144f139160c363af7269c493b55603ec99de8242 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Sun, 14 Jul 2024 02:41:40 +0900 Subject: [PATCH 048/176] change function fetchMark : logAnnotaiton --- apps/viewer/uicallbacks.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/viewer/uicallbacks.js b/apps/viewer/uicallbacks.js index 4b9446c4f..6fd8735cc 100644 --- a/apps/viewer/uicallbacks.js +++ b/apps/viewer/uicallbacks.js @@ -2750,7 +2750,8 @@ function logAnnotaiton() { $UI.logsSideMenu.close(); isSidemenuOpen = true; }; - let log = $CAMIC.store.getLog($D.params.slideId).then((annotations) => { + + let log = $CAMIC.store.fetchMark($D.params.slideId).then((annotations) => { console.log('テスト', annotations); }); From 20038b6ea96ce6293ac86c39b0d96f1d1189f79c Mon Sep 17 00:00:00 2001 From: YukaUU Date: Sun, 14 Jul 2024 04:05:27 +0900 Subject: [PATCH 049/176] add loadingLog function --- apps/viewer/dataloaders.js | 19 ++++++++++++++++-- common/util.js | 40 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/apps/viewer/dataloaders.js b/apps/viewer/dataloaders.js index de65438f5..9e19a4c53 100644 --- a/apps/viewer/dataloaders.js +++ b/apps/viewer/dataloaders.js @@ -97,6 +97,22 @@ function layersLoader() { console.error(error); }); } + + // logs + function loadingLogs() { + $CAMIC.store.findMark($D.params.slideId).then(function(layers) { + // convert part not nesscary + $D.logs = [...layers.map(covertToVisualization)]; + + // // add data and create ui item + // addHumanLayerItems(); + }).catch(function(error) { + // overlayers schema + $UI.message.addError('Loading Logs is Error'); + console.error(error); + }); + } + var checkCoreIsReady = setInterval(function() { if ($UI.layersViewer && $UI.layersViewerMinor) { clearInterval(checkCoreIsReady); @@ -104,8 +120,7 @@ function layersLoader() { loadingRulerOverlayers(); loadingHeatmapOverlayers(); loadingComputerOverlayers(); + loadingLogs(); } }, 500); } - - diff --git a/common/util.js b/common/util.js index fd50cadab..bd453c8d1 100644 --- a/common/util.js +++ b/common/util.js @@ -587,6 +587,46 @@ function covertToCumputerLayer(data) { }; } + +function covertToVisualization(data) { + const typeName = data.provenance.analysis.source; + const id = data.provenance.analysis.execution_id; + const name = data.provenance.analysis.name || data.provenance.analysis.execution_id; + const states = data.states || null; + const shape = data.geometries.features[0].geometry.type || null; + const isGrid = data.provenance.analysis.isGrid || false; + + if (!shape) shape = ["Polygon"]; + if (data.provenance.analysis.type&&data.provenance.analysis.type=='label') { // preset label + return { + id: id, + name: name, + typeId: typeName, + typeName: typeName, + creator: data.creator, + shape: shape, + isGrid: isGrid, + label: { + id: data.provenance.analysis.labelled, + name: data.provenance.analysis.name, + }, + states: states, + data: null, + }; + } else { + return { + id: id, + name: name, + typeId: typeName, + typeName: typeName, + creator: data.creator, + shape: shape, + isGrid: isGrid, + states: states, + data: null, + }; + } +} function eventFire(el, etype) { if (el.fireEvent) { el.fireEvent('on' + etype); From 4013f34b9cca704b2fb860002b6e50c18e41734d Mon Sep 17 00:00:00 2001 From: YukaUU Date: Sun, 14 Jul 2024 19:19:11 +0900 Subject: [PATCH 050/176] add visualizationLayerItems in dataloader --- apps/viewer/dataloaders.js | 1 + apps/viewer/init.js | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/apps/viewer/dataloaders.js b/apps/viewer/dataloaders.js index 9e19a4c53..38a36103c 100644 --- a/apps/viewer/dataloaders.js +++ b/apps/viewer/dataloaders.js @@ -106,6 +106,7 @@ function layersLoader() { // // add data and create ui item // addHumanLayerItems(); + visualizationLayerItems($D.logs); }).catch(function(error) { // overlayers schema $UI.message.addError('Loading Logs is Error'); diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 338e365ea..76e9d2db6 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -1560,6 +1560,9 @@ function addHumanLayerItems() { // $UI.layersViewerMinor.addHumanItems(minorViewerItems); // $UI.logsViewerMinor.addHumanItems(minorViewerItems); } +// function addLogItems(){ + +// } function openLoadStatus(text) { const txt = $UI.loadStatus.querySelector('.text'); txt.textContent = `Loading ${text}`; @@ -1610,6 +1613,11 @@ function addHeatmapLayerItems(data) { // $UI.logsViewerMinor.addItems(minorViewerData, 'heatmap'); } +function visualizationLayerItems(data) { + console.log('hello!!', data); +} + + // const mainViewerData = $D.overlayers.map((d) => { // const isShow = // $D.params.states && From 3d8ef72a310233d31df3f9f3b85c96b779c92a86 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Mon, 15 Jul 2024 15:25:08 +0900 Subject: [PATCH 051/176] create graph in log panel --- apps/viewer/init.js | 7 +- apps/viewer/viewer.html | 4 +- components/logsviewer/logsviewer.js | 158 +++++++++++++++++++++++++++- 3 files changed, 164 insertions(+), 5 deletions(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 76e9d2db6..95c01f4fa 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -1008,6 +1008,9 @@ async function initUIcomponents() { $UI.logsList.elt.parentNode.removeChild($UI.logsList.elt); closeMinorControlPanel(); $UI.logsSideMenu.addContent($UI.logsList.elt); + const ctx = document.getElementById('myChart'); + console.log('ctx', ctx); + $UI.logsViewer.visualization(ctx); } }, 300); @@ -1516,7 +1519,7 @@ function addHumanLayerItems() { return items; }, mainViewerItems); - // $UI.layersViewer.addHumanItems(mainViewerItems); + $UI.layersViewer.addHumanItems(mainViewerItems); // $UI.logsViewer.addHumanItems(mainViewerItems); // minor viewer minorViewer @@ -1557,7 +1560,7 @@ function addHumanLayerItems() { return items; }, minorViewerItems); - // $UI.layersViewerMinor.addHumanItems(minorViewerItems); + $UI.layersViewerMinor.addHumanItems(minorViewerItems); // $UI.logsViewerMinor.addHumanItems(minorViewerItems); } // function addLogItems(){ diff --git a/apps/viewer/viewer.html b/apps/viewer/viewer.html index 3412290b7..fc5b89472 100644 --- a/apps/viewer/viewer.html +++ b/apps/viewer/viewer.html @@ -11,6 +11,8 @@ + + - diff --git a/components/logsviewer/logsviewer.js b/components/logsviewer/logsviewer.js index 4cf0f5c50..fe99a699f 100644 --- a/components/logsviewer/logsviewer.js +++ b/components/logsviewer/logsviewer.js @@ -25,6 +25,8 @@ function LogsViewer(options) { // categoricalData isSortableView: false, }; + this.defaultType = ['human']; + // this.defaultType = ['human', 'ruler', 'segmentation', 'heatmap']; // setting dataset extend(this.setting, options); this.elt = document.getElementById(this.setting.id); @@ -33,10 +35,164 @@ function LogsViewer(options) { return; } this.elt.classList.add('logs_viewer'); + + this.setting.categoricalData = { + // heatmap: { + // item: {id: 'heatmap', name: 'heatmap'}, + // items: [], + // }, + // segmentation: { + // item: {id: 'segmentation', name: 'segmentation'}, + // items: [], + // }, + // ruler: { + // item: {id: 'ruler', name: 'ruler'}, + // items: [], + // }, + human: { + item: {id: 'human', name: 'human'}, + items: [], + }, + }; + empty(this.elt); const usuDiv = document.createElement('div'); usuDiv.classList.add('usulist'); usuDiv.style.display = 'block'; - usuDiv.innerHTML = `
Hello World!
`; + usuDiv.innerHTML = ``; this.elt.appendChild(usuDiv); } + +LogsViewer.prototype.addHumanItem = function( + item, + type, + parent, + isShow = true, +) { + if (!this.defaultType.includes(type)) { + console.warn('Error Type !!!'); + return; + } + + var cate = this.setting.categoricalData[type].items[parent]; + + if (!cate) { + // no parent node + const newCate = {}; + if (item.label) { + newCate[item.label.id] = { + item: { + id: item.label.id, + name: item.label.name, + }, + items: [], + }; + this.setting.categoricalData[type].items[parent] = newCate; + this.addHumanItems(newCate); + cate = this.setting.categoricalData[type].items[parent]; + } else { + console.error('Layersviewer.addHumanItem has error'); + } + } + + const data = {item, isShow}; + // add Data + cate.items.push(data); + // add item on UI + data.elt = document.createElement('li'); + data.elt.dataset.id = data.item.id; + data.elt.dataset.title = data.item.label ? + `${data.item.name}${data.item.id}` : + `${data.item.name}`; + data.elt.innerHTML = `
room
+ +
clear
+ `; + + // event: show/hidden layers for each annotation + const chk = data.elt.querySelector('input[type=checkbox][data-type=leaf]'); + chk.addEventListener('change', this.__change.bind(this)); + // + const removeDiv = data.elt.querySelector('div.material-icons.remove'); + removeDiv.addEventListener('click', () => { + this.setting.removeCallback.call(this, data, cate.item.id); + }); + const locationDiv = data.elt.querySelector('div.material-icons.location'); + locationDiv.addEventListener('click', () => { + this.setting.locationCallback.call(this, data); + }); + + cate.children.insertBefore(data.elt, cate.children.firstChild); + // update num + cate.num.textContent = cate.items.length; + cate.elt.style.display = 'flex'; + + // total human anotation nums + var humanNum = 0; + const obj = this.setting.categoricalData[type].items; + for (const key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + humanNum += obj[key].items.length; + } + } + this.setting.categoricalData[type].num.textContent = humanNum; +}; + +LogsViewer.prototype.addHumanItems = function(data) { + console.log(data); +}; + +LogsViewer.prototype.visualization = function(ctx) { + // データの定義 + var data = { + datasets: [{ + label: 'Scatter Dataset', + data: [ + {x: 1, y: 3}, + {x: 0.5, y: 5}, + {x: 3, y: 7}, + {x: 1.5, y: 10}, + {x: 5, y: 12}, + ], + backgroundColor: 'rgba(75, 192, 192, 1)', + pointRadius: 5, + }], + }; + + // オプションの設定 + var options = { + scales: { + x: { + type: 'linear', + position: 'bottom', + title: { + display: true, + text: 'Zooming', + }, + }, + y: { + title: { + display: true, + text: 'Layer Count', + }, + }, + }, + }; + + // 散布図の作成 + new Chart(ctx, { + type: 'scatter', + data: data, + options: options, + }); +}; From 7ff366efe94a87880a3439c994c17e850dff277c Mon Sep 17 00:00:00 2001 From: YukaUU Date: Mon, 15 Jul 2024 17:17:42 +0900 Subject: [PATCH 052/176] add data calculate --- apps/Info.html | 28 +++++++++++++++++++++++++ apps/viewer/dataloaders.js | 1 + apps/viewer/init.js | 43 +++++++++++++++++++++++++++++++++++++- common/util.js | 6 +++--- 4 files changed, 74 insertions(+), 4 deletions(-) diff --git a/apps/Info.html b/apps/Info.html index 7f964f635..4cb5598be 100644 --- a/apps/Info.html +++ b/apps/Info.html @@ -115,6 +115,34 @@

Heatmaps


+ +
diff --git a/apps/viewer/dataloaders.js b/apps/viewer/dataloaders.js index 38a36103c..f64e1c803 100644 --- a/apps/viewer/dataloaders.js +++ b/apps/viewer/dataloaders.js @@ -101,6 +101,7 @@ function layersLoader() { // logs function loadingLogs() { $CAMIC.store.findMark($D.params.slideId).then(function(layers) { + console.log('original data', layers); // convert part not nesscary $D.logs = [...layers.map(covertToVisualization)]; diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 95c01f4fa..add267867 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -1617,9 +1617,50 @@ function addHeatmapLayerItems(data) { } function visualizationLayerItems(data) { - console.log('hello!!', data); + var initialZommingData = []; + + // Get initial data + data.map((d) => { + if (d.states) { + for (let i = 0; i < d.geometries.features.length; i++) { + initialZommingData.push(roundToSecondDecimalPlace(d.states.zoom)); + console.log(initialZommingData); + } + } + }); + let result = countOccurrences(initialZommingData); + // 結果を出力 + console.log('result', result); } +// Function to round to decimal places +function roundToSecondDecimalPlace(num) { + return Math.round(num * 100) / 100; +} + +function countOccurrences(arr) { + // カウント用のオブジェクトを作成 + let countMap = {}; + + // 配列内の各要素をカウント + arr.forEach(function(value) { + if (countMap[value] === undefined) { + countMap[value] = 1; + } else { + countMap[value]++; + } + }); + + // 結果を2次元配列に変換 + let result = []; + for (let key in countMap) { + if (countMap.hasOwnProperty(key)) { + result.push([parseFloat(key), countMap[key]]); + } + }; + + return result; +} // const mainViewerData = $D.overlayers.map((d) => { // const isShow = diff --git a/common/util.js b/common/util.js index bd453c8d1..d49942231 100644 --- a/common/util.js +++ b/common/util.js @@ -595,8 +595,8 @@ function covertToVisualization(data) { const states = data.states || null; const shape = data.geometries.features[0].geometry.type || null; const isGrid = data.provenance.analysis.isGrid || false; + const geometries = data.geometries; - if (!shape) shape = ["Polygon"]; if (data.provenance.analysis.type&&data.provenance.analysis.type=='label') { // preset label return { id: id, @@ -604,13 +604,13 @@ function covertToVisualization(data) { typeId: typeName, typeName: typeName, creator: data.creator, - shape: shape, isGrid: isGrid, label: { id: data.provenance.analysis.labelled, name: data.provenance.analysis.name, }, states: states, + geometries: geometries, data: null, }; } else { @@ -620,9 +620,9 @@ function covertToVisualization(data) { typeId: typeName, typeName: typeName, creator: data.creator, - shape: shape, isGrid: isGrid, states: states, + geometries: geometries, data: null, }; } From c05437c2213eb12f9b8f21218d625b0800d0b1da Mon Sep 17 00:00:00 2001 From: YukaUU Date: Mon, 15 Jul 2024 23:07:38 +0900 Subject: [PATCH 053/176] create graph --- apps/viewer/dataloaders.js | 6 +--- apps/viewer/init.js | 9 ++---- apps/viewer/viewer.html | 7 +++++ components/logsviewer/logsviewer.css | 13 ++++++++ components/logsviewer/logsviewer.js | 47 +++++++++++++++++++++------- 5 files changed, 60 insertions(+), 22 deletions(-) diff --git a/apps/viewer/dataloaders.js b/apps/viewer/dataloaders.js index f64e1c803..4ab831331 100644 --- a/apps/viewer/dataloaders.js +++ b/apps/viewer/dataloaders.js @@ -102,11 +102,7 @@ function layersLoader() { function loadingLogs() { $CAMIC.store.findMark($D.params.slideId).then(function(layers) { console.log('original data', layers); - // convert part not nesscary $D.logs = [...layers.map(covertToVisualization)]; - - // // add data and create ui item - // addHumanLayerItems(); visualizationLayerItems($D.logs); }).catch(function(error) { // overlayers schema @@ -116,7 +112,7 @@ function layersLoader() { } var checkCoreIsReady = setInterval(function() { - if ($UI.layersViewer && $UI.layersViewerMinor) { + if ($UI.layersViewer && $UI.layersViewerMinor && $UI.logsViewer) { clearInterval(checkCoreIsReady); loadingHumanOverlayers(); loadingRulerOverlayers(); diff --git a/apps/viewer/init.js b/apps/viewer/init.js index add267867..ab47f65e1 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -1008,9 +1008,6 @@ async function initUIcomponents() { $UI.logsList.elt.parentNode.removeChild($UI.logsList.elt); closeMinorControlPanel(); $UI.logsSideMenu.addContent($UI.logsList.elt); - const ctx = document.getElementById('myChart'); - console.log('ctx', ctx); - $UI.logsViewer.visualization(ctx); } }, 300); @@ -1620,7 +1617,7 @@ function visualizationLayerItems(data) { var initialZommingData = []; // Get initial data - data.map((d) => { + $D.logs.map((d) => { if (d.states) { for (let i = 0; i < d.geometries.features.length; i++) { initialZommingData.push(roundToSecondDecimalPlace(d.states.zoom)); @@ -1629,8 +1626,8 @@ function visualizationLayerItems(data) { } }); let result = countOccurrences(initialZommingData); - // 結果を出力 - console.log('result', result); + + $UI.logsViewer.visualization('myChart', result); } // Function to round to decimal places diff --git a/apps/viewer/viewer.html b/apps/viewer/viewer.html index fc5b89472..52cc418ac 100644 --- a/apps/viewer/viewer.html +++ b/apps/viewer/viewer.html @@ -68,6 +68,13 @@ href="../../components/sidemenu/sidemenu.css" /> + + `; + usuDiv.innerHTML = ``; this.elt.appendChild(usuDiv); } @@ -152,25 +152,39 @@ LogsViewer.prototype.addHumanItems = function(data) { console.log(data); }; -LogsViewer.prototype.visualization = function(ctx) { +LogsViewer.prototype.visualization = function(id, result) { + const ctx = document.getElementById(id); + const aa = result; // データの定義 var data = { datasets: [{ - label: 'Scatter Dataset', - data: [ - {x: 1, y: 3}, - {x: 0.5, y: 5}, - {x: 3, y: 7}, - {x: 1.5, y: 10}, - {x: 5, y: 12}, - ], + label: 'Human:Draw Annotation ', + data: aa.map((item) => ({x: item[0], y: item[1]})), backgroundColor: 'rgba(75, 192, 192, 1)', pointRadius: 5, }], }; + // データセットの最大値を取得し、最大値に1を加算する + var maxYValue = Math.max(...data.datasets[0].data.map((d)=> d.y)) + 1; + // オプションの設定 var options = { + plugins: { + title: { + display: true, + text: 'Draw Annotation Count vs zooming', // 図のタイトル + }, + tooltip: { + callbacks: { + label: function(context) { + var xValue = context.raw.x; + var yValue = context.raw.y; + return '(count, zooming) = (' + yValue + ', ' + xValue + ')'; + }, + }, + }, + }, scales: { x: { type: 'linear', @@ -181,10 +195,20 @@ LogsViewer.prototype.visualization = function(ctx) { }, }, y: { + beginAtZero: true, // 縦軸が0から始まるように設定 title: { display: true, - text: 'Layer Count', + text: 'Draw Annotation Count', + }, + ticks: { + stepSize: 1, // 縦軸に表示するステップサイズを1に設定 + callback: function(value) { + if (value % 1 === 0) { + return value; // 整数値のみを表示 + } + }, }, + max: maxYValue, // 縦軸の最大値を設定 }, }, }; @@ -196,3 +220,4 @@ LogsViewer.prototype.visualization = function(ctx) { options: options, }); }; + From 431550c51b0953f033196548336566abfb3ce995 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Mon, 15 Jul 2024 23:22:17 +0900 Subject: [PATCH 054/176] fix from log to visualization in subtool --- apps/viewer/init.js | 12 ++++++------ apps/viewer/uicallbacks.js | 31 +------------------------------ 2 files changed, 7 insertions(+), 36 deletions(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index ab47f65e1..348357e91 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -670,14 +670,14 @@ async function initUIcomponents() { callback: captureSlide, }); - // log + // visualization panel subToolsOpt.push({ - name: 'log', - icon: 'summarize', // material icons' name - title: 'LogAnnotaition', - value: 'log', + name: 'visualization', + icon: 'auto_graph', // material icons' name + title: 'visualization', + value: 'visualization', type: 'btn', - callback: logAnnotaiton, + callback: visualization, }); subToolsOpt.push({ diff --git a/apps/viewer/uicallbacks.js b/apps/viewer/uicallbacks.js index 6fd8735cc..fddcf7868 100644 --- a/apps/viewer/uicallbacks.js +++ b/apps/viewer/uicallbacks.js @@ -2742,7 +2742,7 @@ async function captureSlide() { /* Log annotaiton */ let isSidemenuOpen = true; // 他のものを全て閉じる処理を追加 -function logAnnotaiton() { +function visualization() { if (isSidemenuOpen == true) { $UI.logsSideMenu.open(); isSidemenuOpen = false; @@ -2750,35 +2750,6 @@ function logAnnotaiton() { $UI.logsSideMenu.close(); isSidemenuOpen = true; }; - - let log = $CAMIC.store.fetchMark($D.params.slideId).then((annotations) => { - console.log('テスト', annotations); - }); - - // console.log('kotae', log); - // let aa = []; - // fetchAndSortAnnotations(); - // // 注釈を取得する関数 - // function fetchAndSortAnnotations(slideId= $D.params.slideId) { - // // 注釈を取得するPromiseを返す - // $CAMIC.store.fetchMark(slideId).then((annotations) => { - // // 注釈が存在する場合にのみソートする - // if (annotations && annotations.length > 0) { - // // 新しい順にソート - // annotations.sort((a, b) => { - // return new Date(b.created_date) - new Date(a.created_date); - // }); - // } - // console.log('annotations', annotations[0].states.x); - // aa.push(annotations); - // const jsonString = JSON.stringify(annotations[0].states.x, null, 2); - // const loading = `
${jsonString}
`; - // $UI.logSideMenu.addContent(loading); - // }).catch((error) => { - // console.error('Error fetching annotations:', error); - // throw error; - // }); - // } } function downloadSlideCapture(combiningCanvas) { From 3b0f51bb118efe1a38875d80d64bf568b8e6348a Mon Sep 17 00:00:00 2001 From: YukaUU Date: Mon, 15 Jul 2024 23:24:36 +0900 Subject: [PATCH 055/176] fix id: 'visualization_panel' --- apps/viewer/init.js | 2 +- apps/viewer/viewer.html | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 348357e91..ef36adaa5 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -750,7 +750,7 @@ async function initUIcomponents() { }); $UI.logsSideMenu = new SideMenu({ - id: 'log_panel', + id: 'visualization_panel', width: 250, contentPadding: 5, position: 'right', diff --git a/apps/viewer/viewer.html b/apps/viewer/viewer.html index 52cc418ac..b9db3ad3b 100644 --- a/apps/viewer/viewer.html +++ b/apps/viewer/viewer.html @@ -430,8 +430,8 @@
- -
+ +
From 1d78faa64d7bd1c7428cda7c37c66f4b37d9c976 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Mon, 15 Jul 2024 23:27:29 +0900 Subject: [PATCH 056/176] fix:visualizationSideMenu --- apps/viewer/init.js | 6 +++--- apps/viewer/uicallbacks.js | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index ef36adaa5..d199e324c 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -749,7 +749,7 @@ async function initUIcomponents() { callback: toggleSideMenu, }); - $UI.logsSideMenu = new SideMenu({ + $UI.visualizationSideMenu = new SideMenu({ id: 'visualization_panel', width: 250, contentPadding: 5, @@ -958,7 +958,7 @@ async function initUIcomponents() { titleLog.style.fontSize = '20px'; titleLog.style.backgroundColor = 'rgba(220, 220, 220, 1)'; - $UI.logsSideMenu.addContent(titleLog); + $UI.visualizationSideMenu.addContent(titleLog); // loading status $UI.loadStatus = document.createElement('div'); @@ -1007,7 +1007,7 @@ async function initUIcomponents() { $UI.logsList.elt.parentNode.removeChild($UI.logsList.elt); closeMinorControlPanel(); - $UI.logsSideMenu.addContent($UI.logsList.elt); + $UI.visualizationSideMenu.addContent($UI.logsList.elt); } }, 300); diff --git a/apps/viewer/uicallbacks.js b/apps/viewer/uicallbacks.js index fddcf7868..74dcd9a5d 100644 --- a/apps/viewer/uicallbacks.js +++ b/apps/viewer/uicallbacks.js @@ -324,7 +324,7 @@ function toolsOff() { downloadSelectionOff(); break; case 'log': - $UI.logsSideMenu.close(); + $UI.visualizationSideMenu.close(); break; } } @@ -2744,10 +2744,10 @@ let isSidemenuOpen = true; // 他のものを全て閉じる処理を追加 function visualization() { if (isSidemenuOpen == true) { - $UI.logsSideMenu.open(); + $UI.visualizationSideMenu.open(); isSidemenuOpen = false; } else { - $UI.logsSideMenu.close(); + $UI.visualizationSideMenu.close(); isSidemenuOpen = true; }; } From 15e43e17b24ffaedc3f22dc5a8fe1575866d1cd7 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Mon, 15 Jul 2024 23:39:22 +0900 Subject: [PATCH 057/176] fix id and $UI.visualizationList (CollapsibleList ) --- apps/viewer/init.js | 18 +++++++++--------- apps/viewer/viewer.html | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index d199e324c..6f525a625 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -924,8 +924,8 @@ async function initUIcomponents() { }, }); - $UI.logsList = new CollapsibleList({ - id: 'logslist', + $UI.visualizationList = new CollapsibleList({ + id: 'visualizationlist', list: [ { id: 'logsAnnotation', @@ -999,15 +999,15 @@ async function initUIcomponents() { closeMinorControlPanel(); $UI.layersSideMenu.addContent($UI.layersList.elt); - // logs - $UI.logsList.clearContent('logsAnnotation'); - $UI.logsList.addContent('logsAnnotation', $UI.logsViewer.elt); - // $UI.logsList.clearContent('heatMap'); - // $UI.logsList.addContent('heatMap', $UI.logsViewerMinor.elt); + // visualization + $UI.visualizationList.clearContent('logsAnnotation'); + $UI.visualizationList.addContent('logsAnnotation', $UI.logsViewer.elt); + // $UI.visualizationList.clearContent('heatMap'); + // $UI.visualizationList.addContent('heatMap', $UI.logsViewerMinor.elt); - $UI.logsList.elt.parentNode.removeChild($UI.logsList.elt); + $UI.visualizationList.elt.parentNode.removeChild($UI.visualizationList.elt); closeMinorControlPanel(); - $UI.visualizationSideMenu.addContent($UI.logsList.elt); + $UI.visualizationSideMenu.addContent($UI.visualizationList.elt); } }, 300); diff --git a/apps/viewer/viewer.html b/apps/viewer/viewer.html index b9db3ad3b..38fcd3966 100644 --- a/apps/viewer/viewer.html +++ b/apps/viewer/viewer.html @@ -438,7 +438,7 @@
-
+
From 7ef73f6149e1d8ac36cbe59a343064fe8b228fb2 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Mon, 15 Jul 2024 23:41:12 +0900 Subject: [PATCH 058/176] fix visualizationlist --- apps/viewer/init.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 6f525a625..99eb8c275 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -928,7 +928,7 @@ async function initUIcomponents() { id: 'visualizationlist', list: [ { - id: 'logsAnnotation', + id: 'visualizationlist', title: 'Annotation', content: 'No Template Loaded', // $UI.annotOptPanel.elt // isExpand:true @@ -1000,8 +1000,8 @@ async function initUIcomponents() { $UI.layersSideMenu.addContent($UI.layersList.elt); // visualization - $UI.visualizationList.clearContent('logsAnnotation'); - $UI.visualizationList.addContent('logsAnnotation', $UI.logsViewer.elt); + $UI.visualizationList.clearContent('visualizationlist'); + $UI.visualizationList.addContent('visualizationlist', $UI.logsViewer.elt); // $UI.visualizationList.clearContent('heatMap'); // $UI.visualizationList.addContent('heatMap', $UI.logsViewerMinor.elt); From 84650dcd5c5152258adcadb0fb3376626f60efd9 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Tue, 16 Jul 2024 00:05:07 +0900 Subject: [PATCH 059/176] fix side menu size --- apps/viewer/init.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 99eb8c275..bf7e130e4 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -754,7 +754,7 @@ async function initUIcomponents() { width: 250, contentPadding: 5, position: 'right', - height: '75vh', + height: '40vh', // , isOpen:true callback: toggleSideMenu, }); From bc73fef45bf23dc3c62f5abd6a6c813cc2a35a67 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Tue, 16 Jul 2024 00:13:12 +0900 Subject: [PATCH 060/176] fix titleVisualization --- apps/viewer/init.js | 19 +- .../visualizationviewer/visualiationviewer.js | 223 ++++++++++++++++++ .../visualizationviewer.css | 13 + 3 files changed, 246 insertions(+), 9 deletions(-) create mode 100644 components/visualizationviewer/visualiationviewer.js create mode 100644 components/visualizationviewer/visualizationviewer.css diff --git a/apps/viewer/init.js b/apps/viewer/init.js index bf7e130e4..298189e8c 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -754,7 +754,7 @@ async function initUIcomponents() { width: 250, contentPadding: 5, position: 'right', - height: '40vh', + height: '45vh', // , isOpen:true callback: toggleSideMenu, }); @@ -929,7 +929,7 @@ async function initUIcomponents() { list: [ { id: 'visualizationlist', - title: 'Annotation', + title: 'Human:Draw Annotation', content: 'No Template Loaded', // $UI.annotOptPanel.elt // isExpand:true }, @@ -950,15 +950,16 @@ async function initUIcomponents() { title.textContent = 'Layers Manager'; // add to log side menu - const titleLog = document.createElement('div'); - titleLog.classList.add('item_head'); - titleLog.textContent = 'Log Panel'; + const titleVisualization = document.createElement('div'); + titleVisualization.classList.add('item_head'); + titleVisualization.textContent = 'Visualization Panel'; // add CSS - titleLog.style.color = '#365f9c'; - titleLog.style.fontSize = '20px'; - titleLog.style.backgroundColor = 'rgba(220, 220, 220, 1)'; + titleVisualization.style.color = '#365f9c'; + titleVisualization.style.fontSize = '20px'; + titleVisualization.style.backgroundColor = 'rgba(220, 220, 220, 1)'; + titleVisualization.style.marginTop = '28px'; - $UI.visualizationSideMenu.addContent(titleLog); + $UI.visualizationSideMenu.addContent(titleVisualization); // loading status $UI.loadStatus = document.createElement('div'); diff --git a/components/visualizationviewer/visualiationviewer.js b/components/visualizationviewer/visualiationviewer.js new file mode 100644 index 000000000..dc91a33e8 --- /dev/null +++ b/components/visualizationviewer/visualiationviewer.js @@ -0,0 +1,223 @@ +/** + * CaMicroscope Logs Viewer. A component that shows logs of annotation by timeline. + * @constructor + * @param {Object} options + * All required and optional settings for instantiating a new instance of a Layer Manager. + * @param {String} options.id + * Id of the element to append the Layer Manager's container element to. + * @param {Object[]} options.data + * the data set of the layers. + * @param {String} options.data.id + * layer's id + * @param {String} options.data.name + * layer's name + * @param {String} options.data.typeId + * layer's type id + * @param {String} options.data.typeName + * layer's type name + * + */ +function VisualizationViewer(options) { + this.className = 'VisualizationViewer'; + this.setting = { + // id: doc element + // data: layers dataset + // categoricalData + isSortableView: false, + }; + this.defaultType = ['human']; + // this.defaultType = ['human', 'ruler', 'segmentation', 'heatmap']; + // setting dataset + extend(this.setting, options); + this.elt = document.getElementById(this.setting.id); + if (!this.elt) { + console.error(`${this.className}: No Main Elements...`); + return; + } + this.elt.classList.add('logs_viewer'); + + this.setting.categoricalData = { + // heatmap: { + // item: {id: 'heatmap', name: 'heatmap'}, + // items: [], + // }, + // segmentation: { + // item: {id: 'segmentation', name: 'segmentation'}, + // items: [], + // }, + // ruler: { + // item: {id: 'ruler', name: 'ruler'}, + // items: [], + // }, + human: { + item: {id: 'human', name: 'human'}, + items: [], + }, + }; + + empty(this.elt); + const usuDiv = document.createElement('div'); + usuDiv.classList.add('usulist'); + usuDiv.style.display = 'block'; + usuDiv.innerHTML = ``; + this.elt.appendChild(usuDiv); +} + +VisualizationViewer.prototype.addHumanItem = function( + item, + type, + parent, + isShow = true, +) { + if (!this.defaultType.includes(type)) { + console.warn('Error Type !!!'); + return; + } + + var cate = this.setting.categoricalData[type].items[parent]; + + if (!cate) { + // no parent node + const newCate = {}; + if (item.label) { + newCate[item.label.id] = { + item: { + id: item.label.id, + name: item.label.name, + }, + items: [], + }; + this.setting.categoricalData[type].items[parent] = newCate; + this.addHumanItems(newCate); + cate = this.setting.categoricalData[type].items[parent]; + } else { + console.error('Layersviewer.addHumanItem has error'); + } + } + + const data = {item, isShow}; + // add Data + cate.items.push(data); + // add item on UI + data.elt = document.createElement('li'); + data.elt.dataset.id = data.item.id; + data.elt.dataset.title = data.item.label ? + `${data.item.name}${data.item.id}` : + `${data.item.name}`; + data.elt.innerHTML = `
room
+ +
clear
+ `; + + // event: show/hidden layers for each annotation + const chk = data.elt.querySelector('input[type=checkbox][data-type=leaf]'); + chk.addEventListener('change', this.__change.bind(this)); + // + const removeDiv = data.elt.querySelector('div.material-icons.remove'); + removeDiv.addEventListener('click', () => { + this.setting.removeCallback.call(this, data, cate.item.id); + }); + const locationDiv = data.elt.querySelector('div.material-icons.location'); + locationDiv.addEventListener('click', () => { + this.setting.locationCallback.call(this, data); + }); + + cate.children.insertBefore(data.elt, cate.children.firstChild); + // update num + cate.num.textContent = cate.items.length; + cate.elt.style.display = 'flex'; + + // total human anotation nums + var humanNum = 0; + const obj = this.setting.categoricalData[type].items; + for (const key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + humanNum += obj[key].items.length; + } + } + this.setting.categoricalData[type].num.textContent = humanNum; +}; + +VisualizationViewer.prototype.addHumanItems = function(data) { + console.log(data); +}; + +VisualizationViewer.prototype.visualization = function(id, result) { + const ctx = document.getElementById(id); + const aa = result; + // データの定義 + var data = { + datasets: [{ + label: 'Human:Draw Annotation ', + data: aa.map((item) => ({x: item[0], y: item[1]})), + backgroundColor: 'rgba(75, 192, 192, 1)', + pointRadius: 5, + }], + }; + + // データセットの最大値を取得し、最大値に1を加算する + var maxYValue = Math.max(...data.datasets[0].data.map((d)=> d.y)) + 1; + + // オプションの設定 + var options = { + plugins: { + title: { + display: true, + text: 'Draw Annotation Count vs zooming', // 図のタイトル + }, + tooltip: { + callbacks: { + label: function(context) { + var xValue = context.raw.x; + var yValue = context.raw.y; + return '(count, zooming) = (' + yValue + ', ' + xValue + ')'; + }, + }, + }, + }, + scales: { + x: { + type: 'linear', + position: 'bottom', + title: { + display: true, + text: 'Zooming', + }, + }, + y: { + beginAtZero: true, // 縦軸が0から始まるように設定 + title: { + display: true, + text: 'Draw Annotation Count', + }, + ticks: { + stepSize: 1, // 縦軸に表示するステップサイズを1に設定 + callback: function(value) { + if (value % 1 === 0) { + return value; // 整数値のみを表示 + } + }, + }, + max: maxYValue, // 縦軸の最大値を設定 + }, + }, + }; + + // 散布図の作成 + new Chart(ctx, { + type: 'scatter', + data: data, + options: options, + }); +}; + diff --git a/components/visualizationviewer/visualizationviewer.css b/components/visualizationviewer/visualizationviewer.css new file mode 100644 index 000000000..e68d6ae9f --- /dev/null +++ b/components/visualizationviewer/visualizationviewer.css @@ -0,0 +1,13 @@ +#canvasContainer { + background-color: rgb(255, 253, 253); /* 背景色を設定 */ + display: flex; + justify-content: center; + align-items: center; +} + +#myChart { + background-color: rgb(255, 253, 253); /* 背景色を設定 */ + display: flex; + justify-content: center; + align-items: center; +} \ No newline at end of file From 3c71ed3c99a237d72ec578ab35a133d04098a8dd Mon Sep 17 00:00:00 2001 From: YukaUU Date: Tue, 16 Jul 2024 00:34:30 +0900 Subject: [PATCH 061/176] fix createVisualizationViewer --- apps/viewer/init.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 298189e8c..2963057aa 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -878,20 +878,20 @@ async function initUIcomponents() { rootCallback.bind('minor'), ); // create UI and set data - // $UI.logsViewer = createLogsViewer( + // $UI.logsViewer = createVisualizationViewer( // 'overlogs', // null, // callback.bind('main'), // rootCallback.bind('main'), // ); // // create UI and set data - minor - // $UI.logsViewerMinor = createLogsViewer( + // $UI.logsViewerMinor = createVisualizationViewer( // 'overlogsMinor', // null, // callback.bind('minor'), // rootCallback.bind('minor'), // ); - $UI.logsViewer = createLogsViewer( + $UI.logsViewer = createVisualizationViewer( 'overlogs', null, callback.bind('main'), @@ -1375,7 +1375,7 @@ function createLayerViewer(id, viewerData, callback, rootCallback) { return layersViewer; } -// function createLogsViewer(id, viewerData, callback, rootCallback) { +// function createVisualizationViewer(id, viewerData, callback, rootCallback) { // const logsViewer = new LayersViewer({ // id: id, // data: viewerData, @@ -1388,7 +1388,7 @@ function createLayerViewer(id, viewerData, callback, rootCallback) { // logsViewer.elt.parentNode.removeChild(logsViewer.elt); // return logsViewer; // } -function createLogsViewer(id, viewerData, callback, rootCallback) { +function createVisualizationViewer(id, viewerData, callback, rootCallback) { const logsViewer = new LogsViewer({ id: id, data: viewerData, From d919cb810978985ac319d61a7d258f3c342684be Mon Sep 17 00:00:00 2001 From: YukaUU Date: Tue, 16 Jul 2024 00:57:29 +0900 Subject: [PATCH 062/176] fix VisualizationViewer (is logsViewer instance) --- apps/viewer/init.js | 4 ++-- components/logsviewer/logsviewer.js | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 2963057aa..4592a5a2f 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -878,7 +878,7 @@ async function initUIcomponents() { rootCallback.bind('minor'), ); // create UI and set data - // $UI.logsViewer = createVisualizationViewer( + // $UI.VisualizationViewer = createVisualizationViewer( // 'overlogs', // null, // callback.bind('main'), @@ -1389,7 +1389,7 @@ function createLayerViewer(id, viewerData, callback, rootCallback) { // return logsViewer; // } function createVisualizationViewer(id, viewerData, callback, rootCallback) { - const logsViewer = new LogsViewer({ + const logsViewer = new VisualizationViewer({ id: id, data: viewerData, removeCallback: removeCallback, diff --git a/components/logsviewer/logsviewer.js b/components/logsviewer/logsviewer.js index 1257ab37b..c872b95ed 100644 --- a/components/logsviewer/logsviewer.js +++ b/components/logsviewer/logsviewer.js @@ -17,7 +17,7 @@ * layer's type name * */ -function LogsViewer(options) { +function VisualizationViewer(options) { this.className = 'LogsViewer'; this.setting = { // id: doc element @@ -63,7 +63,7 @@ function LogsViewer(options) { this.elt.appendChild(usuDiv); } -LogsViewer.prototype.addHumanItem = function( +VisualizationViewer.prototype.addHumanItem = function( item, type, parent, @@ -148,11 +148,11 @@ LogsViewer.prototype.addHumanItem = function( this.setting.categoricalData[type].num.textContent = humanNum; }; -LogsViewer.prototype.addHumanItems = function(data) { +VisualizationViewer.prototype.addHumanItems = function(data) { console.log(data); }; -LogsViewer.prototype.visualization = function(id, result) { +VisualizationViewer.prototype.visualization = function(id, result) { const ctx = document.getElementById(id); const aa = result; // データの定義 From ffd169a103e63ff123f0f9d240ecdba5eb20c2ab Mon Sep 17 00:00:00 2001 From: YukaUU Date: Tue, 16 Jul 2024 01:01:00 +0900 Subject: [PATCH 063/176] fix $UI.visualizatiomViewer --- apps/viewer/dataloaders.js | 2 +- apps/viewer/init.js | 38 +++++++++++++++++++------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/apps/viewer/dataloaders.js b/apps/viewer/dataloaders.js index 4ab831331..a5fa4d75f 100644 --- a/apps/viewer/dataloaders.js +++ b/apps/viewer/dataloaders.js @@ -112,7 +112,7 @@ function layersLoader() { } var checkCoreIsReady = setInterval(function() { - if ($UI.layersViewer && $UI.layersViewerMinor && $UI.logsViewer) { + if ($UI.layersViewer && $UI.layersViewerMinor && $UI.visualizatiomViewer) { clearInterval(checkCoreIsReady); loadingHumanOverlayers(); loadingRulerOverlayers(); diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 4592a5a2f..5181595a6 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -885,13 +885,13 @@ async function initUIcomponents() { // rootCallback.bind('main'), // ); // // create UI and set data - minor - // $UI.logsViewerMinor = createVisualizationViewer( + // $UI.visualizatiomViewerMinor = createVisualizationViewer( // 'overlogsMinor', // null, // callback.bind('minor'), // rootCallback.bind('minor'), // ); - $UI.logsViewer = createVisualizationViewer( + $UI.visualizatiomViewer = createVisualizationViewer( 'overlogs', null, callback.bind('main'), @@ -1002,9 +1002,9 @@ async function initUIcomponents() { // visualization $UI.visualizationList.clearContent('visualizationlist'); - $UI.visualizationList.addContent('visualizationlist', $UI.logsViewer.elt); + $UI.visualizationList.addContent('visualizationlist', $UI.visualizatiomViewer.elt); // $UI.visualizationList.clearContent('heatMap'); - // $UI.visualizationList.addContent('heatMap', $UI.logsViewerMinor.elt); + // $UI.visualizationList.addContent('heatMap', $UI.visualizatiomViewerMinor.elt); $UI.visualizationList.elt.parentNode.removeChild($UI.visualizationList.elt); closeMinorControlPanel(); @@ -1376,7 +1376,7 @@ function createLayerViewer(id, viewerData, callback, rootCallback) { } // function createVisualizationViewer(id, viewerData, callback, rootCallback) { -// const logsViewer = new LayersViewer({ +// const visualizatiomViewer = new LayersViewer({ // id: id, // data: viewerData, // removeCallback: removeCallback, @@ -1385,11 +1385,11 @@ function createLayerViewer(id, viewerData, callback, rootCallback) { // rootCallback: rootCallback, // }); -// logsViewer.elt.parentNode.removeChild(logsViewer.elt); -// return logsViewer; +// visualizatiomViewer.elt.parentNode.removeChild(visualizatiomViewer.elt); +// return visualizatiomViewer; // } function createVisualizationViewer(id, viewerData, callback, rootCallback) { - const logsViewer = new VisualizationViewer({ + const visualizatiomViewer = new VisualizationViewer({ id: id, data: viewerData, removeCallback: removeCallback, @@ -1397,8 +1397,8 @@ function createVisualizationViewer(id, viewerData, callback, rootCallback) { callback: callback, rootCallback: rootCallback, }); - logsViewer.elt.parentNode.removeChild(logsViewer.elt); - return logsViewer; + visualizatiomViewer.elt.parentNode.removeChild(visualizatiomViewer.elt); + return visualizatiomViewer; } // create lay panel for side-by-side control function createLayPanelControl() { @@ -1518,7 +1518,7 @@ function addHumanLayerItems() { }, mainViewerItems); $UI.layersViewer.addHumanItems(mainViewerItems); - // $UI.logsViewer.addHumanItems(mainViewerItems); + // $UI.visualizatiomViewer.addHumanItems(mainViewerItems); // minor viewer minorViewer const minorViewerItems = { @@ -1559,7 +1559,7 @@ function addHumanLayerItems() { }, minorViewerItems); $UI.layersViewerMinor.addHumanItems(minorViewerItems); - // $UI.logsViewerMinor.addHumanItems(minorViewerItems); + // $UI.visualizatiomViewerMinor.addHumanItems(minorViewerItems); } // function addLogItems(){ @@ -1582,8 +1582,8 @@ function addRulerLayerItems(data) { }); $UI.layersViewer.addItems(mainViewerData, 'ruler'); $UI.layersViewerMinor.addItems(minorViewerData, 'ruler'); - // $UI.logsViewer.addItems(mainViewerData, 'ruler'); - // $UI.logsViewerMinor.addItems(minorViewerData, 'ruler'); + // $UI.visualizatiomViewer.addItems(mainViewerData, 'ruler'); + // $UI.visualizatiomViewerMinor.addItems(minorViewerData, 'ruler'); } function addComputerLayerItems(data) { @@ -1596,8 +1596,8 @@ function addComputerLayerItems(data) { }); $UI.layersViewer.addItems(mainViewerData, 'segmentation'); $UI.layersViewerMinor.addItems(minorViewerData, 'segmentation'); - // $UI.logsViewer.addItems(mainViewerData, 'segmentation'); - // $UI.logsViewerMinor.addItems(minorViewerData, 'segmentation'); + // $UI.visualizatiomViewer.addItems(mainViewerData, 'segmentation'); + // $UI.visualizatiomViewerMinor.addItems(minorViewerData, 'segmentation'); } function addHeatmapLayerItems(data) { @@ -1610,8 +1610,8 @@ function addHeatmapLayerItems(data) { }); $UI.layersViewer.addItems(mainViewerData, 'heatmap'); $UI.layersViewerMinor.addItems(minorViewerData, 'heatmap'); - // $UI.logsViewer.addItems(mainViewerData, 'heatmap'); - // $UI.logsViewerMinor.addItems(minorViewerData, 'heatmap'); + // $UI.visualizatiomViewer.addItems(mainViewerData, 'heatmap'); + // $UI.visualizatiomViewerMinor.addItems(minorViewerData, 'heatmap'); } function visualizationLayerItems(data) { @@ -1628,7 +1628,7 @@ function visualizationLayerItems(data) { }); let result = countOccurrences(initialZommingData); - $UI.logsViewer.visualization('myChart', result); + $UI.visualizatiomViewer.visualization('myChart', result); } // Function to round to decimal places From 48b84a8f93c8cb1a6cda21e7a4c7fd2ee9e9a62e Mon Sep 17 00:00:00 2001 From: YukaUU Date: Tue, 16 Jul 2024 01:02:35 +0900 Subject: [PATCH 064/176] fix id overvisuzalization --- apps/viewer/init.js | 6 +++--- apps/viewer/viewer.html | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 5181595a6..d4366b7da 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -879,20 +879,20 @@ async function initUIcomponents() { ); // create UI and set data // $UI.VisualizationViewer = createVisualizationViewer( - // 'overlogs', + // 'overvisuzalization', // null, // callback.bind('main'), // rootCallback.bind('main'), // ); // // create UI and set data - minor // $UI.visualizatiomViewerMinor = createVisualizationViewer( - // 'overlogsMinor', + // 'overvisuzalizationMinor', // null, // callback.bind('minor'), // rootCallback.bind('minor'), // ); $UI.visualizatiomViewer = createVisualizationViewer( - 'overlogs', + 'overvisuzalization', null, callback.bind('main'), rootCallback.bind('main'), diff --git a/apps/viewer/viewer.html b/apps/viewer/viewer.html index 38fcd3966..9915aa7a9 100644 --- a/apps/viewer/viewer.html +++ b/apps/viewer/viewer.html @@ -444,9 +444,9 @@
-
+
-
+
From 302db07f9f1389630bc20c055a02ed7031be51ad Mon Sep 17 00:00:00 2001 From: YukaUU Date: Tue, 16 Jul 2024 01:22:36 +0900 Subject: [PATCH 065/176] fix css , js pass --- apps/viewer/viewer.html | 13 +- components/logsviewer/logsviewer.css | 13 -- components/logsviewer/logsviewer.js | 223 --------------------------- 3 files changed, 3 insertions(+), 246 deletions(-) delete mode 100644 components/logsviewer/logsviewer.css delete mode 100644 components/logsviewer/logsviewer.js diff --git a/apps/viewer/viewer.html b/apps/viewer/viewer.html index 9915aa7a9..d59c59b25 100644 --- a/apps/viewer/viewer.html +++ b/apps/viewer/viewer.html @@ -68,13 +68,6 @@ href="../../components/sidemenu/sidemenu.css" /> - - - + @@ -319,7 +312,7 @@ diff --git a/components/logsviewer/logsviewer.css b/components/logsviewer/logsviewer.css deleted file mode 100644 index e68d6ae9f..000000000 --- a/components/logsviewer/logsviewer.css +++ /dev/null @@ -1,13 +0,0 @@ -#canvasContainer { - background-color: rgb(255, 253, 253); /* 背景色を設定 */ - display: flex; - justify-content: center; - align-items: center; -} - -#myChart { - background-color: rgb(255, 253, 253); /* 背景色を設定 */ - display: flex; - justify-content: center; - align-items: center; -} \ No newline at end of file diff --git a/components/logsviewer/logsviewer.js b/components/logsviewer/logsviewer.js deleted file mode 100644 index c872b95ed..000000000 --- a/components/logsviewer/logsviewer.js +++ /dev/null @@ -1,223 +0,0 @@ -/** - * CaMicroscope Logs Viewer. A component that shows logs of annotation by timeline. - * @constructor - * @param {Object} options - * All required and optional settings for instantiating a new instance of a Layer Manager. - * @param {String} options.id - * Id of the element to append the Layer Manager's container element to. - * @param {Object[]} options.data - * the data set of the layers. - * @param {String} options.data.id - * layer's id - * @param {String} options.data.name - * layer's name - * @param {String} options.data.typeId - * layer's type id - * @param {String} options.data.typeName - * layer's type name - * - */ -function VisualizationViewer(options) { - this.className = 'LogsViewer'; - this.setting = { - // id: doc element - // data: layers dataset - // categoricalData - isSortableView: false, - }; - this.defaultType = ['human']; - // this.defaultType = ['human', 'ruler', 'segmentation', 'heatmap']; - // setting dataset - extend(this.setting, options); - this.elt = document.getElementById(this.setting.id); - if (!this.elt) { - console.error(`${this.className}: No Main Elements...`); - return; - } - this.elt.classList.add('logs_viewer'); - - this.setting.categoricalData = { - // heatmap: { - // item: {id: 'heatmap', name: 'heatmap'}, - // items: [], - // }, - // segmentation: { - // item: {id: 'segmentation', name: 'segmentation'}, - // items: [], - // }, - // ruler: { - // item: {id: 'ruler', name: 'ruler'}, - // items: [], - // }, - human: { - item: {id: 'human', name: 'human'}, - items: [], - }, - }; - - empty(this.elt); - const usuDiv = document.createElement('div'); - usuDiv.classList.add('usulist'); - usuDiv.style.display = 'block'; - usuDiv.innerHTML = ``; - this.elt.appendChild(usuDiv); -} - -VisualizationViewer.prototype.addHumanItem = function( - item, - type, - parent, - isShow = true, -) { - if (!this.defaultType.includes(type)) { - console.warn('Error Type !!!'); - return; - } - - var cate = this.setting.categoricalData[type].items[parent]; - - if (!cate) { - // no parent node - const newCate = {}; - if (item.label) { - newCate[item.label.id] = { - item: { - id: item.label.id, - name: item.label.name, - }, - items: [], - }; - this.setting.categoricalData[type].items[parent] = newCate; - this.addHumanItems(newCate); - cate = this.setting.categoricalData[type].items[parent]; - } else { - console.error('Layersviewer.addHumanItem has error'); - } - } - - const data = {item, isShow}; - // add Data - cate.items.push(data); - // add item on UI - data.elt = document.createElement('li'); - data.elt.dataset.id = data.item.id; - data.elt.dataset.title = data.item.label ? - `${data.item.name}${data.item.id}` : - `${data.item.name}`; - data.elt.innerHTML = `
room
- -
clear
- `; - - // event: show/hidden layers for each annotation - const chk = data.elt.querySelector('input[type=checkbox][data-type=leaf]'); - chk.addEventListener('change', this.__change.bind(this)); - // - const removeDiv = data.elt.querySelector('div.material-icons.remove'); - removeDiv.addEventListener('click', () => { - this.setting.removeCallback.call(this, data, cate.item.id); - }); - const locationDiv = data.elt.querySelector('div.material-icons.location'); - locationDiv.addEventListener('click', () => { - this.setting.locationCallback.call(this, data); - }); - - cate.children.insertBefore(data.elt, cate.children.firstChild); - // update num - cate.num.textContent = cate.items.length; - cate.elt.style.display = 'flex'; - - // total human anotation nums - var humanNum = 0; - const obj = this.setting.categoricalData[type].items; - for (const key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) { - humanNum += obj[key].items.length; - } - } - this.setting.categoricalData[type].num.textContent = humanNum; -}; - -VisualizationViewer.prototype.addHumanItems = function(data) { - console.log(data); -}; - -VisualizationViewer.prototype.visualization = function(id, result) { - const ctx = document.getElementById(id); - const aa = result; - // データの定義 - var data = { - datasets: [{ - label: 'Human:Draw Annotation ', - data: aa.map((item) => ({x: item[0], y: item[1]})), - backgroundColor: 'rgba(75, 192, 192, 1)', - pointRadius: 5, - }], - }; - - // データセットの最大値を取得し、最大値に1を加算する - var maxYValue = Math.max(...data.datasets[0].data.map((d)=> d.y)) + 1; - - // オプションの設定 - var options = { - plugins: { - title: { - display: true, - text: 'Draw Annotation Count vs zooming', // 図のタイトル - }, - tooltip: { - callbacks: { - label: function(context) { - var xValue = context.raw.x; - var yValue = context.raw.y; - return '(count, zooming) = (' + yValue + ', ' + xValue + ')'; - }, - }, - }, - }, - scales: { - x: { - type: 'linear', - position: 'bottom', - title: { - display: true, - text: 'Zooming', - }, - }, - y: { - beginAtZero: true, // 縦軸が0から始まるように設定 - title: { - display: true, - text: 'Draw Annotation Count', - }, - ticks: { - stepSize: 1, // 縦軸に表示するステップサイズを1に設定 - callback: function(value) { - if (value % 1 === 0) { - return value; // 整数値のみを表示 - } - }, - }, - max: maxYValue, // 縦軸の最大値を設定 - }, - }, - }; - - // 散布図の作成 - new Chart(ctx, { - type: 'scatter', - data: data, - options: options, - }); -}; - From da45fb227c79ebc618bc6e720c89e52dd7ad5d00 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Tue, 16 Jul 2024 01:24:35 +0900 Subject: [PATCH 066/176] delete addHumanItem in visualizationviewer.js --- .../visualizationviewer/visualiationviewer.js | 88 ------------------- 1 file changed, 88 deletions(-) diff --git a/components/visualizationviewer/visualiationviewer.js b/components/visualizationviewer/visualiationviewer.js index dc91a33e8..a63eb1dab 100644 --- a/components/visualizationviewer/visualiationviewer.js +++ b/components/visualizationviewer/visualiationviewer.js @@ -63,94 +63,6 @@ function VisualizationViewer(options) { this.elt.appendChild(usuDiv); } -VisualizationViewer.prototype.addHumanItem = function( - item, - type, - parent, - isShow = true, -) { - if (!this.defaultType.includes(type)) { - console.warn('Error Type !!!'); - return; - } - - var cate = this.setting.categoricalData[type].items[parent]; - - if (!cate) { - // no parent node - const newCate = {}; - if (item.label) { - newCate[item.label.id] = { - item: { - id: item.label.id, - name: item.label.name, - }, - items: [], - }; - this.setting.categoricalData[type].items[parent] = newCate; - this.addHumanItems(newCate); - cate = this.setting.categoricalData[type].items[parent]; - } else { - console.error('Layersviewer.addHumanItem has error'); - } - } - - const data = {item, isShow}; - // add Data - cate.items.push(data); - // add item on UI - data.elt = document.createElement('li'); - data.elt.dataset.id = data.item.id; - data.elt.dataset.title = data.item.label ? - `${data.item.name}${data.item.id}` : - `${data.item.name}`; - data.elt.innerHTML = `
room
- -
clear
- `; - - // event: show/hidden layers for each annotation - const chk = data.elt.querySelector('input[type=checkbox][data-type=leaf]'); - chk.addEventListener('change', this.__change.bind(this)); - // - const removeDiv = data.elt.querySelector('div.material-icons.remove'); - removeDiv.addEventListener('click', () => { - this.setting.removeCallback.call(this, data, cate.item.id); - }); - const locationDiv = data.elt.querySelector('div.material-icons.location'); - locationDiv.addEventListener('click', () => { - this.setting.locationCallback.call(this, data); - }); - - cate.children.insertBefore(data.elt, cate.children.firstChild); - // update num - cate.num.textContent = cate.items.length; - cate.elt.style.display = 'flex'; - - // total human anotation nums - var humanNum = 0; - const obj = this.setting.categoricalData[type].items; - for (const key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) { - humanNum += obj[key].items.length; - } - } - this.setting.categoricalData[type].num.textContent = humanNum; -}; - -VisualizationViewer.prototype.addHumanItems = function(data) { - console.log(data); -}; VisualizationViewer.prototype.visualization = function(id, result) { const ctx = document.getElementById(id); From be6e49d1cc0ece217df3566b202985306165e932 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Tue, 16 Jul 2024 01:29:33 +0900 Subject: [PATCH 067/176] fix comment --- .../visualizationviewer/visualiationviewer.js | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/components/visualizationviewer/visualiationviewer.js b/components/visualizationviewer/visualiationviewer.js index a63eb1dab..137eb4f94 100644 --- a/components/visualizationviewer/visualiationviewer.js +++ b/components/visualizationviewer/visualiationviewer.js @@ -56,18 +56,18 @@ function VisualizationViewer(options) { }; empty(this.elt); - const usuDiv = document.createElement('div'); - usuDiv.classList.add('usulist'); - usuDiv.style.display = 'block'; - usuDiv.innerHTML = ``; - this.elt.appendChild(usuDiv); + const chartDiv = document.createElement('div'); + chartDiv.classList.add('chartlist'); + chartDiv.style.display = 'block'; + chartDiv.innerHTML = ``; + this.elt.appendChild(chartDiv); } VisualizationViewer.prototype.visualization = function(id, result) { const ctx = document.getElementById(id); const aa = result; - // データの定義 + // define data var data = { datasets: [{ label: 'Human:Draw Annotation ', @@ -77,10 +77,10 @@ VisualizationViewer.prototype.visualization = function(id, result) { }], }; - // データセットの最大値を取得し、最大値に1を加算する + // Get the maximum value of the data set and add 1 to the maximum value var maxYValue = Math.max(...data.datasets[0].data.map((d)=> d.y)) + 1; - // オプションの設定 + // setting option var options = { plugins: { title: { @@ -107,20 +107,20 @@ VisualizationViewer.prototype.visualization = function(id, result) { }, }, y: { - beginAtZero: true, // 縦軸が0から始まるように設定 + beginAtZero: true, // Set vertical axis to start from 0 title: { display: true, text: 'Draw Annotation Count', }, ticks: { - stepSize: 1, // 縦軸に表示するステップサイズを1に設定 + stepSize: 1, // Set the step size displayed on the vertical axis to 1 callback: function(value) { if (value % 1 === 0) { - return value; // 整数値のみを表示 + return value; } }, }, - max: maxYValue, // 縦軸の最大値を設定 + max: maxYValue, }, }, }; From 2bc6ec98e4f4652d8584af0b411786aace39cdd2 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Tue, 16 Jul 2024 01:30:36 +0900 Subject: [PATCH 068/176] add comment --- components/visualizationviewer/visualiationviewer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/visualizationviewer/visualiationviewer.js b/components/visualizationviewer/visualiationviewer.js index 137eb4f94..a8fe5a7ba 100644 --- a/components/visualizationviewer/visualiationviewer.js +++ b/components/visualizationviewer/visualiationviewer.js @@ -125,7 +125,7 @@ VisualizationViewer.prototype.visualization = function(id, result) { }, }; - // 散布図の作成 + // Create scatter diagram new Chart(ctx, { type: 'scatter', data: data, From 4d9c5587468ba709b5e1186e781d8df8aae287dd Mon Sep 17 00:00:00 2001 From: YukaUU Date: Tue, 16 Jul 2024 01:40:49 +0900 Subject: [PATCH 069/176] delete console.log --- apps/viewer/dataloaders.js | 1 - apps/viewer/init.js | 3 --- 2 files changed, 4 deletions(-) diff --git a/apps/viewer/dataloaders.js b/apps/viewer/dataloaders.js index a5fa4d75f..046b6e743 100644 --- a/apps/viewer/dataloaders.js +++ b/apps/viewer/dataloaders.js @@ -101,7 +101,6 @@ function layersLoader() { // logs function loadingLogs() { $CAMIC.store.findMark($D.params.slideId).then(function(layers) { - console.log('original data', layers); $D.logs = [...layers.map(covertToVisualization)]; visualizationLayerItems($D.logs); }).catch(function(error) { diff --git a/apps/viewer/init.js b/apps/viewer/init.js index d4366b7da..4bf0baa22 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -136,8 +136,6 @@ function initialize() { layersLoader(); } }, 100); - console.log('$UI', $UI); - console.log('$D', $D); } // setting core functionalities function initCore() { @@ -1622,7 +1620,6 @@ function visualizationLayerItems(data) { if (d.states) { for (let i = 0; i < d.geometries.features.length; i++) { initialZommingData.push(roundToSecondDecimalPlace(d.states.zoom)); - console.log(initialZommingData); } } }); From 9b9f79eb748adeb337be789cd54814a0f5cf6d25 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Tue, 16 Jul 2024 01:46:14 +0900 Subject: [PATCH 070/176] fix dataloader and $D --- apps/viewer/dataloaders.js | 10 +++++----- apps/viewer/init.js | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/viewer/dataloaders.js b/apps/viewer/dataloaders.js index 046b6e743..28919b539 100644 --- a/apps/viewer/dataloaders.js +++ b/apps/viewer/dataloaders.js @@ -98,11 +98,11 @@ function layersLoader() { }); } - // logs - function loadingLogs() { + // visualization + function visualization() { $CAMIC.store.findMark($D.params.slideId).then(function(layers) { - $D.logs = [...layers.map(covertToVisualization)]; - visualizationLayerItems($D.logs); + $D.visualizations = [...layers.map(covertToVisualization)]; + visualizationLayerItems($D.visualizations); }).catch(function(error) { // overlayers schema $UI.message.addError('Loading Logs is Error'); @@ -117,7 +117,7 @@ function layersLoader() { loadingRulerOverlayers(); loadingHeatmapOverlayers(); loadingComputerOverlayers(); - loadingLogs(); + visualization(); } }, 500); } diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 4bf0baa22..bf8dffba9 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -1616,7 +1616,7 @@ function visualizationLayerItems(data) { var initialZommingData = []; // Get initial data - $D.logs.map((d) => { + $D.visualizations.map((d) => { if (d.states) { for (let i = 0; i < d.geometries.features.length; i++) { initialZommingData.push(roundToSecondDecimalPlace(d.states.zoom)); From ced2289bef53fcd2cc272617e27bcc6e01799152 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Tue, 16 Jul 2024 01:50:11 +0900 Subject: [PATCH 071/176] add comment --- apps/viewer/init.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index bf8dffba9..0ed5f42a8 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -1634,10 +1634,10 @@ function roundToSecondDecimalPlace(num) { } function countOccurrences(arr) { - // カウント用のオブジェクトを作成 + // Create objects for counting let countMap = {}; - // 配列内の各要素をカウント + // Count each element in the array arr.forEach(function(value) { if (countMap[value] === undefined) { countMap[value] = 1; @@ -1646,7 +1646,7 @@ function countOccurrences(arr) { } }); - // 結果を2次元配列に変換 + // Convert the result to a 2-dimensional array let result = []; for (let key in countMap) { if (countMap.hasOwnProperty(key)) { From 08cad766942920f2d375379f705144028746082e Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Mon, 15 Jul 2024 18:21:38 +0100 Subject: [PATCH 072/176] added color for 'report it' link --- apps/common.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/common.css b/apps/common.css index 4ac3be01d..7753854dd 100644 --- a/apps/common.css +++ b/apps/common.css @@ -29,6 +29,10 @@ color: whitesmoke; } +.report-link { + color: #e5c1ea; +} + .company-name { color: #e5c1ea; } From 5d0604cca0b9c6da8fe9217977240ea59cc80ff9 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Tue, 16 Jul 2024 19:06:01 +0900 Subject: [PATCH 073/176] fix comments --- README.md | 3 +-- apps/viewer/init.js | 23 ++++++++++++++++++- apps/viewer/uicallbacks.js | 2 +- .../visualizationviewer/visualiationviewer.js | 4 ++-- .../visualizationviewer.css | 4 ++-- 5 files changed, 28 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 3d0315875..e0e54d650 100644 --- a/README.md +++ b/README.md @@ -46,8 +46,7 @@ The toolbar is in the top-left of the main content window. Use the toolbar butto | ![](https://fonts.gstatic.com/s/i/materialicons/bug_report/v4/24px.svg) | Bug Report | Report a bug or give feedback. | | ![](https://fonts.gstatic.com/s/i/materialicons/camera_enhance/v4/24px.svg) | Slide Capture | Click to take a screenshot of the slide and annotations on it. | | ![](https://fonts.gstatic.com/s/i/materialicons/help/v4/24px.svg) | Tutorial | Click to view a guided tour of the viewer tools. | -// TODO add Log icon -| ![](https://fonts.gstatic.com/s/i/materialicons/help/v4/24px.svg) | Log | Click to view a list of annotation. | +| ![](https://fonts.gstatic.com/s/i/materialicons/auto_graph/v4/24px.svg) | Visualization | Click to view visualizations of annotations. | ## Toolbar Shortcuts diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 0ed5f42a8..f2042a099 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -178,6 +178,7 @@ function initCore() { $D.pages.table = '../../../'; } + console.log($D); try { const slideQuery = {}; slideQuery.id = $D.params.slideId; @@ -845,6 +846,26 @@ async function initUIcomponents() { data: [], }); + // create control + + // TODO move to add layers + // create main layer viewer items with states + // const mainViewerData = $D.overlayers.map((d) => { + // const isShow = + // $D.params.states && + // $D.params.states.l && + // $D.params.states.l.includes(d.id) ? + // true : + // false; + // return {item: d, isShow: isShow}; + // }); + + + // TODO move to add layers + // create monir layer viewer items + // const minorViewerData = $D.overlayers.map((d) => { + // return {item: d, isShow: false}; + // }); $UI.AssistantViewer = new Assistant({ id: 'ml_assistant', viewer: $CAMIC.viewer, @@ -965,7 +986,7 @@ async function initUIcomponents() { $UI.loadStatus.classList.add('load-status'); $UI.loadStatus.innerHTML = `
cached
Loading
`; $UI.layersSideMenu.addContent($UI.loadStatus); - // TODO logs + // zoom locker control $UI.lockerPanel = document.createElement('div'); $UI.lockerPanel.classList.add('lock_panel'); diff --git a/apps/viewer/uicallbacks.js b/apps/viewer/uicallbacks.js index 74dcd9a5d..d273b5533 100644 --- a/apps/viewer/uicallbacks.js +++ b/apps/viewer/uicallbacks.js @@ -2741,7 +2741,7 @@ async function captureSlide() { /* Log annotaiton */ let isSidemenuOpen = true; -// 他のものを全て閉じる処理を追加 + function visualization() { if (isSidemenuOpen == true) { $UI.visualizationSideMenu.open(); diff --git a/components/visualizationviewer/visualiationviewer.js b/components/visualizationviewer/visualiationviewer.js index a8fe5a7ba..d101198a6 100644 --- a/components/visualizationviewer/visualiationviewer.js +++ b/components/visualizationviewer/visualiationviewer.js @@ -85,7 +85,7 @@ VisualizationViewer.prototype.visualization = function(id, result) { plugins: { title: { display: true, - text: 'Draw Annotation Count vs zooming', // 図のタイトル + text: 'Draw Annotation Count vs zooming', }, tooltip: { callbacks: { @@ -125,7 +125,7 @@ VisualizationViewer.prototype.visualization = function(id, result) { }, }; - // Create scatter diagram + // Create new Chart(ctx, { type: 'scatter', data: data, diff --git a/components/visualizationviewer/visualizationviewer.css b/components/visualizationviewer/visualizationviewer.css index e68d6ae9f..64093a899 100644 --- a/components/visualizationviewer/visualizationviewer.css +++ b/components/visualizationviewer/visualizationviewer.css @@ -1,12 +1,12 @@ #canvasContainer { - background-color: rgb(255, 253, 253); /* 背景色を設定 */ + background-color: rgb(255, 253, 253); display: flex; justify-content: center; align-items: center; } #myChart { - background-color: rgb(255, 253, 253); /* 背景色を設定 */ + background-color: rgb(255, 253, 253); display: flex; justify-content: center; align-items: center; From 88d1846fa65974d03c343f5ee00b3eadb0b6d9c7 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Tue, 16 Jul 2024 19:48:20 +0900 Subject: [PATCH 074/176] delete graph in info page --- apps/Info.html | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/apps/Info.html b/apps/Info.html index 4cb5598be..7f964f635 100644 --- a/apps/Info.html +++ b/apps/Info.html @@ -115,34 +115,6 @@

Heatmaps


- -
From 109316d5df5a6a85a397833ffb2c3d6a1761594f Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Tue, 16 Jul 2024 14:27:16 +0100 Subject: [PATCH 075/176] changed bg-info color --- apps/info.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/info.css b/apps/info.css index 30bc35dc7..c14f685c5 100644 --- a/apps/info.css +++ b/apps/info.css @@ -18,7 +18,7 @@ footer{ background-color: #343a40 !important; } .bg-info { - background-color: #17a2b8!important; + background-color: #0d6efd!important; } .page-container{ height:100vh; From b91f0ea97c16ea7edac41c3aca05a1cfe187eed1 Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Tue, 16 Jul 2024 16:18:07 +0100 Subject: [PATCH 076/176] change bg-info color From c8ad34dd68e15557ff07d5f784e18002ff1aaa93 Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Tue, 16 Jul 2024 16:18:39 +0100 Subject: [PATCH 077/176] change bg-info color --- apps/info.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/info.css b/apps/info.css index c14f685c5..a90716473 100644 --- a/apps/info.css +++ b/apps/info.css @@ -18,7 +18,7 @@ footer{ background-color: #343a40 !important; } .bg-info { - background-color: #0d6efd!important; + background-color: #17a2b8 !important; } .page-container{ height:100vh; From 5b9c292eb94b080cac9ff002d630c0c6e9555769 Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Tue, 16 Jul 2024 16:20:40 +0100 Subject: [PATCH 078/176] changed slide button bg color --- apps/Info.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/Info.html b/apps/Info.html index 7f964f635..412d7f41b 100644 --- a/apps/Info.html +++ b/apps/Info.html @@ -75,7 +75,7 @@

caMicroscope

Digital pathology image viewer with support for human/machine generated annotations and markups.

From 3d20b02a589a2268b882d2b41353527dcb59cc75 Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Tue, 16 Jul 2024 16:21:51 +0100 Subject: [PATCH 079/176] changed info button bg color --- apps/table.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/table.html b/apps/table.html index ae8075125..010003b77 100644 --- a/apps/table.html +++ b/apps/table.html @@ -81,7 +81,7 @@

caMicroscope

-
+
From a3422927167f8f4b0f835cee59483bbb4233de25 Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Tue, 16 Jul 2024 16:28:28 +0100 Subject: [PATCH 080/176] changed DICOM button bg color --- apps/table.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/table.html b/apps/table.html index 010003b77..10a87ded2 100644 --- a/apps/table.html +++ b/apps/table.html @@ -132,7 +132,7 @@

caMicroscope

From 10a8801a0bef3d0a4219e03653da426b1dee21ee Mon Sep 17 00:00:00 2001 From: YukaUU Date: Thu, 18 Jul 2024 19:51:06 +0900 Subject: [PATCH 081/176] change name from states to viewerStates --- apps/viewer/init.js | 19 ++++++++++--------- apps/viewer/uicallbacks.js | 10 +++++----- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index f2042a099..0356e4510 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -260,16 +260,17 @@ function initCore() { // add center position and zoom - if (data.states != undefined) { - // Rounds a number to the specified number of decimal places. - function roundTo(num, decimalPlaces) { - const factor = 10 ** decimalPlaces; - return Math.round(num * factor) / factor; - } + console.log('data', data); + if (data.viewerStates != undefined) { const decimalPlaces = 3; - attributes.X = data.states.x, - attributes.Y = data.states.y, - attributes.zoom = roundTo(data.states.zoom, decimalPlaces); + attributes.X = data.viewerStates.x, + attributes.Y = data.viewerStates.y, + attributes.zoom = roundTo(data.viewerStates.zoom, decimalPlaces); + } + // Rounds a number to the specified number of decimal places. + function roundTo(num, decimalPlaces) { + const factor = 10 ** decimalPlaces; + return Math.round(num * factor) / factor; } diff --git a/apps/viewer/uicallbacks.js b/apps/viewer/uicallbacks.js index d273b5533..2b3360e4e 100644 --- a/apps/viewer/uicallbacks.js +++ b/apps/viewer/uicallbacks.js @@ -895,7 +895,7 @@ function annoCallback(data) { noteData.notes = resultString; // get center position and zoom - let states = StatesHelper.getCurrentStates(true); + let viewerStates = StatesHelper.getCurrentStates(true); // save // provenance @@ -922,10 +922,10 @@ function annoCallback(data) { $CAMIC.viewer, $CAMIC.viewer.canvasDrawInstance.getImageFeatureCollection(), ), - states: { - x: states.x, - y: states.y, - zoom: states.z, + viewerStates: { + x: viewerStates.x, + y: viewerStates.y, + zoom: viewerStates.z, }, }; From 29e4a084f00cffc164e5592cca3fbaba0786f6a4 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Thu, 18 Jul 2024 21:41:16 +0900 Subject: [PATCH 082/176] fix --- apps/viewer/init.js | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 0356e4510..e13696ea7 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -260,7 +260,6 @@ function initCore() { // add center position and zoom - console.log('data', data); if (data.viewerStates != undefined) { const decimalPlaces = 3; attributes.X = data.viewerStates.x, From 67c0196a292463a89c777bbc294a523e11adacb6 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Thu, 18 Jul 2024 23:10:58 +0900 Subject: [PATCH 083/176] add zooming in each annotation at Multi mode --- core/extension/openseadragon-canvas-draw-overlay.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/extension/openseadragon-canvas-draw-overlay.js b/core/extension/openseadragon-canvas-draw-overlay.js index 1bb203e82..ffe279428 100644 --- a/core/extension/openseadragon-canvas-draw-overlay.js +++ b/core/extension/openseadragon-canvas-draw-overlay.js @@ -1023,6 +1023,7 @@ if (this.drawMode == 'point') { this._current_path_ = { type: 'Feature', + zoom: StatesHelper.getCurrentStates(true).z, properties: { style: {}, }, @@ -1043,6 +1044,7 @@ properties: { style: {}, }, + zoom: StatesHelper.getCurrentStates(true).z, geometry: { type: this.drawMode === 'line' || this.drawMode === 'grid' ? From 467755e8d3f434207c6433906e024b02879fcf54 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Thu, 18 Jul 2024 23:23:17 +0900 Subject: [PATCH 084/176] ad zoom data each annotation --- apps/viewer/uicallbacks.js | 1 + common/util.js | 1 + core/extension/openseadragon-canvas-draw-overlay.js | 1 + 3 files changed, 3 insertions(+) diff --git a/apps/viewer/uicallbacks.js b/apps/viewer/uicallbacks.js index 2b3360e4e..807fdab7a 100644 --- a/apps/viewer/uicallbacks.js +++ b/apps/viewer/uicallbacks.js @@ -929,6 +929,7 @@ function annoCallback(data) { }, }; + console.log('annotJson', annotJson); // save annotation $CAMIC.store .addMark(annotJson) diff --git a/common/util.js b/common/util.js index d49942231..c347b8a87 100644 --- a/common/util.js +++ b/common/util.js @@ -472,6 +472,7 @@ function covertToViewportFeature(width, height, og) { og.geometry.type; feature = { type: 'Feature', + zooming: og.zoom, properties: { style: {}, area: null, diff --git a/core/extension/openseadragon-canvas-draw-overlay.js b/core/extension/openseadragon-canvas-draw-overlay.js index ffe279428..235d22b6f 100644 --- a/core/extension/openseadragon-canvas-draw-overlay.js +++ b/core/extension/openseadragon-canvas-draw-overlay.js @@ -1011,6 +1011,7 @@ // const featrue = this._draws_data_[i].feature; rs.features = this._draws_data_.slice(0, this._path_index); // } + console.log('rs', rs); return rs; }, From 7204c13ec7975156e94c2262df34ca41379698c2 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Thu, 18 Jul 2024 23:39:46 +0900 Subject: [PATCH 085/176] add viewerStates in each annotation at multi mode --- apps/viewer/init.js | 1 + core/extension/openseadragon-canvas-draw-overlay.js | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index e13696ea7..599d081c8 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -222,6 +222,7 @@ function initCore() { } // for support QUIP 2.0 const data = Array.isArray(e.data) ? e.data[e.data.selected] : e.data; + console.log('data', data); const type = data.provenance.analysis.source; let body; diff --git a/core/extension/openseadragon-canvas-draw-overlay.js b/core/extension/openseadragon-canvas-draw-overlay.js index 235d22b6f..fcb06e558 100644 --- a/core/extension/openseadragon-canvas-draw-overlay.js +++ b/core/extension/openseadragon-canvas-draw-overlay.js @@ -1024,7 +1024,7 @@ if (this.drawMode == 'point') { this._current_path_ = { type: 'Feature', - zoom: StatesHelper.getCurrentStates(true).z, + viewerStates: StatesHelper.getCurrentStates(true), properties: { style: {}, }, @@ -1045,7 +1045,7 @@ properties: { style: {}, }, - zoom: StatesHelper.getCurrentStates(true).z, + viewerStates: StatesHelper.getCurrentStates(true), geometry: { type: this.drawMode === 'line' || this.drawMode === 'grid' ? From 277397e78e3836b617f9805633c71d43273ed103 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Thu, 18 Jul 2024 23:47:13 +0900 Subject: [PATCH 086/176] add viewerStates in each annotation at multi mode --- common/util.js | 53 ++++++++++++++++++++++++-------------------------- 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/common/util.js b/common/util.js index c347b8a87..39c23ccc4 100644 --- a/common/util.js +++ b/common/util.js @@ -369,11 +369,11 @@ function getUrlVars() { return true; }, getOwnPropertyDescriptor(target, prop) { - return { configurable: true, enumerable: true }; + return {configurable: true, enumerable: true}; }, ownKeys: function(target) { - return Reflect.ownKeys(state) - } + return Reflect.ownKeys(state); + }, }); } /** @@ -418,11 +418,8 @@ function VieweportFeaturesToImageFeatures(viewer, geometries) { feature.bound.coordinates =[ Math.round(feature.bound.coordinates[0] * imgWidth), Math.round(feature.bound.coordinates[1] * imgHeight)]; - - - if (feature.geometry.type=='Circle') { - feature.geometry.radius = Math.round(feature.geometry.radius * imgWidth) + feature.geometry.radius = Math.round(feature.geometry.radius * imgWidth); } if (feature.geometry.type=='Ellipse') { feature.geometry.radius = [Math.round(feature.geometry.radius[0] * imgWidth), Math.round(feature.geometry.radius[1] * imgHeight)]; @@ -472,7 +469,7 @@ function covertToViewportFeature(width, height, og) { og.geometry.type; feature = { type: 'Feature', - zooming: og.zoom, + viewerStates: og.viewerStates, properties: { style: {}, area: null, @@ -531,7 +528,7 @@ function covertToHumanLayer(data) { const id = item.analysis.execution_id; const name = item.analysis.name || item.analysis.execution_id; - if (!item.shape) item.shape = ["Polygon"]; + if (!item.shape) item.shape = ['Polygon']; if (item.analysis.type&&item.analysis.type=='label') { // preset label return { id: id, @@ -567,7 +564,7 @@ function covertToRulerLayer(data) { name: data.name, typeId: data.type, typeName: data.source, - shape: "Polygon", + shape: 'Polygon', creator: data.creator, data: null, }; @@ -690,7 +687,7 @@ function areaCircumferenceToGrids(points, size) { for (let centerX = topLeftCenter[0]; centerX < maxX; centerX += size[0]) { for (let centerY = topLeftCenter[1]; centerY < maxY; centerY += size[1]) { if (isPointInsidePolygon([centerX, centerY], points)) { - grids.push(getTopLeft([centerX, centerY], size)) + grids.push(getTopLeft([centerX, centerY], size)); } } } @@ -708,20 +705,20 @@ function closestPointOnLineSegment(px, py, x1, y1, x2, y2) { const dx = x2 - x1; const dy = y2 - y1; const t = ((px - x1) * dx + (py - y1) * dy) / (dx * dx + dy * dy); - + if (t < 0) { - return { x: x1, y: y1 }; + return {x: x1, y: y1}; } else if (t > 1) { - return { x: x2, y: y2 }; + return {x: x2, y: y2}; } else { - return { x: x1 + t * dx, y: y1 + t * dy }; + return {x: x1 + t * dx, y: y1 + t * dy}; } } function closestPointOnPolygon(polygon, px, py) { let closestDistance = Infinity; let closestIndex = null; - + // Find the closest point on each edge for (let i = 0; i < polygon.length; i++) { const nextIndex = (i + 1) % polygon.length; @@ -729,13 +726,13 @@ function closestPointOnPolygon(polygon, px, py) { const edgeEnd = polygon[nextIndex]; const closest = closestPointOnLineSegment(px, py, edgeStart[0], edgeStart[1], edgeEnd[0], edgeEnd[1]); const d = distance(px, py, closest.x, closest.y); - + if (d < closestDistance) { closestDistance = d; closestIndex = i; } } - + return closestIndex; } @@ -756,19 +753,19 @@ function isPointInsidePolygon(point, polygon) { let inside = false; for (let i = 0; i < n; i++) { - const [x1, y1] = polygon[i]; - const [x2, y2] = polygon[(i + 1) % n]; + const [x1, y1] = polygon[i]; + const [x2, y2] = polygon[(i + 1) % n]; - if (y === y1 && y1 === y2 && (x1 <= x && x <= x2 || x2 <= x && x <= x1)) { - return true; - } + if (y === y1 && y1 === y2 && (x1 <= x && x <= x2 || x2 <= x && x <= x1)) { + return true; + } - if ((y1 < y && y < y2 || y2 < y && y < y1) && x < Math.max(x1, x2)) { - const intersectionX = (y - y1) * (x2 - x1) / (y2 - y1) + x1; - if (x < intersectionX) { - inside = !inside; - } + if ((y1 < y && y < y2 || y2 < y && y < y1) && x < Math.max(x1, x2)) { + const intersectionX = (y - y1) * (x2 - x1) / (y2 - y1) + x1; + if (x < intersectionX) { + inside = !inside; } + } } return inside; From 17e6f8068e0ff0854e2a57f3893cee95e7696300 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Fri, 19 Jul 2024 00:17:23 +0900 Subject: [PATCH 087/176] fix Multi mode on the pencil tool seems to save all annotations --- apps/viewer/init.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 599d081c8..94dfb4ba1 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -222,8 +222,6 @@ function initCore() { } // for support QUIP 2.0 const data = Array.isArray(e.data) ? e.data[e.data.selected] : e.data; - console.log('data', data); - const type = data.provenance.analysis.source; let body; let attributes; @@ -261,11 +259,11 @@ function initCore() { // add center position and zoom - if (data.viewerStates != undefined) { + if (data.geometries.features[data.selected].viewerStates != null || data.geometries.features[data.selected].viewerStates != undefined) { const decimalPlaces = 3; - attributes.X = data.viewerStates.x, - attributes.Y = data.viewerStates.y, - attributes.zoom = roundTo(data.viewerStates.zoom, decimalPlaces); + attributes.X = data.geometries.features[data.selected].viewerStates.x, + attributes.Y = data.geometries.features[data.selected].viewerStates.y, + attributes.zoom = roundTo(data.geometries.features[data.selected].viewerStates.z, decimalPlaces); } // Rounds a number to the specified number of decimal places. function roundTo(num, decimalPlaces) { From 037c693b24ef11b28c4ad3a89cae175a0c9f2c7b Mon Sep 17 00:00:00 2001 From: YukaUU Date: Fri, 19 Jul 2024 00:35:46 +0900 Subject: [PATCH 088/176] fix error This line has a length of 148. Maximum allowed is 125 --- apps/viewer/init.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 94dfb4ba1..530451766 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -259,7 +259,8 @@ function initCore() { // add center position and zoom - if (data.geometries.features[data.selected].viewerStates != null || data.geometries.features[data.selected].viewerStates != undefined) { + if (data.geometries.features[data.selected].viewerStates != null || + data.geometries.features[data.selected].viewerStates != undefined) { const decimalPlaces = 3; attributes.X = data.geometries.features[data.selected].viewerStates.x, attributes.Y = data.geometries.features[data.selected].viewerStates.y, From 27c7fd369feba98224623a4f821e3320d4bfec8c Mon Sep 17 00:00:00 2001 From: YukaUU Date: Fri, 19 Jul 2024 01:01:33 +0900 Subject: [PATCH 089/176] delete viewerStates ( previuos commit :added viewerStates each annotation --- apps/viewer/uicallbacks.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/apps/viewer/uicallbacks.js b/apps/viewer/uicallbacks.js index 807fdab7a..e87c68520 100644 --- a/apps/viewer/uicallbacks.js +++ b/apps/viewer/uicallbacks.js @@ -922,11 +922,6 @@ function annoCallback(data) { $CAMIC.viewer, $CAMIC.viewer.canvasDrawInstance.getImageFeatureCollection(), ), - viewerStates: { - x: viewerStates.x, - y: viewerStates.y, - zoom: viewerStates.z, - }, }; console.log('annotJson', annotJson); From e748f61d72c1fa63e973151337a2a860028bdd04 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Fri, 19 Jul 2024 02:19:19 +0900 Subject: [PATCH 090/176] fix visualization panel using $D.visualizations.geometries.features --- apps/viewer/dataloaders.js | 1 - apps/viewer/init.js | 9 ++++----- common/util.js | 4 ---- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/apps/viewer/dataloaders.js b/apps/viewer/dataloaders.js index 28919b539..d95f68e83 100644 --- a/apps/viewer/dataloaders.js +++ b/apps/viewer/dataloaders.js @@ -104,7 +104,6 @@ function layersLoader() { $D.visualizations = [...layers.map(covertToVisualization)]; visualizationLayerItems($D.visualizations); }).catch(function(error) { - // overlayers schema $UI.message.addError('Loading Logs is Error'); console.error(error); }); diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 530451766..b786c3590 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -178,7 +178,6 @@ function initCore() { $D.pages.table = '../../../'; } - console.log($D); try { const slideQuery = {}; slideQuery.id = $D.params.slideId; @@ -1638,11 +1637,11 @@ function visualizationLayerItems(data) { // Get initial data $D.visualizations.map((d) => { - if (d.states) { - for (let i = 0; i < d.geometries.features.length; i++) { - initialZommingData.push(roundToSecondDecimalPlace(d.states.zoom)); + d.geometries.features.map((sd)=>{ + if (features.viewerStates) { + initialZommingData.push(roundToSecondDecimalPlace(features.viewerStates.z)); } - } + }); }); let result = countOccurrences(initialZommingData); diff --git a/common/util.js b/common/util.js index 39c23ccc4..8df6069ea 100644 --- a/common/util.js +++ b/common/util.js @@ -590,8 +590,6 @@ function covertToVisualization(data) { const typeName = data.provenance.analysis.source; const id = data.provenance.analysis.execution_id; const name = data.provenance.analysis.name || data.provenance.analysis.execution_id; - const states = data.states || null; - const shape = data.geometries.features[0].geometry.type || null; const isGrid = data.provenance.analysis.isGrid || false; const geometries = data.geometries; @@ -607,7 +605,6 @@ function covertToVisualization(data) { id: data.provenance.analysis.labelled, name: data.provenance.analysis.name, }, - states: states, geometries: geometries, data: null, }; @@ -619,7 +616,6 @@ function covertToVisualization(data) { typeName: typeName, creator: data.creator, isGrid: isGrid, - states: states, geometries: geometries, data: null, }; From a0939307fbb85ce869e20bed2acfeda5a35e53e6 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Fri, 19 Jul 2024 02:27:51 +0900 Subject: [PATCH 091/176] fix small bug --- apps/viewer/dataloaders.js | 2 +- apps/viewer/init.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/viewer/dataloaders.js b/apps/viewer/dataloaders.js index d95f68e83..33ad204c1 100644 --- a/apps/viewer/dataloaders.js +++ b/apps/viewer/dataloaders.js @@ -104,7 +104,7 @@ function layersLoader() { $D.visualizations = [...layers.map(covertToVisualization)]; visualizationLayerItems($D.visualizations); }).catch(function(error) { - $UI.message.addError('Loading Logs is Error'); + $UI.message.addError('Loading visualizations is Error'); console.error(error); }); } diff --git a/apps/viewer/init.js b/apps/viewer/init.js index b786c3590..7ec7280be 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -1637,9 +1637,9 @@ function visualizationLayerItems(data) { // Get initial data $D.visualizations.map((d) => { - d.geometries.features.map((sd)=>{ - if (features.viewerStates) { - initialZommingData.push(roundToSecondDecimalPlace(features.viewerStates.z)); + d.geometries.features.map((ditailData)=>{ + if (ditailData.viewerStates) { + initialZommingData.push(roundToSecondDecimalPlace(ditailData.viewerStates.z)); } }); }); From 4e6f4805c4474a33c1089483e75fbada70b69e31 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Fri, 19 Jul 2024 02:43:13 +0900 Subject: [PATCH 092/176] remove viewerStates:image --- common/util.js | 6 +++++- core/extension/openseadragon-canvas-draw-overlay.js | 12 ++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/common/util.js b/common/util.js index 8df6069ea..6a1b08212 100644 --- a/common/util.js +++ b/common/util.js @@ -469,7 +469,11 @@ function covertToViewportFeature(width, height, og) { og.geometry.type; feature = { type: 'Feature', - viewerStates: og.viewerStates, + viewerStates: { + x: og.viewerStates.x, + y: og.viewerStates.y, + z: og.viewerStates.z, + }, properties: { style: {}, area: null, diff --git a/core/extension/openseadragon-canvas-draw-overlay.js b/core/extension/openseadragon-canvas-draw-overlay.js index fcb06e558..a55e2f472 100644 --- a/core/extension/openseadragon-canvas-draw-overlay.js +++ b/core/extension/openseadragon-canvas-draw-overlay.js @@ -1024,7 +1024,11 @@ if (this.drawMode == 'point') { this._current_path_ = { type: 'Feature', - viewerStates: StatesHelper.getCurrentStates(true), + viewerStates: { + x: StatesHelper.getCurrentStates(true).x, + y: StatesHelper.getCurrentStates(true).y, + z: StatesHelper.getCurrentStates(true).y + }, properties: { style: {}, }, @@ -1045,7 +1049,11 @@ properties: { style: {}, }, - viewerStates: StatesHelper.getCurrentStates(true), + viewerStates: { + x: StatesHelper.getCurrentStates(true).x, + y: StatesHelper.getCurrentStates(true).y, + z: StatesHelper.getCurrentStates(true).z, + }, geometry: { type: this.drawMode === 'line' || this.drawMode === 'grid' ? From 0076c4d8784813363d955fe1edda5962354e5a4e Mon Sep 17 00:00:00 2001 From: YukaUU Date: Fri, 19 Jul 2024 23:56:48 +0900 Subject: [PATCH 093/176] fix point viewerStates --- core/extension/openseadragon-canvas-draw-overlay.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/extension/openseadragon-canvas-draw-overlay.js b/core/extension/openseadragon-canvas-draw-overlay.js index a55e2f472..a54681c26 100644 --- a/core/extension/openseadragon-canvas-draw-overlay.js +++ b/core/extension/openseadragon-canvas-draw-overlay.js @@ -1027,7 +1027,7 @@ viewerStates: { x: StatesHelper.getCurrentStates(true).x, y: StatesHelper.getCurrentStates(true).y, - z: StatesHelper.getCurrentStates(true).y + z: StatesHelper.getCurrentStates(true).z }, properties: { style: {}, From 6dafdf62178f34384c4819c5cc96a1fb24d4fa36 Mon Sep 17 00:00:00 2001 From: Birm Date: Fri, 19 Jul 2024 11:07:59 -0400 Subject: [PATCH 094/176] render toolbar ariaLabel --- components/toolbar/toolbar.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/components/toolbar/toolbar.js b/components/toolbar/toolbar.js index 1820c2e0a..798778eac 100644 --- a/components/toolbar/toolbar.js +++ b/components/toolbar/toolbar.js @@ -213,6 +213,7 @@ CaToolbar.prototype.__createCheck = function(options) { icon.classList.add('material-icons'); icon.classList.add('md-24'); icon.textContent = options.icon; + if (options.ariaLabel) icon.ariaLabel = options.ariaLabel; icon.htmlFor = id; if (options.title) { tippy(icon, { @@ -275,6 +276,7 @@ CaToolbar.prototype.__createRadio = function(options) { if (options.icon) { icon.classList.add('material-icons'); icon.classList.add('md-24'); + if (options.ariaLabel) icon.ariaLabel = options.ariaLabel; icon.textContent = options.icon; } else { let _fitContent = 'fit-content'; @@ -332,6 +334,7 @@ CaToolbar.prototype.__createMultiStateBtns = function(options) { icon.id = randomId(); // create a timestamp id icon.classList.add('material-icons'); icon.classList.add('md-24'); + if (options.ariaLabel) icon.ariaLabel = options.ariaLabel; icon.classList.add(0); icon.dataset.state = 0; icon.textContent = options.icon; @@ -385,6 +388,7 @@ CaToolbar.prototype.__createMultiDropDown = function(options) { const icon = document.createElement('label'); icon.classList.add('material-icons'); icon.classList.add('md-24'); + if (options.ariaLabel) icon.ariaLabel = options.ariaLabel; icon.textContent = options.icon; icon.htmlFor = id; if (options.title) { @@ -512,6 +516,7 @@ CaToolbar.prototype.__createDropDown = function(options) { const icon = document.createElement('label'); icon.classList.add('material-icons'); icon.classList.add('md-24'); + if (options.ariaLabel) icon.ariaLabel = options.ariaLabel; icon.textContent = options.icon; icon.htmlFor = id; if (options.title) { From 591a2659ca101cfe8a9b09c9413863fbeb802ba3 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Sat, 20 Jul 2024 17:02:00 +0900 Subject: [PATCH 095/176] fix small bug --- apps/viewer/dataloaders.js | 2 +- apps/viewer/init.js | 64 +++++++++++++------------------------- 2 files changed, 22 insertions(+), 44 deletions(-) diff --git a/apps/viewer/dataloaders.js b/apps/viewer/dataloaders.js index 33ad204c1..4d47a06c6 100644 --- a/apps/viewer/dataloaders.js +++ b/apps/viewer/dataloaders.js @@ -110,7 +110,7 @@ function layersLoader() { } var checkCoreIsReady = setInterval(function() { - if ($UI.layersViewer && $UI.layersViewerMinor && $UI.visualizatiomViewer) { + if ($UI.layersViewer && $UI.layersViewerMinor && $UI.visualizationViewer) { clearInterval(checkCoreIsReady); loadingHumanOverlayers(); loadingRulerOverlayers(); diff --git a/apps/viewer/init.js b/apps/viewer/init.js index 7ec7280be..62ee9097e 100644 --- a/apps/viewer/init.js +++ b/apps/viewer/init.js @@ -747,6 +747,10 @@ async function initUIcomponents() { callback: toggleSideMenu, }); + const loading = `
loading layers...
`; + $UI.layersSideMenu.addContent(loading); + // TODO add layer viewer + $UI.visualizationSideMenu = new SideMenu({ id: 'visualization_panel', width: 250, @@ -895,26 +899,22 @@ async function initUIcomponents() { callback.bind('minor'), rootCallback.bind('minor'), ); - // create UI and set data - // $UI.VisualizationViewer = createVisualizationViewer( - // 'overvisuzalization', - // null, - // callback.bind('main'), - // rootCallback.bind('main'), - // ); + + $UI.visualizationViewer = createVisualizationViewer( + 'overvisuzalization', + null, + callback.bind('main'), + rootCallback.bind('main'), + ); + // // create UI and set data - minor - // $UI.visualizatiomViewerMinor = createVisualizationViewer( + // $UI.visualizationViewerMinor = createVisualizationViewer( // 'overvisuzalizationMinor', // null, // callback.bind('minor'), // rootCallback.bind('minor'), // ); - $UI.visualizatiomViewer = createVisualizationViewer( - 'overvisuzalization', - null, - callback.bind('main'), - rootCallback.bind('main'), - ); + // TODO move to add layers // if ($D.params.states && $D.params.states.l) { // $D.params.states.l.forEach((id) => @@ -1020,9 +1020,10 @@ async function initUIcomponents() { // visualization $UI.visualizationList.clearContent('visualizationlist'); - $UI.visualizationList.addContent('visualizationlist', $UI.visualizatiomViewer.elt); + $UI.visualizationList.addContent('visualizationlist', $UI.visualizationViewer.elt); + // TODO Heatmap // $UI.visualizationList.clearContent('heatMap'); - // $UI.visualizationList.addContent('heatMap', $UI.visualizatiomViewerMinor.elt); + // $UI.visualizationList.addContent('heatMap', $UI.visualizationViewerMinor.elt); $UI.visualizationList.elt.parentNode.removeChild($UI.visualizationList.elt); closeMinorControlPanel(); @@ -1393,21 +1394,8 @@ function createLayerViewer(id, viewerData, callback, rootCallback) { return layersViewer; } -// function createVisualizationViewer(id, viewerData, callback, rootCallback) { -// const visualizatiomViewer = new LayersViewer({ -// id: id, -// data: viewerData, -// removeCallback: removeCallback, -// locationCallback: locationCallback, -// callback: callback, -// rootCallback: rootCallback, - -// }); -// visualizatiomViewer.elt.parentNode.removeChild(visualizatiomViewer.elt); -// return visualizatiomViewer; -// } function createVisualizationViewer(id, viewerData, callback, rootCallback) { - const visualizatiomViewer = new VisualizationViewer({ + const visualizationViewer = new VisualizationViewer({ id: id, data: viewerData, removeCallback: removeCallback, @@ -1415,8 +1403,8 @@ function createVisualizationViewer(id, viewerData, callback, rootCallback) { callback: callback, rootCallback: rootCallback, }); - visualizatiomViewer.elt.parentNode.removeChild(visualizatiomViewer.elt); - return visualizatiomViewer; + visualizationViewer.elt.parentNode.removeChild(visualizationViewer.elt); + return visualizationViewer; } // create lay panel for side-by-side control function createLayPanelControl() { @@ -1536,7 +1524,6 @@ function addHumanLayerItems() { }, mainViewerItems); $UI.layersViewer.addHumanItems(mainViewerItems); - // $UI.visualizatiomViewer.addHumanItems(mainViewerItems); // minor viewer minorViewer const minorViewerItems = { @@ -1577,11 +1564,8 @@ function addHumanLayerItems() { }, minorViewerItems); $UI.layersViewerMinor.addHumanItems(minorViewerItems); - // $UI.visualizatiomViewerMinor.addHumanItems(minorViewerItems); } -// function addLogItems(){ -// } function openLoadStatus(text) { const txt = $UI.loadStatus.querySelector('.text'); txt.textContent = `Loading ${text}`; @@ -1600,8 +1584,6 @@ function addRulerLayerItems(data) { }); $UI.layersViewer.addItems(mainViewerData, 'ruler'); $UI.layersViewerMinor.addItems(minorViewerData, 'ruler'); - // $UI.visualizatiomViewer.addItems(mainViewerData, 'ruler'); - // $UI.visualizatiomViewerMinor.addItems(minorViewerData, 'ruler'); } function addComputerLayerItems(data) { @@ -1614,8 +1596,6 @@ function addComputerLayerItems(data) { }); $UI.layersViewer.addItems(mainViewerData, 'segmentation'); $UI.layersViewerMinor.addItems(minorViewerData, 'segmentation'); - // $UI.visualizatiomViewer.addItems(mainViewerData, 'segmentation'); - // $UI.visualizatiomViewerMinor.addItems(minorViewerData, 'segmentation'); } function addHeatmapLayerItems(data) { @@ -1628,8 +1608,6 @@ function addHeatmapLayerItems(data) { }); $UI.layersViewer.addItems(mainViewerData, 'heatmap'); $UI.layersViewerMinor.addItems(minorViewerData, 'heatmap'); - // $UI.visualizatiomViewer.addItems(mainViewerData, 'heatmap'); - // $UI.visualizatiomViewerMinor.addItems(minorViewerData, 'heatmap'); } function visualizationLayerItems(data) { @@ -1645,7 +1623,7 @@ function visualizationLayerItems(data) { }); let result = countOccurrences(initialZommingData); - $UI.visualizatiomViewer.visualization('myChart', result); + $UI.visualizationViewer.visualization('myChart', result); } // Function to round to decimal places From eb64052ff6bd070ed0b894dc01d69d52f0189568 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Sat, 20 Jul 2024 17:09:08 +0900 Subject: [PATCH 096/176] Remove unused code from viewer.html --- apps/viewer/viewer.html | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/viewer/viewer.html b/apps/viewer/viewer.html index d59c59b25..6756f1d79 100644 --- a/apps/viewer/viewer.html +++ b/apps/viewer/viewer.html @@ -443,8 +443,6 @@
- -
From 179d08a06cccbe5becaa5fc32197fe27c4733869 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Sat, 20 Jul 2024 17:30:53 +0900 Subject: [PATCH 097/176] delete unused code --- apps/viewer/uicallbacks.js | 1 - core/extension/openseadragon-canvas-draw-overlay.js | 1 - 2 files changed, 2 deletions(-) diff --git a/apps/viewer/uicallbacks.js b/apps/viewer/uicallbacks.js index e87c68520..9b42af641 100644 --- a/apps/viewer/uicallbacks.js +++ b/apps/viewer/uicallbacks.js @@ -924,7 +924,6 @@ function annoCallback(data) { ), }; - console.log('annotJson', annotJson); // save annotation $CAMIC.store .addMark(annotJson) diff --git a/core/extension/openseadragon-canvas-draw-overlay.js b/core/extension/openseadragon-canvas-draw-overlay.js index a54681c26..8984c6fe6 100644 --- a/core/extension/openseadragon-canvas-draw-overlay.js +++ b/core/extension/openseadragon-canvas-draw-overlay.js @@ -1011,7 +1011,6 @@ // const featrue = this._draws_data_[i].feature; rs.features = this._draws_data_.slice(0, this._path_index); // } - console.log('rs', rs); return rs; }, From 01ffbd958b27e2ae3e1b195db15be66c33eeb996 Mon Sep 17 00:00:00 2001 From: YukaUU Date: Mon, 22 Jul 2024 20:38:36 +0900 Subject: [PATCH 098/176] fix comment in visualizationviewer --- .../visualizationviewer/visualiationviewer.js | 20 ++++++------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/components/visualizationviewer/visualiationviewer.js b/components/visualizationviewer/visualiationviewer.js index d101198a6..4baf64546 100644 --- a/components/visualizationviewer/visualiationviewer.js +++ b/components/visualizationviewer/visualiationviewer.js @@ -1,20 +1,12 @@ /** - * CaMicroscope Logs Viewer. A component that shows logs of annotation by timeline. + * CaMicroscope Visualization Viewer. A component that shows Visualization Graph of annotation . * @constructor * @param {Object} options - * All required and optional settings for instantiating a new instance of a Layer Manager. - * @param {String} options.id - * Id of the element to append the Layer Manager's container element to. - * @param {Object[]} options.data - * the data set of the layers. - * @param {String} options.data.id - * layer's id - * @param {String} options.data.name - * layer's name - * @param {String} options.data.typeId - * layer's type id - * @param {String} options.data.typeName - * layer's type name + * All required and optional settings for instantiating a new instance of a Visualization Graph. +* @param {String} id + * ID for the visualization graph. + * @param {String} result + * result is data for visualization graph. * */ function VisualizationViewer(options) { From 70ed2b0e85043f0cf7a89601d81e5d1187c2e08b Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Mon, 22 Jul 2024 16:18:41 +0100 Subject: [PATCH 099/176] made nav buttons keyboard focusable --- apps/dev-workbench/workbench.html | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/apps/dev-workbench/workbench.html b/apps/dev-workbench/workbench.html index 2cd832a60..98a9c6f27 100644 --- a/apps/dev-workbench/workbench.html +++ b/apps/dev-workbench/workbench.html @@ -67,7 +67,7 @@ class="navbar navbar-expand-lg navbar-dark flex-row px-2" style="background: rgb(33, 37, 41);" > -
+
@@ -87,13 +87,14 @@ class="nav-item dropdown" > - Options From a2022e68ed9b228b6e89f790443714d9b46de7b7 Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Mon, 22 Jul 2024 17:07:17 +0100 Subject: [PATCH 100/176] Update workbench.html --- apps/dev-workbench/workbench.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dev-workbench/workbench.html b/apps/dev-workbench/workbench.html index 98a9c6f27..a6c2e2aa0 100644 --- a/apps/dev-workbench/workbench.html +++ b/apps/dev-workbench/workbench.html @@ -88,7 +88,7 @@ class="nav-item dropdown" > From 7ca8d8ad2c485eaac665419363f899ef18bb9b92 Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Mon, 22 Jul 2024 17:48:38 +0100 Subject: [PATCH 103/176] made first stepper button focus visible --- apps/dev-workbench/workbench.css | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/apps/dev-workbench/workbench.css b/apps/dev-workbench/workbench.css index 3b1f0dd22..035256828 100644 --- a/apps/dev-workbench/workbench.css +++ b/apps/dev-workbench/workbench.css @@ -72,3 +72,16 @@ color: #fff; border: none; } + +.focus-visible:focus-visible { + outline: 3px solid #000; + outline-offset: 2px; + box-shadow: 0 0 0 5px rgb(23, 162, 184); +} + +/* For browsers that don't support :focus-visible */ +.focus-visible:focus { + outline: 3px solid #000; + outline-offset: 2px; + box-shadow: 0 0 0 5px rgb(23, 162, 184); +} From 9bf53424cae6cf5c4ec5899f7541eed23a7566e2 Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Wed, 24 Jul 2024 18:26:48 +0100 Subject: [PATCH 104/176] fixed color contrast on slides page --- apps/table.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/table.html b/apps/table.html index ae8075125..8bc04ce3f 100644 --- a/apps/table.html +++ b/apps/table.html @@ -74,14 +74,14 @@
-
+

caMicroscope

Digital pathology image viewer with support for human/machine generated annotations and markups. View, Edit, and Manage Your Slides Here.

-
+
@@ -132,7 +132,7 @@

caMicroscope

From 2c9dceaa228e10b2786885b8ecb4e3d55af45cb6 Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Thu, 25 Jul 2024 14:17:17 +0100 Subject: [PATCH 105/176] Update util.js --- common/util.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/util.js b/common/util.js index 9e367ae26..087d17b4c 100644 --- a/common/util.js +++ b/common/util.js @@ -1403,7 +1403,7 @@ const currentYear = new Date().getFullYear(); const footerContent = `

U24 CA18092401A1, Tools to Analyze Morphology and Spatially Mapped Molecular Data

-

Spot a Bug? Report it!

+

Spot a Bug? Report it!


`; From 536fe92bf4ac69efc40e2a6a4858d6719542d3b7 Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Mon, 29 Jul 2024 11:48:36 +0100 Subject: [PATCH 106/176] Update workbench.html --- apps/dev-workbench/workbench.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/dev-workbench/workbench.html b/apps/dev-workbench/workbench.html index ec952fda3..e59bcb6d5 100644 --- a/apps/dev-workbench/workbench.html +++ b/apps/dev-workbench/workbench.html @@ -88,11 +88,12 @@ class="nav-item dropdown" >
From 042d91781f7141d050176e577c7bb31026db3297 Mon Sep 17 00:00:00 2001 From: Victoria Nduka <122698422+nwanduka@users.noreply.github.com> Date: Wed, 31 Jul 2024 11:50:17 +0100 Subject: [PATCH 107/176] Update table.html --- apps/table.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/table.html b/apps/table.html index f1884c0dd..51991534a 100644 --- a/apps/table.html +++ b/apps/table.html @@ -109,7 +109,7 @@

caMicroscope

From 773753c5a22f095fe36b4fdaded8aaba6e07dd20 Mon Sep 17 00:00:00 2001 From: Birm Date: Thu, 9 Jan 2025 16:03:55 -0500 Subject: [PATCH 142/176] check if response not ok condition met --- common/PathdbMods.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/common/PathdbMods.js b/common/PathdbMods.js index a574f5449..eb9e0e510 100644 --- a/common/PathdbMods.js +++ b/common/PathdbMods.js @@ -102,7 +102,9 @@ async function PathDbMods() { 'Authorization': 'Bearer ' + getCookie("token"), }) }).then(function(response) { - if (!response.ok) return { + if (!response.ok) + console.log("response not ok", response.statusText) + return { error: !response.ok, text: response.statusText, url: response.url @@ -120,7 +122,9 @@ async function PathDbMods() { 'Authorization': 'Bearer ' + getCookie("token"), }) }).then(function(response) { - if (!response.ok) return { + if (!response.ok) + console.log("response not ok", response.statusText) + return { error: !response.ok, text: response.statusText, url: response.url From 9fee5fcd6e108d77eb39a010ef99b906d31f2676 Mon Sep 17 00:00:00 2001 From: Birm Date: Thu, 9 Jan 2025 16:06:03 -0500 Subject: [PATCH 143/176] check response earlier --- common/PathdbMods.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/common/PathdbMods.js b/common/PathdbMods.js index eb9e0e510..aa5c608df 100644 --- a/common/PathdbMods.js +++ b/common/PathdbMods.js @@ -102,8 +102,9 @@ async function PathDbMods() { 'Authorization': 'Bearer ' + getCookie("token"), }) }).then(function(response) { + console.log(response); if (!response.ok) - console.log("response not ok", response.statusText) + console.log("response not ok", response.statusText); return { error: !response.ok, text: response.statusText, @@ -122,8 +123,9 @@ async function PathDbMods() { 'Authorization': 'Bearer ' + getCookie("token"), }) }).then(function(response) { + console.log(response); if (!response.ok) - console.log("response not ok", response.statusText) + console.log("response not ok", response.statusText); return { error: !response.ok, text: response.statusText, From 4598867f32c8e6d31fcaf0cec2f1e1371d9a5b76 Mon Sep 17 00:00:00 2001 From: Birm Date: Thu, 9 Jan 2025 16:13:29 -0500 Subject: [PATCH 144/176] Update PathdbMods.js --- common/PathdbMods.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/common/PathdbMods.js b/common/PathdbMods.js index aa5c608df..b70f70ef3 100644 --- a/common/PathdbMods.js +++ b/common/PathdbMods.js @@ -110,7 +110,8 @@ async function PathDbMods() { text: response.statusText, url: response.url }; - return response.json().then(x=>convertPathDbSlide(x[0])).then(x => [x]); + let result = response.json().then(x=>convertPathDbSlide(x[0])).then(x => [x]) + return result; }) } Store.prototype.default_getSlide = Store.prototype.getSlide @@ -131,7 +132,8 @@ async function PathDbMods() { text: response.statusText, url: response.url }; - return response.json().then(convertPathDbSlide).then(x => [x]); + let result = response.json().then(convertPathDbSlide).then(x => [x]); + return result; }) } From 8ee735305c47e56ec188f5fc5334119700cf5b44 Mon Sep 17 00:00:00 2001 From: Birm Date: Thu, 9 Jan 2025 16:27:38 -0500 Subject: [PATCH 145/176] undo result split --- common/PathdbMods.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/common/PathdbMods.js b/common/PathdbMods.js index b70f70ef3..255abb919 100644 --- a/common/PathdbMods.js +++ b/common/PathdbMods.js @@ -110,8 +110,7 @@ async function PathDbMods() { text: response.statusText, url: response.url }; - let result = response.json().then(x=>convertPathDbSlide(x[0])).then(x => [x]) - return result; + return response.json().then(x=>convertPathDbSlide(x[0])).then(x => [x]); }) } Store.prototype.default_getSlide = Store.prototype.getSlide @@ -132,8 +131,7 @@ async function PathDbMods() { text: response.statusText, url: response.url }; - let result = response.json().then(convertPathDbSlide).then(x => [x]); - return result; + return response.json().then(convertPathDbSlide).then(x => [x]);; }) } From f4b5598552ba5f0209d86f42856a444c06d882a7 Mon Sep 17 00:00:00 2001 From: Birm Date: Thu, 9 Jan 2025 16:41:09 -0500 Subject: [PATCH 146/176] Update CaMic.js --- core/CaMic.js | 1 + 1 file changed, 1 insertion(+) diff --git a/core/CaMic.js b/core/CaMic.js index 55d3a5e5b..1eb1a38f2 100644 --- a/core/CaMic.js +++ b/core/CaMic.js @@ -163,6 +163,7 @@ class CaMic { slidePromise .then((x)=>{ if (!x || !OpenSeadragon.isArray(x) || !x.length || !x[0].location) { + console.log(x); redirect($D.pages.table, `Can't Find The Slide Information`); return; } From fb5b0d9952a1f46d6733bd70fa963d1647e2a9a4 Mon Sep 17 00:00:00 2001 From: Birm Date: Thu, 9 Jan 2025 16:43:45 -0500 Subject: [PATCH 147/176] add missing braces --- common/PathdbMods.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/common/PathdbMods.js b/common/PathdbMods.js index 255abb919..1534d4d65 100644 --- a/common/PathdbMods.js +++ b/common/PathdbMods.js @@ -103,13 +103,14 @@ async function PathDbMods() { }) }).then(function(response) { console.log(response); - if (!response.ok) + if (!response.ok) { console.log("response not ok", response.statusText); return { - error: !response.ok, - text: response.statusText, - url: response.url - }; + error: !response.ok, + text: response.statusText, + url: response.url + }; + } return response.json().then(x=>convertPathDbSlide(x[0])).then(x => [x]); }) } @@ -124,13 +125,14 @@ async function PathDbMods() { }) }).then(function(response) { console.log(response); - if (!response.ok) + if (!response.ok){ console.log("response not ok", response.statusText); return { - error: !response.ok, - text: response.statusText, - url: response.url - }; + error: !response.ok, + text: response.statusText, + url: response.url + }; + } return response.json().then(convertPathDbSlide).then(x => [x]);; }) } From 32d4e58baed0dbbf70c5bb6873ac8862ee41b386 Mon Sep 17 00:00:00 2001 From: Birm Date: Thu, 9 Jan 2025 16:50:43 -0500 Subject: [PATCH 148/176] Update PathdbMods.js --- common/PathdbMods.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/common/PathdbMods.js b/common/PathdbMods.js index 1534d4d65..128e84798 100644 --- a/common/PathdbMods.js +++ b/common/PathdbMods.js @@ -111,7 +111,8 @@ async function PathDbMods() { url: response.url }; } - return response.json().then(x=>convertPathDbSlide(x[0])).then(x => [x]); + let slidePromise = response.json().then(x=>convertPathDbSlide(x[0])).then(x => [x]); + return slidePromise; }) } Store.prototype.default_getSlide = Store.prototype.getSlide @@ -133,7 +134,8 @@ async function PathDbMods() { url: response.url }; } - return response.json().then(convertPathDbSlide).then(x => [x]);; + let slidePromise = response.json().then(convertPathDbSlide).then(x => [x]); + return slidePromise; }) } From c8d149704c5a81ae8e6bdae7e64626eb84ab058c Mon Sep 17 00:00:00 2001 From: Birm Date: Thu, 9 Jan 2025 17:29:27 -0500 Subject: [PATCH 149/176] change redir url for failed slide gets --- common/PathdbMods.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/common/PathdbMods.js b/common/PathdbMods.js index 128e84798..c085c7248 100644 --- a/common/PathdbMods.js +++ b/common/PathdbMods.js @@ -105,6 +105,9 @@ async function PathDbMods() { console.log(response); if (!response.ok) { console.log("response not ok", response.statusText); + // construct pathdb login w redirect. needs relative path, and needs escaped &. + let thisurl = window.location.pathname + window.location.search; + $D.pages.table = "/user/login?destination=" + thisurl.slice(1).replaceAll("&","%26"); return { error: !response.ok, text: response.statusText, @@ -126,6 +129,9 @@ async function PathDbMods() { }) }).then(function(response) { console.log(response); + // construct pathdb login w redirect. needs relative path, and needs escaped &. + let thisurl = window.location.pathname + window.location.search; + $D.pages.table = "/user/login?destination=" + thisurl.slice(1).replaceAll("&","%26"); if (!response.ok){ console.log("response not ok", response.statusText); return { From 4ac2eb0c190f7ef2c3d15fc38f201a22007c2e5d Mon Sep 17 00:00:00 2001 From: Birm Date: Fri, 10 Jan 2025 23:58:59 -0500 Subject: [PATCH 150/176] put footer layout after dom content loaded --- common/util.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/common/util.js b/common/util.js index 6ce662ebb..d22482bd5 100644 --- a/common/util.js +++ b/common/util.js @@ -1453,5 +1453,9 @@ const footerContent = ` `; function insertFooterLayout() { - document.getElementById('footer-layout').innerHTML = footerContent; + document.addEventListener('DOMContentLoaded', function() { + document.getElementById('footer-layout').innerHTML = footerContent; + }); } + + From 07368353ae5355e42650183e5937244c0cf60bad Mon Sep 17 00:00:00 2001 From: "jadonchandrika@gmail.com" Date: Mon, 13 Jan 2025 19:43:22 +0530 Subject: [PATCH 151/176] Removed duplicate buttons/links to choose file in development workbench --- apps/dev-workbench/workbench.html | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/apps/dev-workbench/workbench.html b/apps/dev-workbench/workbench.html index 2cd832a60..2bf77d68d 100644 --- a/apps/dev-workbench/workbench.html +++ b/apps/dev-workbench/workbench.html @@ -116,11 +116,9 @@ href="#" data-toggle="modal" data-target="#helpModal" - onClick="displayUserGuide()" - > + onClick="displayUserGuide()"> -   Help/User Guide +   Help/User Guide
@@ -258,7 +256,7 @@

Select your dataset

style="overflow: hidden;" class="custom-file-label spriteInputLabel" for="spriteInput" - > Choose file + > @@ -346,7 +344,6 @@ for="labelsInput" style="overflow: hidden;" > - Choose From 2d18111d732099442881ca33688eecb0e8b36651 Mon Sep 17 00:00:00 2001 From: "jadonchandrika@gmail.com" Date: Mon, 13 Jan 2025 20:07:53 +0530 Subject: [PATCH 152/176] Removed duplicate buttons/links to choose file in development workbench --- apps/dev-workbench/workbench.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/dev-workbench/workbench.html b/apps/dev-workbench/workbench.html index 2bf77d68d..b2d10f624 100644 --- a/apps/dev-workbench/workbench.html +++ b/apps/dev-workbench/workbench.html @@ -116,9 +116,11 @@ href="#" data-toggle="modal" data-target="#helpModal" - onClick="displayUserGuide()"> + onClick="displayUserGuide()" + > -   Help/User Guide +   Help/User Guide From 587ca65b76653c16d6b6fd8e833aaf29b31a11d2 Mon Sep 17 00:00:00 2001 From: Birm Date: Wed, 15 Jan 2025 14:10:46 -0500 Subject: [PATCH 153/176] Update import.html --- apps/port/import.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/port/import.html b/apps/port/import.html index 1f26d7a31..a3e7f4a2e 100644 --- a/apps/port/import.html +++ b/apps/port/import.html @@ -22,15 +22,15 @@

Import Annotations

Info


-
+

-
+

File Contents

-
+

@@ -38,9 +38,9 @@

File Contents


-
+
- \ No newline at end of file + From 8f5cd59fd66436a0f823c2b4a46a8a31091f947e Mon Sep 17 00:00:00 2001 From: Birm Date: Wed, 15 Jan 2025 14:12:05 -0500 Subject: [PATCH 154/176] need .value --- apps/port/import.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/port/import.js b/apps/port/import.js index f487d604f..9242a793c 100644 --- a/apps/port/import.js +++ b/apps/port/import.js @@ -2,7 +2,7 @@ const store = new Store('../../data'); function prepareAnnot() { try { - let output = JSON.parse(document.getElementById('input')); + let output = JSON.parse(document.getElementById('input').value); output['provenance']['image']['slide'] = document.getElementById('slide_id').value; output['provenance']['analysis']['execution'] = document.getElementById('annot_name').value; output['properties']['annotations']['name'] = document.getElementById('annot_name').value; @@ -14,7 +14,7 @@ function prepareAnnot() { function saveAnnot() { try { - let doc = JSON.parse(document.getElementById('output')); + let doc = JSON.parse(document.getElementById('output').value); } catch (e) { alert(e); } From 274cf69896dd74384918fac54fbbf2114d8a8fb6 Mon Sep 17 00:00:00 2001 From: Birm Date: Wed, 15 Jan 2025 14:16:32 -0500 Subject: [PATCH 155/176] post closure fix --- apps/port/import.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/port/import.js b/apps/port/import.js index 9242a793c..58172ee48 100644 --- a/apps/port/import.js +++ b/apps/port/import.js @@ -15,8 +15,9 @@ function prepareAnnot() { function saveAnnot() { try { let doc = JSON.parse(document.getElementById('output').value); + store.addMark(doc).then((x)=>alert('done!')).catch((e)=>alert(e)); } catch (e) { alert(e); } - store.addMark(doc).then((x)=>alert('done!')).catch((e)=>alert(e)); + } From f4c28b8cfef5c15e7e313fc81e58eb796a0b514a Mon Sep 17 00:00:00 2001 From: Birm Date: Wed, 15 Jan 2025 14:18:38 -0500 Subject: [PATCH 156/176] populate more fields correctly --- apps/port/import.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/port/import.js b/apps/port/import.js index 58172ee48..83c437d6d 100644 --- a/apps/port/import.js +++ b/apps/port/import.js @@ -6,6 +6,9 @@ function prepareAnnot() { output['provenance']['image']['slide'] = document.getElementById('slide_id').value; output['provenance']['analysis']['execution'] = document.getElementById('annot_name').value; output['properties']['annotations']['name'] = document.getElementById('annot_name').value; + output['provenance']['analysis']['name'] = document.getElementById('annot_name').value; + output['provenance']['analysis']['execution_id'] = document.getElementById('annot_name').value; + } catch (e) { alert(e); } From e08555974c3a70d0e315a1403da521622297e0a3 Mon Sep 17 00:00:00 2001 From: Birm Date: Wed, 15 Jan 2025 14:20:27 -0500 Subject: [PATCH 157/176] lint fix --- apps/port/import.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/port/import.js b/apps/port/import.js index 83c437d6d..8c19a5507 100644 --- a/apps/port/import.js +++ b/apps/port/import.js @@ -8,7 +8,6 @@ function prepareAnnot() { output['properties']['annotations']['name'] = document.getElementById('annot_name').value; output['provenance']['analysis']['name'] = document.getElementById('annot_name').value; output['provenance']['analysis']['execution_id'] = document.getElementById('annot_name').value; - } catch (e) { alert(e); } @@ -22,5 +21,4 @@ function saveAnnot() { } catch (e) { alert(e); } - } From 697255f86b73a05e4569ac23549cbcbb5df08fc1 Mon Sep 17 00:00:00 2001 From: Birm Date: Wed, 15 Jan 2025 14:25:34 -0500 Subject: [PATCH 158/176] correct the xml convert --- apps/port/xml2geo.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/port/xml2geo.js b/apps/port/xml2geo.js index b25ee1b9c..4722df21e 100644 --- a/apps/port/xml2geo.js +++ b/apps/port/xml2geo.js @@ -62,5 +62,7 @@ function xml2geo() { output['provenance']['image']['slide'] = document.getElementById('slide_id').value; output['provenance']['analysis']['execution'] = document.getElementById('annot_name').value; output['properties']['annotations']['name'] = document.getElementById('annot_name').value; + output['provenance']['analysis']['name'] = document.getElementById('annot_name').value; + output['provenance']['analysis']['execution_id'] = document.getElementById('annot_name').value; document.getElementById('output').innerHTML = JSON.stringify(output); } From 74649ba4f68c57bf755895800d85e26f4425ee42 Mon Sep 17 00:00:00 2001 From: Birm Date: Wed, 15 Jan 2025 14:25:54 -0500 Subject: [PATCH 159/176] rm prepare annot --- apps/port/import.html | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/port/import.html b/apps/port/import.html index a3e7f4a2e..ecf6114da 100644 --- a/apps/port/import.html +++ b/apps/port/import.html @@ -35,7 +35,6 @@

File Contents


-


From 60c373c998dc4b280d0392615ce12c48ea81e50f Mon Sep 17 00:00:00 2001 From: Birm Date: Wed, 15 Jan 2025 14:41:14 -0500 Subject: [PATCH 160/176] defaults for polygon style etc --- common/DrawHelper.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/common/DrawHelper.js b/common/DrawHelper.js index c36ab6c75..bf83de4d8 100644 --- a/common/DrawHelper.js +++ b/common/DrawHelper.js @@ -191,8 +191,11 @@ caDrawHelper.prototype.drawPolygon = function(ctx, paths){ caDrawHelper.prototype.draw = function(ctx, image_data){ for (let i = 0; i < image_data.length; i++) { const polygon = image_data[i]; + if (polygon.properties == undefined || polygon.properties == null){ + polygon.properties = {} + } const style = polygon.properties.style; - + // if there is path using path to draw // if(polygon.geometry.path){ // ctx.fillStyle = hexToRgbA(style.color,0.5); @@ -287,6 +290,9 @@ caDrawHelper.prototype.doesDraw = function(bbox, ctx){ caDrawHelper.prototype.drawGrids = function(ctx, image_data){ image_data.forEach(polygon =>{ + if (polygon.properties == undefined || polygon.properties == null){ + polygon.properties = {} + } const style = polygon.properties.style; const size = polygon.properties.size; //this.setStyle(ctx, style); @@ -297,6 +303,9 @@ caDrawHelper.prototype.drawGrids = function(ctx, image_data){ }) } caDrawHelper.prototype.drawGrid = function(ctx, polygon){ + if (polygon.properties == undefined || polygon.properties == null){ + polygon.properties = {} + } const style = polygon.properties.style; const size = polygon.properties.size; //this.setStyle(ctx, style); @@ -330,6 +339,14 @@ caDrawHelper.prototype.drawGrid = function(ctx, polygon){ * how the end points of every line are drawn. There are three possible values: 'butt', 'round' and 'square' */ caDrawHelper.prototype.setStyle = function(ctx,style){ + if (style == undefined || style == null){ + style = { + "color":"#fccde5", + "lineJoin":"round", + "lineCap":"round", + "isFill":true + }; + } ctx.strokeStyle = style.color; ctx.lineJoin = style.lineJoin; ctx.lineCap = style.lineCap; From ed6f11ccb3ea539d943af70953a0b77610197b13 Mon Sep 17 00:00:00 2001 From: Birm Date: Wed, 15 Jan 2025 14:52:48 -0500 Subject: [PATCH 161/176] Update DrawHelper.js --- common/DrawHelper.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/common/DrawHelper.js b/common/DrawHelper.js index bf83de4d8..a74514cc1 100644 --- a/common/DrawHelper.js +++ b/common/DrawHelper.js @@ -192,9 +192,12 @@ caDrawHelper.prototype.draw = function(ctx, image_data){ for (let i = 0; i < image_data.length; i++) { const polygon = image_data[i]; if (polygon.properties == undefined || polygon.properties == null){ - polygon.properties = {} + polygon.properties = {}; + } + let style = polygon.properties.style; + if (style == undefined || style == null){ + style = {}; } - const style = polygon.properties.style; // if there is path using path to draw // if(polygon.geometry.path){ From f0dc6ba433a24cbc717c2d76fa85054fb04e4f1b Mon Sep 17 00:00:00 2001 From: Birm Date: Wed, 15 Jan 2025 14:54:48 -0500 Subject: [PATCH 162/176] Update DrawHelper.js --- common/DrawHelper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/DrawHelper.js b/common/DrawHelper.js index a74514cc1..a68132b87 100644 --- a/common/DrawHelper.js +++ b/common/DrawHelper.js @@ -196,7 +196,7 @@ caDrawHelper.prototype.draw = function(ctx, image_data){ } let style = polygon.properties.style; if (style == undefined || style == null){ - style = {}; + style = {"color":"#FF6926"}; } // if there is path using path to draw From 787e7459bd28c9389f355d595a02c2e4a0aab4ff Mon Sep 17 00:00:00 2001 From: Birm Date: Wed, 15 Jan 2025 14:58:45 -0500 Subject: [PATCH 163/176] default color style --- core/extension/openseadragon-overlays-manage.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/extension/openseadragon-overlays-manage.js b/core/extension/openseadragon-overlays-manage.js index 889cb4400..91c93e6b0 100644 --- a/core/extension/openseadragon-overlays-manage.js +++ b/core/extension/openseadragon-overlays-manage.js @@ -265,7 +265,10 @@ if($.isArray(layer.data)){ for(let j = 0;j < layer.data.length;j++){ const path = layer.data[j].geometry.path; - const style = layer.data[j].properties.style; + let style = layer.data[j].properties.style; + if (style == undefined || style == null){ + style = {"color": "#FF6296") + } const pathData = layer.data[j]; if(layer.hoverable&&path.contains(img_point.x,img_point.y)){ this.resize(); @@ -907,4 +910,4 @@ -})(OpenSeadragon) \ No newline at end of file +})(OpenSeadragon) From 2afcd5283671945b6264db8a7ae096fa1c4a0e8f Mon Sep 17 00:00:00 2001 From: Birm Date: Wed, 15 Jan 2025 14:59:45 -0500 Subject: [PATCH 164/176] typo fix def color --- core/extension/openseadragon-overlays-manage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/extension/openseadragon-overlays-manage.js b/core/extension/openseadragon-overlays-manage.js index 91c93e6b0..9a20a779c 100644 --- a/core/extension/openseadragon-overlays-manage.js +++ b/core/extension/openseadragon-overlays-manage.js @@ -267,7 +267,7 @@ const path = layer.data[j].geometry.path; let style = layer.data[j].properties.style; if (style == undefined || style == null){ - style = {"color": "#FF6296") + style = {"color": "#FF6296"}; } const pathData = layer.data[j]; if(layer.hoverable&&path.contains(img_point.x,img_point.y)){ From add73033e9d13920cca2c7d1e42ae05ff093b023 Mon Sep 17 00:00:00 2001 From: Birm Date: Thu, 16 Jan 2025 10:55:57 -0500 Subject: [PATCH 165/176] default color/style for drawOnHelper --- core/extension/openseadragon-overlays-manage.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/extension/openseadragon-overlays-manage.js b/core/extension/openseadragon-overlays-manage.js index 9a20a779c..1197502a2 100644 --- a/core/extension/openseadragon-overlays-manage.js +++ b/core/extension/openseadragon-overlays-manage.js @@ -694,6 +694,9 @@ * @param {Object} style the style of drawing */ drawOnHover:function(ctx,div,path,style){ + if (style == undefined || style == null){ + style = {"color": "#FF6296"}; + } div.style.cursor = 'point'; ctx.lineJoin = 'round'; ctx.lineCap = 'round'; From a8e0e7acf982555b2fad5c0ae0e9634a37ba11dc Mon Sep 17 00:00:00 2001 From: Birm Date: Thu, 16 Jan 2025 10:58:23 -0500 Subject: [PATCH 166/176] edit points, default style --- core/extension/openseadragon-overlays-manage.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/extension/openseadragon-overlays-manage.js b/core/extension/openseadragon-overlays-manage.js index 1197502a2..48162a333 100644 --- a/core/extension/openseadragon-overlays-manage.js +++ b/core/extension/openseadragon-overlays-manage.js @@ -368,6 +368,10 @@ drawEditPoints: function(ctx, pathData, style) { if (!pathData) return; + if (style == undefined || style == null){ + style = {"color": "#FF6296"}; + } + this.editPointPathList = []; pathData = pathData.geometry.coordinates; ctx.lineJoin = 'round'; From fcec2974a0f76cfa91b9d81e48f07d4669693801 Mon Sep 17 00:00:00 2001 From: Birm Date: Wed, 22 Jan 2025 21:02:03 -0500 Subject: [PATCH 167/176] don't have browser use module --- common/DrawHelper.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/common/DrawHelper.js b/common/DrawHelper.js index a68132b87..3bb19322b 100644 --- a/common/DrawHelper.js +++ b/common/DrawHelper.js @@ -370,6 +370,9 @@ caDrawHelper.prototype.clearCanvas = function(canvas){ var DrawHelper = new caDrawHelper(); //OpenSeadragon.DrawHelper = DrawHelper; +if (typeof window == 'undefined') { + module.exports = caDrawHelper; +} + -module.exports = caDrawHelper; From ca2652379f789ca95f6259baa7f829868bdf22e9 Mon Sep 17 00:00:00 2001 From: Birm Date: Wed, 22 Jan 2025 21:34:29 -0500 Subject: [PATCH 168/176] meta tag broke model and segment apps --- apps/model/model.html | 2 +- apps/segment/segment.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/model/model.html b/apps/model/model.html index 606c02e2f..4d3b6821a 100644 --- a/apps/model/model.html +++ b/apps/model/model.html @@ -5,7 +5,7 @@ - caMicroscope diff --git a/apps/segment/segment.html b/apps/segment/segment.html index 3e1ff5d99..b6debc055 100644 --- a/apps/segment/segment.html +++ b/apps/segment/segment.html @@ -5,7 +5,7 @@ - caMicroscope From 6fb6b906aa64c1af6fee5356ef07a3ad02cce9e7 Mon Sep 17 00:00:00 2001 From: Birm Date: Wed, 22 Jan 2025 21:58:00 -0500 Subject: [PATCH 169/176] fix signup merge mistake --- apps/signup/signup.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/apps/signup/signup.js b/apps/signup/signup.js index 2aa8170a6..b7a1fe548 100644 --- a/apps/signup/signup.js +++ b/apps/signup/signup.js @@ -36,11 +36,6 @@ function addUser(){ filtersError.style.display = "block"; filtersError.innerHTML = "Please enter atleast one filter."; return; - - if (email === '') { - emailErr.textContent = 'Please enter your email'; - } else if (!(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(email))) { - emailErr.textContent = 'Please enter a valid email address. For example: name@example.com'; } From 7127bb237998e6329d284bcbb36d0495a027c2ea Mon Sep 17 00:00:00 2001 From: Birm Date: Wed, 22 Jan 2025 22:10:27 -0500 Subject: [PATCH 170/176] better node(test) test for export --- common/DrawHelper.js | 1 - 1 file changed, 1 deletion(-) diff --git a/common/DrawHelper.js b/common/DrawHelper.js index 3bb19322b..6dab3e72b 100644 --- a/common/DrawHelper.js +++ b/common/DrawHelper.js @@ -375,4 +375,3 @@ if (typeof window == 'undefined') { } - From 9d3c06eb7e26b7e6332ad9b9db1b844816be61e2 Mon Sep 17 00:00:00 2001 From: Birm Date: Wed, 22 Jan 2025 22:13:11 -0500 Subject: [PATCH 171/176] node env handle for export --- common/DrawHelper.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/common/DrawHelper.js b/common/DrawHelper.js index 6dab3e72b..fa29e6707 100644 --- a/common/DrawHelper.js +++ b/common/DrawHelper.js @@ -370,8 +370,6 @@ caDrawHelper.prototype.clearCanvas = function(canvas){ var DrawHelper = new caDrawHelper(); //OpenSeadragon.DrawHelper = DrawHelper; -if (typeof window == 'undefined') { +if (typeof process !== 'undefined' && process.versions && process.versions.node) { module.exports = caDrawHelper; } - - From effeea0bb506983d000eaa600eed98a3159a06a6 Mon Sep 17 00:00:00 2001 From: Birm Date: Wed, 22 Jan 2025 22:20:01 -0500 Subject: [PATCH 172/176] npm updates for deps, mostly test --- package-lock.json | 2647 ++++++++++++++++++++++----------------------- 1 file changed, 1309 insertions(+), 1338 deletions(-) diff --git a/package-lock.json b/package-lock.json index ddb02e2b9..786f58dec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,11 +38,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dependencies": { - "@babel/highlight": "^7.24.2", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -50,30 +51,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", - "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", + "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", - "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.4", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.4", - "@babel/parser": "^7.24.4", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -88,62 +89,31 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/core/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==", - "dev": true - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/generator": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", - "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", "dev": true, "dependencies": { - "@babel/types": "^7.24.0", + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -151,72 +121,28 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "dependencies": { - "@babel/types": "^7.24.0" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -226,97 +152,61 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", - "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", - "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz", + "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", "dev": true, + "dependencies": { + "@babel/types": "^7.26.5" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -360,6 +250,36 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", @@ -385,12 +305,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", - "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -471,6 +391,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", @@ -487,12 +422,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", - "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -502,33 +437,30 @@ } }, "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", - "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.1", - "@babel/generator": "^7.24.1", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.1", - "@babel/types": "^7.24.0", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz", + "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.5", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.5", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -536,23 +468,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -562,21 +477,14 @@ "node": ">=4" } }, - "node_modules/@babel/traverse/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==", - "dev": true - }, "node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", + "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -604,67 +512,6 @@ "node": ">=8" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -817,6 +664,15 @@ } } }, + "node_modules/@jest/core/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/@jest/core/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -875,6 +731,18 @@ "node": ">=8" } }, + "node_modules/@jest/core/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jest/core/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -1002,6 +870,15 @@ } } }, + "node_modules/@jest/reporters/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/@jest/reporters/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -1060,6 +937,18 @@ "node": ">=8" } }, + "node_modules/@jest/reporters/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jest/reporters/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -1312,9 +1201,9 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "dev": true, "dependencies": { "@jridgewell/set-array": "^1.2.1", @@ -1344,9 +1233,9 @@ } }, "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==", + "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 }, "node_modules/@jridgewell/trace-mapping": { @@ -1374,6 +1263,15 @@ "type-detect": "4.0.8" } }, + "node_modules/@sinonjs/commons/node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/@sinonjs/fake-timers": { "version": "10.3.0", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", @@ -1424,19 +1322,14 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", - "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", "dev": true, "dependencies": { "@babel/types": "^7.20.7" } }, - "node_modules/@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" - }, "node_modules/@types/graceful-fs": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", @@ -1481,25 +1374,13 @@ "parse5": "^7.0.0" } }, - "node_modules/@types/jsdom/node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, "node_modules/@types/node": { - "version": "20.12.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.6.tgz", - "integrity": "sha512-3KurE8taB8GCvZBPngVbp0lk5CKi8M9f9k1rsADh0Evdz5SzJ+Q+Hx9uHoFGsLnLnd1xmkDQr2hVhlA0Mn0lKQ==", + "version": "22.10.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.8.tgz", + "integrity": "sha512-rk+QvAEGsbX/ZPiiyel6hJHNUS9cnSbPWVaZLvE+Er3tLqQFzWMz9JOfWW7XUmKvRPfxJfbl3qYWve+RGXncFw==", "dev": true, "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.20.0" } }, "node_modules/@types/stack-utils": { @@ -1515,9 +1396,9 @@ "dev": true }, "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dev": true, "dependencies": { "@types/yargs-parser": "*" @@ -1532,7 +1413,8 @@ "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead" }, "node_modules/accepts": { "version": "1.3.8", @@ -1567,11 +1449,11 @@ } }, "node_modules/acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0" + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/acorn-walk": { @@ -1593,27 +1475,6 @@ "node": ">= 6.0.0" } }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -1630,19 +1491,19 @@ } }, "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "engines": { "node": ">=6" } }, "node_modules/ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dependencies": { - "type-fest": "^0.11.0" + "type-fest": "^0.21.3" }, "engines": { "node": ">=8" @@ -1652,22 +1513,22 @@ } }, "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "engines": { - "node": ">=8" + "node": ">=6" } }, "node_modules/ansi-styles": { @@ -1704,7 +1565,7 @@ "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "node_modules/assertion-error": { "version": "1.1.0", @@ -1850,15 +1711,6 @@ "node": ">=8" } }, - "node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/babel-plugin-jest-hoist": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", @@ -1875,23 +1727,26 @@ } }, "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", "dev": true, "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0" @@ -1914,33 +1769,36 @@ } }, "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dependencies": { "bytes": "3.1.2", - "content-type": "~1.0.4", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", + "qs": "6.13.0", + "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -1949,6 +1807,19 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1959,11 +1830,11 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -1980,9 +1851,9 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" }, "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "dev": true, "funding": [ { @@ -1999,10 +1870,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -2034,13 +1905,28 @@ "node": ">= 0.8" } }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2055,20 +1941,18 @@ } }, "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001607", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001607.tgz", - "integrity": "sha512-WcvhVRjXLKFB/kmOFVwELtMxyhq3iM/MvmXcyCe2PNf166c39mptscOc/45TTS96n2gpNV2z7+NakArTWZCQ3w==", + "version": "1.0.30001695", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz", + "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==", "dev": true, "funding": [ { @@ -2086,9 +1970,9 @@ ] }, "node_modules/chai": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.3", @@ -2096,7 +1980,7 @@ "get-func-name": "^2.0.2", "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "type-detect": "^4.1.0" }, "engines": { "node": ">=4" @@ -2115,17 +1999,6 @@ "node": ">=4" } }, - "node_modules/chalk/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==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", @@ -2152,15 +2025,9 @@ } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -2173,6 +2040,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -2193,9 +2063,9 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", + "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", "dev": true }, "node_modules/cli-cursor": { @@ -2210,18 +2080,46 @@ } }, "node_modules/cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "engines": { + "node": ">= 10" + } }, "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, "node_modules/co": { @@ -2251,7 +2149,7 @@ "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/combined-stream": { "version": "1.0.8", @@ -2267,7 +2165,7 @@ "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=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/content-disposition": { "version": "0.5.4", @@ -2295,9 +2193,9 @@ "dev": true }, "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "engines": { "node": ">= 0.6" } @@ -2305,7 +2203,7 @@ "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "node_modules/create-jest": { "version": "29.7.0", @@ -2399,9 +2297,9 @@ } }, "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==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", "dependencies": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -2413,6 +2311,14 @@ "node": ">=4.8" } }, + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", @@ -2448,11 +2354,19 @@ } }, "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dependencies": { - "ms": "2.0.0" + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/decamelize": { @@ -2472,9 +2386,9 @@ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" }, "node_modules/dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "dev": true, "peerDependencies": { "babel-plugin-macros": "^3.1.0" @@ -2486,9 +2400,9 @@ } }, "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", "dependencies": { "type-detect": "^4.0.0" }, @@ -2497,9 +2411,9 @@ } }, "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + "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==" }, "node_modules/deepmerge": { "version": "4.3.1", @@ -2545,9 +2459,9 @@ } }, "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", "engines": { "node": ">=0.3.1" } @@ -2576,6 +2490,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", "dependencies": { "webidl-conversions": "^5.0.0" }, @@ -2591,15 +2506,28 @@ "node": ">=8" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.730", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.730.tgz", - "integrity": "sha512-oJRPo82XEqtQAobHpJIR3zW5YO3sSRRkPz2an4yxi1UvqhsGm54vR/wzTFV74a3soDOJ8CKW7ajOOX5ESzddwg==", + "version": "1.5.85", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.85.tgz", + "integrity": "sha512-UgTI7ZHxtSjOUwV0vZLpqT604U1Z8L3bq8mAtAKtuRPlMZ/6dLFMYgYnLdXSi/urbVTP2ykDb9EDDUrdIzw4Qg==", "dev": true }, "node_modules/emittery": { @@ -2615,14 +2543,14 @@ } }, "node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "engines": { "node": ">= 0.8" } @@ -2648,10 +2576,37 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "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==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "engines": { "node": ">=6" } @@ -2664,20 +2619,19 @@ "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==", "engines": { "node": ">=0.8.0" } }, "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" + "esutils": "^2.0.2" }, "bin": { "escodegen": "bin/escodegen.js", @@ -2702,6 +2656,7 @@ "version": "6.8.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dependencies": { "@babel/code-frame": "^7.0.0", "ajv": "^6.10.0", @@ -2763,11 +2718,11 @@ } }, "node_modules/eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dependencies": { - "esrecurse": "^4.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" }, "engines": { @@ -2786,82 +2741,13 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "engines": { "node": ">=4" } }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/eslint/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/eslint/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/eslint/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/eslint/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/espree": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", @@ -2888,47 +2774,55 @@ } }, "node_modules/esquery": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.2.0.tgz", - "integrity": "sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dependencies": { - "estraverse": "^5.0.0" + "estraverse": "^5.1.0" }, "engines": { - "node": ">=8.0" + "node": ">=0.10" } }, "node_modules/esquery/node_modules/estraverse": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.0.0.tgz", - "integrity": "sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "engines": { "node": ">=4.0" } }, "node_modules/esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dependencies": { - "estraverse": "^4.1.0" + "estraverse": "^5.2.0" }, "engines": { "node": ">=4.0" } }, - "node_modules/estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "engines": { - "node": ">=0.10.0" + "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==", + "engines": { + "node": ">=4.0" } }, "node_modules/esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "engines": { "node": ">=0.10.0" } @@ -2965,9 +2859,9 @@ } }, "node_modules/execa/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "dependencies": { "path-key": "^3.1.0", @@ -3049,36 +2943,36 @@ } }, "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -3087,8 +2981,25 @@ }, "engines": { "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "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==", + "dependencies": { + "ms": "2.0.0" } }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -3102,17 +3013,6 @@ "node": ">=4" } }, - "node_modules/external-editor/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -3126,7 +3026,7 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" }, "node_modules/fb-watchman": { "version": "2.0.2", @@ -3163,9 +3063,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -3174,12 +3074,12 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -3190,19 +3090,30 @@ "node": ">= 0.8" } }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, "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==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, "dependencies": { - "locate-path": "^6.0.0", + "locate-path": "^5.0.0", "path-exists": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/flat": { @@ -3232,9 +3143,9 @@ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==" }, "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.2.tgz", + "integrity": "sha512-sJe+TQb2vIaIyO783qN6BlMYWMw3WBOHA1Ay2qxsnjuafEOQFJ2JakedOQirT6D5XPRxDvS7AHYyem9fTpb4LQ==", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -3263,7 +3174,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.3", @@ -3289,7 +3200,7 @@ "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" }, "node_modules/gensync": { "version": "1.0.0-beta.2", @@ -3317,13 +3228,23 @@ } }, "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==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3338,6 +3259,18 @@ "node": ">=8.0.0" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -3351,14 +3284,15 @@ } }, "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", "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" }, @@ -3394,35 +3328,35 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "engines": { "node": ">=4" } }, "node_modules/has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "engines": { "node": ">= 0.4" }, @@ -3434,7 +3368,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -3495,27 +3428,6 @@ "node": ">= 6" } }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -3528,27 +3440,6 @@ "node": ">= 6" } }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -3578,21 +3469,24 @@ } }, "node_modules/import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "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, "dependencies": { "pkg-dir": "^4.2.0", @@ -3611,7 +3505,7 @@ "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==", "engines": { "node": ">=0.8.19" } @@ -3619,7 +3513,8 @@ "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.", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -3631,34 +3526,41 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", - "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "dependencies": { "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", + "chalk": "^4.1.0", "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", + "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", - "lodash": "^4.17.15", + "lodash": "^4.17.19", "mute-stream": "0.0.8", "run-async": "^2.4.0", - "rxjs": "^6.5.3", + "rxjs": "^6.6.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" }, "engines": { - "node": ">=6.0.0" + "node": ">=8.0.0" + } + }, + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" } }, "node_modules/inquirer/node_modules/ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" }, "engines": { @@ -3669,15 +3571,18 @@ } }, "node_modules/inquirer/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/inquirer/node_modules/color-convert": { @@ -3704,15 +3609,21 @@ "node": ">=8" } }, - "node_modules/inquirer/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } }, "node_modules/inquirer/node_modules/supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -3746,12 +3657,15 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3760,17 +3674,17 @@ "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==", "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "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==", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/is-generator-fn": { @@ -3783,9 +3697,9 @@ } }, "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dependencies": { "is-extglob": "^2.1.1" }, @@ -3814,11 +3728,6 @@ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" }, - "node_modules/is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" - }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -3845,7 +3754,7 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", @@ -3857,9 +3766,9 @@ } }, "node_modules/istanbul-lib-instrument": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", - "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, "dependencies": { "@babel/core": "^7.23.9", @@ -3872,26 +3781,11 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-instrument/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -3899,12 +3793,6 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-instrument/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/istanbul-lib-report": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", @@ -3954,29 +3842,6 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/istanbul-lib-source-maps/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==", - "dev": true - }, "node_modules/istanbul-reports": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", @@ -4195,20 +4060,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-cli/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/jest-cli/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -4248,33 +4099,6 @@ "node": ">=8" } }, - "node_modules/jest-cli/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^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/jest-cli/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==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/jest-config": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", @@ -4610,9 +4434,9 @@ } }, "node_modules/jest-environment-jsdom/node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -4632,10 +4456,13 @@ } }, "node_modules/jest-environment-jsdom/node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } @@ -4660,23 +4487,6 @@ "node": ">=12" } }, - "node_modules/jest-environment-jsdom/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/jest-environment-jsdom/node_modules/domexception": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", @@ -4691,9 +4501,9 @@ } }, "node_modules/jest-environment-jsdom/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "dev": true, "dependencies": { "asynckit": "^0.4.0", @@ -4787,24 +4597,6 @@ } } }, - "node_modules/jest-environment-jsdom/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==", - "dev": true - }, - "node_modules/jest-environment-jsdom/node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, "node_modules/jest-environment-jsdom/node_modules/saxes": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", @@ -4885,9 +4677,9 @@ } }, "node_modules/jest-environment-jsdom/node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, "engines": { "node": ">=10.0.0" @@ -5590,26 +5382,11 @@ "node": ">=8" } }, - "node_modules/jest-snapshot/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -5629,12 +5406,6 @@ "node": ">=8" } }, - "node_modules/jest-snapshot/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/jest-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", @@ -5754,6 +5525,18 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/jest-validate/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -5913,15 +5696,39 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -5930,18 +5737,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/js-yaml/node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/jsdom": { "version": "16.7.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", @@ -5988,9 +5783,9 @@ } }, "node_modules/jsdom/node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "bin": { "acorn": "bin/acorn" }, @@ -5998,16 +5793,21 @@ "node": ">=0.4.0" } }, + "node_modules/jsdom/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-parse-even-better-errors": { @@ -6024,7 +5824,7 @@ "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=" + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" }, "node_modules/json5": { "version": "2.2.3", @@ -6059,7 +5859,7 @@ "node_modules/levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "dependencies": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" @@ -6075,17 +5875,15 @@ "dev": true }, "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==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, "dependencies": { - "p-locate": "^5.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/lodash": { @@ -6173,11 +5971,11 @@ } }, "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dependencies": { - "get-func-name": "^2.0.0" + "get-func-name": "^2.0.1" } }, "node_modules/lru-cache": { @@ -6204,26 +6002,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/make-dir/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -6231,12 +6014,6 @@ "node": ">=10" } }, - "node_modules/make-dir/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -6246,6 +6023,14 @@ "tmpl": "1.0.5" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -6255,9 +6040,12 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-stream": { "version": "2.0.0", @@ -6268,18 +6056,18 @@ "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==", "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, "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -6336,48 +6124,49 @@ } }, "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/mkdirp": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", - "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dependencies": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" } }, "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz", + "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", + "dependencies": { + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^8.1.0", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9", + "yargs-unparser": "^2.0.0" }, "bin": { "_mocha": "bin/_mocha", @@ -6385,10 +6174,14 @@ }, "engines": { "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" } }, "node_modules/mocha/node_modules/argparse": { @@ -6404,27 +6197,16 @@ "balanced-match": "^1.0.0" } }, - "node_modules/mocha/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/mocha/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/mocha/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/mocha/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -6436,6 +6218,48 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/mocha/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==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/mocha/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -6447,10 +6271,24 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/mocha/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==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -6458,59 +6296,99 @@ "node": ">=10" } }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - }, - "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "bin": { - "nanoid": "bin/nanoid.cjs" + "node_modules/mocha/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==", + "dependencies": { + "p-limit": "^3.0.2" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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=" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "node_modules/mocha/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dependencies": { - "whatwg-url": "^5.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "4.x || >=6.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "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/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "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==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" }, "peerDependencies": { "encoding": "^0.1.0" @@ -6547,9 +6425,9 @@ "dev": true }, "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==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "dev": true }, "node_modules/normalize-path": { @@ -6582,14 +6460,17 @@ } }, "node_modules/nwsapi": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", - "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==" + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz", + "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==" }, "node_modules/object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6608,7 +6489,7 @@ "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==", "dependencies": { "wrappy": "1" } @@ -6646,7 +6527,7 @@ "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==", "engines": { "node": ">=0.10.0" } @@ -6666,14 +6547,27 @@ } }, "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==", + "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, "dependencies": { - "p-limit": "^3.0.2" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=10" + "node": ">=8" + } + }, + "node_modules/p-locate/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, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6718,9 +6612,16 @@ } }, "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "dev": true, + "dependencies": { + "entities": "^4.5.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } }, "node_modules/parseurl": { "version": "1.3.3", @@ -6741,7 +6642,7 @@ "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==", "engines": { "node": ">=0.10.0" } @@ -6749,7 +6650,7 @@ "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==", "engines": { "node": ">=4" } @@ -6761,9 +6662,9 @@ "dev": true }, "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": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" }, "node_modules/pathval": { "version": "1.1.1", @@ -6774,9 +6675,9 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -6810,62 +6711,10 @@ "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, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "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, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", "engines": { "node": ">= 0.8.0" } @@ -6930,14 +6779,20 @@ } }, "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.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } }, "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==", "engines": { "node": ">=6" } @@ -6959,11 +6814,11 @@ ] }, "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==", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -6994,9 +6849,9 @@ } }, "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -7008,9 +6863,9 @@ } }, "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/readdirp": { @@ -7046,18 +6901,21 @@ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7092,9 +6950,9 @@ } }, "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", "dev": true, "engines": { "node": ">=10" @@ -7116,6 +6974,7 @@ "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dependencies": { "glob": "^7.1.3" }, @@ -7124,20 +6983,17 @@ } }, "node_modules/run-async": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", - "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", - "dependencies": { - "is-promise": "^2.1.0" - }, + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "engines": { "node": ">=0.12.0" } }, "node_modules/rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dependencies": { "tslib": "^1.9.0" }, @@ -7181,17 +7037,17 @@ } }, "node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -7211,28 +7067,44 @@ "node": ">= 0.8.0" } }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } }, "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dependencies": { "randombytes": "^2.1.0" } }, "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==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" @@ -7246,7 +7118,7 @@ "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==", "dependencies": { "shebang-regex": "^1.0.0" }, @@ -7257,19 +7129,74 @@ "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==", "engines": { "node": ">=0.10.0" } }, "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.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7308,6 +7235,14 @@ "node": ">=6" } }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "engines": { + "node": ">=4" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -7330,7 +7265,7 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, "node_modules/stack-utils": { "version": "2.0.6", @@ -7374,6 +7309,27 @@ "node": ">=10" } }, + "node_modules/string-length/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-length/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -7387,20 +7343,15 @@ "node": ">=8" } }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string-width/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" } }, - "node_modules/strip-ansi": { + "node_modules/string-width/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", @@ -7411,6 +7362,17 @@ "node": ">=8" } }, + "node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -7441,25 +7403,14 @@ } }, "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" + "has-flag": "^3.0.0" }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/supports-color/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -7493,19 +7444,19 @@ "node": ">=6.0.0" } }, - "node_modules/table/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "node_modules/table/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "node_modules/table/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/table/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, "node_modules/table/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -7519,17 +7470,6 @@ "node": ">=6" } }, - "node_modules/table/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -7547,17 +7487,17 @@ "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=" + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "node_modules/tippy": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tippy/-/tippy-0.0.0.tgz", - "integrity": "sha1-1rZWykN8rKZ1GOUT5KGxS+t/xdQ=" + "integrity": "sha512-GOrE/mzoeL4t7Q2Bky+7efOZJKH3W95DZIUez+nUns37jHf8R9PEupuEx9F7HolxX+0fzzpKfas2N+LIlYHXAA==" }, "node_modules/tmp": { "version": "0.0.33", @@ -7576,15 +7516,6 @@ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -7605,9 +7536,9 @@ } }, "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -7630,14 +7561,14 @@ } }, "node_modules/tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "dependencies": { "prelude-ls": "~1.1.2" }, @@ -7646,9 +7577,9 @@ } }, "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "engines": { "node": ">=4" } @@ -7674,9 +7605,9 @@ } }, "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.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "dev": true }, "node_modules/universalify": { @@ -7696,9 +7627,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", "dev": true, "funding": [ { @@ -7715,8 +7646,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -7726,9 +7657,9 @@ } }, "node_modules/uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dependencies": { "punycode": "^2.1.0" } @@ -7745,20 +7676,20 @@ "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "engines": { "node": ">= 0.4.0" } }, "node_modules/v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==" }, "node_modules/v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", @@ -7772,7 +7703,7 @@ "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==", "engines": { "node": ">= 0.8" } @@ -7860,9 +7791,9 @@ } }, "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==" }, "node_modules/wrap-ansi": { "version": "7.0.0", @@ -7880,6 +7811,14 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -7910,10 +7849,21 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/write": { "version": "1.0.3", @@ -7940,9 +7890,9 @@ } }, "node_modules/ws": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz", - "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "engines": { "node": ">=8.3.0" }, @@ -7984,26 +7934,27 @@ "dev": true }, "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.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.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "engines": { "node": ">=10" } @@ -8022,6 +7973,26 @@ "node": ">=10" } }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/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==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", From 81c551f97567a5cb7cfeaf7bf08f234224138edb Mon Sep 17 00:00:00 2001 From: Birm Date: Wed, 22 Jan 2025 22:30:56 -0500 Subject: [PATCH 173/176] style tweaks for landing pr --- apps/landing/landing.html | 2 +- apps/landing/main.css | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/apps/landing/landing.html b/apps/landing/landing.html index 617b69fd3..abfd9074f 100644 --- a/apps/landing/landing.html +++ b/apps/landing/landing.html @@ -72,7 +72,7 @@