From 26bd8da0ec03e881f5dc6af5d0096ebf0f005613 Mon Sep 17 00:00:00 2001 From: Shreeraj Jadhav <shreerajjadhav@gmail.com> Date: Thu, 31 Aug 2023 18:08:06 -0400 Subject: [PATCH 01/31] feat(ResliceRepresentationProxy): add outline to slice geometry Some applications may want to highlight a the slicing polygon geometry with a colored outline (specially to identify a slice across multiple views). Upgrade the representation proxy to allow for optional rendering of such an outline. Default visibility is off. Exposed properties include `outlineColor`, `outlineVisibility`, and `outlineLineWidth`. --- .../example/index.js | 3 +++ .../ResliceRepresentationProxy/index.d.ts | 7 ++++++ .../ResliceRepresentationProxy/index.js | 22 +++++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/Sources/Proxy/Representations/ResliceRepresentationProxy/example/index.js b/Sources/Proxy/Representations/ResliceRepresentationProxy/example/index.js index fcff834ff02..205c3a86f52 100644 --- a/Sources/Proxy/Representations/ResliceRepresentationProxy/example/index.js +++ b/Sources/Proxy/Representations/ResliceRepresentationProxy/example/index.js @@ -174,6 +174,9 @@ imageDataPromise.then((imageData) => { representation2DProxy.setSlabThickness(30); representation2DProxy.setSlabTrapezoidIntegration(1.5); representation2DProxy.setSlabType(SlabTypes.MAX); + representation2DProxy.setOutlineVisibility(true); + representation2DProxy.setOutlineColor([1, 0, 0]); + representation2DProxy.setOutlineLineWidth(4.0); view2DProxy.setFitProps(false); view2DProxy.resetCamera(); diff --git a/Sources/Proxy/Representations/ResliceRepresentationProxy/index.d.ts b/Sources/Proxy/Representations/ResliceRepresentationProxy/index.d.ts index 0bc323dda26..6a8f559d442 100644 --- a/Sources/Proxy/Representations/ResliceRepresentationProxy/index.d.ts +++ b/Sources/Proxy/Representations/ResliceRepresentationProxy/index.d.ts @@ -1,6 +1,7 @@ import type vtkPolyData from '../../../Common/DataModel/PolyData'; import type vtkPlane from '../../../Common/DataModel/Plane'; import vtkAbstractRepresentationProxy from '../../Core/AbstractRepresentationProxy'; +import { RGBColor } from '../../../types'; export interface vtkResliceRepresentationProxy extends vtkAbstractRepresentationProxy { @@ -15,6 +16,12 @@ export interface vtkResliceRepresentationProxy getWindowLevel(): number; setInterpolationType(type: number): boolean; getInterpolationType(): number; + setOutlineLineWidth(lineWidth: number): boolean; + getOutlineLineWidth(): number; + setOutlineColor(color: RGBColor): boolean; + getOutlineColor(): RGBColor; + setOutlineVisibility(visibility: boolean): boolean; + getOutlineVisibility(): boolean; setSlabType(type: number): boolean; getSlabtype(): number; setSlicePlane(plane: vtkPlane): boolean; diff --git a/Sources/Proxy/Representations/ResliceRepresentationProxy/index.js b/Sources/Proxy/Representations/ResliceRepresentationProxy/index.js index dfc6adc0f41..4b1bbb07092 100644 --- a/Sources/Proxy/Representations/ResliceRepresentationProxy/index.js +++ b/Sources/Proxy/Representations/ResliceRepresentationProxy/index.js @@ -1,6 +1,10 @@ import macro from 'vtk.js/Sources/macros'; +import vtkActor from 'vtk.js/Sources/Rendering/Core/Actor'; +import vtkCutter from 'vtk.js/Sources/Filters/Core/Cutter'; +import vtkImageDataOutlineFilter from 'vtk.js/Sources/Filters/General/ImageDataOutlineFilter'; import vtkImageSlice from 'vtk.js/Sources/Rendering/Core/ImageSlice'; import vtkImageResliceMapper from 'vtk.js/Sources/Rendering/Core/ImageResliceMapper'; +import vtkMapper from 'vtk.js/Sources/Rendering/Core/Mapper'; import { SlabTypes } from 'vtk.js/Sources/Rendering/Core/ImageResliceMapper/Constants'; import vtkPlane from 'vtk.js/Sources/Common/DataModel/Plane'; @@ -72,9 +76,21 @@ function vtkResliceRepresentationProxy(publicAPI, model) { model.mapper.setSlicePlane(model.slicePlane); model.mapper.setSlabType(SlabTypes.MAX); + // for the slice polygon outline + model.outline = { + iof: vtkImageDataOutlineFilter.newInstance(), + sof: vtkCutter.newInstance({ cutFunction: model.slicePlane }), + mapper: vtkMapper.newInstance(), + actor: vtkActor.newInstance({ visibility: false }), + }; + model.outline.sof.setInputConnection(model.outline.iof.getOutputPort()); + model.outline.mapper.setInputConnection(model.outline.sof.getOutputPort()); + // connect rendering pipeline model.actor.setMapper(model.mapper); model.actors.push(model.actor); + model.outline.actor.setMapper(model.outline.mapper); + model.actors.push(model.outline.actor); function setInputData(inputDataset) { const state = updateDomains( @@ -91,6 +107,7 @@ function vtkResliceRepresentationProxy(publicAPI, model) { // Keep things updated model.sourceDependencies.push(model.mapper); model.sourceDependencies.push({ setInputData }); + model.sourceDependencies.push(model.outline.iof); // API ---------------------------------------------------------------------- @@ -128,6 +145,8 @@ export function extend(publicAPI, model, initialValues = {}) { vtkResliceRepresentationProxy(publicAPI, model); // Proxyfy + model.outlineActor = model.outline.actor; + model.outlineProperty = model.outline.actor.getProperty(); macro.proxyPropertyMapping(publicAPI, model, { visibility: { modelKey: 'actor', property: 'visibility' }, windowWidth: { modelKey: 'property', property: 'colorWindow' }, @@ -141,6 +160,9 @@ export function extend(publicAPI, model, initialValues = {}) { modelKey: 'mapper', property: 'slabTrapezoidIntegration', }, + outlineVisibility: { modelKey: 'outlineActor', property: 'visibility' }, + outlineColor: { modelKey: 'outlineProperty', property: 'color' }, + outlineLineWidth: { modelKey: 'outlineProperty', property: 'lineWidth' }, }); } From 7a38aafd77ee295047a93d679455a4f200fbdeed Mon Sep 17 00:00:00 2001 From: Julien Finet <julien.finet@kitware.com> Date: Sun, 27 Aug 2023 18:15:50 +0200 Subject: [PATCH 02/31] docs(rendering): add screenshots to the example gallery Issue #2890 --- .../content/docs/gallery/CellPicker.jpg | Bin 0 -> 6932 bytes .../content/docs/gallery/Glyph3DMapper.jpg | Bin 0 -> 10602 bytes .../content/docs/gallery/HardwareSelector.jpg | Bin 0 -> 15758 bytes .../content/docs/gallery/ImageCPRMapper.jpg | Bin 0 -> 26235 bytes .../content/docs/gallery/ImageMapper.jpg | Bin 0 -> 3947 bytes .../docs/gallery/ImageResliceMapper.gif | Bin 0 -> 57014 bytes .../content/docs/gallery/PointPicker.jpg | Bin 0 -> 6105 bytes .../content/docs/gallery/ScalarBarActor.jpg | Bin 0 -> 23723 bytes .../content/docs/gallery/SphereMapper.jpg | Bin 0 -> 19335 bytes .../content/docs/gallery/StickMapper.jpg | Bin 0 -> 24183 bytes .../content/docs/gallery/SurfaceLICMapper.jpg | Bin 0 -> 29293 bytes .../content/docs/gallery/VolumeMapper.jpg | Bin 0 -> 18823 bytes Documentation/content/examples/index.md | 38 ++++++++++++++++++ 13 files changed, 38 insertions(+) create mode 100644 Documentation/content/docs/gallery/CellPicker.jpg create mode 100644 Documentation/content/docs/gallery/Glyph3DMapper.jpg create mode 100644 Documentation/content/docs/gallery/HardwareSelector.jpg create mode 100644 Documentation/content/docs/gallery/ImageCPRMapper.jpg create mode 100644 Documentation/content/docs/gallery/ImageMapper.jpg create mode 100644 Documentation/content/docs/gallery/ImageResliceMapper.gif create mode 100644 Documentation/content/docs/gallery/PointPicker.jpg create mode 100644 Documentation/content/docs/gallery/ScalarBarActor.jpg create mode 100644 Documentation/content/docs/gallery/SphereMapper.jpg create mode 100644 Documentation/content/docs/gallery/StickMapper.jpg create mode 100644 Documentation/content/docs/gallery/SurfaceLICMapper.jpg create mode 100644 Documentation/content/docs/gallery/VolumeMapper.jpg diff --git a/Documentation/content/docs/gallery/CellPicker.jpg b/Documentation/content/docs/gallery/CellPicker.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0a446a45439878cbaef036773bdfe25339b99350 GIT binary patch literal 6932 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 literal 0 HcmV?d00001 diff --git a/Documentation/content/docs/gallery/Glyph3DMapper.jpg b/Documentation/content/docs/gallery/Glyph3DMapper.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2bd8940a08bb2c0ed1f171e4d19622bcf2099c2c GIT binary patch literal 10602 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 literal 0 HcmV?d00001 diff --git a/Documentation/content/docs/gallery/HardwareSelector.jpg b/Documentation/content/docs/gallery/HardwareSelector.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f11bfa3f3106b077cbcb32d59e00fd08c4367a36 GIT binary patch literal 15758 zcmb`t1yo$ivM@X_XwboBAOr~s?ykW-I1C;jI1KItNYKCphF}vMf(4hs2@nDySa1(6 zg9eu%Kj++g?mPc`@4mObZ+$&$)tcSa)m6K9RaaMa-A&&u0f<!<RTKeeXaE4({SR<= z3wWxeqR8N3>*)|+Ys28?%3$y11@#o;=C%#6b9l*R?dHP$59Hk(Kn{Qj#K6D+V%`Hx zOiV0nd>riiMudlliw`0qApsGAK%^94N>VZ!auA5>5fu#`-NT0uNhukb8R?n9^bhI( zm;~*f6dMbh5C?~lo(x1r|9{->IshOXG#<1nAQ~e89fSr1q1|-@=>B*kOte2<?XPw( zEfzKoIvVahT8kKf1_Yv`V`AXrVFNLMe=Gnx5Cap0^@xNQn^acYij2`c42PVOPshLu zo>Vh3%ET`q{7hF*-#f9EO76w`-0DsWW_cEmyk*a>U-uJI-*W=~o!kA4==W=LkKzH{ z&y9`-M907cV*W!OG;|;cgX9sftTrhbpB1BfZs#vdrbPZ1VI#}cce4O|;5`Kh2m(k0 zcI%8Nl_{Ek_mm^&ia)X0D=5^I!%E{T87bYnjFw~xi0J)YwO;Wi1oamST4S{7w>4TO z*9aM9(9x!gSOa`;e2uBOu&FQzI>fO;-Wm=2eeQ!M4}Q#|dN`SGvc`4I-x>q6Orl=9 zeY`7k>^{Kl4f$ZuX%C06Kex_}86<8_UK0$*k`kqDT<Pz#BjR0-|6-fhQx`w9Zi=#Q z?7vVhDvm}|-s
FT8y3fo9*aP<&<!s-3Eu%tL)bVPp)`a|<OMK6OdxrOmVgL7zR z>rW25gq80EZ{8A)S7z1h*%sIHsg#yD-T?@^SfbOeH^i}j64Nzdivq0E*eMD=81*?9 zgqOet^i;?i*lO{^_WWUnVkAFyf8o;7dURpqRnMvr)Wtp?b7u@6Bkv(%tSk$C$m(Re zQN0{CY)8Sv`&r7*Xs9(LC(9t(-ie{mR?x|sr>`5uCWgEeZyiHk`whGDy_Qg@te1zx z){hf5Xr51`tri9XEvUkMzW1u|h%9q1uh8x)0)|xcB~lE<E~UvQ#>Z0R*1py=h&?yQ zZvt{+BxaGu@sNlzOmF4xkw4dlIG-d<YH2f%@KJ4~utupb4Wx=Q4KfR4i{nw|z%SLx z%ybRdzVfqu(lB1~L^#|5u-C2`fJqDSz1dmgv}hC+E&XMS#jZIz1|zc1XP+$a+mh5! z1zci8@{A?yqw^`^4Ec2E??D}7Dh<+2J8`^5+6}6{O^%KA%+PEk?1nS<gV9(zlClHe z6NmJND=D2_lSrRFKDq-Ows|a)wu8)+b{nr3P3{0O!dGslNaWHLcyIkYW)Y|89%%vc z(GMo5*b~r5VGnjrY_zR#=3=-A$HFncDQXMZt-Qj%dAo3CY@(|<+0Uc|mkkBWJbdl= zZfEl*C|l&Fm^=8dQ89axJLk5qen{^cm<8PdDw8%J){9-<0W4UDq#f}V9S$s7*l)w` z051Zy0&Zq3PKbV!r&>twtX=l*X|}(b>N|cn8-6|;IJN)%4v_O|I&19bXCK2G;O$r2 zso|?jDfi#HmD#69L91suZD(1hziU2kJv?KrJFi?wz5~eI0jiC?k8j(xGD608Htt1} zxG5$F>FIvoa-`<a5&l4rXUgBcv`-0R4Pq?dUTZE)?}i7#@Zla>X=ENmt(q4KBALHp zFQTOm#h1xee7o3J7=CvjywSa1q{`^m2lwlwc~9BSNaW@`K)@%Y7)AIv6&)DmH_W@z zdQU<w?cFpkvn}Quz5O&O7Tq$<U4Wz$E)EHj#WeO8Y;Fk<y@q?<e3gsB{pI|DNH_E( znHKaH(@%zKx=Or}rIg**9?+g3*)^r;8Eu{aRgk~P|9>*y;K?g&h~q?u=F~?VPSQA1 zzX2(;eX=fitbzv=IgTPhTaOUSJ*e~P&lrDhU~uX&s^6<iO3e>hW%BI8k?7fU9S0%l zT$~z5#+nPoN*|z@;zxDVfc^QNH>><#!cB#N>9niXZxI^SMQl4cd4)~5ESZDOHuAUV zn*vScTs^>Orz+f`Zcn{RAtyYiZT1TCo-F@@*ecQE`b^_cOUb4+fDfSukFWORf}mra zBMkyk`rW?7Hb{_6Z$AV0l@v_J6gHpH+QN|7uJz(Us-%S^=T+YPoDDaRX~`2>_Ckj2 zCziexB0jwwKIbKp;>D}YhEsEPMZuE6n7SoJ*0O=P_%`uSKdLWjXNei$HEUbP8)56_ z`E4#<)0YSbN7RnR_)xE4jr_c#Vz09gz2nuQYu(Hz#J5lQ`ua&K67g{NUPGqWvYufJ zUvqQtodI2VYEtDzjoVE2&R{|*9qP^XrA{WJTcKlnmX5l!cdC8k{EuozOl^v7bO zR<MVe%h824C5_f-liEd-;x^ILU%#hUgDA7)B=$4GPohJkqXl|vR*!?-ZkZQRZ634R zTDH9#SBuvwpT`2$>l?6tY`QTra(yrG#$NZj12Dh7a?$>-^gP5+>quF;Z~~m5936fC zasL3}&wgKAStNFzqQBFjT<jgah7lE$1;{WmqBAo53E<-v?{$JAv$rv63hF7>$+906 zU4<zYkhB#vjmr`xeWTXZ$Vht$)}UvqFX|@NcYEAm7@{BzSAW%50$pZps&SUo1di&x zcpTyQ9fD9%7ku7Mxym47&D2US?-!p;9<1V79R5g)!B&Io6^LiW{*bO*iXpu8Qn0-t z;ORBoZCtMrntk)nS#Y}bOHq#Y8$1)wF0x^oRKw8{(TB8bY_cF?5C{!K91@Yocue<3 z0k8Z(NfTufkE-&QD|xZ%?BBthfTd+g-6z?RgD|p%jd|x5wrY<*uPLl>iaUK@UqjIp z75{aF^fNKXu}PeVea}}_{rPPdL9!8pVLIpJEL#blZmM(TNy&pwu3jQMO>xgzkK7NV zg6&2Nf-I%0+JJX)$`~%#xAS_|gixjd)=8dl!eiSBVYR1%0)k`u{jTK^Bf}g@pWw>* z_D*VM2c{d1;VMkxOP06`b`FhGrp{wJbBp3nx7e-UhyO4_JtDC7l`H@?uxx84a%ztY z);^!=#eh>;Wz=VosM7ReS&AekGAT2oRnJ=)CYk(@9372j%PDbt&l4q>Pa;p(Jqd@N z6M~oMI<ZrrAfZ5lS+RajtK8yzm-g=O4-)aqoa;$QK?Jm`5gA0HBIn(N6QZA<m_eJK z>%NsZ77{g<PEne;#ohHW;@iXq;I4>ZGr5kII|$a|AXw*0w^^)TTiI|D!l92~hT>64 z$~#yydfpoaEfA+triMPCHLTOv-5yS|I@xX9MYuZnXp`wnHHLyvQmas(iLAB;lbN=C zQ3JNpMBjydcdIAyF^tl^&JJwEY89&3+fZY)^>j6ZzrtC==>q#hH(*GDzt7rWPu9b= zT!<~27Bb`VV~WoRLbdg!V9C=Qw-dOC&ZA67#f;x)$|abv-S1Mt^{KeDpd|V0poHv5 z+83y2|F9@M8pbR~puz&XtF~!wqX<nb+xgh7=9Z}u&~y}{vO$+1%Mj-w3Vb9ZFHd7V z<9^xRa0ei9JNen<;?4SZBb$4@<=K!3qO{c!dwtaW3NCviRJ_hqEX`hY$^3B45vI&6 zFOMOAKMRJu?4#i8VD4{AS7Ayecn7Pf5GCyK2a*hbD(Rm<#gY5_Qz<#EQ}lQp$lIe> zt%R`~nS34GKamzXrrQi}bX)lfKb-OtK7L1WR(BCjZo$$pW%*-xE$QJto2iJ_Yn$nS z%y%l<(FpQVROwTeZO7aotsdxd9PF1rXhld*e~)FT5Jy2GELouGTK-E+{@0=pTG5XT zj!e8=PjoMtdw<8K5|S>>2+<dzq1Z59u+@7_kR@{!mPY*g-UUos4(H>)j%Ij0`=Foz z1j62eaB-YNP^7C07K3&RTHY0jQUdzdlfe^7>$|8a!ZE$lN3nj);eP2HIs)~(fgV%9 zY7C!s_jk=x%Goq*w@y;qf#qH?hk2D7wfjZ=(>qZX9|*Gh@{5je)U_L>cs$f_FbGKp zEJ=iRS=)4y)Qy+}fBrV5e%0Q=@UZhVDC$CD@!6WizqpS7O_bE?DZ<Kn``-$bsYr;Q zV}4osFg~0&dK%L63qJ`-wQ!B?@fqIvG6Ac75ibfa5@+-4S9suX#@^*+Z<`0vzm?Cl z?_=Fb29}xv`&;@M8Z}`;ClMOYpESTAB|!+vs&?Tq-_#EUZKje%RkfBEA$aL`fVw3c zKQ5WSN%kM&UIx-Zcb_;T8%5&0wCjgF!JBT~E5rUt8Cmq5)1?z8_Ku&J%Ca&mvqTn2 z=~eoTuHA)yK&2B*-S_K9S$kqXBZix^cFY)q>_1(W{Vq8=6I-6q(|dpN{8X<BDP+e? zaO57BG;s8=&$Qyd{Yc|~@ZS?KHU78LwMeEu{IK)t@bMi$V<%-&spPb$bbMSrx82;X zyvQb8v3k!Qt%I1bgI@j}q?aPj3t^~JFtjGG;KlqudYEuE4HL<xHd!~X6|8STn+Yla z&kow8X~2Q8opLk9JIy)k^1Sj=zi&jgdMs}?o$HRo&pfs1DCUhFCr|WibX0VDu-ygY zxIC5kcG2Ki!o2~rl43g_G;>Fv!4}j}!?eHxXS+zw&OVV2aZ5rc!2|m~5T3juf(}HH z{5NNo(0(hGx&{rF$sfglA?l@0gNl&Imoh9;UKQfJIW|dKc>I$$^t!WUd7Cz+<(08K zVpC!nk)YX)4E(UI9t!R}XT!I9>t!|FwpnT3m6jr__Tp8(sg|MQlb7vY`9%(1^2ph= zIQ={(>W^@~8DKSxWE73IY{mo9FwO}gC3I9c?d4(x*lYr8JA)wl|GW8vRCH%HwoP;` zIDD?`@avC(-G{eWM4~@4&{oJTob9)S>PBygU#;tfqWFJK?oS5zO0fw&{r4nV&c$0E za|+zc(vBr)qXCeG*<sDiuZnsag7QNMf14B~aMOXiyA<5loYZ`E{#Zkszc9<NpQ*v~ z=ZcEtTITm((f1p`y>tEV0R}ARx*~fm;gv?IsPZ<^chs#4_Q`BM{2x1+me(t7pN|t~ zmt_gKJ959K`#PW!M}b0%Qh0VJzYWVCSLyV6B4st6nbWba_<~k;F)XcF>z!QVxsnZn z?c|JA6j+=izD7QoOHBxr*<-pVLRGN4&Kjqj8|{-Ne&47c9Up5JYM@=BL`!OT(Vujq zY~D`83!?Z)@*hW;zkPiyg^{z0vXRs=&yR03d#m`2j?fsu;ka|+Sx#0v;+ja5P%PcE zIUBw4YM$mNSqELxOz8}kF5hgO=(r2HA%&%?;(|{Rio#s(B2J$DthW@q4JV}n5pPg) zr!{#gn;5c@T<CJh4o>LwYnZ>W$65Q%dcej0=H)6JHygj411=10DzFSE#9{AhZkcRe z^(w6hl%vyTFW>}6YC_8m(he77L1f{K4FB%L#hCc9UUln(wh7Y{hv;uX9fuOH!d?&g z7U26Pd<wKxlHHhn>iOgj@Vx|WcsS6c#TYez5kX5<vU^PR?{uknOJYvpvCU0s0k#Ut z$=69zJe!<aTVR4;%rWLK#bE8uoDi65EYX&@?+&={Hq7{^zUYnoA?<&h6#u(_h}OBC zO+=Q_lTzEbQQ0UyRuQn`52#G9pzWUi*tv__4^fkv!rXWQTlqozX}}TS1i#YU(D1k3 z9YFb@p26U(6!ja~um#SVFq8I~ya6UZWdC$i`l`TpHtS!b#AAQ{6Pq;qsc3(8F~=i+ z-TPI&)(Pyl?)U9GfMYg_?ySgNJa4nbVNgxUk0M~^4dHPbgO4&3HZ^$CdyKHHd=gn2 z=uIBEN=voTtkkEzkqDE)w>g;Wv!bJ$dpwS)NSV@x7ROTKax?0}v4pTCn@qS1D`4eU z)*3=Pjuj;~iO|Ekp%r@E&JF+l+MiB`Od$sGsKU0==8(PeD{R(!L#>7S&ob*u{~=HE z#O;LisQ4a4ytHLpJxCv_#18I7!T=kM#Ij4Y#J-q{m0I^Ec-}PRzG14uI%)Wx`dkii z%Siw&_10(K2+t>6vG#z-^x$kfi$`f064;i+kBWI>sM{HIECHj3RG4aiRI}1kB+XOG zZVg2V+<cKoB9V6O6-JE%VHeA+!7V(Lcqgk3dgZifW7*nfKkaWSTl9aNhHJ5=k3<p9 zgVD<={W5zd{<L}<VJFY^Bev3*m4c4~&(S!dSf(v81oK(C>5x>|=@0t*QBPXuY=y~Q z-vJ(f%pE?d|4`qal(a%-%)BZp?vnJ4F`meqbnt#-DNa86wwfxs&z!Bo-o==p4ywj* z$?TfF!8*~^{<J;g-`dMe@g%cKl&};kb=o#~AeGy$JTJ-PrRF?g@KVFJC_H>miP%;e zC}+%0BNRV<2aucDGA&Q3M<$VHiqesP{T^F0XCa9hEb;#IxkQao7SBfFOoVH5j=VfN zPLC`#H8oB_Jr12W<u}Xw7$)bxQ`rC1m%a5%m(E&-t%783)>O{U3Q*telCdi*8HJc$ z5bfCxmd5agG%nZ%m2c<RJQGTZ?}PR+!-6`#Paquo^^4u~&JYY^9KC>+B$*AZT-zI_ z6EnY2if{Y+f-fpaLyu%J)7RsYkOqNY?U;Qb!iDYf3c1=KViz~-a-r0cmMNjzZ_Mun zaOR$1KtWA_i#0M7k=`VVz4a<k)jV#pYgEQ>#S4%Wi4AN7rYOqvc+{Kn_A&1|bGpAz zpzTr?PY{L4F>_`c{%E_U<8TYnCtU-b!lK^n^TL5K^H<LX117m!R1f(p1}&HtnPG6H zRLQlbAy#I%hl&MpI4(BBCI)>sMDHK_KA}*r&*gzUW_>fkR$;#3M9rZeOxamm+|tKe z8~Z10<2?KMBD2^ZI3xYPa17umeb5!twdCfw@Q_$L43Py(VS^|e<AVhFM5gBj%fX>| zQl@Q^xsFrg`GrOKA7fMC6ml3E_%I=10w*N~^s?w0F~N5lnUp$Cj@YK0gSL`qST96H zac8AvH*enAvGf_Tv9-7aosf?o=}yQT^}X=>f><6P{wy<DjjGMt)^K^Y6VX;y)ZQ`N z*%v1Sm6p8&{0gKDG7bpTif}P&!u>;GD*jLy@BdJkMo$cO@9II;;?HynM^sWd+OZqU z`s;2H^Jr~)ps%5xS)jP9iJHF!$bZwAZvsDKCJ^wji8FQr{a|(*UNNJ701<#h7%B>Y z4Nb7_>y8S4rMUxSKK!Y_Q`uBv6<sUsk(Jo~Wa@hB_9*cEN&KPW=S`*aq>A>9kCBW6 zH{SykFY+yp^MCjKja0MwHzI}VE&usb6zxj<tD$!XtW8?Vi)2o>Ua$PccJ>{OUT_T0 z7Zte03f=+4q+7GrC7FV>D=$ZG*8VHguDn2I2TxNRLQaugh6LF|4A8bNMa<#jkMB<) zJGI_lachNy^=+0beP~SLJH=OPCy_;3^#PM+%$>dsx+A0R)s>tXl0(!~3<RM=q8S&Q ztVI>4DePY*CnGwvfHlA-5qirj1N~7VmDF-uS#nH0?Xj_{@TDnAN>G0gKK_2A1zq7G zPo28MYew#Ofe<uL#Qaeo@Mbc?Lfem|TN9%?X&y{jM{THRo3v26$62sbT0x8yvr7si z{nFSNvl%KQ0zQmr7Q8t(cPPi^pu{tK633&o&N~DiC7dDXV9I8sl$hc2_6e+)9E#|y z9c$qnW)vk3!ZD6)Ln)qrDhJJOTfwrh63l5<R#rp_<$&x$>bk;<d55k8_!)4`wTz^d z=(no>@N%;YSSR}0Wo$EktxC*7_q){Eb{<jN!{r01N(K5iV*E77`c$X+_@e5ro7v6C z=8qlwBS{HAkGJXROyqyt(sAg$hwFU7;JjCE(cE(THGnDKI%*HkfRfB>{KTtTXY|=O z%b486o}T4Dkow6)90fNOL<J8W{cTzIpur5k4TKfE^dxGM&Kji>f=kxlXV-V0yxx;F zBmXZWpF6=mh;bE6)^RnOAif9g;$MR^K8P!AN!({Qch~zo^uI^`q4flRXg$wAw#j>~ z=ej=nt~I-KC3{wGJ!Yq5ka=%C@y&TDS-*k2;D|kf3_|r+*Yrb5t`J^Z)SeVsy(v7l z-kVc_z-HXrUF_+yzfGL4P$Ss2xZLrdxuri7On(8fqUprT+S1#n!s9RI)ii&TNDFye ze0_WsXA<LoDOKYA4xN$huK@ZX-GNq4<<ONfV>o_y$4{h6K?ts>J3>bD=Hg*rNVNFR zY*~w}#9Kyb_0N-uKAoqZ+=xo)&tDZZNObfd5UqA4R@C+f?rS5r?GJ|a%opk8T!f}b z^&gLZp9kS-#mq&Y*`*4as5%%R3tH<()s-OUA|h~{g&`)Nx;RgUj8y>LZ`;AKS&2`O zJu;T@^C)E-?uPD>L@?lW*l<j@3(`M9)S9iFKHlq4P2!-qoD;0@wMPfQkR1R9^!O)k znedIh2uHl^<TnOph~#*M6Q9G(ZREiT{*)w8SzT=-wI@Ze=8TT%7)$udhG@J4wJQcy zXD4lD4UrFpaoyZNWnrdkxQ%)O5~1_+@mgAzpU0B0geZ2%WGQIcjbbGThSCEo^H#OC zg2FXv_P%vUgdKJ*)XX_-<~Fn)K^CUkr9SaXMA?M<u?`vebQ11O`&N=8`30?+h}(@2 zqbt__CDz#)SZzgEq5#52gPWl~+N8Y8oWgG7$>Tq5kD_^VBGZ@WfpP1D^YM{B!y!C1 z(T`*OOaw@Tlz;L~39Nz7!pY(fv=sE11N{i3aBMP^K80w4Wug5zB2H<$VQ^VYOF?3N z2eEt>e&%3GYSIo_0CCXDNIQ6}8nCqK9FBAFPU4~_$>OE4_LJ}|l`I)2Dsz=z7<YiK zFINmDS*I*NMQt+2>Q{0^NS0_;WT*GymNgt9Tg)R96Lq6eJy&+nMxQn7aS!(h(5_zT zc7PHh?WiOtu|11q>Q$$~utQ8dS)`o+|JY`k9jOwkibT>n?GB*5(keIzC3L{>A@*p% z9M+t3syU|Aesm*pw%F}cCU%<Vn8$@k^UhEAG7-6g_(+wH>n2KZXh^2TvegUJ3k-20 z_@Gc_DyC7w)f;_cxky<I--trwTR$CZtrtq6KpQAsC<*%S$^NU}>y=i<#DntG(|4C& z#b#a^-2pNT-^l)-cgQfq)nZudlHmVJ)&6Bke_Gf7g*l1ee1nu_J*VyE<>R9ubn{23 z6J1K7g~0war!+*V-Gqfp9i!9}hZ%v<%@p-fYsvdaeI_};q|hfOzS2uD%b#jC9jGDK z7X<TvRFDYY6#pOtWR4$_p|vS5w?U3ge$`TycOOzt!P2Wr6^5!0MdWi~TZ+Vd>p1A9 zfHx>lL*(P_?R`ypaKAt%o35EWdp7-Zi2Y1pYL+HT;d$CB?k*b5zOQu+wz6o9sU7fb zk};OhvD6fCm!X~C^i)?C+_E6X%tf&kDMrvk(VS?h+-~9@9ljhsOO^pxiu!xx;OC|& zF0%LUg$|xL<??HOA#gIEZ)~g{TK1=cGPGa=EG;n&9=oflUKQ^RH1&7c7dhD#!=9XB zNDfLlh*HxP)S=_djeQH;j76l^>qZF-ZI_r|ER|TlJtMM*^W1{5`8lzvMOo2Y)R_6S z=TMkuFb~Hyr&VtrXMJ>@>nMB}t_&a)XGnIDR=2otK;Mw7q~^iQj25OhuwP_V%9)=6 zKdI}i5iSxlpCDvd**bZ;pMqGIWxjE)2gz^6cz*QK@NyOL@Bi|Xi5Z{xm!|Ao|08R9 z>jtD4TaT`u>@%Y!tF)-@bLAD8Z-o9pOP}ckRs4|UXUn7xs0Gc-MG(R<dLjBHr=;mX zVk3j(D%5w8wUL9}V5Vew^&<>@Q(oQGDbjT8;g-lMW@ki&12*d$LM2xFdFz;y23!WG z53WJUJ)7+P^uR_V{J7mtUqZ7ufGm)q?B$K}z_1Ds|BbpsQ86}tV8j!S58_!IVQ@5z z4AMSq;cfp?7d=WRn=<#Jl4UPf;LFd^?g7!%^sws^tru^)xH6pML-1^E4igkT(=uMo zW3r4UBl8O39^YOUu*TJwcQ{C}bPx_mwE7&=T^OBL7e#yReWW77^>(mgt>u8;0h0Oo znOfP(#>uHAmE(KsqaLFA6!aaMOj32#r(ivemUjRtHU8il?E~{M)Hgi~Ii1D*<1L0_ znx5mLIes-)GK^KrU!nnE3Zj4?Ve6xFg~#o9Rk)`|QdN@dITrZk!(dln1H-b?1Z2w* zcZb2={pRsy(G6MmfNxm;6s>;O!XsOK@ws_F%{#yyz|Yn=yxCy&qg9qL?>n0~rk|=m zl#cHJC`-t@d;@71#IK<6RiMPiLrq~k1yRz6I!RhDixhbM#tfZ|A3J(7Ti){VD4)Wt z<T7D5Zxvi9eiih*kvI5f%J|Q`@qYrc6H?vp1~Uy0Roe3@Rv^BA_n^alr)p(>AdoiW zKV$HVgMeVn5ObqNZIf~?f~?1VVEu}S&@lK2@3B(RTl#RrZQ3@}3Hhb3jm-&SXk{kf z&XC0>sj4Yw7iEgI+08H?0Evo42rHOyit==Q5t932ogz2ciVfV9*qwI^+ctRsN3=uy zt>EI`@}7oRVz?Liu@p*;JG=?!EfKwMvTU+RD+G2^igRto<j8tJ8oZXSeiskN>)#Nb zqpwKP?MT*tRRP!ShL1?<C73Ocf;ZA;n2!Wfm2Vkw@Cng!!Ww%NzcCltI=dUF&`FNs zva^sSKD&LovaLw7H0!6#0XS?VQM{mHwT*W)88_HAFWC!9)M+V=q)<Hv97kEYOAb3h zpmJKcgsdKXW71|?Dq7Dj){8!VboMUH9YpxErWnot!WfP(@Q&zQ;%%Zu4;1=(I+zEE z)WX9khf}}VwVubNvL|!^YckX|xPSd7PJmVr`o;KD=|W&IprXFnD9k_Ci3&WDunWLK z19MJ;LjgV0CZw8%x~9eXFyZQI)sBrC!^Y?Z+At@xt|`$02TrJc$D<sQ6=fQ+#eyeG zla+0XSACAmi9@j&wO~H*W_0E+LQUTO2HU1O{fdAGj()6>mQVXP((05CNnvOraqj4V zK2DY|Od_HHz9=2Uv4XC#Yk7GrGPSSNMBD@jg!qLzDXt&*`E--eC@vMV&r=4Jay>{L z>($m)5a4SHZEemG5$%A>V8#t8V^ejd<rR5a*CSP_)<Ef{xVC!nfw&m-ROV_64BRur zOo<{u(cb;`DWRA`CtH2mbOmkpi&+#tXL3hfD!M0o9}{yp|2q<zu>w`!K63RDG2?(K zF$2mabY_CYg0Qd_BP}jh$kg<89|P*Qs?w7$bKaKF!v*KeAO>qTTJ>q*mnx%Co>8Va zilu|d&8Shc`TC;jJ3y>?wm^}Q#DPnimL22s5O^LV`mc+8-}d;TQS`HD&IJYagZ+*Z z5^~BpMyb<%w<1h4DSP9C0{fGMVyR{Ih1YN2h5ml7IEk8d%#ly*K8~|#z`l%lvuz%| zm&)~&!J#N^AKWE;5?_0r;%^-MvCzRQq71k!0=$mg!5P2dfb3ZfM6Bew_V56&hwaKC zEsHj4`rGDj1@&{9mF*WS05?w*O|jql-vKzvXpGh(4Hekwz;Pn?p%TOSeRjqUlK)Xd z+ixZIL6He+c&iJ#it?3Sj|lH)hJQn`1QrCsOgBkXPLi5Ts!w+gMTgqxwLxa+|1Mod zSaQZ3;=KJiR^ybafn==xZ&q&}qE%{U-4Pud^Unk<c5mR=7W*-!o{*~eDYB`NS5L@3 zOBp+25TS!J9L75SSu^v`)3f+qqv>v52JsBUHi(-^f}2$3^_IlDFt(FQJrt>!EkdfT zmMU+VPsmOQKeqrYQc9`Ozt<`T0PMKn*pGz7esX}LEY{rhM;`cJWyX1vsKHo8!ezxR z<LD4*3-)bj0mV)x<a)Lfphl$fynn)y>Das`SjmloN7%$*#EiJWtNxu}4Gx~nJg!&+ zcF#pe=Z=V3I8lasSbQ?cG)V7My|_sMuQ<oLP_SAcNm9<z(%H5g%1p>;%I6{5(TN5z zefj|tsoeaI{bPYuAT1i9z;aa-pF|wVX45biw7&{0Jfu-a$wNQ)HCS#KztV+H&CmR2 zX>NgF%@J5(3Ecy*hymWX<!Y)=xp4d-DcPlBqOYqjzsjMb*NrD<`U3}TsR5&IcOixa z<5fa0foXNGq}Op&KP_a|V@mx@NEmuZv6fmz3DCq@!KOC+F`|3Pf3+<!@@(UCM1pti zK(D*En-gSXpf@aZ!**tQGydJITAOH5LtBIY8@ErzR-Rj?&|ddMvPK62XvZ>?*3Jrf zc1qd~i?0t)F)Bog{y=;h(0qT&>|Yjtn3328kzue2n^l%IU&YAa^424*flO94x5G2* z6lp@_)gG~YVaQ0VW?plyo?Gxbl%FwXVtX==7BgV)rjOyuOo0waQA!HkMSGof>TaR0 z1XNp!6)ivI+5rb;8E+IrG1l{BXukFJc!r8Dp?gMdw|pwWufav^W=r#7+YT~E3e;iM z$20rK_qhXHnh63&>qiymHUiBj)fzp`nw;Kdm}2=a4|Ot$daCT=QJe_@_A~2}vV6#w z*RE(*?*Mo|%VPuE2u7DsV27tv7#cky+1-3vIdmO!%%8Gfv`N4B+AKP5FhJSdYKy9O zcia#J_hbbAWPOPC?p*Jor*tkcJ@dN4umq2Atb;MtfjgRl{x*%#(KHPzdT&iSees42 zKj!q5aBXR1iTtCPC!>S6hO+&>XVX;*rT2Jk4dbPwb-~+?rEKH*s}zEu$&*9M2a3)9 zM5u3?l5**%%j)vO_OzNUIyy4FVhrYhg&_$}`kE>il~FxtloG~*bqg)wAbqN*)W=Wz z=R5IzYlGr%J!@q<=yR*I<=6IAB-ibW=<T+3+;+3t9b4*0hMYFNv>P+(-^9Hm9VjO8 zP!VN5e)3kqiTqc=Q1}09PadFj5q-mV2Y@JCQT*xJy=F@n4Dsi+sk+H^yGAwrE^Pf* z){!bq^mq*qcMN`lXb^+qMU*DyCOTv3d2UY;;!#|W!eG|{WU!P89?_BNV+u9W*RR#y zs%tqss=!WzQe!NI&%cf%fn>Ft*hW^gV^xnn>wti9!5xcK2axT#fK=^m90m2~BSRYr zY){kVVtP8ih`&31Fdto}Iq}x3XY)&L*;L`UKC*x`1)I0b39@q5=sy7GgKDnv?rrdg zqv=e(9TYig-e@Zr5aCxbU?AlUjg0Eqg{tB(lMXXY<fDxvi<*+U*d2Tcya-m7srRhr zedBzV!U;FJ4o1zoQjG1d!@jl|S(0XUtcQa~mG}FYeaO2e5NFBfgl~gKD`=boG4*!` z@$xYTok9I^peWusWxf?)*xupyckp96mi3`Gx?ecr2)Rgx><Aq?8HK`stl-R(@QfOy zBAvF_i*sCb9af>7o~y)FRpQYkG~g+Evu?Y_PvS!@St2S&kR%`x9*taD7Y>sp&kvpu zB0I;j0a<>~daavSOhTtN7%paX<biq_RN?7)V5)^DgRvQrlhloE1v$&B$=8?eduqY% zKqY6J;Y{-*cohoR69HJ-Y_ej?ZZ*fo>w0`T>+(h7Af|9u=b}lJa7BiAMDdB9O?&<N zs)c72E~G?@MKc)(kU$@KOJwN(tGv9x>@1w>B-w>PK(-p0+*y7I$hgRe+iZIlNd748 zq=0SN-|Ayt`n6oGh}#{YX28}G&Z@Xvi;x|5r!uO1Ha^iDuo+m&6+|?fTtF}nY>dHf zd3j_wY@8lXma4wsI$jsrXJ#NWv_xXMx&@wO@}KN}DMr<8UA+%zyuyC8^S!I|lU?Ro zY76te%6<0Upx|JbMM30PT3h(c!jvo7yC(f{`aWxYchVhTs>CSiv&4Iay!zM+9lIBd z?Elv7{e_q{BROfk!7MDS#lv&zPSz?WLF7||HSBvtv^o!rqt233S6;swe%RP_N-6q9 zCG&g0#~&861{SddcL0fyl~)eNAy0&_4}ZVS)>i7so!|<;9j&>3?smC)PWoH5|4{bx z=DT^*tC(L;yw!3(*Oh%HqrLUJ>HgOsN~ye{2Xs1H+<WZYU$O20S<>#(e~tP&T%3&_ zrPqw}o5i+A8ijRq(|GfB=vTBAp|yF>q4IfRw-A@R`yD{Xus_s2r<eevrPPmV^S-Ln zube<mpIPuwjkyx760<v-Zc2Q>>cEKAlK|zPYdbWdEz8tsB913gokcqBJ{OJ#Q3Y|< zKKFK4-DswH{g7%pfiAARx9}6DEt2|$e<EDuSK}sYkWZQKM>T@)_2b+*4eif=+*b8q zyNccc7^{_pvDw64c)QVLOJ9BM-Lx9yhuP__>R#^;mb^1jXR)3=v-1_~h`UOuLBU~9 zxa#!PS9aJQ`O^FQ7Xe4Ajf)fvE|*7N!ax4#6fZTEd&scD1f;?{Q0ZB;tJN`>ntkf( z>AeA9aYrlf6u0!l3~!yj7AcpGMNZ}q^t7J;ZrzobE`%(nFMM*SxbLZNzXQB#p36J< zy~n9BCB(DUpEgRxe;-bL79<*bbfo6Z!h`^$*0_o2!t$x^0Bh3lz5vGZqP8EChya}O z5nW}V^&9wDH!ka|XT1TsO-7E~?UQE4P@-IBY~9Gqc^Ue#g^1zDDr<Lu=jDun*6{<u z_x!Z<G}Sz$OBEOcb%c3$NPk}ilz7RiS|RnPM3;~b7*>t*&~VRe@EsuU_bB=I3Nd3^ za<vtLgvb<<u_ZoXcFr*&Ra&2n806(+p8lB5517+XT9<7jZk2OK#Te)EkG}5(cM}Gy zFswxm_ROG1#~uea?b9oPx3AXcu(?@<6I<PH8nY***KJ4QhnA&^ZAd4z1l%Gnoz}Q$ z@i#q}kTp{`6w|B)iRY@{eIolvHTW+&MSMJ~B&RoOf62}<T~@xrS2t{#X-FNHH+%lK z8-;(B;r)+&4NU`APTuN=tFR{-XKOY#=!&o4crYilNgD9vBu$G|K|xr;`oJ<%%opa& zNa2UO)%Nu+8+rBNh4m}K(p&`0Ses4GpYX#gVpV7#Ay_l8u}N@xaIh~cnbL0*dHoCe zDY?^Kxr&OMS@UnSp|+zlFF8X;Pc!I`hdTQ<lbfF!WBMAC&aOt1V7Y(hzBGDVF=h}e z$)auOjO1h65R4T5^0fySiV^?&z1_2e#?E5Lq82qnf+ruP-xPZy1`dU3TWpt)IA2TA z9yySjOx0<@?f{=tV+Jlm4C${2v<2D%l?o1Sr3IwYN5v3t4d+VjYV~R!>({S;%}2|f zONuLRt8k_WXpyKFLzEvrAM2aE#m^AP5Dvo63SRg`gJL}8_wp~UGtY7&u(To@gYk6G z{nCVLO5E3)qtO>kT$yOkY*wT=*gB)Z%97Xk3Gc5gH{)+q`ZCV4<0r^bnd&zUw3F9P zr%GJ@)ZTp`CNoLL98M=!J!uciYua${0IE93=2T^~H^UsH1ASC`h=tnjB><2O{dYlG zz$YE4V#nr}lX}1I0CU|mH(z9?qui<t5!kZk0)s;v-<wKadYd7YSBV>wy4~Z}@I8zs zQ%7b$s4b%0QrYcY1chlc<Oi8AVLctClOxWl7yeA8FCN#Ho|?F?_WI2Sy6wk8YEzk) z2QM}loy02j8|WnzSKaqMw{TC87&y>91>YDIJA;V<o7Qh@YbC>+e%mtBY#*4J>DlCa zY4?Uv6Jn?B(LeAA_NH%0$<{J7e#0~Tgk`rx6wHvdE~sE%gL>fqNp4YtY@Q=<{S`4Q zbEwcsr3J<j-x6w&S8d?xm3aT;>M*0<jcC1kl4O15@67K%3t^6qY!DIr8X+7%V5q1F z6~=14<LvKD8}I#KL7T&0bZ^ZS9}JvsRCyAx-bi~nV2D>NQSbM7NV4Inpj2CSs6F^P z*H(g5d*R?E9Ikbgncwx(FRo|XDHRV1p{`TN4HId#K~BYthGG7<Ye58D?xM`A9$F4M zs>yT$0`IHGbZf((eCX;~%Ru{PvtL^ILP8Mde=J}5uXQbyF{?H|+Mm*Zd+X{uju_&I z+ba3KearW%5fO|7Yr3xis97%=CT3sfUv04&aiX1Si#GWOB1Xp+hMVL}DpPmlck2}( z7fg|^*or`9?6*VUmPt?Ja+GZ`*@@E7edVhN@$yfh_1TXudQ}Fvj}h=J6_F#;7p^Ls z8LNoHCe!aL4Vr8N!*iENDJ?1Ju)2;5JNMN}wBG6CMT;)hBTsIeC8CqfY<}2!@{UR1 zJ`G_-Y<wQ1$=VGg*d8Nc$)6M^Q}$tcdBi(O*W#2Q_C{AyqrD=2Lc2HX;p1YG+HeEQ z)o64@_eK$M@=`IMA2fM`qZ;1LY`*jP@$sPXkt~s)fF2*#H?I>Q{=_9iy-9*j{2`g@ zTDJkBo_>?VWUV$^u>)GKZngXZwlsS^YPKKjM9jYHLowyQBCCLM(nBTRoB^+sd#X`_ z$WIGu0%OHH3?-rNdj2!k=j;9M)oT^rlEK63CuXk1GSe>+>2>uQiRnx+MNA#XMwAM( z0kF&9)uvO|2Hji9h<&HbZX!aFAotnU?}w;w?V5VGYy(b(;s@q;fZ$%YiA~-3x2Zv` zyVVoM@m{^bC&Oid`@(d0070s&XA`?+u#%}5=ET>)GHd1Dd_4A=lVr)C5h*5Xy88P1 zdXYj#UyNv`tQzO&3ifNT9bMxb9@*xx+jzET-sq{PB(#KZ1g_wUpOw3ha%H-HXd3NP z<EXIJ#ov>VVC3%(`VoXh=_;{0==gIw;NBqj1tlA#mlxxIi3-Jhez-g<mDy8-+#DO5 znn~Ru5V!kL_r9Uun_NDbvl!nVk<Ur(un0s{d5^AFdJUT4Jw=slgxhB<N`xvBdIYQf z)|xPJ%cMfmwtDM_$TGvftG^NLMqh3ZjD9dCw<s{@inU-@KQStmKjgWd8ttExI2)wj zcv0kC`M9<*^B_2XHgMo_q_@{E8m95m#dy)MK=HSh|8EHg&ZmYBwqB_sPd^e`Zh!mo zOHoBUKD9q$yRetmLVXhF+}#cba75kFvpuAluuoJH%x>>6lS+Xd1%?GK?N*Ct&K`uM zJSjEbPNz-iso}vLmJBuF{5ok7W77ZQl3mm7t?<!|7{3wn(r}G$tSK4%So2ZseN8mX zf5G+>#LMJGlkS3<XK~n%u1PVz88oLp25_hnH+jueW$a6*g_;*k9no*|{)bHHe@cwr zKVrIg#T?JE<;J03J_@A4?O?78yWL(V_T2qtV6y3EhF^C?FxN9W)?oiV6S>2Ft)l>R zoQ7<Ms>C#jpD(-OmXvHl`8&x9@X^n(iNzc6h+6uJ6f9i?IiDnmL?vqScN6*3?F<iB zNCuqWR}j4%H1*z2o25yz*lr2Q_Y&|`k{M>lKc*T<LCVO8yM?2jvhSyP+ur7zPmT9_ zWbr?j9~A<13<={mM#e{~43}$;jT&1uG^3z}1(r@1+3dO08@zBVPk4DfVIi{LrYvjN z3_m%cN`!bIK_ql&)%yb-t5EG?UAND{y*_8R2yq{%zpVEz-fMFVxdROQX6mmua7Ay? zc1kK}k$I}_lK9DKnyS9u(m7ReYgcnC3upX3A3~!PiIgH<ofQv$Wbngxr~C?8Gvi$u zR5x4zC0KTHZ=|*KOQtLJ;`C<GB1fd;Rm4{vwkwGiM7bp*MFF)oUqIo9DFFc+f!$ZP zac7-Iok<k_vEBpcF{fF#fqWuYg7Ct#ojSv9!h(r(#E(%Ak>lziGFJ6~l&o{F@RZ2h zn$b~gd@NAZ+Uo(gsuK=XpnqcZXqQvQ<Yu^#dqx02ch*<gw3Lw&f<$J~_}4P)gBnHm zT){p}P(}Tcp6Edn^96%L+9^ATyEVPz+F(-Y3qhlC#dNIqF3mF|bxHF(%(3im-o;Vy zz(<t`r7z&E_D*y$Q$P!crt$Ii468vn7ibfmT>NHZr1Z&Cft&o>k)9ACfzGZWC5d<M zJZj6w8rTVw%Rri_j|ji$Bj`Q@z{lUml~Uca2}vlw@6r}x;V=SwxnSf^ac#Khc6JAN zQ$MCQ`-DBOI2IfG^`z_3lCosZ?z7KTQ>bGJPFoJpWYdLpx+aaRM3u~(ZFx?M1*fZf zV4)j?_YUCxkdkYk`$F4eT!W*~P+9Js{fq^n_;Oz(a&<Pa<;BWcZ}90r?_x{t@q6t6 zmHm)3WYZAW<Meda^chv|7p(5c#6JrI|Hm`ne=fw!g>sRRvlK+(WXOVh5$+K=GiC;T z-3x*9zxFwrX8I1zuoRy~hNO%QyL*-kbSE`+Qr`jedxf}T3VPbCN*%Z;ch*K`3AzlC zA3HOMe5kZ|GgDOZIXq@7YH6diIke(>AQDSj#NvDXwjZWq#pz%UCApDUx{7MpgmRib zhZ_dXKIP8doQb=n0vU}wmYb8ULm}*g)^x!^x9UN&YkgW#FmbK-2g>*j?O(wLxvE!1 znj>G-A?AvNKCWwa55$!X%mvmX4^22FM!t<uTiZE>iYNGA=}En<HQnJlNmYJodZoM_ z7I+Z~#2_6w<ES+^UsO|JCK;8}#fSeAeaA%&WKCl@V>@yZ>{T_8%>P`+esAAT!`oKf zH)kITWK}hpzpQ}SJ1p~zw!duVkzJuWV0nfr*M8M%o`am2I{fmSjy5d5tz5EG<K%_Q z#6Wpz<OC+uEQV6pKJ-2<h9Q!*9`D44Di=fMiF;ZWI<vIWnQ~w@+3)qnn0QPsfOuvC zTm_Bx+bYJ$X=D>EJ{S{d7riGe?tu{c9H_aL2fL^be~Pan$QYr837?dWMzV1#eMIGz z`;}Oyec{H7maxQMgDJ5%W%?IAbZAtOqys0;$=Eyf*N8;V+Z+sft{pn0B#L?Vhi61z zYcDR;6hE%p77?3yk}mS*7py6CX^9jT2<9#yy$Y@*qCi+Kc}Of?tkn-I=zbT}gT~Nx zY-OjcEiKu>=lWk#Z&&QCPwAS^`Nzb;gnCJ7dIYS>?Ez@>fVDP8u8#li_BrNF7y4sT z9Go<D21YBM(Es%jC(~L@&^5iHu*fQ?^4*~QUMDuN*S4hiB=gEKZPmNtV?49F=-@KI zCnLG#SDNWTEVuakuXS-_KK2|22aH82Dpckc>AabT$PQmlwQ|Qb#HAsYIW72LI<qOW zYoQUcqixTg+;whfqNT4sy^+w0or=ysT-)Y3__mZudl>{0n*SKUQW(oA;Ali-EKsp3 zI{j-`=(IR1t@zh0+c(rK8kciT<i6%SL)Jo=@z?Ozv;C5sXpefRzL+lYfCFDm_<x>3 zaqBU{YRf=TQQ^IouRn(!upMiReH1@HQvX<Ru7ov*P4g;!Ve*+Ly}#G6ti4={%;N_i zDzW4CIn9EJii<Nv3ti5rU&7xEneof`8Z9YyXI7yjx{zW6hC1r|2IFT}5B%k;v~|0$ Y!J>(R1;7<7{qI&hl?DI%65q}Ie}CU~&Hw-a literal 0 HcmV?d00001 diff --git a/Documentation/content/docs/gallery/ImageCPRMapper.jpg b/Documentation/content/docs/gallery/ImageCPRMapper.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f8500bb5d420bd046ecc91930acf6e280406c04b GIT binary patch literal 26235 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 a{!)@sM8uKGKpk>v45XGh81%<V5C7S!<?Jv3 literal 0 HcmV?d00001 diff --git a/Documentation/content/docs/gallery/ImageMapper.jpg b/Documentation/content/docs/gallery/ImageMapper.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0a138008068c6d3df6d16ef84bb32987beaf5f8e GIT binary patch literal 3947 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 literal 0 HcmV?d00001 diff --git a/Documentation/content/docs/gallery/ImageResliceMapper.gif b/Documentation/content/docs/gallery/ImageResliceMapper.gif new file mode 100644 index 0000000000000000000000000000000000000000..23816e6ffa58a48914e836404a0c3112b24ef1ad GIT binary patch literal 57014 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 J9^Zoi06VmyF|+^x literal 0 HcmV?d00001 diff --git a/Documentation/content/docs/gallery/PointPicker.jpg b/Documentation/content/docs/gallery/PointPicker.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2777b501fb8a54de82382c999917e248a4d74488 GIT binary patch literal 6105 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 literal 0 HcmV?d00001 diff --git a/Documentation/content/docs/gallery/ScalarBarActor.jpg b/Documentation/content/docs/gallery/ScalarBarActor.jpg new file mode 100644 index 0000000000000000000000000000000000000000..496838eb7e86f7b61bd6c7f58ed9635287a33828 GIT binary patch literal 23723 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�NER4h`|_P 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 TJYN^H5oP?Cd`u5BJRAQXesREu literal 0 HcmV?d00001 diff --git a/Documentation/content/docs/gallery/SphereMapper.jpg b/Documentation/content/docs/gallery/SphereMapper.jpg new file mode 100644 index 0000000000000000000000000000000000000000..df7795804b03e7e070e5c42d43b6e219cf24f1c3 GIT binary patch literal 19335 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 literal 0 HcmV?d00001 diff --git a/Documentation/content/docs/gallery/StickMapper.jpg b/Documentation/content/docs/gallery/StickMapper.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cb5544430e56b62b18e7e8e57941ddd02cc238c9 GIT binary patch literal 24183 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 V)IU+oBVGmkzq2p@|5pCZ{0CGPytn`W literal 0 HcmV?d00001 diff --git a/Documentation/content/docs/gallery/SurfaceLICMapper.jpg b/Documentation/content/docs/gallery/SurfaceLICMapper.jpg new file mode 100644 index 0000000000000000000000000000000000000000..101664618ffea022d731914fcfd7765c9835342b GIT binary patch literal 29293 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 Ce14h$ literal 0 HcmV?d00001 diff --git a/Documentation/content/docs/gallery/VolumeMapper.jpg b/Documentation/content/docs/gallery/VolumeMapper.jpg new file mode 100644 index 0000000000000000000000000000000000000000..359a9a62ba2910f027a7c3d17727f52f69eab26f GIT binary patch literal 18823 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 K^v`?$Zvp`P_r1pe literal 0 HcmV?d00001 diff --git a/Documentation/content/examples/index.md b/Documentation/content/examples/index.md index 6c27b28728a..b355c30af8c 100644 --- a/Documentation/content/examples/index.md +++ b/Documentation/content/examples/index.md @@ -52,6 +52,44 @@ This will allow you to see the some live code running in your browser. Just pick [VolumeContour]: ../docs/gallery/VolumeContour.jpg [ZipHttpReader]: ../docs/gallery/ZipHttpReader.jpg +## Rendering + +<div class="gallery"> + +[![ImageMapper Example][ImageMapper]](./ImageMapper.html "2D orthogonal axis image mapper") +[![ImageResliceMapper Example][ImageResliceMapper]](./ImageResliceMapper.html "GPU 2D reslice/oblique/MPR mapper") +[![ImageCPRMapper Example][ImageCPRMapper]](./ImageCPRMapper.html "Curved Planar Reformat GPU mapper, stretched and straightened") +[![SphereMapper Example][SphereMapper]](./SphereMapper.html "GPU sphere mapper") +[![StickMapper Example][StickMapper]](./StickMapper.html "GPU stick/cylinder/column mapper") +[![Glyph3DMapper Example][Glyph3DMapper]](./Glyph3DMapper.html "Glyph mapper to render the same object multiple times") +[![ScalarBarActor Example][ScalarBarActor]](./ScalarBarActor.html "Scalar bar/color legend/LUT actor") +[![VolumeMapper Example][VolumeMapper]](./VolumeMapper.html "3D volume ray cast mapper witch volumetric scattering") +[![SurfaceLICMapper Example][SurfaceLICMapper]](./SurfaceLICMapper.html "Surface Line Integral Convolution (LIC) mapper") + + +</div> + +[Glyph3DMapper]: ../docs/gallery/Glyph3DMapper.jpg +[ImageCPRMapper]: ../docs/gallery/ImageCPRMapper.jpg +[ImageMapper]: ../docs/gallery/ImageMapper.jpg +[ImageResliceMapper]: ../docs/gallery/ImageResliceMapper.gif +[ScalarBarActor]: ../docs/gallery/ScalarBarActor.jpg +[SphereMapper]: ../docs/gallery/SphereMapper.jpg +[StickMapper]: ../docs/gallery/StickMapper.jpg +[VolumeMapper]: ../docs/gallery/VolumeMapper.jpg +[SurfaceLICMapper]: ../docs/gallery/SurfaceLICMapper.jpg + +## Picking/Selecting + +<div class="gallery"> + +[![CellPicker Example][CellPicker]](./CellPicker.html "CPU cell picker/selector") +[![PointPicker Example][PointPicker]](./PointPicker.html "CPU point picker/selector") +[![HardwareSelector Example][HardwareSelector]](./HardwareSelector.html "GPU point/cell picker/selector with properties") + +[CellPicker]: ../docs/gallery/CellPicker.jpg +[PointPicker]: ../docs/gallery/PointPicker.jpg +[HardwareSelector]: ../docs/gallery/HardwareSelector.jpg ## Widgets From 3baa1d390cc75a2ac817a1cab581f765f7d21dc7 Mon Sep 17 00:00:00 2001 From: Julien Finet <julien.finet@kitware.com> Date: Sun, 27 Aug 2023 18:33:48 +0200 Subject: [PATCH 03/31] docs(volumemapper): tweak the look of the VolumeMapper example --- Sources/Rendering/Core/ImageResliceMapper/example/index.js | 2 ++ Sources/Rendering/Core/VolumeMapper/example/controller.html | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Sources/Rendering/Core/ImageResliceMapper/example/index.js b/Sources/Rendering/Core/ImageResliceMapper/example/index.js index f41dfaf79cc..4b3db58ff38 100644 --- a/Sources/Rendering/Core/ImageResliceMapper/example/index.js +++ b/Sources/Rendering/Core/ImageResliceMapper/example/index.js @@ -109,6 +109,8 @@ function setImage(im) { renderer.getActiveCamera().elevation(90); renderer.resetCamera(); + renderer.getActiveCamera().dolly(1.5); + renderer.resetCameraClippingRange(); const planeState = widget.getWidgetState(); planeState.setOrigin(slicePlane.getOrigin()); planeState.setNormal(slicePlane.getNormal()); diff --git a/Sources/Rendering/Core/VolumeMapper/example/controller.html b/Sources/Rendering/Core/VolumeMapper/example/controller.html index b35342479bb..23be13f08de 100644 --- a/Sources/Rendering/Core/VolumeMapper/example/controller.html +++ b/Sources/Rendering/Core/VolumeMapper/example/controller.html @@ -4,8 +4,8 @@ <fieldset class='shade'> <legend>Lighting</legend> <input class='lao' id='lao' type='checkbox'/> - <label for='lao'>Toggle LAO <i class='text'>(off)</label><br></br> + <label for='lao'>Toggle LAO <i class='text'>(off)</label><br> <label for='scattering'>Volumetric Scattering: <i class='stext'>(off)</i></label> - <input class='scattering' id='scattering' type='range' min='0' max='10' value='0'/><br></br> + <input class='scattering' id='scattering' type='range' min='0' max='10' value='0'/> </fieldset> </form> From 0e8b0954131b380bc0a13227afee5264e4835950 Mon Sep 17 00:00:00 2001 From: Tyler Smith <tyler.smith803@gmail.com> Date: Mon, 28 Aug 2023 12:13:10 -0400 Subject: [PATCH 04/31] feat(vtkimagemarchingsquares): add I and J slicing to vtkImageMarchingSquares filter docs(vtkimagemarchingsquares): "sliceNumber" should be "slice", document new IJK "slicingMode" refactor(vtkimagemarchingsquares): prettier formatting run on vtkImageMarchingSquares refactor(vtkimagemarchingsquares): update vtkImageMarchingSquares example with slicing mode dropdown perf(vtkimagemarchingsquares): only instantiate ijk array once before for loops, and reuse docs(vtkimagemarchingsquares): document method parameters --- .../General/ImageMarchingSquares/api.md | 11 +- .../example/controller.html | 30 +++- .../ImageMarchingSquares/example/index.js | 8 + .../General/ImageMarchingSquares/index.js | 170 +++++++++++++----- 4 files changed, 172 insertions(+), 47 deletions(-) diff --git a/Sources/Filters/General/ImageMarchingSquares/api.md b/Sources/Filters/General/ImageMarchingSquares/api.md index ff005c52648..5e54353a8aa 100644 --- a/Sources/Filters/General/ImageMarchingSquares/api.md +++ b/Sources/Filters/General/ImageMarchingSquares/api.md @@ -12,10 +12,15 @@ algorithm). Set/Get an array of isocontour values. -### sliceNumber +### slice -Set/Get the k-slice number of the input volume. By default the -sliceNumber = 0. +Set/Get the IJK slice number of the input volume. By default the +slice = 0. + +### slicingMode + +Set/Get the slicing mode (IJK) which determines the direction to slice. By +default the slicingMode = 2. ### mergePoints diff --git a/Sources/Filters/General/ImageMarchingSquares/example/controller.html b/Sources/Filters/General/ImageMarchingSquares/example/controller.html index cb3ff709eea..8db24bc1099 100644 --- a/Sources/Filters/General/ImageMarchingSquares/example/controller.html +++ b/Sources/Filters/General/ImageMarchingSquares/example/controller.html @@ -1,20 +1,44 @@ <table> + <tr> + <td>Slicing mode</td> + <td> + <select class="slicingMode"> + <option value="0">I</option> + <option value="1">J</option> + <option value="2" selected>K</option> + </select> + </td> + </tr> <tr> <td>Volume resolution</td> <td> - <input class='volumeResolution' type="range" min="10" max="100" step="1" value="50" /> + <input + class="volumeResolution" + type="range" + min="10" + max="100" + step="1" + value="50" + /> </td> </tr> <tr> <td>Radius</td> <td> - <input class='sphereRadius' type="range" min="0.01" max="1.0" step="0.01" value="0.025" /> + <input + class="sphereRadius" + type="range" + min="0.01" + max="1.0" + step="0.01" + value="0.025" + /> </td> </tr> <tr> <td>Merge Points</td> <td> - <input class='mergePoints' type="checkbox" unchecked /> + <input class="mergePoints" type="checkbox" unchecked /> </td> </tr> </table> diff --git a/Sources/Filters/General/ImageMarchingSquares/example/index.js b/Sources/Filters/General/ImageMarchingSquares/example/index.js index a21826d58ae..4ad165fcf73 100644 --- a/Sources/Filters/General/ImageMarchingSquares/example/index.js +++ b/Sources/Filters/General/ImageMarchingSquares/example/index.js @@ -50,6 +50,7 @@ const sample = vtkSampleFunction.newInstance({ // Isocontour const mSquares = vtkImageMarchingSquares.newInstance({ slice: 1 }); +mSquares.setSlicingMode(2); // Connect the pipeline proper mSquares.setInputConnection(sample.getOutputPort()); @@ -82,6 +83,13 @@ renderer.addActor(outlineActor); // ---------------------------------------------------------------------------- fullScreenRenderer.addController(controlPanel); +// Define the slicing mode +document.querySelector('.slicingMode').addEventListener('input', (e) => { + const value = Number(e.target.value); + mSquares.setSlicingMode(value); + renderWindow.render(); +}); + // Define the volume resolution document.querySelector('.volumeResolution').addEventListener('input', (e) => { const value = Number(e.target.value); diff --git a/Sources/Filters/General/ImageMarchingSquares/index.js b/Sources/Filters/General/ImageMarchingSquares/index.js index 33dd665bc1f..b8fff08251d 100644 --- a/Sources/Filters/General/ImageMarchingSquares/index.js +++ b/Sources/Filters/General/ImageMarchingSquares/index.js @@ -11,10 +11,37 @@ const { vtkErrorMacro, vtkDebugMacro } = macro; // ---------------------------------------------------------------------------- function vtkImageMarchingSquares(publicAPI, model) { + /** + * Get the X,Y kernels based on the set slicing mode. + * @returns {[number, number]} + */ + function getKernels() { + let kernelX = 0; // default K slicing mode + let kernelY = 1; + if (model.slicingMode === 1) { + kernelX = 0; + kernelY = 2; + } else if (model.slicingMode === 0) { + kernelX = 1; + kernelY = 2; + } + + return [kernelX, kernelY]; + } + // Set our className model.classHierarchy.push('vtkImageMarchingSquares'); + /** + * Get the list of contour values. + * @returns {number[]} + */ publicAPI.getContourValues = () => model.contourValues; + + /** + * Set the list contour values. + * @param {number[]} cValues + */ publicAPI.setContourValues = (cValues) => { model.contourValues = cValues; publicAPI.modified(); @@ -25,54 +52,96 @@ function vtkImageMarchingSquares(publicAPI, model) { const pixelPts = []; const edgeLocator = vtkEdgeLocator.newInstance(); - // Retrieve scalars and pixel coordinates. i-j-k is origin of pixel. - publicAPI.getPixelScalars = (i, j, k, slice, dims, origin, spacing, s) => { + /** + * Retrieve scalars and pixel coordinates. + * @param {Vector3} ijk origin of the pixel + * @param {Vector3} dims dimensions of the image + * @param {TypedArray} scalars list of scalar values + * @param {Vector3} increments IJK slice increments + * @param {number} kernelX index of the X element + * @param {number} kernelY index of the Y element + */ + publicAPI.getPixelScalars = ( + ijk, + dims, + scalars, + increments, + kernelX, + kernelY + ) => { + const [i, j, k] = ijk; + // First get the indices for the pixel - ids[0] = k * slice + j * dims[0] + i; // i, j, k - ids[1] = ids[0] + 1; // i+1, j, k - ids[2] = ids[0] + dims[0]; // i, j+1, k - ids[3] = ids[2] + 1; // i+1, j+1, k + ids[0] = k * dims[1] * dims[0] + j * dims[0] + i; // i, j, k + ids[1] = ids[0] + increments[kernelX]; // i+1, j, k + ids[2] = ids[0] + increments[kernelY]; // i, j+1, k + ids[3] = ids[2] + increments[kernelX]; // i+1, j+1, k // Now retrieve the scalars for (let ii = 0; ii < 4; ++ii) { - pixelScalars[ii] = s[ids[ii]]; + pixelScalars[ii] = scalars[ids[ii]]; } }; - // Retrieve pixel coordinates. i-j-k is origin of pixel. - publicAPI.getPixelPoints = (i, j, k, dims, origin, spacing) => { + /** + * Retrieve pixel coordinates. + * @param {Vector3} ijk origin of the pixel + * @param {Vector3} origin origin of the image + * @param {Vector3} spacing spacing of the image + * @param {number} kernelX index of the X element + * @param {number} kernelY index of the Y element + */ + publicAPI.getPixelPoints = (ijk, origin, spacing, kernelX, kernelY) => { + const i = ijk[kernelX]; + const j = ijk[kernelY]; + // (i,i+1),(j,j+1),(k,k+1) - i varies fastest; then j; then k - pixelPts[0] = origin[0] + i * spacing[0]; // 0 - pixelPts[1] = origin[1] + j * spacing[1]; + pixelPts[0] = origin[kernelX] + i * spacing[kernelX]; // 0 + pixelPts[1] = origin[kernelY] + j * spacing[kernelY]; - pixelPts[2] = pixelPts[0] + spacing[0]; // 1 + pixelPts[2] = pixelPts[0] + spacing[kernelX]; // 1 pixelPts[3] = pixelPts[1]; pixelPts[4] = pixelPts[0]; // 2 - pixelPts[5] = pixelPts[1] + spacing[1]; + pixelPts[5] = pixelPts[1] + spacing[kernelY]; pixelPts[6] = pixelPts[2]; // 3 pixelPts[7] = pixelPts[5]; }; + /** + * Produce points and lines for the polydata. + * @param {number[]} cVal list of contour values + * @param {Vector3} ijk origin of the pixel + * @param {Vector3} dims dimensions of the image + * @param {Vector3} origin origin of the image + * @param {Vector3} spacing sapcing of the image + * @param {TypedArray} scalars list of scalar values + * @param {number[]} points list of points + * @param {number[]} lines list of lines + * @param {Vector3} increments IJK slice increments + * @param {number} kernelX index of the X element + * @param {number} kernelY index of the Y element + */ publicAPI.produceLines = ( cVal, - i, - j, - k, - slice, + ijk, dims, origin, spacing, scalars, points, - lines + lines, + increments, + kernelX, + kernelY ) => { + const k = ijk[model.slicingMode]; const CASE_MASK = [1, 2, 8, 4]; // case table is actually for quad const xyz = []; let pId; - publicAPI.getPixelScalars(i, j, k, slice, dims, origin, spacing, scalars); + publicAPI.getPixelScalars(ijk, dims, scalars, increments, kernelX, kernelY); let index = 0; for (let idx = 0; idx < 4; idx++) { @@ -86,9 +155,9 @@ function vtkImageMarchingSquares(publicAPI, model) { return; // don't get the pixel coordinates, nothing to do } - publicAPI.getPixelPoints(i, j, k, dims, origin, spacing); + publicAPI.getPixelPoints(ijk, origin, spacing, kernelX, kernelY); - const z = origin[2] + k * spacing[2]; + const z = origin[model.slicingMode] + k * spacing[model.slicingMode]; for (let idx = 0; pixelLines[idx] >= 0; idx += 2) { lines.push(2); for (let eid = 0; eid < 2; eid++) { @@ -106,10 +175,11 @@ function vtkImageMarchingSquares(publicAPI, model) { (pixelScalars[edgeVerts[1]] - pixelScalars[edgeVerts[0]]); const x0 = pixelPts.slice(edgeVerts[0] * 2, (edgeVerts[0] + 1) * 2); const x1 = pixelPts.slice(edgeVerts[1] * 2, (edgeVerts[1] + 1) * 2); - xyz[0] = x0[0] + t * (x1[0] - x0[0]); - xyz[1] = x0[1] + t * (x1[1] - x0[1]); + xyz[kernelX] = x0[0] + t * (x1[0] - x0[0]); + xyz[kernelY] = x0[1] + t * (x1[1] - x0[1]); + xyz[model.slicingMode] = z; pId = points.length / 3; - points.push(xyz[0], xyz[1], z); + points.push(xyz[0], xyz[1], xyz[2]); if (model.mergePoints) { edgeLocator.insertEdge(ids[edgeVerts[0]], ids[edgeVerts[1]], pId); @@ -129,53 +199,70 @@ function vtkImageMarchingSquares(publicAPI, model) { return; } + if ( + model.slicingMode == null || + model.slicingMode < 0 || + model.slicingMode > 2 + ) { + vtkErrorMacro('Invalid or missing slicing mode'); + return; + } + console.time('msquares'); // Retrieve output and volume data const origin = input.getOrigin(); const spacing = input.getSpacing(); const dims = input.getDimensions(); - const s = input.getPointData().getScalars().getData(); + const extent = input.getExtent(); + const increments = input.computeIncrements(extent); + const scalars = input.getPointData().getScalars().getData(); + const [kernelX, kernelY] = getKernels(); // Points - dynamic array - const pBuffer = []; + const points = []; // Cells - dynamic array - const lBuffer = []; + const lines = []; // Ensure slice is valid - const slice = dims[0] * dims[1]; let k = Math.round(model.slice); - if (k >= dims[2]) { + if (k >= dims[model.slicingMode]) { k = 0; } // Loop over all contour values, and then pixels, determine case and process + const ijk = [0, 0, 0]; + ijk[model.slicingMode] = k; for (let cv = 0; cv < model.contourValues.length; ++cv) { - for (let j = 0; j < dims[1] - 1; ++j) { - for (let i = 0; i < dims[0] - 1; ++i) { + for (let j = 0; j < dims[kernelY] - 1; ++j) { + ijk[kernelY] = j; + for (let i = 0; i < dims[kernelX] - 1; ++i) { + ijk[kernelX] = i; + publicAPI.produceLines( model.contourValues[cv], - i, - j, - k, - slice, + ijk, dims, origin, spacing, - s, - pBuffer, - lBuffer + scalars, + points, + lines, + increments, + kernelX, + kernelY ); } } + edgeLocator.initialize(); } // Update output const polydata = vtkPolyData.newInstance(); - polydata.getPoints().setData(new Float32Array(pBuffer), 3); - polydata.getLines().setData(new Uint32Array(lBuffer)); + polydata.getPoints().setData(new Float32Array(points), 3); + polydata.getLines().setData(new Uint32Array(lines)); outData[0] = polydata; vtkDebugMacro('Produced output'); @@ -189,6 +276,7 @@ function vtkImageMarchingSquares(publicAPI, model) { const DEFAULT_VALUES = { contourValues: [], + slicingMode: 2, slice: 0, mergePoints: false, }; @@ -204,7 +292,7 @@ export function extend(publicAPI, model, initialValues = {}) { // Also make it an algorithm with one input and one output macro.algo(publicAPI, model, 1, 1); - macro.setGet(publicAPI, model, ['slice', 'mergePoints']); + macro.setGet(publicAPI, model, ['slicingMode', 'slice', 'mergePoints']); // Object specific methods macro.algo(publicAPI, model, 1, 1); From b99fda21bb2e41a151ede04d65b01b34d6d9cb32 Mon Sep 17 00:00:00 2001 From: Shreeraj Jadhav <shreerajjadhav@gmail.com> Date: Thu, 31 Aug 2023 12:09:00 -0400 Subject: [PATCH 05/31] fix(GeometryRepresentationProxy): add ts defs and expose lineWidth --- .../GeometryRepresentationProxy/index.d.ts | 35 +++++++++++++++++++ .../GeometryRepresentationProxy/index.js | 1 + 2 files changed, 36 insertions(+) create mode 100644 Sources/Proxy/Representations/GeometryRepresentationProxy/index.d.ts diff --git a/Sources/Proxy/Representations/GeometryRepresentationProxy/index.d.ts b/Sources/Proxy/Representations/GeometryRepresentationProxy/index.d.ts new file mode 100644 index 00000000000..9983b2edd4a --- /dev/null +++ b/Sources/Proxy/Representations/GeometryRepresentationProxy/index.d.ts @@ -0,0 +1,35 @@ +import { RGBColor } from "../../../types"; +import vtkAbstractRepresentationProxy from '../../Core/AbstractRepresentationProxy'; + +export interface vtkGeometryRepresentationProxy + extends vtkAbstractRepresentationProxy { + + /** + * + * @param representation a string that describes what representation to use for the explicit geometry. + * possible values are 'Surface with edges', 'Surface' (default), 'Wireframe', + * and 'Points'. + */ + setRepresentation(representation: string): boolean; + getRepresentation(): string; + + // proxy property mappings + getColor(): RGBColor; + setColor(color: RGBColor): boolean; + getInterpolateScalarsBeforeMapping(): boolean; + setInterpolateScalarsBeforeMapping(interpolateScalarsBeforeMapping: boolean): boolean; + setOpacity(opacity: boolean): boolean; + getOpacity(): boolean; + setVisibility(visible: boolean): boolean; + getVisibility(): boolean; + getPointSize(): number; + setPointSize(pointSize: number): boolean; + getUseShadow(): boolean; + setUseShadow(lighting: boolean): boolean; + getUseBounds(): boolean; + setUseBounds(useBounds: boolean): boolean; + getLineWidth(): number; + setLineWidth(width: number): boolean; +} + +export default vtkGeometryRepresentationProxy; diff --git a/Sources/Proxy/Representations/GeometryRepresentationProxy/index.js b/Sources/Proxy/Representations/GeometryRepresentationProxy/index.js index b4fea5fe1e9..b64a39c59e1 100644 --- a/Sources/Proxy/Representations/GeometryRepresentationProxy/index.js +++ b/Sources/Proxy/Representations/GeometryRepresentationProxy/index.js @@ -79,6 +79,7 @@ export function extend(publicAPI, model, initialValues = {}) { }, pointSize: { modelKey: 'property', property: 'pointSize' }, useShadow: { modelKey: 'property', property: 'lighting' }, + lineWidth: { modelKey: 'property', property: 'lineWidth' }, useBounds: { modelKey: 'actor', property: 'useBounds' }, }); } From 9b2c3e417addde45e25b3e23e0990282b027b19e Mon Sep 17 00:00:00 2001 From: DevinAPorro <devin.porro@elucid.com> Date: Fri, 25 Aug 2023 14:55:47 -0400 Subject: [PATCH 06/31] feat(interactorstyleremotemouse): add option to throttle MouseWheel events Adds wheelThrottleDelay that, when set, will throttle MouseWheel events by that amount --- .../Style/InteractorStyleRemoteMouse/index.js | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/Sources/Interaction/Style/InteractorStyleRemoteMouse/index.js b/Sources/Interaction/Style/InteractorStyleRemoteMouse/index.js index ddbff9561cc..c011beee76e 100644 --- a/Sources/Interaction/Style/InteractorStyleRemoteMouse/index.js +++ b/Sources/Interaction/Style/InteractorStyleRemoteMouse/index.js @@ -120,12 +120,23 @@ function vtkInteractorStyleRemoteMouse(publicAPI, model) { //------------------------------------------------------------------------- publicAPI.handleMouseWheel = (callData) => { - publicAPI.invokeRemoteWheelEvent({ - type: 'MouseWheel', - ...createRemoteEvent(callData), - spinY: callData.spinY, - }); - publicAPI.invokeInteractionEvent(INTERACTION_EVENT); + let needToSend = true; + if (model.wheelThrottleDelay) { + const ts = Date.now(); + needToSend = model.wheelThrottleDelay < ts - model.wheelLastThrottleTime; + if (needToSend) { + model.wheelLastThrottleTime = ts; + } + } + + if (needToSend) { + publicAPI.invokeRemoteWheelEvent({ + type: 'MouseWheel', + ...createRemoteEvent(callData), + spinY: callData.spinY, + }); + publicAPI.invokeInteractionEvent(INTERACTION_EVENT); + } }; //------------------------------------------------------------------------- @@ -283,6 +294,8 @@ const DEFAULT_VALUES = { sendMouseMove: false, throttleDelay: 33.3, // 33.3 millisecond <=> 30 events/second lastThrottleTime: 0, + wheelThrottleDelay: 0, + wheelLastThrottleTime: 0, // remoteEventAddOn: null, }; @@ -297,6 +310,7 @@ export function extend(publicAPI, model, initialValues = {}) { 'sendMouseMove', 'remoteEventAddOn', 'throttleDelay', + 'wheelThrottleDelay', ]); macro.event(publicAPI, model, 'RemoteMouseEvent'); macro.event(publicAPI, model, 'RemoteWheelEvent'); From ab064c5a6eb33087eeb86c7f4f2147a971bc8f57 Mon Sep 17 00:00:00 2001 From: Sebastien Jourdain <sebastien.jourdain@kitware.com> Date: Wed, 6 Sep 2023 09:49:28 -0600 Subject: [PATCH 07/31] fix(RenderWindowInteractor): Allow usage without RenderWindow --- Sources/Rendering/Core/RenderWindowInteractor/index.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Sources/Rendering/Core/RenderWindowInteractor/index.js b/Sources/Rendering/Core/RenderWindowInteractor/index.js index 3f2b093d45c..df71542ca5d 100644 --- a/Sources/Rendering/Core/RenderWindowInteractor/index.js +++ b/Sources/Rendering/Core/RenderWindowInteractor/index.js @@ -168,7 +168,7 @@ function vtkRenderWindowInteractor(publicAPI, model) { return model.currentRenderer; }; - function getScreenEventPositionFor(source) { + function _getScreenEventPositionFor(source) { const canvas = model._view.getCanvas(); const bounds = canvas.getBoundingClientRect(); const scaleX = canvas.width / bounds.width; @@ -185,6 +185,9 @@ function vtkRenderWindowInteractor(publicAPI, model) { } return position; } + // Allow user to override it + const getScreenEventPositionFor = + model._getScreenEventPositionFor || _getScreenEventPositionFor; function getModifierKeysFor(event) { return { From 81504a4bb7f367bd82d5b6d15108673d36a75f6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Bruy=C3=A8re?= <thibault.bruyere@kitware.com> Date: Fri, 1 Sep 2023 11:37:36 +0200 Subject: [PATCH 08/31] fix(ImageMapper): fix logic of computeClosestIJKAxis Two mappers with two different slicing modes could have the same ijkMode For example, two views with X and Y slicing mode could both show slice J Also remove the warning about inaccurate slicing because oblique slicing should be done with the new ImageResliceMapper and the slicing modes XYZ are used to snap to IJK --- Sources/Common/Core/Math/index.d.ts | 14 ++++++ Sources/Common/Core/Math/index.js | 51 ++++++++++++++++++++ Sources/Common/Core/Math/test/testMath.js | 44 +++++++++++++++++ Sources/Rendering/Core/ImageMapper/index.js | 52 ++++++--------------- 4 files changed, 122 insertions(+), 39 deletions(-) diff --git a/Sources/Common/Core/Math/index.d.ts b/Sources/Common/Core/Math/index.d.ts index c20833b84d9..95e7dea8b8a 100755 --- a/Sources/Common/Core/Math/index.d.ts +++ b/Sources/Common/Core/Math/index.d.ts @@ -878,6 +878,19 @@ export function createUninitializedBounds(): Bounds; */ export function getMajorAxisIndex(vector: number[]): number; +/** + * Return the closest orthogonal matrix of 1, -1 and 0 + * It works for both column major and row major matrices + * This function iteratively associate a column with a row by choosing + * the greatest absolute value from the remaining row and columns + * For each association, a -1 or a 1 is set in the output, depending on + * the sign of the value in the original matrix + * + * @param {Number[]} matrix The matrix of size nxn + * @param {Number[]} n The size of the square matrix, defaults to 3 + */ +export function getSparseOrthogonalMatrix(matrix: number[], n: number): number[]; + /** * * @param {Number} value The value to convert. @@ -1028,6 +1041,7 @@ export declare const vtkMath: { isInf: typeof isInf; createUninitializedBounds: typeof createUninitializedBounds; getMajorAxisIndex: typeof getMajorAxisIndex; + getSparseOrthogonalMatrix: typeof getSparseOrthogonalMatrix; floatToHex2: typeof floatToHex2; floatRGB2HexCode: typeof floatRGB2HexCode; float2CssRGBA: typeof float2CssRGBA; diff --git a/Sources/Common/Core/Math/index.js b/Sources/Common/Core/Math/index.js index e7b644309b7..31055a0c2eb 100644 --- a/Sources/Common/Core/Math/index.js +++ b/Sources/Common/Core/Math/index.js @@ -2146,6 +2146,56 @@ export function getMajorAxisIndex(vector) { return axisIndex; } +// Return the closest orthogonal matrix of 1, -1 and 0 +// It works for both column major and row major matrices +// This function iteratively associate a column with a row by choosing +// the greatest absolute value from the remaining row and columns +// For each association, a -1 or a 1 is set in the output, depending on +// the sign of the value in the original matrix +export function getSparseOrthogonalMatrix(matrix, n = 3) { + // Initialize rows and columns to available indices + const rows = new Array(n); + const cols = new Array(n); + for (let i = 0; i < n; ++i) { + rows[i] = i; + cols[i] = i; + } + // No need for the last iteration: i = 0 + for (let i = n - 1; i > 0; i--) { + // Loop invariant: + // rows[0:i] and cols[0:i] contain the remaining rows and columns + // rows]i:n[ and cols]i:n[ contain the associations found (rows[k] is associated with cols[k]) + let bestValue = -Infinity; + let bestRowI = 0; + let bestColI = 0; + for (let rowI = 0; rowI <= i; ++rowI) { + const row = rows[rowI]; + for (let colI = 0; colI <= i; ++colI) { + const col = cols[colI]; + const absVal = Math.abs(matrix[row + n * col]); + if (absVal > bestValue) { + bestValue = absVal; + bestRowI = rowI; + bestColI = colI; + } + } + } + // Found an association between rows[bestRowI] and cols[bestColI] + // Put both at the end of their array by swapping with i + [rows[i], rows[bestRowI]] = [rows[bestRowI], rows[i]]; + [cols[i], cols[bestColI]] = [cols[bestColI], cols[i]]; + } + + // Convert row/column association to a matrix + const output = new Array(n * n).fill(0); + for (let i = 0; i < n; ++i) { + const matIdx = rows[i] + n * cols[i]; + output[matIdx] = matrix[matIdx] < 0 ? -1 : 1; + } + + return output; +} + export function floatToHex2(value) { const integer = Math.floor(value * 255); if (integer > 15) { @@ -2284,6 +2334,7 @@ export default { // JS add-on createUninitializedBounds, getMajorAxisIndex, + getSparseOrthogonalMatrix, floatToHex2, floatRGB2HexCode, float2CssRGBA, diff --git a/Sources/Common/Core/Math/test/testMath.js b/Sources/Common/Core/Math/test/testMath.js index 073a83e4052..1809f9e345d 100644 --- a/Sources/Common/Core/Math/test/testMath.js +++ b/Sources/Common/Core/Math/test/testMath.js @@ -754,3 +754,47 @@ test('Test singularValueDecomposition', (t) => { } t.end(); }); + +test('Test getSparseOrthogonalMatrix', (t) => { + const successMsg = 'Row/column association is correct'; + const tests = [ + { + matrix: [ + 0.702, 0.7025, -0.1163, -0.2856, 0.1281, -0.9497, -0.6523, 0.7, 0.2906, + ], + expected: [0, 1, 0, 0, 0, -1, -1, 0, 0], + }, + ]; + + // Test all matrices of size 3x3 which are orthogonal and contain only -1, 1 and 0 + // There are 6 x 8 = 54 matrices to test + const permutation = [0, 1, 2]; + for (let permutationIdx = 0; permutationIdx < 6; ++permutationIdx) { + for (let signBitField = 0; signBitField < 8; ++signBitField) { + const matrix = new Array(9).fill(0); + for (let row = 0; row < permutation.length; ++row) { + const col = permutation[row]; + // eslint-disable-next-line no-bitwise + matrix[row + 3 * col] = signBitField & (1 << row) ? -1 : 1; + } + tests.push({ matrix, expected: matrix }); + } + // Next permutation + if (permutationIdx % 2 === 0) { + [permutation[0], permutation[1]] = [permutation[1], permutation[0]]; + } else { + [permutation[1], permutation[2]] = [permutation[2], permutation[1]]; + } + } + + tests.forEach(({ matrix, expected }) => { + const outputMatrix = vtkMath.getSparseOrthogonalMatrix(matrix); + const testResult = vtkMath.areEquals(expected, outputMatrix, 0); + const msg = testResult + ? successMsg + : `Bad row/column association with matrix ${matrix}\nExpected: ${expected}\nGot: ${outputMatrix}`; + t.ok(testResult, msg); + }); + + t.end(); +}); diff --git a/Sources/Rendering/Core/ImageMapper/index.js b/Sources/Rendering/Core/ImageMapper/index.js index 964049f4bb2..7aa27fdc80c 100644 --- a/Sources/Rendering/Core/ImageMapper/index.js +++ b/Sources/Rendering/Core/ImageMapper/index.js @@ -6,7 +6,6 @@ import * as vtkMath from 'vtk.js/Sources/Common/Core/Math'; import CoincidentTopologyHelper from 'vtk.js/Sources/Rendering/Core/Mapper/CoincidentTopologyHelper'; const { staticOffsetAPI, otherStaticMethods } = CoincidentTopologyHelper; -const { vtkWarningMacro } = macro; const { SlicingMode } = Constants; // ---------------------------------------------------------------------------- @@ -148,16 +147,16 @@ function vtkImageMapper(publicAPI, model) { }; function computeClosestIJKAxis() { - let inVec3; + let xyzMode; switch (model.slicingMode) { case SlicingMode.X: - inVec3 = [1, 0, 0]; + xyzMode = 0; break; case SlicingMode.Y: - inVec3 = [0, 1, 0]; + xyzMode = 1; break; case SlicingMode.Z: - inVec3 = [0, 0, 1]; + xyzMode = 2; break; default: model.closestIJKAxis = { @@ -167,44 +166,19 @@ function vtkImageMapper(publicAPI, model) { return; } - // Project vec3 onto direction cosines - const out = [0, 0, 0]; // The direction matrix in vtkImageData is the indexToWorld rotation matrix // with a column-major data layout since it is stored as a WebGL matrix. - // We need the worldToIndex rotation matrix for the projection, and it needs - // to be in a row-major data layout to use vtkMath for operations. - // To go from the indexToWorld column-major matrix to the worldToIndex - // row-major matrix, we need to transpose it (column -> row) then inverse it. - // However, that 3x3 matrix is a rotation matrix which is orthonormal, meaning - // that its inverse is equal to its transpose. We therefore need to apply two - // transpositions resulting in a no-op. - const a = publicAPI.getCurrentImage().getDirection(); - vtkMath.multiply3x3_vect3(a, inVec3, out); - - let maxAbs = 0.0; - let ijkMode = -1; - let flip = false; - for (let axis = 0; axis < out.length; ++axis) { - const absValue = Math.abs(out[axis]); - if (absValue > maxAbs) { - maxAbs = absValue; - flip = out[axis] < 0.0; - ijkMode = axis; + const direction = publicAPI.getCurrentImage().getDirection(); + const newMatrix = vtkMath.getSparseOrthogonalMatrix(direction); + // With {foo}Vector filled with 0s except at {foo}Mode position where it is 1 + // We have xyzVector = (+/-) newMatrix * ijkVector + let ijkMode = 0; + for (; ijkMode < 3; ++ijkMode) { + if (newMatrix[xyzMode + 3 * ijkMode] !== 0) { + break; } } - - if (maxAbs !== 1.0) { - const xyzLabel = 'IJKXYZ'[model.slicingMode]; - const ijkLabel = 'IJKXYZ'[ijkMode]; - vtkWarningMacro( - `Unaccurate slicing along ${xyzLabel} axis which ` + - `is not aligned with any IJK axis of the image data. ` + - `Using ${ijkLabel} axis as a fallback (${maxAbs}% aligned). ` + - `Necessitates slice reformat that is not yet implemented. ` + - `You can switch the slicing mode on your mapper to do IJK slicing instead.` - ); - } - + const flip = newMatrix[xyzMode + 3 * ijkMode] < 0; model.closestIJKAxis = { ijkMode, flip }; } From 49380001a578c66aa8ad5607bf148188092edad6 Mon Sep 17 00:00:00 2001 From: Forrest <forrest.li@kitware.com> Date: Thu, 24 Aug 2023 16:09:23 -0400 Subject: [PATCH 09/31] chore: update browserslist --- package-lock.json | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5bc025ca5d7..ef302482090 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4866,9 +4866,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001448", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001448.tgz", - "integrity": "sha512-tq2YI+MJnooG96XpbTRYkBxLxklZPOdLmNIOdIhvf7SNJan6u5vCKum8iT7ZfCt70m1GPkuC7P3TtX6UuhupuA==", + "version": "1.0.30001522", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001522.tgz", + "integrity": "sha512-TKiyTVZxJGhsTszLuzb+6vUZSjVOAhClszBr2Ta2k9IwtNBT/4dzmL6aywt0HCgEZlmwJzXJd8yNiob6HgwTRg==", "funding": [ { "type": "opencollective", @@ -4877,6 +4877,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -23765,9 +23769,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001448", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001448.tgz", - "integrity": "sha512-tq2YI+MJnooG96XpbTRYkBxLxklZPOdLmNIOdIhvf7SNJan6u5vCKum8iT7ZfCt70m1GPkuC7P3TtX6UuhupuA==" + "version": "1.0.30001522", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001522.tgz", + "integrity": "sha512-TKiyTVZxJGhsTszLuzb+6vUZSjVOAhClszBr2Ta2k9IwtNBT/4dzmL6aywt0HCgEZlmwJzXJd8yNiob6HgwTRg==" }, "cardinal": { "version": "2.1.1", From 6b8a908286ccb6a34fea69877fe6117801cb3703 Mon Sep 17 00:00:00 2001 From: Forrest <forrest.li@kitware.com> Date: Tue, 29 Aug 2023 14:35:34 -0400 Subject: [PATCH 10/31] chore: update babel packages --- package-lock.json | 3307 +++++++++++++++++++++++++-------------------- package.json | 10 +- 2 files changed, 1810 insertions(+), 1507 deletions(-) diff --git a/package-lock.json b/package-lock.json index ef302482090..81dd9bf4a9e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.0-semantically-release", "license": "BSD-3-Clause", "dependencies": { - "@babel/runtime": "7.17.9", + "@babel/runtime": "7.22.11", "commander": "9.2.0", "d3-scale": "4.0.2", "fast-deep-equal": "^3.1.3", @@ -30,10 +30,10 @@ "xml2json": "Utilities/XMLConverter/xml2json-cli.js" }, "devDependencies": { - "@babel/core": "7.17.10", - "@babel/eslint-parser": "7.17.0", - "@babel/plugin-transform-runtime": "7.17.10", - "@babel/preset-env": "7.17.10", + "@babel/core": "7.22.11", + "@babel/eslint-parser": "7.22.11", + "@babel/plugin-transform-runtime": "7.22.10", + "@babel/preset-env": "7.22.10", "@commitlint/cli": "16.2.4", "@commitlint/config-conventional": "16.2.4", "@mapbox/node-pre-gyp": "1.0.9", @@ -131,47 +131,86 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, "dependencies": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/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==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/compat-data": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", - "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.10.tgz", - "integrity": "sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.10", - "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.9", - "@babel/parser": "^7.17.10", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.10", - "@babel/types": "^7.17.10", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.11.tgz", + "integrity": "sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", + "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helpers": "^7.22.11", + "@babel/parser": "^7.22.11", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.11", + "@babel/types": "^7.22.11", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -182,93 +221,122 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", - "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.11.tgz", + "integrity": "sha512-YjOYZ3j7TjV8OhLW6NCtyg8G04uStATEUe5eiLuCZaXz2VSDQ3dsAtm2D+TuQyAqNMUK2WacGo0/uma9Pein1w==", "dev": true, "dependencies": { - "eslint-scope": "^5.1.1", + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || >=14.0.0" }, "peerDependencies": { - "@babel/core": ">=7.11.0", + "@babel/core": "^7.11.0", "eslint": "^7.5.0 || ^8.0.0" } }, "node_modules/@babel/generator": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.10.tgz", - "integrity": "sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.10.tgz", + "integrity": "sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==", "dev": true, "dependencies": { - "@babel/types": "^7.17.10", - "@jridgewell/gen-mapping": "^0.1.0", + "@babel/types": "^7.22.10", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz", + "integrity": "sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ==", "dev": true, "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.10" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz", - "integrity": "sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz", + "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.20.2", - "semver": "^6.3.0" + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz", - "integrity": "sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.11.tgz", + "integrity": "sha512-y1grdYL4WzmUDBRGK0pDbIoFd7UZKoDurDzWEoNMYoj1EL+foGRQNyPWDcC+YyegN5y1DUsFFmzjGijB3nSVAQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -278,13 +346,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", + "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -294,258 +363,252 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", + "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" + "resolve": "^1.14.2" }, "peerDependencies": { - "@babel/core": "^7.4.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", "dev": true, "dependencies": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "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.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", + "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", "dev": true, "dependencies": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", + "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-wrap-function": "^7.22.9" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", + "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "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==", "dev": true, "dependencies": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, "dependencies": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "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.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz", + "integrity": "sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.10" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", - "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.11.tgz", + "integrity": "sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg==", "dev": true, "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0" + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.11", + "@babel/types": "^7.22.11" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", + "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -591,9 +654,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz", - "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.13.tgz", + "integrity": "sha512-3l6+4YOvc9wx7VlCSw4yQfcBo01ECA8TicQfbnCPuCEpRQrf+gTUyGdxNw+pyTUyywp6JRD1w0YQs9TpBXYlkw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -603,12 +666,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", + "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -618,14 +681,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", + "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -634,16 +697,11 @@ "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, "engines": { "node": ">=6.9.0" }, @@ -651,63 +709,37 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.12.13" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "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.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -716,46 +748,37 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -764,14 +787,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -780,112 +802,82 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "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", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=4" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -894,22 +886,22 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { + "node_modules/@babel/plugin-syntax-private-property-in-object": { "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==", + "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" @@ -921,121 +913,125 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "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", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.14.5" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.11.tgz", + "integrity": "sha512-0pAlmeRJn6wU84zzZsEOx1JV1Jf8fqO9ok7wofIJwUnplYo247dcd24P+cMJht7ts9xkzdtB0EPHmOb7F+KzXw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz", + "integrity": "sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@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==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1044,28 +1040,38 @@ "@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", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", + "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.12.0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "node_modules/@babel/plugin-transform-classes": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", + "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" }, "engines": { "node": ">=6.9.0" @@ -1074,15 +1080,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1091,13 +1096,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz", + "integrity": "sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1106,13 +1111,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1121,20 +1127,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1143,13 +1142,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", + "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1158,13 +1158,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", - "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1173,14 +1174,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", + "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1189,13 +1190,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", + "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1204,14 +1205,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1220,13 +1222,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", + "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1235,15 +1238,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1252,13 +1253,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", + "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { "node": ">=6.9.0" @@ -1268,12 +1270,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1283,14 +1285,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", + "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1300,15 +1301,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz", - "integrity": "sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.11.tgz", + "integrity": "sha512-o2+bg7GDS60cJMgz9jWqRUsWkMzLCxp+jFDeDUT5sjRlAxcJWZ2ylNdI7QQ2+CH5hWu7OnN+Cv3htt7AkSf96g==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1318,16 +1318,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", - "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz", + "integrity": "sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1337,13 +1336,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1353,12 +1352,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.10.tgz", - "integrity": "sha512-v54O6yLaJySCs6mGzaVOUw9T967GnH38T6CQSAtnzdNPwu84l2qAjssKzo/WSO8Yi7NF+7ekm5cVbF/5qiIgNA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.17.0" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1368,12 +1368,63 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", + "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", + "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.11.tgz", + "integrity": "sha512-nX8cPFa6+UmbepISvlf5jhQyaC7ASs/7UxHmMkuJ/k5xSHvDPPaibMo+v3TXwU/Pjqhep/nFNpd3zn4YR59pnw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1383,13 +1434,46 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", + "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.22.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.12.tgz", + "integrity": "sha512-7XXCVqZtyFWqjDsYDY4T45w4mlx1rf7aOgkc/Ww76xkgBiOlmjPkx36PBLHa1k1rwWvVgYMPsbuVnIamx2ZQJw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1399,12 +1483,46 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", + "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", + "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -1414,12 +1532,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1429,12 +1547,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz", - "integrity": "sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", "dev": true, "dependencies": { - "regenerator-transform": "^0.15.0" + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" }, "engines": { "node": ">=6.9.0" @@ -1444,12 +1563,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1459,17 +1578,17 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.10.tgz", - "integrity": "sha512-6jrMilUAJhktTr56kACL8LnWC5hx3Lf27BS0R0DSyW/OoJfb/iTHeE96V3b1dgKG3FSFdd/0culnYWMkjcKCig==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.10.tgz", + "integrity": "sha512-RchI7HePu1eu0CYNKHHHQdfenZcM4nz8rew5B1VWqeRKdcwW5aQ5HeG9eTUbWiAS1UrmHVLmoxTWHt3iLD/NhA==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1479,12 +1598,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1494,13 +1613,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1510,12 +1629,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1525,12 +1644,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1540,12 +1659,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1555,12 +1674,28 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1570,13 +1705,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1585,38 +1720,43 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/preset-env": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.17.10.tgz", - "integrity": "sha512-YNgyBHZQpeoBSRBg0xixsZzfT58Ze1iZrajvv0lJc70qDDGuGfonEnMGfWeSY0mQ3JTuCWFbMkzFRVafOyJx4g==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.17.6", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.17.3", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.10.tgz", + "integrity": "sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -1626,45 +1766,62 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.17.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.17.9", - "@babel/plugin-transform-modules-systemjs": "^7.17.8", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.10", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.17.9", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.17.10", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.22.1", - "semver": "^6.3.0" + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.10", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.10", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.5", + "@babel/plugin-transform-classes": "^7.22.6", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.10", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.5", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.5", + "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.5", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-modules-systemjs": "^7.22.5", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", + "@babel/plugin-transform-numeric-separator": "^7.22.5", + "@babel/plugin-transform-object-rest-spread": "^7.22.5", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.10", + "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.5", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.22.10", + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1674,27 +1831,31 @@ } }, "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "node_modules/@babel/runtime": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", - "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.11.tgz", + "integrity": "sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==", "dependencies": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" @@ -1713,34 +1874,39 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.10.tgz", - "integrity": "sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.10", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.10", - "@babel/types": "^7.17.10", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.11.tgz", + "integrity": "sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.11", + "@babel/types": "^7.22.11", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1749,12 +1915,13 @@ } }, "node_modules/@babel/types": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.10.tgz", - "integrity": "sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.11.tgz", + "integrity": "sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2286,9 +2453,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", - "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "engines": { "node": ">=6.0.0" } @@ -2324,17 +2491,17 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", - "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==" + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.12.tgz", - "integrity": "sha512-6GMdw8fZlZjs9CJONrWeWyjl8zYqbyOMSxS9FABnEw3i+wz99SESjWMWRRIsbIp8HVsMeXggi5b7+a9qO6W1fQ==", + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@leichtgewicht/ip-codec": { @@ -2393,6 +2560,15 @@ "node": ">=10" } }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "dependencies": { + "eslint-scope": "5.1.1" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -4399,15 +4575,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -4425,42 +4592,42 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", - "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", + "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.0", - "semver": "^6.1.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.2", + "semver": "^6.3.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", + "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" + "@babel/helper-define-polyfill-provider": "^0.4.2", + "core-js-compat": "^3.31.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", - "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", + "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.0" + "@babel/helper-define-polyfill-provider": "^0.4.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/backo2": { @@ -4694,9 +4861,9 @@ } }, "node_modules/browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "version": "4.21.10", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", + "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", "funding": [ { "type": "opencollective", @@ -4705,14 +4872,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001517", + "electron-to-chromium": "^1.4.477", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.11" }, "bin": { "browserslist": "cli.js" @@ -4866,9 +5036,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001522", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001522.tgz", - "integrity": "sha512-TKiyTVZxJGhsTszLuzb+6vUZSjVOAhClszBr2Ta2k9IwtNBT/4dzmL6aywt0HCgEZlmwJzXJd8yNiob6HgwTRg==", + "version": "1.0.30001524", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001524.tgz", + "integrity": "sha512-Jj917pJtYg9HSJBF95HVX3Cdr89JUyLT4IZ8SvM5aDRni95swKgYi3TgYLH5hnGfPE/U1dg6IfZ50UsIlLkwSA==", "funding": [ { "type": "opencollective", @@ -5757,28 +5927,18 @@ } }, "node_modules/core-js-compat": { - "version": "3.22.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.5.tgz", - "integrity": "sha512-rEF75n3QtInrYICvJjrAgV03HwKiYvtKHdPtaba1KucG+cNZ4NJnH9isqt979e67KZlhpbCOTwnsvnIr+CVeOg==", + "version": "3.32.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.1.tgz", + "integrity": "sha512-GSvKDv4wE0bPnQtjklV101juQ85g6H3rm5PDP20mqlS5j0kXF3pP97YvAu5hl+uFHqMictp3b2VxOHljWMAtuA==", "dev": true, "dependencies": { - "browserslist": "^4.20.3", - "semver": "7.0.0" + "browserslist": "^4.21.10" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/core-js-pure": { "version": "3.20.2", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.2.tgz", @@ -6854,9 +7014,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.137", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", - "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==" + "version": "1.4.505", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.505.tgz", + "integrity": "sha512-0A50eL5BCCKdxig2SsCXhpuztnB9PfUgRMojj5tMvt8O54lbwz3t6wNgnpiTRosw5QjlJB7ixhVyeg8daLQwSQ==" }, "node_modules/email-addresses": { "version": "3.1.0", @@ -11274,7 +11434,7 @@ "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, "node_modules/lodash.endswith": { @@ -12098,9 +12258,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", - "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==" + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" }, "node_modules/normalize-package-data": { "version": "2.5.0", @@ -16549,9 +16709,9 @@ "dev": true }, "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", "dev": true, "dependencies": { "regenerate": "^1.4.2" @@ -16563,12 +16723,13 @@ "node_modules/regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true }, "node_modules/regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" @@ -16603,17 +16764,17 @@ } }, "node_modules/regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "dependencies": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { "node": ">=4" @@ -16631,16 +16792,10 @@ "node": ">=6.0.0" } }, - "node_modules/regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, "node_modules/regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, "dependencies": { "jsesc": "~0.5.0" @@ -16652,7 +16807,7 @@ "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true, "bin": { "jsesc": "bin/jsesc" @@ -17290,9 +17445,9 @@ } }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "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" @@ -19080,18 +19235,18 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, "engines": { "node": ">=4" @@ -19139,6 +19294,35 @@ "node": ">= 0.8" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -20187,317 +20371,368 @@ } }, "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, "requires": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@babel/compat-data": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", - "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", "dev": true }, "@babel/core": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.10.tgz", - "integrity": "sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.10", - "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.9", - "@babel/parser": "^7.17.10", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.10", - "@babel/types": "^7.17.10", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.11.tgz", + "integrity": "sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", + "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helpers": "^7.22.11", + "@babel/parser": "^7.22.11", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.11", + "@babel/types": "^7.22.11", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" } }, "@babel/eslint-parser": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", - "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.11.tgz", + "integrity": "sha512-YjOYZ3j7TjV8OhLW6NCtyg8G04uStATEUe5eiLuCZaXz2VSDQ3dsAtm2D+TuQyAqNMUK2WacGo0/uma9Pein1w==", "dev": true, "requires": { - "eslint-scope": "^5.1.1", + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" + "semver": "^6.3.1" } }, "@babel/generator": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.10.tgz", - "integrity": "sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.10.tgz", + "integrity": "sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==", "dev": true, "requires": { - "@babel/types": "^7.17.10", - "@jridgewell/gen-mapping": "^0.1.0", + "@babel/types": "^7.22.10", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } } }, "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz", + "integrity": "sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.10" } }, "@babel/helper-compilation-targets": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz", - "integrity": "sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz", + "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==", "dev": true, "requires": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.20.2", - "semver": "^6.3.0" + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz", - "integrity": "sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.11.tgz", + "integrity": "sha512-y1grdYL4WzmUDBRGK0pDbIoFd7UZKoDurDzWEoNMYoj1EL+foGRQNyPWDcC+YyegN5y1DUsFFmzjGijB3nSVAQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", + "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" } }, "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", + "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" + "resolve": "^1.14.2" } }, "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "dev": true }, "@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", "dev": true, "requires": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" } }, "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "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, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", + "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", "dev": true, "requires": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.22.5" } }, "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" } }, "@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" } }, "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" } }, "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true }, "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", + "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-wrap-function": "^7.22.9" } }, "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", + "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5" } }, "@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "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==", "dev": true, "requires": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.22.5" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.22.5" } }, "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "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, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" } }, + "@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true + }, "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", "dev": true }, "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz", + "integrity": "sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.10" } }, "@babel/helpers": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", - "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.11.tgz", + "integrity": "sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg==", "dev": true, "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0" + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.11", + "@babel/types": "^7.22.11" } }, "@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", + "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "dependencies": { @@ -20533,188 +20768,37 @@ } }, "@babel/parser": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz", - "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.13.tgz", + "integrity": "sha512-3l6+4YOvc9wx7VlCSw4yQfcBo01ECA8TicQfbnCPuCEpRQrf+gTUyGdxNw+pyTUyywp6JRD1w0YQs9TpBXYlkw==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", + "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", + "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.5" } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } + "requires": {} }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", @@ -20761,6 +20845,33 @@ "@babel/helper-plugin-utils": "^7.8.3" } }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-import-attributes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@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", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -20842,366 +20953,535 @@ "@babel/helper-plugin-utils": "^7.14.5" } }, + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-async-generator-functions": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.11.tgz", + "integrity": "sha512-0pAlmeRJn6wU84zzZsEOx1JV1Jf8fqO9ok7wofIJwUnplYo247dcd24P+cMJht7ts9xkzdtB0EPHmOb7F+KzXw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz", + "integrity": "sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "@babel/plugin-transform-class-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-class-static-block": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", + "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", + "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" } }, "@babel/plugin-transform-destructuring": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", - "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz", + "integrity": "sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-dynamic-import": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", + "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-export-namespace-from": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", + "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", + "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-json-strings": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", + "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", + "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", + "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz", - "integrity": "sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.11.tgz", + "integrity": "sha512-o2+bg7GDS60cJMgz9jWqRUsWkMzLCxp+jFDeDUT5sjRlAxcJWZ2ylNdI7QQ2+CH5hWu7OnN+Cv3htt7AkSf96g==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", - "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz", + "integrity": "sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.10.tgz", - "integrity": "sha512-v54O6yLaJySCs6mGzaVOUw9T967GnH38T6CQSAtnzdNPwu84l2qAjssKzo/WSO8Yi7NF+7ekm5cVbF/5qiIgNA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.17.0" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", + "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-transform-numeric-separator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", + "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-transform-object-rest-spread": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.11.tgz", + "integrity": "sha512-nX8cPFa6+UmbepISvlf5jhQyaC7ASs/7UxHmMkuJ/k5xSHvDPPaibMo+v3TXwU/Pjqhep/nFNpd3zn4YR59pnw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.5" } }, "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" + } + }, + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", + "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.22.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.12.tgz", + "integrity": "sha512-7XXCVqZtyFWqjDsYDY4T45w4mlx1rf7aOgkc/Ww76xkgBiOlmjPkx36PBLHa1k1rwWvVgYMPsbuVnIamx2ZQJw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", + "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-private-methods": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-private-property-in-object": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", + "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-regenerator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz", - "integrity": "sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", "dev": true, "requires": { - "regenerator-transform": "^0.15.0" + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-runtime": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.10.tgz", - "integrity": "sha512-6jrMilUAJhktTr56kACL8LnWC5hx3Lf27BS0R0DSyW/OoJfb/iTHeE96V3b1dgKG3FSFdd/0culnYWMkjcKCig==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.10.tgz", + "integrity": "sha512-RchI7HePu1eu0CYNKHHHQdfenZcM4nz8rew5B1VWqeRKdcwW5aQ5HeG9eTUbWiAS1UrmHVLmoxTWHt3iLD/NhA==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", + "semver": "^6.3.1" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/preset-env": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.17.10.tgz", - "integrity": "sha512-YNgyBHZQpeoBSRBg0xixsZzfT58Ze1iZrajvv0lJc70qDDGuGfonEnMGfWeSY0mQ3JTuCWFbMkzFRVafOyJx4g==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.17.6", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.17.3", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.10.tgz", + "integrity": "sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -21211,66 +21491,94 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.17.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.17.9", - "@babel/plugin-transform-modules-systemjs": "^7.17.8", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.10", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.17.9", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.17.10", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.22.1", - "semver": "^6.3.0" + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.10", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.10", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.5", + "@babel/plugin-transform-classes": "^7.22.6", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.10", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.5", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.5", + "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.5", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-modules-systemjs": "^7.22.5", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", + "@babel/plugin-transform-numeric-separator": "^7.22.5", + "@babel/plugin-transform-object-rest-spread": "^7.22.5", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.10", + "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.5", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.22.10", + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" } }, "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" } }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "@babel/runtime": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", - "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.11.tgz", + "integrity": "sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==", "requires": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.14.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + } } }, "@babel/runtime-corejs3": { @@ -21284,41 +21592,42 @@ } }, "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", "dev": true, "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" } }, "@babel/traverse": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.10.tgz", - "integrity": "sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.10", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.10", - "@babel/types": "^7.17.10", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.11.tgz", + "integrity": "sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.11", + "@babel/types": "^7.22.11", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.10.tgz", - "integrity": "sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.11.tgz", + "integrity": "sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", "to-fast-properties": "^2.0.0" } }, @@ -21723,9 +22032,9 @@ } }, "@jridgewell/resolve-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", - "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" }, "@jridgewell/set-array": { "version": "1.1.1", @@ -21754,17 +22063,17 @@ } }, "@jridgewell/sourcemap-codec": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", - "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==" + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "@jridgewell/trace-mapping": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.12.tgz", - "integrity": "sha512-6GMdw8fZlZjs9CJONrWeWyjl8zYqbyOMSxS9FABnEw3i+wz99SESjWMWRRIsbIp8HVsMeXggi5b7+a9qO6W1fQ==", + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "@leichtgewicht/ip-codec": { @@ -21810,6 +22119,15 @@ } } }, + "@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "requires": { + "eslint-scope": "5.1.1" + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -23418,15 +23736,6 @@ } } }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, "babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -23441,33 +23750,33 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", - "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", + "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", "dev": true, "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.0", - "semver": "^6.1.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.2", + "semver": "^6.3.1" } }, "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", + "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" + "@babel/helper-define-polyfill-provider": "^0.4.2", + "core-js-compat": "^3.31.0" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", - "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", + "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.0" + "@babel/helper-define-polyfill-provider": "^0.4.2" } }, "backo2": { @@ -23652,15 +23961,14 @@ } }, "browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "version": "4.21.10", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", + "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", "requires": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001517", + "electron-to-chromium": "^1.4.477", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.11" } }, "buffer": { @@ -23769,9 +24077,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001522", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001522.tgz", - "integrity": "sha512-TKiyTVZxJGhsTszLuzb+6vUZSjVOAhClszBr2Ta2k9IwtNBT/4dzmL6aywt0HCgEZlmwJzXJd8yNiob6HgwTRg==" + "version": "1.0.30001524", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001524.tgz", + "integrity": "sha512-Jj917pJtYg9HSJBF95HVX3Cdr89JUyLT4IZ8SvM5aDRni95swKgYi3TgYLH5hnGfPE/U1dg6IfZ50UsIlLkwSA==" }, "cardinal": { "version": "2.1.1", @@ -24445,21 +24753,12 @@ } }, "core-js-compat": { - "version": "3.22.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.5.tgz", - "integrity": "sha512-rEF75n3QtInrYICvJjrAgV03HwKiYvtKHdPtaba1KucG+cNZ4NJnH9isqt979e67KZlhpbCOTwnsvnIr+CVeOg==", + "version": "3.32.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.1.tgz", + "integrity": "sha512-GSvKDv4wE0bPnQtjklV101juQ85g6H3rm5PDP20mqlS5j0kXF3pP97YvAu5hl+uFHqMictp3b2VxOHljWMAtuA==", "dev": true, "requires": { - "browserslist": "^4.20.3", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } + "browserslist": "^4.21.10" } }, "core-js-pure": { @@ -25270,9 +25569,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.137", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", - "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==" + "version": "1.4.505", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.505.tgz", + "integrity": "sha512-0A50eL5BCCKdxig2SsCXhpuztnB9PfUgRMojj5tMvt8O54lbwz3t6wNgnpiTRosw5QjlJB7ixhVyeg8daLQwSQ==" }, "email-addresses": { "version": "3.1.0", @@ -28638,7 +28937,7 @@ "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, "lodash.endswith": { @@ -29276,9 +29575,9 @@ } }, "node-releases": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", - "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==" + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" }, "normalize-package-data": { "version": "2.5.0", @@ -32410,9 +32709,9 @@ "dev": true }, "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", "dev": true, "requires": { "regenerate": "^1.4.2" @@ -32421,12 +32720,13 @@ "regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true }, "regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "requires": { "@babel/runtime": "^7.8.4" @@ -32449,17 +32749,17 @@ "dev": true }, "regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "requires": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" } }, "registry-auth-token": { @@ -32471,16 +32771,10 @@ "rc": "^1.2.8" } }, - "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -32489,7 +32783,7 @@ "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true } } @@ -32981,9 +33275,9 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true }, "semver-compare": { @@ -34383,15 +34677,15 @@ } }, "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true }, "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true }, "uniqs": { @@ -34427,6 +34721,15 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, + "update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", diff --git a/package.json b/package.json index 5b93750710f..bc42ea2c2c8 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "main": "./dist/umd/vtk.js", "module": "./dist/esm/index.js", "dependencies": { - "@babel/runtime": "7.17.9", + "@babel/runtime": "7.22.11", "commander": "9.2.0", "d3-scale": "4.0.2", "fast-deep-equal": "^3.1.3", @@ -47,10 +47,10 @@ "xmlbuilder2": "3.0.2" }, "devDependencies": { - "@babel/core": "7.17.10", - "@babel/eslint-parser": "7.17.0", - "@babel/plugin-transform-runtime": "7.17.10", - "@babel/preset-env": "7.17.10", + "@babel/core": "7.22.11", + "@babel/eslint-parser": "7.22.11", + "@babel/plugin-transform-runtime": "7.22.10", + "@babel/preset-env": "7.22.10", "@commitlint/cli": "16.2.4", "@commitlint/config-conventional": "16.2.4", "@mapbox/node-pre-gyp": "1.0.9", From 548001f47ea4b69f4113f860154d52da4a15aa20 Mon Sep 17 00:00:00 2001 From: Forrest <forrest.li@kitware.com> Date: Tue, 29 Aug 2023 21:42:12 -0400 Subject: [PATCH 11/31] chore(umd): output es5 --- webpack.common.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/webpack.common.js b/webpack.common.js index be18187149c..a99997930d5 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -42,7 +42,9 @@ function configureVtkRules() { { loader: 'babel-loader', options: { - presets: ['@babel/preset-env'], + presets: [ + ['@babel/preset-env', { ignoreBrowserslistConfig: true }], + ], }, }, ], From 06023323373ce3ffed4d86b053df1110bf39018e Mon Sep 17 00:00:00 2001 From: Forrest <forrest.li@kitware.com> Date: Thu, 7 Sep 2023 13:03:05 -0400 Subject: [PATCH 12/31] docs(intro): add ES5 note --- Documentation/content/docs/intro_vtk_as_es6_dependency.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Documentation/content/docs/intro_vtk_as_es6_dependency.md b/Documentation/content/docs/intro_vtk_as_es6_dependency.md index ba3b34cbd75..b85a2bdf1d7 100644 --- a/Documentation/content/docs/intro_vtk_as_es6_dependency.md +++ b/Documentation/content/docs/intro_vtk_as_es6_dependency.md @@ -4,7 +4,7 @@ title: Using vtk.js as an ES dependency This guide illustrates how to consume vtk.js as an ES dependency. This document was last updated with the following package versions: -- `@kitware/vtk.js@v19` +- `@kitware/vtk.js@v28` - `webpack@v5` ## Starting a new vtk.js project @@ -56,6 +56,12 @@ Furthermore, you no longer need to require and add `vtkRules` into your webpack } ``` +### ES5 Support + +`@kitware/vtk.js` targets ES6+, which means projects consuming `@kitware/vtk.js` must use babel, swc, or another transpiler to target ES5 output. If you are using existing frontend tooling such as vite or create-react-app, you are already covered. + +Adding ES5 support is out of the scope for this documentation. Instead, please visit [babel's documentation](https://babeljs.io/) or [SWC's documentation](https://swc.rs/) to get started. + ## Using vtk.js vtk.js is comprised of many different modules that are organized in several different folders. Below is an overview of where you can find certain classes. From ad1c9b91f86dfdc7ad6ff73910ade86661fd8067 Mon Sep 17 00:00:00 2001 From: Anne Haley <anne.haley@kitware.com> Date: Thu, 31 Aug 2023 15:59:44 -0400 Subject: [PATCH 13/31] feat(ActorPickManipulator): constrain handle movement to actor surfaces --- .../ActorPickManipulator/index.d.ts | 37 +++++++++++ .../ActorPickManipulator/index.js | 62 +++++++++++++++++++ Sources/Widgets/Manipulators/index.js | 2 + 3 files changed, 101 insertions(+) create mode 100755 Sources/Widgets/Manipulators/ActorPickManipulator/index.d.ts create mode 100644 Sources/Widgets/Manipulators/ActorPickManipulator/index.js diff --git a/Sources/Widgets/Manipulators/ActorPickManipulator/index.d.ts b/Sources/Widgets/Manipulators/ActorPickManipulator/index.d.ts new file mode 100755 index 00000000000..a5b35d0886d --- /dev/null +++ b/Sources/Widgets/Manipulators/ActorPickManipulator/index.d.ts @@ -0,0 +1,37 @@ +import { IAbstractManipulatorInitialValues, vtkAbstractManipulator } from "../AbstractManipulator"; + +/** + * + */ +export interface IActorPickManipulatorInitialValues extends IAbstractManipulatorInitialValues { + +} + +export interface vtkActorPickManipulator extends vtkAbstractManipulator { + +} + + +/** + * Method use to decorate a given object (publicAPI+model) with vtkActorPickManipulator characteristics. + * + * @param publicAPI object on which methods will be bounds (public) + * @param model object on which data structure will be bounds (protected) + * @param {IActorPickManipulatorInitialValues} [initialValues] (default: {}) + */ +export function extend(publicAPI: object, model: object, initialValues?: IActorPickManipulatorInitialValues): void; + +/** + * Method use to create a new instance of vtkActorPickManipulator + */ +export function newInstance(initialValues?: IActorPickManipulatorInitialValues): vtkActorPickManipulator; + + +/** + * vtkActorPickManipulator. + */ +export declare const vtkActorPickManipulator: { + newInstance: typeof newInstance, + extend: typeof extend, +}; +export default vtkActorPickManipulator; diff --git a/Sources/Widgets/Manipulators/ActorPickManipulator/index.js b/Sources/Widgets/Manipulators/ActorPickManipulator/index.js new file mode 100644 index 00000000000..47a7acf49e7 --- /dev/null +++ b/Sources/Widgets/Manipulators/ActorPickManipulator/index.js @@ -0,0 +1,62 @@ +import macro from 'vtk.js/Sources/macros'; +import vtkCellPicker from 'vtk.js/Sources/Rendering/Core/CellPicker'; +import vtkAbstractManipulator from 'vtk.js/Sources/Widgets/Manipulators/AbstractManipulator'; + +// ---------------------------------------------------------------------------- +// vtkActorPickManipulator methods +// ---------------------------------------------------------------------------- + +function vtkActorPickManipulator(publicAPI, model) { + // Set our className + model.classHierarchy.push('vtkActorPickManipulator'); + model.picker = vtkCellPicker.newInstance(); + model.picker.initializePickList(); + model.picker.setPickFromList(true); + model.picker.setTolerance(0); + + publicAPI.handleEvent = (callData) => { + const { position, pokedRenderer } = callData; + + model.picker.pick([position.x, position.y, 0.0], pokedRenderer); + if (model.picker.getActors().length > 0) { + model.position = model.picker.getPickedPositions()[0]; + } + return { + worldCoords: model.position || [0, 0, 0], + }; + }; + + publicAPI.addActor = (actor) => { + model.picker.addPickList(actor); + }; + + publicAPI.setTolerance = (tolerance) => { + model.picker.setTolerance(tolerance); + }; +} + +// ---------------------------------------------------------------------------- +// Object factory +// ---------------------------------------------------------------------------- + +function defaultValues(initialValues) { + return { + ...initialValues, + }; +} + +// ---------------------------------------------------------------------------- + +export function extend(publicAPI, model, initialValues = {}) { + vtkAbstractManipulator.extend(publicAPI, model, defaultValues(initialValues)); + + vtkActorPickManipulator(publicAPI, model); +} + +// ---------------------------------------------------------------------------- + +export const newInstance = macro.newInstance(extend, 'vtkActorPickManipulator'); + +// ---------------------------------------------------------------------------- + +export default { extend, newInstance }; diff --git a/Sources/Widgets/Manipulators/index.js b/Sources/Widgets/Manipulators/index.js index 7de9ff3fe2f..47c6ad84fda 100644 --- a/Sources/Widgets/Manipulators/index.js +++ b/Sources/Widgets/Manipulators/index.js @@ -1,8 +1,10 @@ +import vtkActorPickManipulator from './ActorPickManipulator'; import vtkLineManipulator from './LineManipulator'; import vtkPlaneManipulator from './PlaneManipulator'; import vtkTrackballManipulator from './TrackballManipulator'; export default { + vtkActorPickManipulator, vtkLineManipulator, vtkPlaneManipulator, vtkTrackballManipulator, From 767901e92dda21002b8a5980ba9a986bbd22a10a Mon Sep 17 00:00:00 2001 From: Anne Haley <anne.haley@kitware.com> Date: Thu, 31 Aug 2023 16:00:49 -0400 Subject: [PATCH 14/31] feat(SeedWidget): a single-handle widget that can be placed and replaced --- .../Widgets/Widgets3D/SeedWidget/behavior.js | 95 +++++++++++++++++++ .../Widgets/Widgets3D/SeedWidget/index.d.ts | 44 +++++++++ Sources/Widgets/Widgets3D/SeedWidget/index.js | 46 +++++++++ Sources/Widgets/Widgets3D/SeedWidget/state.js | 18 ++++ 4 files changed, 203 insertions(+) create mode 100644 Sources/Widgets/Widgets3D/SeedWidget/behavior.js create mode 100644 Sources/Widgets/Widgets3D/SeedWidget/index.d.ts create mode 100644 Sources/Widgets/Widgets3D/SeedWidget/index.js create mode 100644 Sources/Widgets/Widgets3D/SeedWidget/state.js diff --git a/Sources/Widgets/Widgets3D/SeedWidget/behavior.js b/Sources/Widgets/Widgets3D/SeedWidget/behavior.js new file mode 100644 index 00000000000..6808e7280a6 --- /dev/null +++ b/Sources/Widgets/Widgets3D/SeedWidget/behavior.js @@ -0,0 +1,95 @@ +import macro from 'vtk.js/Sources/macros'; + +export default function widgetBehavior(publicAPI, model) { + const state = model.widgetState; + const moveHandle = state.getMoveHandle(); + moveHandle.setVisible(true); + // default color is red + moveHandle.setColor3(255, 0, 0); + + model._isDragging = false; + model.previousPosition = null; + model.classHierarchy.push('SeedWidgetProp'); + + function isValidHandle(handle) { + return handle === moveHandle; + } + + function isPlaced() { + return !!moveHandle.getOrigin(); + } + + function currentWorldCoords(e) { + const manipulator = + model.activeState?.getManipulator?.() ?? model.manipulator; + return manipulator.handleEvent(e, model._apiSpecificRenderWindow) + .worldCoords; + } + + // Update the handle's center. Example: + // handle.setCenter([1,2,3]); + publicAPI.setCenter = (newCenter) => { + moveHandle.setOrigin(newCenter); + model._widgetManager.enablePicking(); + }; + + publicAPI.handleLeftButtonPress = (e) => { + if (!isValidHandle(model.activeState)) { + model.activeState = null; + return macro.VOID; + } + const worldCoords = currentWorldCoords(e); + + if (model.activeState === moveHandle) { + if (!moveHandle.getOrigin()) { + moveHandle.setOrigin(worldCoords); + } + } + model._isDragging = true; + model._apiSpecificRenderWindow.setCursor('grabbing'); + model.previousPosition = [...currentWorldCoords(e)]; + publicAPI.invokeStartInteractionEvent(); + return macro.EVENT_ABORT; + }; + + publicAPI.handleLeftButtonRelease = (e) => { + if (!model._isDragging) { + model.activeState = null; + return macro.VOID; + } + if (isPlaced()) { + model.previousPosition = null; + model._widgetManager.enablePicking(); + model._apiSpecificRenderWindow.setCursor('pointer'); + model._isDragging = false; + model.activeState = null; + state.deactivate(); + } + publicAPI.invokeEndInteractionEvent(); + return macro.EVENT_ABORT; + }; + + publicAPI.handleMouseMove = (e) => { + if (!model._isDragging) { + model.activeState = null; + return macro.VOID; + } + if (!model.activeState) throw Error('no activestate'); + const worldCoords = currentWorldCoords(e); + model.activeState.setOrigin(worldCoords); + model.previousPosition = worldCoords; + return macro.VOID; + }; + + publicAPI.grabFocus = () => { + moveHandle.setVisible(true); + model._isDragging = true; + model.activeState = moveHandle; + model._interactor.render(); + }; + + publicAPI.loseFocus = () => { + model._isDragging = false; + model.activeState = null; + }; +} diff --git a/Sources/Widgets/Widgets3D/SeedWidget/index.d.ts b/Sources/Widgets/Widgets3D/SeedWidget/index.d.ts new file mode 100644 index 00000000000..18ff6039a19 --- /dev/null +++ b/Sources/Widgets/Widgets3D/SeedWidget/index.d.ts @@ -0,0 +1,44 @@ +import vtkAbstractWidget from '../../Core/AbstractWidget'; +import { Vector3, Bounds } from '../../../types'; + +export interface ISeedWidgetHandleState { + getOrigin(): Vector3; + setOrigin(arg: Vector3): void; + getColor3(): string; + setColor3(arg: string):void; + getScale1(): number; + setScale1(arg: number): void; + getVisible(): boolean; + setVisible(arg: boolean):void + setShape(arg: string): void; + getShape(): string; +} + +// The internal state of the widget. +export interface vtkSeedWidgetState { + // A handle that defines the location + getMoveHandle(): ISeedWidgetHandleState; +} + +// The type of object returned by vtkWidgetManager.addWidget() +export interface vtkSeedWidgetHandle { + setCenter(center: Vector3): void; +} + +export interface vtkSeedWidget { + // Abstract widget methods. + getWidgetState(): vtkSeedWidgetState; + onWidgetChange(fn: () => void): void; + placeWidget(bounds: Bounds): void; + setPlaceFactor(factor: number): void; +} + +export interface ISeedWidgetInitialValues {} + +export function newInstance(props?: ISeedWidgetInitialValues): vtkSeedWidget; + +export const vtkSeedWidget: { + newInstance: typeof newInstance; +}; + +export default vtkSeedWidget; diff --git a/Sources/Widgets/Widgets3D/SeedWidget/index.js b/Sources/Widgets/Widgets3D/SeedWidget/index.js new file mode 100644 index 00000000000..8da22b5d732 --- /dev/null +++ b/Sources/Widgets/Widgets3D/SeedWidget/index.js @@ -0,0 +1,46 @@ +import vtkAbstractWidgetFactory from 'vtk.js/Sources/Widgets/Core/AbstractWidgetFactory'; +import vtkCubeHandleRepresentation from 'vtk.js/Sources/Widgets/Representations/CubeHandleRepresentation'; +import macro from 'vtk.js/Sources/macros'; + +import widgetBehavior from './behavior'; +import stateGenerator from './state'; + +function vtkSeedWidget(publicAPI, model) { + model.classHierarchy.push('vtkSeedWidget'); + + const superClass = { ...publicAPI }; + + model.methodsToLink = ['scaleInPixels']; + + publicAPI.getRepresentationsForViewType = (viewType) => [ + { + builder: vtkCubeHandleRepresentation, + labels: ['moveHandle'], + initialValues: { + useActiveColor: false, + }, + }, + ]; + + publicAPI.setManipulator = (manipulator) => { + superClass.setManipulator(manipulator); + model.widgetState.getMoveHandle().setManipulator(manipulator); + }; +} + +const defaultValues = (initialValues) => ({ + behavior: widgetBehavior, + widgetState: stateGenerator(), + ...initialValues, +}); + +export function extend(publicAPI, model, initialValues = {}) { + Object.assign(model, defaultValues(initialValues)); + vtkAbstractWidgetFactory.extend(publicAPI, model, initialValues); + macro.setGet(publicAPI, model, ['manipulator', 'widgetState']); + vtkSeedWidget(publicAPI, model); +} + +export const newInstance = macro.newInstance(extend, 'vtkSeedWidget'); + +export default { newInstance, extend }; diff --git a/Sources/Widgets/Widgets3D/SeedWidget/state.js b/Sources/Widgets/Widgets3D/SeedWidget/state.js new file mode 100644 index 00000000000..9f8b6154137 --- /dev/null +++ b/Sources/Widgets/Widgets3D/SeedWidget/state.js @@ -0,0 +1,18 @@ +import vtkStateBuilder from 'vtk.js/Sources/Widgets/Core/StateBuilder'; + +// Defines the structure of the widget state. +// See https://kitware.github.io/vtk-js/docs/concepts_widgets.html. +export default function stateGenerator() { + return vtkStateBuilder + .createBuilder() + .addStateFromMixin({ + labels: ['moveHandle'], + mixins: ['origin', 'color3', 'scale1', 'visible', 'manipulator'], + name: 'moveHandle', + initialValues: { + scale1: 20, + visible: true, + }, + }) + .build(); +} From 6585d31a8beb031b608389173959ce8fd5d0aa2f Mon Sep 17 00:00:00 2001 From: Anne Haley <anne.haley@kitware.com> Date: Thu, 31 Aug 2023 16:02:05 -0400 Subject: [PATCH 15/31] docs(SeedWidget): add example to demonstrate use of SeedWidget with ActorPickManipulator --- .../SeedWidget/example/controlPanel.html | 4 + .../Widgets3D/SeedWidget/example/index.js | 86 +++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 Sources/Widgets/Widgets3D/SeedWidget/example/controlPanel.html create mode 100644 Sources/Widgets/Widgets3D/SeedWidget/example/index.js diff --git a/Sources/Widgets/Widgets3D/SeedWidget/example/controlPanel.html b/Sources/Widgets/Widgets3D/SeedWidget/example/controlPanel.html new file mode 100644 index 00000000000..51abd11bda6 --- /dev/null +++ b/Sources/Widgets/Widgets3D/SeedWidget/example/controlPanel.html @@ -0,0 +1,4 @@ +<div> + <button id="addWidget">Add widget</button> + <button id="removeWidget">Remove widget</button> +</div> diff --git a/Sources/Widgets/Widgets3D/SeedWidget/example/index.js b/Sources/Widgets/Widgets3D/SeedWidget/example/index.js new file mode 100644 index 00000000000..c19df9eae0d --- /dev/null +++ b/Sources/Widgets/Widgets3D/SeedWidget/example/index.js @@ -0,0 +1,86 @@ +import '@kitware/vtk.js/favicon'; + +// Load the rendering pieces we want to use (for both WebGL and WebGPU) +import '@kitware/vtk.js/Rendering/Profiles/Geometry'; +import '@kitware/vtk.js/Rendering/Profiles/Glyph'; + +import vtkActor from '@kitware/vtk.js/Rendering/Core/Actor'; +import vtkConeSource from '@kitware/vtk.js/Filters/Sources/ConeSource'; +import vtkActorPickManipulator from '@kitware/vtk.js/Widgets/Manipulators/ActorPickManipulator'; +import vtkFullScreenRenderWindow from '@kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow'; +import vtkMapper from '@kitware/vtk.js/Rendering/Core/Mapper'; +import vtkSeedWidget from '@kitware/vtk.js/Widgets/Widgets3D/SeedWidget'; +import vtkWidgetManager from '@kitware/vtk.js/Widgets/Core/WidgetManager'; + +import controlPanel from './controlPanel.html'; + +// ---------------------------------------------------------------------------- +// Standard rendering code setup +// ---------------------------------------------------------------------------- + +const fullScreenRenderer = vtkFullScreenRenderWindow.newInstance({ + background: [0, 0, 0], +}); +const renderer = fullScreenRenderer.getRenderer(); +const renderWindow = fullScreenRenderer.getRenderWindow(); + +const cone = vtkConeSource.newInstance(); +cone.setResolution(50); +const mapper = vtkMapper.newInstance(); +const actor = vtkActor.newInstance(); + +// Create an instance of vtkActorPickManipulator to constrain movement to a target actor +const manipulator = vtkActorPickManipulator.newInstance(); +// Set the target actor, which is representing a cone +manipulator.addActor(actor); + +actor.setMapper(mapper); +mapper.setInputConnection(cone.getOutputPort()); +actor.getProperty().setOpacity(0.5); + +renderer.addActor(actor); + +// ---------------------------------------------------------------------------- +// Widget manager +// ---------------------------------------------------------------------------- + +const widgetManager = vtkWidgetManager.newInstance(); +widgetManager.setRenderer(renderer); + +let widget = null; +let widgetHandle = null; + +renderer.resetCamera(); + +// ----------------------------------------------------------- +// UI control handling +// ----------------------------------------------------------- + +fullScreenRenderer.addController(controlPanel); + +document.querySelector('#addWidget').addEventListener('click', () => { + widgetManager.releaseFocus(widget); + widget = vtkSeedWidget.newInstance(); + // Important: set the manipulator of the widget to constrain movement to the actor + widget.setManipulator(manipulator); + widget.placeWidget(cone.getOutputData().getBounds()); + widgetHandle = widgetManager.addWidget(widget); + widgetManager.grabFocus(widget); +}); + +document.querySelector('#removeWidget').addEventListener('click', () => { + const widgets = widgetManager.getWidgets(); + if (!widgets.length) return; + widgetManager.removeWidget(widgets[widgets.length - 1]); +}); + +// ----------------------------------------------------------- +// globals +// ----------------------------------------------------------- + +global.widget = widget; +global.renderer = renderer; +global.fullScreenRenderer = fullScreenRenderer; +global.renderWindow = renderWindow; +global.widgetManager = widgetManager; +global.widgetHandle = widgetHandle; From bd8d45abe8346bf7c089c54d494d05ba4cb0d81a Mon Sep 17 00:00:00 2001 From: Anne Haley <anne.haley@kitware.com> Date: Tue, 5 Sep 2023 13:01:09 -0400 Subject: [PATCH 16/31] refactor(PickerManipulator): Rename ActorPickManipulator -> PickerManipulator --- .../ActorPickManipulator/index.d.ts | 37 ------------------- .../Manipulators/PickerManipulator/index.d.ts | 37 +++++++++++++++++++ .../index.js | 10 ++--- Sources/Widgets/Manipulators/index.js | 4 +- .../Widgets3D/SeedWidget/example/index.js | 6 +-- 5 files changed, 47 insertions(+), 47 deletions(-) delete mode 100755 Sources/Widgets/Manipulators/ActorPickManipulator/index.d.ts create mode 100755 Sources/Widgets/Manipulators/PickerManipulator/index.d.ts rename Sources/Widgets/Manipulators/{ActorPickManipulator => PickerManipulator}/index.js (86%) diff --git a/Sources/Widgets/Manipulators/ActorPickManipulator/index.d.ts b/Sources/Widgets/Manipulators/ActorPickManipulator/index.d.ts deleted file mode 100755 index a5b35d0886d..00000000000 --- a/Sources/Widgets/Manipulators/ActorPickManipulator/index.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { IAbstractManipulatorInitialValues, vtkAbstractManipulator } from "../AbstractManipulator"; - -/** - * - */ -export interface IActorPickManipulatorInitialValues extends IAbstractManipulatorInitialValues { - -} - -export interface vtkActorPickManipulator extends vtkAbstractManipulator { - -} - - -/** - * Method use to decorate a given object (publicAPI+model) with vtkActorPickManipulator characteristics. - * - * @param publicAPI object on which methods will be bounds (public) - * @param model object on which data structure will be bounds (protected) - * @param {IActorPickManipulatorInitialValues} [initialValues] (default: {}) - */ -export function extend(publicAPI: object, model: object, initialValues?: IActorPickManipulatorInitialValues): void; - -/** - * Method use to create a new instance of vtkActorPickManipulator - */ -export function newInstance(initialValues?: IActorPickManipulatorInitialValues): vtkActorPickManipulator; - - -/** - * vtkActorPickManipulator. - */ -export declare const vtkActorPickManipulator: { - newInstance: typeof newInstance, - extend: typeof extend, -}; -export default vtkActorPickManipulator; diff --git a/Sources/Widgets/Manipulators/PickerManipulator/index.d.ts b/Sources/Widgets/Manipulators/PickerManipulator/index.d.ts new file mode 100755 index 00000000000..01f760bad5f --- /dev/null +++ b/Sources/Widgets/Manipulators/PickerManipulator/index.d.ts @@ -0,0 +1,37 @@ +import { IAbstractManipulatorInitialValues, vtkAbstractManipulator } from "../AbstractManipulator"; + +/** + * + */ +export interface IPickerManipulatorInitialValues extends IAbstractManipulatorInitialValues { + +} + +export interface vtkPickerManipulator extends vtkAbstractManipulator { + +} + + +/** + * Method use to decorate a given object (publicAPI+model) with vtkPickerManipulator characteristics. + * + * @param publicAPI object on which methods will be bounds (public) + * @param model object on which data structure will be bounds (protected) + * @param {IPickerManipulatorInitialValues} [initialValues] (default: {}) + */ +export function extend(publicAPI: object, model: object, initialValues?: IPickerManipulatorInitialValues): void; + +/** + * Method use to create a new instance of vtkPickerManipulator + */ +export function newInstance(initialValues?: IPickerManipulatorInitialValues): vtkPickerManipulator; + + +/** + * vtkPickerManipulator. + */ +export declare const vtkPickerManipulator: { + newInstance: typeof newInstance, + extend: typeof extend, +}; +export default vtkPickerManipulator; diff --git a/Sources/Widgets/Manipulators/ActorPickManipulator/index.js b/Sources/Widgets/Manipulators/PickerManipulator/index.js similarity index 86% rename from Sources/Widgets/Manipulators/ActorPickManipulator/index.js rename to Sources/Widgets/Manipulators/PickerManipulator/index.js index 47a7acf49e7..187374738e0 100644 --- a/Sources/Widgets/Manipulators/ActorPickManipulator/index.js +++ b/Sources/Widgets/Manipulators/PickerManipulator/index.js @@ -3,12 +3,12 @@ import vtkCellPicker from 'vtk.js/Sources/Rendering/Core/CellPicker'; import vtkAbstractManipulator from 'vtk.js/Sources/Widgets/Manipulators/AbstractManipulator'; // ---------------------------------------------------------------------------- -// vtkActorPickManipulator methods +// vtkPickerManipulator methods // ---------------------------------------------------------------------------- -function vtkActorPickManipulator(publicAPI, model) { +function vtkPickerManipulator(publicAPI, model) { // Set our className - model.classHierarchy.push('vtkActorPickManipulator'); + model.classHierarchy.push('vtkPickerManipulator'); model.picker = vtkCellPicker.newInstance(); model.picker.initializePickList(); model.picker.setPickFromList(true); @@ -50,12 +50,12 @@ function defaultValues(initialValues) { export function extend(publicAPI, model, initialValues = {}) { vtkAbstractManipulator.extend(publicAPI, model, defaultValues(initialValues)); - vtkActorPickManipulator(publicAPI, model); + vtkPickerManipulator(publicAPI, model); } // ---------------------------------------------------------------------------- -export const newInstance = macro.newInstance(extend, 'vtkActorPickManipulator'); +export const newInstance = macro.newInstance(extend, 'vtkPickerManipulator'); // ---------------------------------------------------------------------------- diff --git a/Sources/Widgets/Manipulators/index.js b/Sources/Widgets/Manipulators/index.js index 47c6ad84fda..17481de093b 100644 --- a/Sources/Widgets/Manipulators/index.js +++ b/Sources/Widgets/Manipulators/index.js @@ -1,10 +1,10 @@ -import vtkActorPickManipulator from './ActorPickManipulator'; +import vtkPickerManipulator from './PickerManipulator'; import vtkLineManipulator from './LineManipulator'; import vtkPlaneManipulator from './PlaneManipulator'; import vtkTrackballManipulator from './TrackballManipulator'; export default { - vtkActorPickManipulator, + vtkPickerManipulator, vtkLineManipulator, vtkPlaneManipulator, vtkTrackballManipulator, diff --git a/Sources/Widgets/Widgets3D/SeedWidget/example/index.js b/Sources/Widgets/Widgets3D/SeedWidget/example/index.js index c19df9eae0d..e968ca29acf 100644 --- a/Sources/Widgets/Widgets3D/SeedWidget/example/index.js +++ b/Sources/Widgets/Widgets3D/SeedWidget/example/index.js @@ -6,7 +6,7 @@ import '@kitware/vtk.js/Rendering/Profiles/Glyph'; import vtkActor from '@kitware/vtk.js/Rendering/Core/Actor'; import vtkConeSource from '@kitware/vtk.js/Filters/Sources/ConeSource'; -import vtkActorPickManipulator from '@kitware/vtk.js/Widgets/Manipulators/ActorPickManipulator'; +import vtkPickerManipulator from '@kitware/vtk.js/Widgets/Manipulators/PickerManipulator'; import vtkFullScreenRenderWindow from '@kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow'; import vtkMapper from '@kitware/vtk.js/Rendering/Core/Mapper'; import vtkSeedWidget from '@kitware/vtk.js/Widgets/Widgets3D/SeedWidget'; @@ -29,8 +29,8 @@ cone.setResolution(50); const mapper = vtkMapper.newInstance(); const actor = vtkActor.newInstance(); -// Create an instance of vtkActorPickManipulator to constrain movement to a target actor -const manipulator = vtkActorPickManipulator.newInstance(); +// Create an instance of vtkPickerManipulator to constrain movement to a target actor +const manipulator = vtkPickerManipulator.newInstance(); // Set the target actor, which is representing a cone manipulator.addActor(actor); From 80926db5aa332ff3a06aa25f8672bf5644488141 Mon Sep 17 00:00:00 2001 From: Anne Haley <anne.haley@kitware.com> Date: Tue, 5 Sep 2023 13:02:07 -0400 Subject: [PATCH 17/31] fix(PickerManipulator): add `setPicker` function --- Sources/Widgets/Manipulators/PickerManipulator/index.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Sources/Widgets/Manipulators/PickerManipulator/index.js b/Sources/Widgets/Manipulators/PickerManipulator/index.js index 187374738e0..d0d80d87bb1 100644 --- a/Sources/Widgets/Manipulators/PickerManipulator/index.js +++ b/Sources/Widgets/Manipulators/PickerManipulator/index.js @@ -9,6 +9,8 @@ import vtkAbstractManipulator from 'vtk.js/Sources/Widgets/Manipulators/Abstract function vtkPickerManipulator(publicAPI, model) { // Set our className model.classHierarchy.push('vtkPickerManipulator'); + + // Default picker model.picker = vtkCellPicker.newInstance(); model.picker.initializePickList(); model.picker.setPickFromList(true); @@ -26,6 +28,10 @@ function vtkPickerManipulator(publicAPI, model) { }; }; + publicAPI.setPicker = (picker) => { + model.picker = picker; + }; + publicAPI.addActor = (actor) => { model.picker.addPickList(actor); }; From 46917a9ade761bf0ab1ad92aac46b960b5f11612 Mon Sep 17 00:00:00 2001 From: Anne Haley <anne.haley@kitware.com> Date: Wed, 6 Sep 2023 11:48:59 -0400 Subject: [PATCH 18/31] fix(PickerManipulator): move default picker definition to `defaultValues` --- .../Manipulators/PickerManipulator/index.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Sources/Widgets/Manipulators/PickerManipulator/index.js b/Sources/Widgets/Manipulators/PickerManipulator/index.js index d0d80d87bb1..e0900706fa6 100644 --- a/Sources/Widgets/Manipulators/PickerManipulator/index.js +++ b/Sources/Widgets/Manipulators/PickerManipulator/index.js @@ -10,12 +10,6 @@ function vtkPickerManipulator(publicAPI, model) { // Set our className model.classHierarchy.push('vtkPickerManipulator'); - // Default picker - model.picker = vtkCellPicker.newInstance(); - model.picker.initializePickList(); - model.picker.setPickFromList(true); - model.picker.setTolerance(0); - publicAPI.handleEvent = (callData) => { const { position, pokedRenderer } = callData; @@ -46,6 +40,15 @@ function vtkPickerManipulator(publicAPI, model) { // ---------------------------------------------------------------------------- function defaultValues(initialValues) { + if (!initialValues.picker) { + // Default picker + const picker = vtkCellPicker.newInstance(); + picker.initializePickList(); + picker.setPickFromList(true); + picker.setTolerance(0); + + initialValues.picker = picker; + } return { ...initialValues, }; From 220e2b9c3cb317ee448bb3491db2281b3ef163e3 Mon Sep 17 00:00:00 2001 From: Anne Haley <anne.haley@kitware.com> Date: Wed, 6 Sep 2023 12:23:02 -0400 Subject: [PATCH 19/31] fix(PickerManipulator): use `macro.setGet` to define setter and getter for picker --- Sources/Widgets/Manipulators/PickerManipulator/index.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Sources/Widgets/Manipulators/PickerManipulator/index.js b/Sources/Widgets/Manipulators/PickerManipulator/index.js index e0900706fa6..d3e68f02dcf 100644 --- a/Sources/Widgets/Manipulators/PickerManipulator/index.js +++ b/Sources/Widgets/Manipulators/PickerManipulator/index.js @@ -22,9 +22,7 @@ function vtkPickerManipulator(publicAPI, model) { }; }; - publicAPI.setPicker = (picker) => { - model.picker = picker; - }; + macro.setGet(publicAPI, model, ['picker']); publicAPI.addActor = (actor) => { model.picker.addPickList(actor); From 14a8c46aef4527276ce18f85f1109aa8e1c031fb Mon Sep 17 00:00:00 2001 From: Anne Haley <anne.haley@kitware.com> Date: Wed, 6 Sep 2023 12:24:04 -0400 Subject: [PATCH 20/31] fix(PickerManipulator): return null instead of origin when picked position is undefined --- Sources/Widgets/Manipulators/PickerManipulator/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Widgets/Manipulators/PickerManipulator/index.js b/Sources/Widgets/Manipulators/PickerManipulator/index.js index d3e68f02dcf..b018b1daec5 100644 --- a/Sources/Widgets/Manipulators/PickerManipulator/index.js +++ b/Sources/Widgets/Manipulators/PickerManipulator/index.js @@ -18,7 +18,7 @@ function vtkPickerManipulator(publicAPI, model) { model.position = model.picker.getPickedPositions()[0]; } return { - worldCoords: model.position || [0, 0, 0], + worldCoords: model.position || null, }; }; From f799d35633c7e27ea10798ca9f6a4cc26f6b4f38 Mon Sep 17 00:00:00 2001 From: Anne Haley <anne.haley@kitware.com> Date: Wed, 6 Sep 2023 12:25:15 -0400 Subject: [PATCH 21/31] fix(SeedWidget): add direction mixin --- Sources/Widgets/Widgets3D/SeedWidget/state.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Sources/Widgets/Widgets3D/SeedWidget/state.js b/Sources/Widgets/Widgets3D/SeedWidget/state.js index 9f8b6154137..9fc9ee32872 100644 --- a/Sources/Widgets/Widgets3D/SeedWidget/state.js +++ b/Sources/Widgets/Widgets3D/SeedWidget/state.js @@ -7,7 +7,14 @@ export default function stateGenerator() { .createBuilder() .addStateFromMixin({ labels: ['moveHandle'], - mixins: ['origin', 'color3', 'scale1', 'visible', 'manipulator'], + mixins: [ + 'origin', + 'color3', + 'scale1', + 'direction', + 'visible', + 'manipulator', + ], name: 'moveHandle', initialValues: { scale1: 20, From 2f06de320bc3513ae281d85ef0199fd27d3b722d Mon Sep 17 00:00:00 2001 From: Anne Haley <anne.haley@kitware.com> Date: Wed, 6 Sep 2023 17:22:38 -0400 Subject: [PATCH 22/31] fix(PickerManipulator): declare types for get/set picker methods --- .../Widgets/Manipulators/PickerManipulator/index.d.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Sources/Widgets/Manipulators/PickerManipulator/index.d.ts b/Sources/Widgets/Manipulators/PickerManipulator/index.d.ts index 01f760bad5f..2c1ade0b24a 100755 --- a/Sources/Widgets/Manipulators/PickerManipulator/index.d.ts +++ b/Sources/Widgets/Manipulators/PickerManipulator/index.d.ts @@ -1,4 +1,5 @@ import { IAbstractManipulatorInitialValues, vtkAbstractManipulator } from "../AbstractManipulator"; +import vtkPicker from '../../../Rendering/Core/Picker/index'; /** * @@ -9,6 +10,16 @@ export interface IPickerManipulatorInitialValues extends IAbstractManipulatorIni export interface vtkPickerManipulator extends vtkAbstractManipulator { + /** + * + */ + getPicker(): vtkPicker; + + /** + * + */ + setPicker(picker: vtkPicker): void; + } From 3e4fe8b3ca5741ee3249d7a5451eef8b5f24d6bf Mon Sep 17 00:00:00 2001 From: Anne Haley <anne.haley@kitware.com> Date: Wed, 6 Sep 2023 17:24:34 -0400 Subject: [PATCH 23/31] fix(PickerManipulator): remove addActor and setTolerance from API --- Sources/Widgets/Manipulators/PickerManipulator/index.js | 8 -------- Sources/Widgets/Widgets3D/SeedWidget/example/index.js | 2 +- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/Sources/Widgets/Manipulators/PickerManipulator/index.js b/Sources/Widgets/Manipulators/PickerManipulator/index.js index b018b1daec5..3230aea34a6 100644 --- a/Sources/Widgets/Manipulators/PickerManipulator/index.js +++ b/Sources/Widgets/Manipulators/PickerManipulator/index.js @@ -23,14 +23,6 @@ function vtkPickerManipulator(publicAPI, model) { }; macro.setGet(publicAPI, model, ['picker']); - - publicAPI.addActor = (actor) => { - model.picker.addPickList(actor); - }; - - publicAPI.setTolerance = (tolerance) => { - model.picker.setTolerance(tolerance); - }; } // ---------------------------------------------------------------------------- diff --git a/Sources/Widgets/Widgets3D/SeedWidget/example/index.js b/Sources/Widgets/Widgets3D/SeedWidget/example/index.js index e968ca29acf..37720287060 100644 --- a/Sources/Widgets/Widgets3D/SeedWidget/example/index.js +++ b/Sources/Widgets/Widgets3D/SeedWidget/example/index.js @@ -32,7 +32,7 @@ const actor = vtkActor.newInstance(); // Create an instance of vtkPickerManipulator to constrain movement to a target actor const manipulator = vtkPickerManipulator.newInstance(); // Set the target actor, which is representing a cone -manipulator.addActor(actor); +manipulator.getPicker().addPickList(actor); actor.setMapper(mapper); mapper.setInputConnection(cone.getOutputPort()); From 25cec0250c14e74ebcac8adc1edadf64792860f8 Mon Sep 17 00:00:00 2001 From: Anne Haley <anne.haley@kitware.com> Date: Wed, 6 Sep 2023 17:25:53 -0400 Subject: [PATCH 24/31] fix(PickerManipulator): move `macro.setGet` to `extend` function --- Sources/Widgets/Manipulators/PickerManipulator/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/Widgets/Manipulators/PickerManipulator/index.js b/Sources/Widgets/Manipulators/PickerManipulator/index.js index 3230aea34a6..d69956f0daa 100644 --- a/Sources/Widgets/Manipulators/PickerManipulator/index.js +++ b/Sources/Widgets/Manipulators/PickerManipulator/index.js @@ -21,8 +21,6 @@ function vtkPickerManipulator(publicAPI, model) { worldCoords: model.position || null, }; }; - - macro.setGet(publicAPI, model, ['picker']); } // ---------------------------------------------------------------------------- @@ -49,6 +47,8 @@ function defaultValues(initialValues) { export function extend(publicAPI, model, initialValues = {}) { vtkAbstractManipulator.extend(publicAPI, model, defaultValues(initialValues)); + macro.setGet(publicAPI, model, ['picker']); + vtkPickerManipulator(publicAPI, model); } From 7997b8e5824c19e51c70c6fe1377bcddb08e20c4 Mon Sep 17 00:00:00 2001 From: Anne Haley <anne.haley@kitware.com> Date: Wed, 6 Sep 2023 17:27:23 -0400 Subject: [PATCH 25/31] fix(SeedWidget): move `classHierarchy.push` to top of `widgetBehavior` --- Sources/Widgets/Widgets3D/SeedWidget/behavior.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/Widgets/Widgets3D/SeedWidget/behavior.js b/Sources/Widgets/Widgets3D/SeedWidget/behavior.js index 6808e7280a6..0720488b044 100644 --- a/Sources/Widgets/Widgets3D/SeedWidget/behavior.js +++ b/Sources/Widgets/Widgets3D/SeedWidget/behavior.js @@ -1,15 +1,15 @@ import macro from 'vtk.js/Sources/macros'; export default function widgetBehavior(publicAPI, model) { + model.classHierarchy.push('SeedWidgetProp'); + const state = model.widgetState; const moveHandle = state.getMoveHandle(); moveHandle.setVisible(true); // default color is red moveHandle.setColor3(255, 0, 0); - model._isDragging = false; model.previousPosition = null; - model.classHierarchy.push('SeedWidgetProp'); function isValidHandle(handle) { return handle === moveHandle; From feda6cf2d27363d176dc21cd8b546283d9d110ee Mon Sep 17 00:00:00 2001 From: Anne Haley <anne.haley@kitware.com> Date: Wed, 6 Sep 2023 17:29:04 -0400 Subject: [PATCH 26/31] fix(SeedWidget): refer to `model.widgetState` directly in `widgetBehavior` --- Sources/Widgets/Widgets3D/SeedWidget/behavior.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Sources/Widgets/Widgets3D/SeedWidget/behavior.js b/Sources/Widgets/Widgets3D/SeedWidget/behavior.js index 0720488b044..17f0e6620a5 100644 --- a/Sources/Widgets/Widgets3D/SeedWidget/behavior.js +++ b/Sources/Widgets/Widgets3D/SeedWidget/behavior.js @@ -3,8 +3,7 @@ import macro from 'vtk.js/Sources/macros'; export default function widgetBehavior(publicAPI, model) { model.classHierarchy.push('SeedWidgetProp'); - const state = model.widgetState; - const moveHandle = state.getMoveHandle(); + const moveHandle = model.widgetState.getMoveHandle(); moveHandle.setVisible(true); // default color is red moveHandle.setColor3(255, 0, 0); @@ -63,7 +62,7 @@ export default function widgetBehavior(publicAPI, model) { model._apiSpecificRenderWindow.setCursor('pointer'); model._isDragging = false; model.activeState = null; - state.deactivate(); + model.widgetState.deactivate(); } publicAPI.invokeEndInteractionEvent(); return macro.EVENT_ABORT; From 69386b2c56d3f3b5a21c12a82a46158ef30de00d Mon Sep 17 00:00:00 2001 From: Anne Haley <anne.haley@kitware.com> Date: Wed, 6 Sep 2023 18:15:32 -0400 Subject: [PATCH 27/31] fix(SeedWidget): demonstrate how to change handle color --- Sources/Widgets/Widgets3D/SeedWidget/behavior.js | 2 -- .../Widgets/Widgets3D/SeedWidget/example/index.js | 12 ++++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Sources/Widgets/Widgets3D/SeedWidget/behavior.js b/Sources/Widgets/Widgets3D/SeedWidget/behavior.js index 17f0e6620a5..48e58548cb2 100644 --- a/Sources/Widgets/Widgets3D/SeedWidget/behavior.js +++ b/Sources/Widgets/Widgets3D/SeedWidget/behavior.js @@ -5,8 +5,6 @@ export default function widgetBehavior(publicAPI, model) { const moveHandle = model.widgetState.getMoveHandle(); moveHandle.setVisible(true); - // default color is red - moveHandle.setColor3(255, 0, 0); model._isDragging = false; model.previousPosition = null; diff --git a/Sources/Widgets/Widgets3D/SeedWidget/example/index.js b/Sources/Widgets/Widgets3D/SeedWidget/example/index.js index 37720287060..99cbb366053 100644 --- a/Sources/Widgets/Widgets3D/SeedWidget/example/index.js +++ b/Sources/Widgets/Widgets3D/SeedWidget/example/index.js @@ -61,8 +61,20 @@ fullScreenRenderer.addController(controlPanel); document.querySelector('#addWidget').addEventListener('click', () => { widgetManager.releaseFocus(widget); widget = vtkSeedWidget.newInstance(); + // Important: set the manipulator of the widget to constrain movement to the actor widget.setManipulator(manipulator); + // Set the color of the seed (random color) + widget + .getWidgetState() + .getMoveHandle() + .setColor3( + Math.round(Math.random() * 255), + Math.round(Math.random() * 255), + Math.round(Math.random() * 255) + ); + + // Start placement interaction widget.placeWidget(cone.getOutputData().getBounds()); widgetHandle = widgetManager.addWidget(widget); widgetManager.grabFocus(widget); From 4fd1893a2f4a43138352fa80a7c7c77386ff6b54 Mon Sep 17 00:00:00 2001 From: Anne Haley <anne.haley@kitware.com> Date: Thu, 7 Sep 2023 11:26:47 -0400 Subject: [PATCH 28/31] fix(PickerManipulator): replace automatic relative import with absolute import --- Sources/Widgets/Manipulators/PickerManipulator/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Widgets/Manipulators/PickerManipulator/index.d.ts b/Sources/Widgets/Manipulators/PickerManipulator/index.d.ts index 2c1ade0b24a..2398ba7859e 100755 --- a/Sources/Widgets/Manipulators/PickerManipulator/index.d.ts +++ b/Sources/Widgets/Manipulators/PickerManipulator/index.d.ts @@ -1,5 +1,5 @@ import { IAbstractManipulatorInitialValues, vtkAbstractManipulator } from "../AbstractManipulator"; -import vtkPicker from '../../../Rendering/Core/Picker/index'; +import vtkPicker from 'vtk.js/Sources/Rendering/Core/Picker'; /** * From 4df091a5c7672cb8c00a51781387b244f04c5d44 Mon Sep 17 00:00:00 2001 From: Anne Haley <anne.haley@kitware.com> Date: Thu, 7 Sep 2023 17:37:34 -0400 Subject: [PATCH 29/31] fix(PickerManipulator): use relative import --- Sources/Widgets/Manipulators/PickerManipulator/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Widgets/Manipulators/PickerManipulator/index.d.ts b/Sources/Widgets/Manipulators/PickerManipulator/index.d.ts index 2398ba7859e..db782f31420 100755 --- a/Sources/Widgets/Manipulators/PickerManipulator/index.d.ts +++ b/Sources/Widgets/Manipulators/PickerManipulator/index.d.ts @@ -1,5 +1,5 @@ import { IAbstractManipulatorInitialValues, vtkAbstractManipulator } from "../AbstractManipulator"; -import vtkPicker from 'vtk.js/Sources/Rendering/Core/Picker'; +import vtkPicker from '../../../Rendering/Core/Picker'; /** * From 42b51d5d97bc27670d3499175535300398cdd5d9 Mon Sep 17 00:00:00 2001 From: Anne Haley <anne.haley@kitware.com> Date: Fri, 8 Sep 2023 11:46:29 -0400 Subject: [PATCH 30/31] fix(SeedWidget): set initial direction to [0, 0, 1] --- Sources/Widgets/Widgets3D/SeedWidget/behavior.js | 1 + 1 file changed, 1 insertion(+) diff --git a/Sources/Widgets/Widgets3D/SeedWidget/behavior.js b/Sources/Widgets/Widgets3D/SeedWidget/behavior.js index 48e58548cb2..6dd9851959c 100644 --- a/Sources/Widgets/Widgets3D/SeedWidget/behavior.js +++ b/Sources/Widgets/Widgets3D/SeedWidget/behavior.js @@ -5,6 +5,7 @@ export default function widgetBehavior(publicAPI, model) { const moveHandle = model.widgetState.getMoveHandle(); moveHandle.setVisible(true); + moveHandle.setDirection([0, 0, 1]); model._isDragging = false; model.previousPosition = null; From 1a19b420e2a0a8459ad41e35b570bf65ddba42b5 Mon Sep 17 00:00:00 2001 From: Anne Haley <anne.haley@kitware.com> Date: Fri, 8 Sep 2023 11:50:48 -0400 Subject: [PATCH 31/31] fix(SeedWidget): move direction initial value definition --- Sources/Widgets/Widgets3D/SeedWidget/behavior.js | 1 - Sources/Widgets/Widgets3D/SeedWidget/state.js | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Widgets/Widgets3D/SeedWidget/behavior.js b/Sources/Widgets/Widgets3D/SeedWidget/behavior.js index 6dd9851959c..48e58548cb2 100644 --- a/Sources/Widgets/Widgets3D/SeedWidget/behavior.js +++ b/Sources/Widgets/Widgets3D/SeedWidget/behavior.js @@ -5,7 +5,6 @@ export default function widgetBehavior(publicAPI, model) { const moveHandle = model.widgetState.getMoveHandle(); moveHandle.setVisible(true); - moveHandle.setDirection([0, 0, 1]); model._isDragging = false; model.previousPosition = null; diff --git a/Sources/Widgets/Widgets3D/SeedWidget/state.js b/Sources/Widgets/Widgets3D/SeedWidget/state.js index 9fc9ee32872..3e83edc60e5 100644 --- a/Sources/Widgets/Widgets3D/SeedWidget/state.js +++ b/Sources/Widgets/Widgets3D/SeedWidget/state.js @@ -19,6 +19,7 @@ export default function stateGenerator() { initialValues: { scale1: 20, visible: true, + direction: [0, 0, 1], }, }) .build();