From c4c33cae7fc8fa15202f77ff620cb180e05b15fa Mon Sep 17 00:00:00 2001 From: Med Mouine Date: Mon, 20 May 2024 17:44:23 -0400 Subject: [PATCH] custom theme and UI --- sreez-showcase/app-config.yaml | 26 +- sreez-showcase/packages/app/package.json | 5 +- sreez-showcase/packages/app/src/App.tsx | 13 +- .../app/src/components/Root/LogoFull.tsx | 25 +- .../app/src/components/Root/LogoIcon.tsx | 15 +- .../app/src/components/Root/Sreez_full.png | Bin 0 -> 65154 bytes .../app/src/components/Root/sreez_logo.png | Bin 0 -> 34318 bytes .../packages/app/src/theme/custom.ts | 47 + sreez-showcase/packages/backend/package.json | 7 +- sreez-showcase/packages/backend/src/index.ts | 13 +- sreez-showcase/yarn.lock | 979 ++++++++++++++++-- 11 files changed, 1027 insertions(+), 103 deletions(-) create mode 100644 sreez-showcase/packages/app/src/components/Root/Sreez_full.png create mode 100644 sreez-showcase/packages/app/src/components/Root/sreez_logo.png create mode 100644 sreez-showcase/packages/app/src/theme/custom.ts diff --git a/sreez-showcase/app-config.yaml b/sreez-showcase/app-config.yaml index 656ed06..77cd971 100644 --- a/sreez-showcase/app-config.yaml +++ b/sreez-showcase/app-config.yaml @@ -18,12 +18,12 @@ backend: # Uncomment the following host directive to bind to specific interfaces # host: 127.0.0.1 csp: - connect-src: ["'self'", "http:", "https:"] + connect-src: [ "'self'", "http:", "https:" ] # Content-Security-Policy directives follow the Helmet format: https://helmetjs.github.io/#reference # Default Helmet Content-Security-Policy values can be removed by setting the key to false cors: origin: http://localhost:3000 - methods: [GET, HEAD, PATCH, POST, PUT, DELETE] + methods: [ GET, HEAD, PATCH, POST, PUT, DELETE ] credentials: true # This is for local development only, it is not recommended to use this in production # The production database configuration is stored in app-config.production.yaml @@ -35,7 +35,7 @@ backend: proxy: "/github/api": target: https://api.github.com/repos - allowedHeaders: ["Authorization", "X-GitHub-Api-Version"] + allowedHeaders: [ "Authorization", "X-GitHub-Api-Version" ] headers: Accept: application/vnd.github+json X-GitHub-Api-Version: "2022-11-28" @@ -73,7 +73,7 @@ auth: # see https://backstage.io/docs/auth/ to learn about auth providers providers: # See https://backstage.io/docs/auth/guest/provider - guest: {} + guest: { } github: development: clientId: Iv1.62e73edda444f42c @@ -106,7 +106,7 @@ catalog: timeout: { seconds: 30 } githubOrg: id: "kheops-org" - orgs: [kheops-org] + orgs: [ kheops-org ] githubUrl: "https://github.com/" schedule: # same options as in TaskScheduleDefinition frequency: { minutes: 30 } @@ -115,7 +115,7 @@ catalog: entityFilename: catalog-info.yaml pullRequestBranchName: backstage-integration rules: - - allow: [Component, System, API, Resource, Location, Users, Group] + - allow: [ Component, System, API, Resource, Location, Users, Group ] locations: # Local example data, file locations are relative to the backend process, typically `packages/backend` - type: file @@ -125,7 +125,7 @@ catalog: - type: file target: ../../examples/template/template.yaml rules: - - allow: [Template] + - allow: [ Template ] - type: url target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/all.yaml @@ -156,12 +156,15 @@ catalog: - type: url target: https://github.com/Kheops-org/backstage-templates/blob/main/templates.yaml rules: - - allow: [Template] - + - allow: [ Template ] + # - type: file + # target: ../../../../backstage-templates/templates.yaml + # rules: + # - allow: [Template] - type: url target: https://github.com/redhat-developer/red-hat-developer-hub-software-templates/blob/main/templates.yaml rules: - - allow: [Template] + - allow: [ Template ] ## Uncomment these lines to add more example data # - type: url # target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/all.yaml @@ -182,3 +185,6 @@ devTools: target: "8.8.8.8" permission: enabled: true +notifications: + # curl -X POST http://localhost:7007/api/notifications/notifications -H "Content-Type: application/json" -H "notifications-secret: your-secret-token-shared-with-external-services" -d '{"title":"my-title","origin":"my-origin","message":"message one","topic":"my-topic"}' + externalCallerSecret: notifications-secret diff --git a/sreez-showcase/packages/app/package.json b/sreez-showcase/packages/app/package.json index 1bd0edf..b705ea2 100644 --- a/sreez-showcase/packages/app/package.json +++ b/sreez-showcase/packages/app/package.json @@ -41,17 +41,20 @@ "@backstage/plugin-user-settings": "^0.8.5", "@backstage/theme": "^0.5.3", "@bestsellerit/backstage-plugin-harbor": "^0.3.1", + "@janus-idp/plugin-notifications": "^1.3.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@roadiehq/backstage-plugin-argo-cd": "^2.6.4", "@roadiehq/backstage-plugin-github-pull-requests": "^2.5.25", "@veecode-platform/backstage-plugin-github-workflows": "^0.2.70", + "add": "^2.0.6", "history": "^5.0.0", "react": "^18.0.2", "react-dom": "^18.0.2", "react-router": "^6.3.0", "react-router-dom": "^6.3.0", - "react-use": "^17.2.4" + "react-use": "^17.2.4", + "yarn": "^1.22.22" }, "devDependencies": { "@backstage/test-utils": "^1.5.4", diff --git a/sreez-showcase/packages/app/src/App.tsx b/sreez-showcase/packages/app/src/App.tsx index 67eafaa..0359dd9 100644 --- a/sreez-showcase/packages/app/src/App.tsx +++ b/sreez-showcase/packages/app/src/App.tsx @@ -39,9 +39,21 @@ import { RequirePermission } from '@backstage/plugin-permission-react'; import { catalogEntityCreatePermission } from '@backstage/plugin-catalog-common/alpha'; import { githubAuthApiRef } from '@backstage/core-plugin-api'; import { DevToolsPage } from '@backstage/plugin-devtools'; +import { UnifiedThemeProvider } from '@backstage/theme'; +import { SreezCustomTheme } from './theme/custom'; +import LightIcon from '@material-ui/icons/WbSunny'; const app = createApp({ + themes: [{ + id: 'my-theme', + title: 'My Custom Theme', + variant: 'dark', + icon: , + Provider: ({ children }) => ( + + ) + }], apis, bindRoutes({ bind }) { bind(catalogPlugin.externalRoutes, { @@ -75,7 +87,6 @@ const app = createApp({ }]} /> ), - }, }); diff --git a/sreez-showcase/packages/app/src/components/Root/LogoFull.tsx b/sreez-showcase/packages/app/src/components/Root/LogoFull.tsx index 47e3b73..d1025e5 100644 --- a/sreez-showcase/packages/app/src/components/Root/LogoFull.tsx +++ b/sreez-showcase/packages/app/src/components/Root/LogoFull.tsx @@ -1,10 +1,17 @@ import React from 'react'; import { makeStyles } from '@material-ui/core'; +import logoFull from './sreez_logo.png' const useStyles = makeStyles({ - svg: { + root: { + alignItems: 'center', + width: '100%', + display: 'flex', + }, + img: { + paddingLeft: 25, width: 'auto', - height: 30, + height: 70, }, path: { fill: '#7df3e1', @@ -12,18 +19,10 @@ const useStyles = makeStyles({ }); const LogoFull = () => { const classes = useStyles(); - return ( - - - +
+ Sreez +
); }; diff --git a/sreez-showcase/packages/app/src/components/Root/LogoIcon.tsx b/sreez-showcase/packages/app/src/components/Root/LogoIcon.tsx index 7eae8c7..48d4a30 100644 --- a/sreez-showcase/packages/app/src/components/Root/LogoIcon.tsx +++ b/sreez-showcase/packages/app/src/components/Root/LogoIcon.tsx @@ -1,8 +1,9 @@ import React from 'react'; import { makeStyles } from '@material-ui/core'; +import logoIcon from './sreez_logo.png'; const useStyles = makeStyles({ - svg: { + img: { width: 'auto', height: 28, }, @@ -13,18 +14,8 @@ const useStyles = makeStyles({ const LogoIcon = () => { const classes = useStyles(); - return ( - - - + Sreez ); }; diff --git a/sreez-showcase/packages/app/src/components/Root/Sreez_full.png b/sreez-showcase/packages/app/src/components/Root/Sreez_full.png new file mode 100644 index 0000000000000000000000000000000000000000..2be9793213b9344f42e982cab878ec6623146c84 GIT binary patch literal 65154 zcmeFY^;=Y5)IN*>DhL>agqR;{2!UawLqNJ?XauB7y2Ai*2m=uqY5-{%QaY>w1%{zJ z6l4Y%LPTr{`RX7c%FZwbx$jUiZ4!=9!j;A~hv5B^enRwX%}D4jCDR zJsH_?-_sP}e_m8ggoA&MdFm+MIX3*2Clq{h=7ExtCm9*l#e=`c$dDBr9k&OvPYhd>-uR<)aju-mF}yj zdlbmEk8vTwl=x*4uhj)B!p-hIwDGm|*l&(Yj<*?p<*_WOj3@c0ZHOLYCp2x0#Tk8R z7v-=8W*lAT@)LAJ_F_egI#0>onx*PQC>AqZIi~%Of-6e^+i6wrj0`Qdxt2b7$Q;W_cXXQN^ z4^1Q^>k8rQBID(YgD@IjK%7CmwKC0KgoOySFxWZE+SaU4305r@HN-;1xEGJ7twceq z$b{^7u45lP!ipn&>D?fn(rY?Rk@EFNo5`!;egU7Tau+%l zuDY1!;9(U6pYO16%pjdEJuOSKmZvq$Wx^}@!qI(XPo5s9KKDuuZTe!^Xa%g~HPd%k z)|+3kQ#_dd;Y$Ax-hzKVcn(Slm3b^!`-|`e{i1C2^>A_f0%cNabZCUy(@%XP56u)- z6)}s5dioL%1L~uD!hB>NQsn8f+udafEi4y~2~F!@K=9JH*LD=D5A$|~6xJB5q&wFI z`TY4jStSp62Q_!0%>sAQb55y@%@<(xkeUvs(_EZvx~4fb9LcbX%Y?t1@A60`LlvNCURyJWm1Zf1(qD~ytb2k z8AK1k!wUGrJ@xFL59vi6r`8Hr>vVpLm%t35JwI4U7S*V@$5;ix%=pIsd`PA@^XSdG z(H5xTHg7(|%t1Ovu8?%~1S;5{&vaFSsMF7*v+ooxLOJ+&(uZpA$gG@(IQ;oJ6av;t zFDP1(u>$XUK%wsBXS5=O5gx8g!i)S(hfT6SpFtz3=tpZh$@K%3S59GQD;#77&+G;rA-+5f%#v4bZ|TJX)nx*G4^G{S9me%!(Lld zUX|B^HC(#yzg?k%K=en#srV%kD+t$V#(V4rdn0?R-ziP<&Jb}Jas^hC%Cga=M%x|# zB)A%!j=lt9tG_qQvTi4AK?r|Md$a;pP`SZ2LPE<(su&J4!lSxj{zh8;u_X0`=F^H) zy>>l&TQ=}_L&u|dKSm3MXtP`H-0654Z4qgd{Y$8wDYRczs2t+%e66Lkn~@F&F&7S5 zu`O7Ee;abywzXgC^o_rH^qxlwAR6zm!}q2(JTPpry0X>_h;SDAT$^6o2;zM$$zY25 zXbZ2hvWHePDm+84IvDJo&)YsJWR<%IA0LW`R-x>vpjGzPID-J0mFOu2tToOo;ONQr zCl9y4)PM9XgpO3#Nlsm6VLPf%X~%_b%V{TPfnE#7J7-|fVM&>rrB=ZTIs$hEzHZum ziuQSfVmZ+wJ!$))%3c$)WFV2_r@vbJgHQPAxqS!_jM*SLQKDVmY^R^__L*jhNG8KX z2fw0rw&wMOjLK@Q+%T;%&B9Ef8obHl>kCpCb%ceZ2F^R>k9P~+Gg`>R3yOL+A#a!w z9?FcDY^uP_%%6pwp7p$sdzfUu(=SlS4bv{N+xZwhj&@G0_%ZT{71NJs7cRN-;BQ{M zi9WQXb4LbS4W9DeELTJ<8KyA!tWqdAWMS);6Q>TyY!)sls~z64grVsG=RKnz}80`~VEqBD!E9a38uT(WikKN6D+bh%0 zr$t)l&e~XXu{QO1{{crsu_Lo9-XR0QqP4L4rUfE=$*@&3j^2geNu{9?MNT`b_oYgP zK0e5acJi4BF~T#~&%}+;zVTfN)yurELc8Jx5=V@rtrS zwN>K5jUkviWCgBX5Dmk=$gY((#>&PUwwF5Q z7!6xZZ6ix|(V!zZxZam*qmDVg_?pzr9O}ezmf9_Gqce-?L8@9Gw}P_xq^97WsF1y@ zbic%I4)ISmYF!4-r4|%jy&>FM(|O`$z#Vr-n2W1Vs*)aeI8$I#hZKUJ$)Kb1c%an4 zcVuqpzgQ@c12)RC+r?^mW)LOL)w0l^y5Ea88+`Ue-LpXzt4PPe656kpI~uL^pNWiw zg6D7LzdM2wqq7fVzV9)^k6!jnJ$2m<_gmyfGAy@NwHRa=DM-g9$+< zRG4ubKXhu?{DD(ne@!CwJI{&HimV`~JTPBDfgp+`L^$w`-kJ7|ZZ2k0XdSo@_em|> z@~a}sAKpl&#R7aA1M;mA8Ei&4W|tbcWiU5P?;xek2m|Dxs{ zsKb4naY9e?Yh@06BeGgPRpUG|_D$@ivBRE*o^@1oAf!cH<5bM3#_CVLLFFSWQ9cLT z0g^h-u^gd{_I#*IYuj7w&F~Vx<1hOD3) zt?wk)7+$q&Lf4?^J2Sf*7PUR|tr$No@A=%y8#3`+ru`eAGQpd#X!5k#?WEq~Ph#Mv zgyV!Xcu?jrF0(tuOaog@Hwkmb4)QIem?(NKyZnn6sUrhz{e@3)bqWVX-0O%z?3T~{ zLPX?bZPmR(mT)%}&Uz(NAGd-#r)G<8{Lh^sLA7UrOCTjOLvrr%R!^qAzD=-V6e}E7 z-xB2+vTGfw1fO!o>J-h0Ts}!?M!4B`?sos%hAUtjXp&Nfjj`Sc*TGs8SIS!v@nqNu z^hF~X&%V773&ofE&TlW_VK+|B3Swx5C(ZxC#=Ig(4mozafm)xp}SssoTT8|0}!Bx}N-yzaq7@;`Z8jSKxbfHRjvMmQIs%>Go+Px=LjY+yeAD7uA zb?3HvSpj~a{$KFi0zgg;s1Us0^qUwhG@gSl*{;{tT#vCR<=OpeSOuZ8h^gQEJX3w} z#2!-jcHLhz{Q&X;dNoeSB!8=(DAA=yLARfvo*b&^EsOoM;z(nVg1*E6?n|nLl{)WfGPt865vWQ1u=T3u_E$LOH z9yr7U(Od4|scy*F)gXQc8*aHqn`^GOqqRy9{F{PTSwRYt-S@!z3EMGul6?qVpo}Ea zTY#vnm-R)94i@7DFmF+$2u~sUW}TFbTA_b{efktR^HnmCMe10Eh~k`|A++357h7O< zNY8YA&v)N9{KV@_+>7woPye>rZ_|qQz`6k~&&=RCF-BYXLA_E#Q%f&&?DuJM?pJ|y>k zs`sy6O)~X&s?eo>3Sk$~IEDQbG92OqbJ4J`yn!v_6ApxgWM3M#54Gps*9uZx{lWIn z|I7#e2N-?PF(hy3^Fc6HgV=AqE8e}MlD`!(l^iiSx%lHU#vM@z)tvap7c)OF2FZj8 ziuPuJHtIauQ&u;r@KS<$!f2gCh)XV>5kY(E6+QBynWcBGRVem(5<2dPNXU2{c(naT zM{D0$b|k=e^_ei|5z~I9Q%Dnze9`fr_4TP^xgz?W(;ELwG!FWD>LgE`P* zDFkgo9pG2RoJU5cBT}_0(GosU1ODx@s-H+yJ#GRMRrbMS3ui?r(`8^96fz4M+?Y(9sj` zX>SJ&Fsv0>g-*MjsE%8KN2qBR{SeGQJ(eK?O@{3k&!{6+FZR=^dnxeLx7kEY#i%$% z@%m#{<0Z^>)GA6oiHtS<8m`q{$v}~OIvDcP3|LWqI@Scy&OfpZ%}TbwfiSUSvkgNO zMmGzREtippSwK2FbFiMwg>TK>N<@Y?E!wJyqL8Xv-pHk`>URyw(-n`A%@J`rwMsv$ zrfe`-2*wx-`B|Z5dix2z&gCaw!GWRc{v32f&Z=7>-5{xjc#53FtXkL3V%C^(vV&ib zlJq?cE*h--jf*mWZe?td`2upB!LF5M-Ii!_2YfEz$`sA!U<%7~Vjd7~U=kBP^{G z>wvE3!xfy6F_L`r%?$l>mi-Rqz?_akOILUm=gg?hPH}sc&|dAGs>}5KYspFj|Sr8`x=Xh<>wP3_wCFAKP zEL|i}YVv4TtL*EAkRRR{z3KED)^NfQy%4QJW4uB3EurB}1tn60kHOjJf=}6hznLN- ziqcx4e(J)A3S^!F~M1V%jD+m`o*zhEz(z7T|d~u5i115 zehP#0=*ELS!roC@poD)aFrUk4d${ZaDFB4s!OEw;A_id2wW(le$Y_D6YMFnZGWh}{ zqQd(*KQHl=H_om=bZFBgA+^9yaDK6!LD7HsQMdkq_?CUftYkAHP4^$`wKoTqCQ{!( ze(3Qs+$&Y}VueD{Wl$HVK8EUA+lAT{XN$mBw0rADF}vz3yyKJ232Tq*2waZ%dAoFK z>0%qa6&_WCqCfp#_zJ^=<~Gt0@J2mPj|Lgh&fN1&vutw`X)65}tfsgKD*tWC^t7)s45(UT->F#j9z+GPu)0=r+-r6rO8pFVWrGX zURpWjh@ps(=700!Ka42CV%9(4UzsL;qq_Y*18~M7{9Ozu2zP-%3T!@5&=cPoGPkbv zvE~kG3P==uX7-9%atIw%=FzZG6{@#tadoJQnD#;r7a~571nlvu;>^c*~o+&u+z_qNY6n$oT z{95Or6-kI?NN1MFAA}3|8Gh@VAv;`Za9R@)V@BxtyukR)4gg%=f4ef-N~_u!Upn!- z@rEbT26v0*#GZvaoLzil`;?1DxVYlN*YMn!X36h1baqFfuf-24!bQOJ2K!UqCVmr3 zU^mbTx(O-*(XNQ|h0?35liuOs-sA%KT&^1j~XK{0o&Rf~Z zVP^Ttd7-eEZoJhR&4(5!$H)YJ**%YVXExJ)+*$UgEaqi^`SX9x+#-mTE_qOeC@JcL zdw>Y;pyNs3tjqdFJy}$hBpWl+*1|8rnth2$)^%<3_0lv0BjdoPSKii>DFUM3^heiq z3OY@uW)aVH;{7At;eDETcwKbDS-cAXWhy`v=>>t=R0FSFdJ%~XcaNljR$vLGZxX=(dY&BZ`$GRtxV|c=)1p~`cE=9 zq;=~LwqXyRsWl^kgwTrvcv9XS-6XW{WFac-7gXK`)4@5X&i^ooYL5?PFNo4d2>A%V z93OC&RDkOZx(fJc4C_1lto2_ExclF~2T~twiyn}hkMBY;<_Auc*4_csXbaTRX$Sbt z)Jv`^K&szzW9-L3DeCjL%B-+?=;22TqKX!}JB~&e=|7g82f)bw=4*VjQnO)M_IEX; z!Wwsz_TunWX4QJLF=52G`f3rYzs6Px{kj6TNu!G!h`RjJlEF+{$X@L%r>c1axJtOeaY2xuZJ5r!jag9ou zw&9?IrB8eZ5i!Zl*IVJ&=Pq?*+NJ9U`-(3A^(l?Tqu5FqBw_L#!n@pI)mT{CRP=d^ zE0<6H_4Bq?`pDeGyq(Fj;Gu-e2jFn6$f>fXo<4zV4@J1u>dyD)d3V6`cu^iTB(@f5 z>HGBHc^3oyNV3C~wdEtX?Ri=+?UVV5r)7OoDN^xSyQ{Lr_-WR3Lu`0+!?F6dXK)F& zC3e>$x;b;+UGi}?>z_GM*tG}{&UXYwg_N<6Bd%jVnrjznx5F&sKVlRRn%rU^!NXX% zHd-Gq>21_RATQFLIyLUgQfkt^t2Z5z^SArD%bsx2c~}K z^m|2I3-Df~i3d6bBe89}>sQ758e@d_V6K7OQ?l#hQ_cd*t{5W(;gbaE54kmD0B{nO z@9bNZF(rYa!zfiV36s}fnCf#L`3)yg#ANZB26b>J6#|&p1?bD*>dOl z=Tg+Ri@Oh`!7e&W7YSwu~!n8dZ8e3Ik zLj_Hz{jYGIHK&1}CiBL)W`YZyv@qQggP*y3+|(dq-@ZsScJ-(aBWpX@i2|LsTQ63s z=eCQOM$!rSh%0uz_%Y+jJohmfY${^qp`Cu}bo_>BjE_zdZQ$@8oe4BWpBQMe;x=6Z z4b-wWeeib(@l#4}i^>e;0<_n~q6HNs=m_0E>yBj(NhkA#3Rql>ndEY8avIywkkA!P zAF}7Dd%D(dnrm3U^4fT!5W&y2G%!T-uap_Gf|arWEVdWEqMKs5Q;dtS%4l)5SxW+I zH6XGGhdAYne%&-l#XQz_`{R zSslyyqkr>U2B@rl-y=sCJArsiC!RD*MU8IE7LjpREiPo|wyRz!`oi53@nW>c6dfeA z)?`#$l8?8aF1a*E$x}FBS zMm3wumZ%1}gbp@kH>X+eOxBmod3U#b`*u%uKWP5P*Em95JveLwE@L2JpknkouMPKX z5_+7oFD=2cl!je8o3d&|l3^wN+qN-gDp-0%F@5SWLKSq7YjStq-+IP>bg?^DV2?3h z4ijb-F~x*Qr}u@h^@`Bcs8QO}rx7qwn5nyEhR#Ht{K|L6Bm(9w8UIT8RLB}BY-(?5 zX{ohu{nXGA__!QYf(Vd0+SrU13+?ipX|GH`6gGjQ^@uDGOe~J6`OC!_QNC)fNwazX zERQ7v&-5v|4>^66+jO*$y}U16X+1+&kK_woVwB+@>84A{$1DV{eN-K-_}~g3>lq&Q zZ-1*Cm!sh4a=2n7Xv$IQHXbwkECD9d>BX;L-Dpa8o1CdGASdhLk|E*674#Nop@rE1 zI9=g5miT24N2$W051WwCfJbUY%0v6aJsXS*qMo~C(O+)aeoVsG;aIWdd|&mZg;aOhp<=O_E_4HOwcI#b0rSOT_$ zF(QLoJRdyM2)kF4)b`jJqWZmj!09P)E#Bh{GNO9_y7~R&9c%)k4{12}A0_ntxmRDA zNH*i$E&IPF(B+rF++V8!oe1V~)$@y}as+4>XHl<=5h)&K9J3mb@Em%&WC%=eDA0I# zbDyJ;cW5Xu%41Z#{&G?T;>0<>p- zuO7zenfz3_ArI{DVB`rHRNeY~-@`U>1;;&XR#sxgQq2@@wE^Z$FM`atF)>7X(#eFL z3ynpla4OREc!DdH5EUhKJ?v*cq+53@P&r(3FsHq5gYcLaefCoG>0YOuJJGx!hx7&c zxezVLp$~}$XO&5hppPkW0d!G3c>ZMtqtCLSKJ({z~Bm$_D(_^Ne0`Y(}_HT5Vl6^bk15_m38Nm50urY>1yYcx!J9s+jnb>VkGDA)#nQ=@fHZ zB{D9?;ytBqy2s*~EoQQju1beq*zEFhvoJ$cwkhGl_4=9NXLX8I(ua^%38rjhZQP>) z!}P-9TnJ2c37L zT*E`a~7#A@ilv6OrQO4nSKDb7KGaa~C<_i+Ic94jYufG1cf%ZJC zIafKsqInG1?Zo<{;m&V|KqnW@J674Y9ODL5>;nDCe@fz3LRMxch!QQ|&Zl?j6Y_-}k8 zT_?W}jb1(6s;g&#TTf<|(<6C1iV8QSr_j`PjW&DGYYZEUQsqs2u;YIJ!RMn5pX`(pEio-&@*wZhF$-G=pP8Nki4*7nQT{vxV}xE1~Jb zrI^H5;H*=qc93K;U$ZN8@=D&8Pu4Ea-R4Xa(N4+(C!h>@LPl2`t~}`v~p#r9qps2Y(3f9d{q?I;pq#c!uqQd07^eEdWR^Xv0@*KT_!sw@o6!7iMP-^Yyrg>ED((@K`v_tOhLj_@xnC-d-vUEQ2^E zR1`0{)%rrolhi`^ z-!>(1rQ@zJL}9>DLs8r+pK`X&)4H~7BZufJctv)L!^L;W-0b|*yf{am^Z}f7#-Q)~ z)&yg~D{oFZO5NAf0|B*VzsA)T#k{>%-%OCAxBc&y>dzo~%Gzpe&RaS#o z3KVZl$sFj6!OqVqE(hx@ziT#O)88@h4Byv2KX|S9VE5kSrFjhd{QU4 z+v%EDqb)cNL7QPg#*5bC3{uAO%gxrkR=Rl?V^!vV?f3X==$qSx!#94krzEJcH=8df z0~-1)jgWfp<8aTC@yz=0xoxw8AgN|2n`}L?0w>3_f!^3y5?u8Exz~-WPPhNicgQDynlA=5=ay zD$etZoBlw#2THO%PcKd&%===*`8*Cz>H)V^f|GxTZVNKPVi11s%}P?$S!fo>e;xw` zGVQ#l%B5gmA0M=UL(f~#-_|oJR6c5nW)=0wHtxKmZSG@(_rI1?`92};>-|fGWl~qu zaiO{~ytksGrvmi-3~O0mDBVo+PW@6oM6c+`XV9cPSZkO@nCWMIt&+Xul>}Of|7C(U z)&|iTR-Yqt;$9hWi!yLa^sQ|`7j^UX=HJ}fcD<`zgvuY11O&DWc|}jdhgf1Q*O{w^ z3k;N8ZVva48MFuu?ih7z4o)=>x!ytSliS!wBQLHwce=F1Tep=I8uIKJ@;~=VZMX76 zq&tnpdcH$~ejL~^LJv&I(_yz;IMxWi1YC0c0)CzngsW1vPC8B2vMrtEL%bq@rkd>C zu$Cs>Ez`?UnCmS2eiBW_nwq$F%eBeT(fZ+U-@Yv)ZDv|u*)O>Dt_~L_bz1b8CKk1H z;<(VBMiIH<;^NimP=}t%JbpER27r5mLv@E4Mk=UP>85`$ct|^>(xo{WqHN?EJ}bt3 z{UI&4(Ci?uk6Mvf&d}q2weXK83AifYBc4C&;; z{glW{&5@EjShtG8_2*x9=CS@s60tu=>Ne3?rTF zqM!_aG|oN0Ub?*@;btJgHYxB@NrH7i7^(0CVz0uC(^fUkc!?v>4ocT^K9bl|#BGHG zPXGPZHXlP&V8K37{b!--r}gyjpPsr&hwN-VDm)2g1Y&mr{?jG6XrCNzG_9<%0^fH+ z+br&X@4z~Aj}obU%(pQFWH4ooCYj5`+l|E@6%neSpw^_awjkQA@~qVZm?c+Z{RBi^n$3pws~c5p{e+ zwI#UTBplBdeQ1g(BVHFNtLmh*R;XoyPMRs}-h3Q(gos1HkZ*G^Lxz zcRfrtJWxw>gE?#afm0eWSQ_RV`~_6_)vf*BHRoge3pnqg9Ds}gpAM06h!LFX1%04T z|NOozIoZpvKRPA=cRSgL8Lk6Iq1nGl9jkoC2@lZ&hcLyH)TEfd3(GOCi0sKtSFe2x z%`)UkTk@aqee*lw#pRNq&NBrSO-)U_6sJxt-*)*mc_DyLS~XioQPI74t~b|rV`F3V zy1gno#V9)T=7nc2R%M1<9Z^7nBqNilcZ}N4J08Xf8lx-IjP?nhTAJn%7cQ1{o zUqkS%u}kt6Lbe@-A)r3^m=u1M{XNJ7oor52$wr?hiERb#xk^5F`PiiKnNNv5&Vp+7 zI7ka{ARi5yBbj(^h&>wifzf`TGe_OTmFpzRJ$`?>Y0!oyjWBK>W3)H*0p))s`-Ef#19N#1)=VQxzul+@?s-3d!Gl;iCWWq-dr=>`u4KLN5W>>TZ}aE({FUie#*g#OfcD63{Om2=E~$ZQcX@C3H5IPR8;Hx6 zHCe@%@)c|~rQ%6umTQ{-PauKvNn#EqSBJkh(?uOC)eFD#o!`;NEA=VCe-+fl^tE5r z**bF@fS#ri#c~}L%uwBisjpPBHPWSmx0ykm!7)AEpGXC@i^mY#8+p*k5^MK)BU2c% zSL&{@J>S=<-Sc;l&Lz||BOlX`K7H{iKET%Ebe)A0z9Z?Y|0;gw)2xZVG>Q=Et%>4r_)aPOF{Uza+Z(%C_ zGj@s=Q3z1!iWx@*57?=*!X~`atvW!$SqtOyuWzwwJ#CP})2=ona4j;{i~l*%9CkXh zgdAF8F*`fEsRF=q{9Qwd7Uu#Ae;k99#b12hTCK&mPg$<1x@FtXN_Rh(uYHh%inOsZeRUh8=eXskh++PZ7N;|tDSmAxqtDrNm5HcqY($!)>Gkf+FS{|9$iNBq3psiIH@`^P+?8P4_X7**UGqUTxaw5E zUx@w}_x0Ja^$qE^eun9hs<4bn@kx!F7o@>aTM)OIhs^IYgB_VErDtINRq!iiRy+*# z1zB0szktM*U`o)9I@fvH->^(MY`1^98k8B&7%wfZCk=TChjvc+pQ0)T4e=pPy0F@7s1HmhAv?klxj< z|5&+j$CMT{Ma?t?&E&sRe7ij-BxXYjGwc`#gD+<#WPO~q2%anu80C#_0%_m1bC_v@ zqSmy2O(OsazA0sB)yQMPVMT3T+$vi%#;TbsUIji_uX0`G{N*Y0C;~J@8m{p;AlO{; z@@(UzX130x!_70;dh7m_UZpEhl;x){{PwJ{K0v}@4anP%^Lt>G$g5&K6}x%J(39P8 z%#Ajzx3-`b2q`PbG^ffr>~4}PakAE4so;lko4`_rWeCi9+q_q29v>F&CF9K(*@v9lwzV0Xk14tjq-G!~qQ25^vwjx*8&X5XFOzVVbxEv9vPasf1z zmfxH6?V8@TEKUT7>4lEwH`mXrb3UQJTJqn8XUfck4`ifDi?>(u@jIw(Dyu^Dfxz3p zsoC4!8P-#7purxe3#|RUw&o%rBC;tHW|mgM`kb;s|`5*p|*BmIK2BYjKFa0=t&Fn%#u!@{|xgG7))bBKTr|7brCRbd8qIbHM7iJZNy)74ub>R3=ZrdfE7;DDxaM5Mole|L_QLhzAtx0C7;m!~9Gj$nNqtm(2R4YNk?5t!%~uJ;GNZ`1@%ps89qo zOVx+Z&n}V*w!VXXWd%(ovF?hQP_dJgE-o-Ze)oWF$hwl&js-;U&ohN^qLy-;cG&w@ zTY&EI2HAaV#xmHb_GIn&*eOneQ-2V9-rny94x&Hd@jSm8@;0N>#FO$m)#;xf0b<-{ zIY11{-#`cn8vv(B$O`m^rxvO~9}~t7%H{0-!@D%){q!hMP<>LWK(Pq$ zSXx{(tJdR|q}QW)leWLUEwRJLFU@KgN#6_TuYO!(15vk03J`8G2hN6D)HgIZ`pQgVeO`N z%!e%54bc0At;-%b5ePGl(an$8XOB}ufJlc1Os`3g`!anL2IiZpO3kJU@HDf|aEP2a zkgqlJ{0)OE(jh?^Z#Mc(P|7zi-0+h2PW`IGNw+|mE;;YNd|}4~=TSjMGU1tV*-xQa zxat!V$R4j^X5JnMeXh|{lYU;0Mli38c($||Lut8Zfof=GxEK0xo=6uGX281w?D7*L4AxWj869qjd&-#~8^0?0lCL}ApPM*}ga;DMfCl7uvZ zN}==--g&&e+A&x+l^mH=H}J%`rIFeR=wsBKO3Bm<1Z}v zEv1k&dSH?35 z+44xcO*AxGmnDuf&tF7zRqGaX=L0CNEakuOixRo&MQcHuzbxaxs>A#=AH8aSfpM-j z_}!b^_B)i!&GLq4-T^g$O)Xo;q^{H2vduxh%&?W=DKro|Bc6>w2m2L1#O)$xH(E9?_P`qUTta?_cNmXfAI-fLd zy4%ch_b|&e53|hKo#I{|;5Kpn3(Ni!1go;4h}d3H5ulfFcThd4d4xBfVH^6eW(i@4 zN}f*|d?#tlQfGv7Eis-z;iwBaf^>y_AoUtn$AX*q2MDAWx3&ie*Ig=+1;q?K8*Qhb&Quluwn(T3dPx}3pAohHEor)A= zc6m^mdPi1cTa0F+1g>5nUS-i_5vK_frsw^88PybFx`%M+2HZPI1{67l0JaTBsZ))T zE=l-SMqz36=`1(!(zDcuJD4JSg6s;^X`qOn(3$EK#cUD#%_DzXU%BMk6p>Qx>ffelm!O?zyPvv3DZBKm14}c)QK+aMG zgyha{r2>$p48K!?Tmo2F@4*r_4Zx!LNHpn{Qc0FvbkHoiKdKlJ*`OXs67`0(!AT-AOw8iL5d|S?jWZFtaxoo_)4o z+j0#HhGm1=7=zq>w4gg(^{!?4itPHZD|D%~P!tl~v?iKXX!o-lv^w^ec0uL1H+#rr zKs$m48d5Y>4Urlgi@N_l_;{EQkR$F0D?aJ=1>FmC9J_jeKy(vVSA(MU3P%ivOan=PaPa#_;`R0M}U7} zzwKn`&*hfkO3U`MWG-1p+CLDk3kx9vmLH!?+}h5OS!IjCd}oe|0=~0$f7~+F3w#&- zk4@K%CV-m5IZ9Cl#<4lY6O)tsFYxn;x3&jU8s$CLyKZeCh=e?cp$X2M=HYcPZO43f zUxGs+S01F3eN)TO+ALoQwV>d8spJL54SR>LOat?le2-AhZ>|>V>~V!B$LxB$YrN-# ze&*nNeqJSA7O?t^m~M#)6#61%k|b3!4Q-(%+HiWR;8rw|CG~U6=7$?e29Bg0B2yLI zy7|7zjc@4c_8hF)0jcT);$%fXE2CHQI%-LeTbO$`gb^jP8p8a1nE849L70@iY?)rU zN^-uteReFvmUNZWH*`6pjN}hCkvj$x3HCPK+?7>lAE4V;tnmIMbyg@?=)GfqRvM&+ z-9k_wUka!OD`f^N9eGXgzYN01xN*m>A}tEF;|gTZuHE^G^d8BQD_+f1S}1?%nASDs z=fNkI*6RQpw|E~6yBti>l#PE1La6q)1vb0?@j?Z?1FIGDqzUx4@0tAl!!CM!d>=Ov zOje~m9!j=92VEF4(wMqtl=S30`A15j*Jh~7U0u$%GA37LGI+BeYa1A^r@3TQYMthF z8Rpe87-ng+ceo}nd~Ed9wBfM31axnb19E@(&C+iTj<1uNB$46nM$+8xr62X_6M^2v zK7E?<;HucBLSGRYUFM%jNcO@OThlAqr zhrBFV7ptvbGoJ=ZEGC~kee9AKVh|j>n-A+t{&*6L|M>l9Qly3N!n5-7a)GS7F^&VK zZn7VmMlX|=POub6QMSI1gY}s}AEfNDwaziY^h>}wu8Sl;wEEh`^WbucIKzBBlLu?B zM4jc%+h&O@lyVrjS!>~$DzEnlnVj5z`xpPv)S#+%laYnR{+komT*w8?BQV)8{ZIz; z+<|Ar+ZbSkv9U4x=joO3IwD4@mY(#3b$pG1Sv(^0@u2%zR#a_grllh8t@`Jckjr$Z zPfnEPhg=6&X7MdqIr-PwOw@wP0j^^6Y{;2Y73|8|6Ad>qcN|<@_pUMc{$9bINoe;g4W;xB{eWenEr;Z;JK5NWFn-P3$ zW$PS4DAV8Sw>r-!VgZJzGNLDa5!(1(N|c;*{|&YN?SRG!Nhe1~W9Phj&Gt9ER9-$l zX>ONV{-&N+gXE!B0E*|iEcFTWa-5kuQ zyek#bFRx`y6n3$NSSpSmM3elk<)es5PE{f1w+vBNGCKN9*Z6JKUll?JmF54t&PsD7 zO^rRhMXvf;zm#IFz`4^qA7(tfhv-Ha&smdO1<}wp-yeki6mxAMisI1Q^z8OkZ!{Ws zKYhx8_3cW3y0u;=uAQ0p;|^%$&M7puKK@zwlt?6cZ$yr(czUi9t#Iz$5rYEsq$MGi z`H8a=95*gJ3!-grU&-1wv8So3_iTFgUNwPlJg2^%6zp8mmZL85r0PL~y7yt|twsF_ zy%&~-DG?qO_=1u&VdcP{r;#c$APuAp8(ueMI4eNfV$4f6a6W5#GSM72njk+PL|Id|VOHm2qt{c*z*cN6fJ~vO7Gn;v-^yBnrU-GF@WyK(-AVUia>HejdTe7|N zRaI5nKs90)uLeVExrJPD@BYD_9-YTNAruq1-t6beq`8cbIorE?qIFfHER}`fk=BpQ z)~3D35W&8&=#FLrTUuIVBP{dSlziAoSH8bPmzV7o zZ3Q*;f`DWYxqRvX1ZEfy*2Lan|Kd}bpW$zsHII!VXr8vRUwGzg%9k*S zcDWh%6|S}K9Qb4yO^Ie^1~0X{Uvm4PJeNtrk9aJc1y$RGscZ3f$ioN8(>zLRxlfxuX)G9 zq{$mLS*y*h^L)dEbBO7x=)f7xz&UBJeeG!kLde2GM?4X=%Lh3xrqc8-qk%og$zg1taFaT0sXW~uFs~tCgRXq%rh1qDTMR&}Nwe1Y!onXU+`A(3OutKZ zqw`25h4zReI~a`#n15%N0c<_0@5ecqX-MEeD zk76H;>bsD)ooM?92c$t;sNIKWy~4NbXN#h^JeQbfixq^%-|(E6|48~=^u&jr=TPFK z>X8h_-(yz<{y!3wS!C5jNzLHWDs{*m{=y~8gux>rQ9v$KHX3HFGEaTI_>=NJ;vZIHK)(ZoDOdU!XfyY)tH?1#ZQ z=cv1}D?j@ESc4+>4pZUFy~W)|RkA6Ck98`H0WP7z?ooFn15u?cQ=v2{vXUMb2U&nc>j&qzEjZ*IP1XJU5eM-LrwZ(VE!DqlXKNsi5Vl^?o$B~zBM^<0lV zrHv6EHPc%A#s;0F{?LGVTB5aK<>g-M`S*9{UA7bKMN5ClkEO@@dnQbXz5p{ z=X@_oosY#zsajG%OP-KwhgTryL-T+%{`MSmdpRYiL$ujMDY0NYA>UeDH!h$Ii+6uJ z3t`69Hq8Jz5bHz{$s>0UK9qydrV-cE>YBwQ%)Qs zCV|ev>jFMwNt#H1;pMuW9h-7lTNvVh9wEHE3#OQ~g6=*bB z@}GeWT+y#dhOeaR*#d^657t67QRj@`~}=OeB{wroF?XwL>PxV~6PT^jgcam!EKCAF}LsBKc&MZxL_&}z_dJ0TmkK^} z(vJuya^0~U?c)xfl2+nV^o{4N8gc1u;%cOk*8oqf48rl9kVTy$vw=Lm5EJ5`=hw;G z6<<&YZ>p4)lQShui&LWgJM%J#z8<${5%wv|RpN~kwpAQ=y=6_cm3%}m8a&O%_2Q}D zPdDOwe1il63rwtnenj1tZP|;cAsa;6-X^Fe7tQNvw&unCF*T{^&Q+$FW~VR)&F}Sl z$psngL>#6o%?w+~_~#ia>iK^tWI&)b9Rf3IP*g~lZ7HA3v5Tz{8B`ii_&EDHTeThf z>>%xr>>m;4fzb^tTYd6soW*#Z9W3n`+6v{i)vG44g+p}Q^PTU%=&`vqAbR@x$ew^A z_zXkYogcRq6e{mDH8l1_OnbsKJtpBu(Lw+fIwE?_n3GF~w{^+4Pk0+$7 zwv$fsR3TI}K0!VYgrp`&P}}I`7llU4nYP9JB7=mfyUqfa=4hH@OZUwEk%s<=arzCo5&*zp{z zb0>%Brga)Th%SpFu3r>z1Raux>Z2#BXGBM?P4N5R4?nzVHJpDN)F(XCc)cp*N4W3W zG*P|&Dq`A6juqdJA&bb~#zrlxyYl5pI_Hd|Vb~oWZ-C=BwRt>>Cvrhgt}7qykM0@7 z-Y-&v0w^*ArYcIYNudS{K_ah;E1m{FQQZEd3TUHZ39asog7A6YOszzPXjEb)a{jW0 zGFQ5eWtT(K{+du373ah6O^e;%6ek|Z)on5VWS7x+5?0#FSdq-o)8r0qvW!jkCPDuw zW3J1d^7~WwO4jNMOM%cI@_?xlaD@Xe|PO<)7QS`T&xBNrjJk06fY4GS*Q6Xh&%H$S`nG zg``4nWgslF@G6boDRC)eE|vip9X$Jwwoi!o^H>O9k&cSA?#ePT&>?Yam}W(`axzD-0S9W z@0KW{?*+xaoym@%Yn6o?kkiV*+t???M|AT-NPW>Q9>|@@q+mCiiE|LHvocL8W*GQ> z7tAe5lj*|0& zU$=FxvOD^n3C<3&m5^%+rlzJ^00SWH_(-D2Y#VK9`W;invnRowwZ8g~=tNJ5>Uzlp z{^#@ff`O4y#2q|l6ZN5q&}s*qVgjxr)Y!G9ViP%ypv}jSz!(UhZB!U7iS$FLTj>TWI~lj7M{-jNQu^CTP}QPe3FUFpQEQt{DWpQo`L=6eaK)v`~tykhA2>_xbwgRVV{` zI+v``5Os(f2BW+985Ts0M6FMikvfU+S6S_H2PaW;Z+(ec)R5rn)ev*dSX_8sc$pfH zdo?eT1s*`WR=r%*f$qY);9t2W_?6%=FrBV6sA3`u&vIj(>l3{=ep@#Z-qQG?ML^{+ z%?lc@&ytOHi!6fYAKMQUu*=ZU5c$Up|I^Cjx7(NBVh*V6h}{FjHl8~)UiY@Nv@}*7 zws1KH-+S{g?k*%W)eo|8BCPn#W{Zxv00p1dqTX^oAtJv1`NO&?@)jI~<^oIsAucsv z4rNbp2gyO^peWHkul=HWM&G9cry_)-v`P*BCTBA*Tqe1!n?2Jaw~w-d+Q|8aaN`(r z^~Nt~xZXmElA@K1o7=$_zc1gMo$vdGOEksS~R8d*_3gZ&lV~n=g&oO z&`BRH;;fROh})5%$cYbal~cx2eT}dzN$CmZPboDy;ifWQdgFUAMr!v#6(voFso{A{ zC(9WbsdAq!3x|3ve?S3k@s*gj_hlqtP3l<4f4v7viAhF)l+R=|#3=JE9a6|-;b`Y# z_^xe`;ee0omxneMchD?B~oKJD70#?c*uq@%a1t82l~hMKIA zrdsUrHPRq|7Q7L?Q$KRKytJaiXw9ifV>RiuJ~z^S1r~;8B_;w_(|K*ngK4@bdEcSY zS7?6iKIJnRaGeWCkzFAs7n1?=Rfk8et*|v+xH;;5>>PJ;508Isdy7xsO{OmAb9+VH!LbN0Z`?`@yqs@^8{bl!&PA8#Jr3l{xgs=r|wB$nd) zkkI0~$A!oPn1py1&c)aShEX?^7W1^1ziOIIiG=UJnLybrZ}hQd+)i`ROP~@k#q&y;&>kkrC2}ml~1H^BJd7D6mrEU6bzD+!;d$aYn+;eRI%>G1%6bEK`Mz34sgUZ1S-1-mm)ZD;)SFT?(7Lc zuCXY{$`UTN*32tjw^MHpHYAo(3p3CR?EhJv_YG@8_;Dl4!9OmVQzqu?(zBt+Yuo(f zs0A_NQ;R9O<0S#r&2j`8`TvHrav8vlz*XnL3m5~+RUUQlDB>es#z1X zb@FPNCB<`+I=?;*-%Z9@4e*L!(kT`Z`$r=v7^vGWr6I_wD2cMlYMXd;Ql1@!RlIW6FgogvqZ(*Xc9%JSQD>wVpbjPYRC_+qLJEAT2 zuNWUabi~4*Wn##Q)A7UGpn@2ZpohAQ(W6)=9st2ckdJ?wup%PmUaKZNW7@-=F8N3$ za=!B0CahF|Syq%FRfgKsob$FE3trmiqe(HKdeL6lXm3xsVe|0nPdo2b&>*yK#os7o z+@4%ExS{GBWySPhZ<8;?D~p8IH6@??U;DUEyqf1hKWf0kI&=3}imw|qhOy!ms4Y`9 zjr!gt6o{dvSX_HRJsI+9q*ll2GLk|B)E8FujL7@I?b@5YGxp_MDe-@oB>BnnF3b*O zOgFtCWZ8ZLD^4zzaCIl*36TWxd-VLod)B zwO(lGNl{x<6hAm9W0RQD47u1 z!v|Q_Sc#vJBNJ3c#b!rVocg6~l;Wp;Q~lykj3lpLOYM>CKs#Z>#7ta zL6re)+AkSuYps0RIPLBXU4o7Ip8-HLq1e-Dd7hW_#-b#7;qi8|aT zkNonVdJtycLyf49POX{h?JLmNT&DzYgdtqEl}e50XiaxmBiCmbq(iV8qp%!z*l>_f z0~+O$%Z8lMDcZJ5Xh$BaTVRF?Q2wK9gzvqiKlkTCKMqy{5zwquy?d0|qPd)?H0JiU z*k=;j1?N_rg62mt*i;Z4(#SIi?;edZ_qC=gvR8e99H5u@XL@hZWKmYV~;eEc0{;Gf^wBoTDy%*bGzc9dLNQH&?53t1sE zwy*lU3-cPyqIf=&5c1EYoyLM?RssN zhp$fb>mL7|H@-KQ$M+d;>|89u;9g^uGgp3G3YSc|!8&)WcN8IJrlH~A4ahgY@^SpYvV6=VZ4~~~aq&7Wl zp8luo&t3pCB#@xak4eB*VSbac>clIdkv&IE9+@w`+I*h7?Gm}WY_ZxxPiGNWnylrL$h+ztuhd1Xd>u#tLDd zN8bp5EPfPE!&Jp3EKt{yVS)v43i+*GNjKwbD<(=FT0>+0)q`hG!9f0Da!|rZ0=ncp zhyXDZ(An} z>IGaRVYs|ROTM~t{5yooae7r6lOOl_&wodPssOy4jD&tE{D8l_~j zPGnXT&mg!XB+sN2V-G9{+4=98zy5jVor!bAgfnum z!T*`qLol&92@Np^rjGDmpZ^|2KXXTNqTCwFF`ete=1`1ve%P3N$%eM_uOh|;|MLtv zQ-%0t%iqsL%Btz*Gjc8HRvdlEaEjdBmt#{}FvR8hKf)#M0l~GNhM0I&lcA5#mR-jsJP zqNrM@yxX1}kCZwNvsFsL7g?6a6)G?I&-1z<0WrnPjVbi4szKJ$V?Kq+#mbFy%Cx%K z{*=svgdfjw>iT6T4gR}v{g?`4WABp>gj|IN;S&CQ8DafThVlit$P~rI4R`W2=?`ij zt+rCqW$g@H-KRS5e^iYCoIWzr5Ifari(&7&7b;*GicySH+fr8)2*)-hq2ip^8Je5u z$bb6RHXz#f?wP_nREc$xy&6-X^yaCLgW;GY-%FI5>%)gF>F9Lq8UpItvYU-2>O7X|?Tm-0dl?ENz230!js z(rmDt$aFvnj+fGdgM$HjhK3}g;$HW1lLYul=#-0fMUShUi+YbOgiRVOsm-bE>@;n{z?AKa>Ot%#)~k?-YAj4uXRt{D#F2R}Wt-l9G$a+2q@d;! z3-T=))icx?ezG_Qwim~(uLghKPWAF-ou`E>{CFV#NJ>LY&qfv^t(a~H7!do@c25AXqR36>;^EWu&^)$j&*niydC(g9im>IyrXwGm^d#Hk?+FYY~;WH2o_qwoz@rc@n5Z| zsgjj1&`|mNoqnLmB*ja7@J-ya!u|2X5A1#(?$%Eu!@_>O2d?GMKQGiaJNAcQ-Ya1p zJtA_`b^Eg>)-*SEGvhn*O_{Jmf;br%u5IKOy!b~x5QmFTY#3de=$j6T} zWz^{XRwP)%1O=Hajj-b}=9(&T{oZw6ut{Nb#y}^tzOLQ@sZj%|mHaI=4DivfP-N7^ zI_O6llVf?v8aR1|K}Cl0^}pqMTAi`88J$M#Zh@Jd*J~-n0PD1(B*tKow=tJ~eem>2 zaI95{e6L5$m$vF?vugt4R-T^`ALz7KoGu1Ic7!9Df2_h09qHlLc0_o8nG6*>A8G9J ziW~9ex<_l}`SlH)p9J~uko)f`l!2J9iuc)uHl6!@R5e-YA=~e#TUoCpZeZ)b%5Q0` z>(@9HF`x>z(|&Scq0IJ*dBdHU2l;0SDs1P_sVvjlrCv8|MZ=Ko#YRbad3gu8#e`kA zv4UHw6YTE!4C!H(HCj|ZlAqRIWUsywEY31?JusQjwl9=*?r$4MMBXJQuT zn_5u`3u9OF#1~0Cn{=||2Y7hEsoNGiCHKGK^Z7&*I8pPa4$oO8RKWp6g8`)ZwE+c= z16Nz*nf;Y)`2)-pP7o52##)-%+wY4Nt^NN;Vbl48X;B408q-1?&ABjye`4T;_BlR1 z5s&C*$o)=(Fw=^11ch+Jk63_b8ybd^I$mctTk{5R;dI&>&5q3;FIDV2CEUUe*c#)7pTlan!N|O43%pOTfwlDl4E$TAsTmn^LaV+U+~?b8cRqgv_?&t@ z7N!yAJ7sm8p~aH5Q;|yi6$$OT6gQRCZLpao4+##NsJdVLKt9G{np{T|Aed+n1TPmQ z(d8ZcF4L6yMV#BlQ+DzHbuD$;f5UOs_3<_{^ac^tE8F$Vo52i0-4RzV#BoJiu(Hgw@9l!;U(*Ec@T_|k?cU?mn1ZZ7sM56m%$S&XT@mt( zjd@udS17;UbWq^$ZKD*;!w;!00%cB-Wd1MN^rT?8#D)(^*VL%w3+5ApL-3{&oMo|4IBVEM6-$6vNQ>ekAu6i zHq?-@IeYID|Kr?aSe&eATZN4o=s^)g|ALd8hM0QQ1=`^4J$jmd+Tp1cGX?lG7s}@v zxf@Jws<5nx`+CZNYXkG2H-FF~7O!vC07Z%8w?QG$I@>7y*e;QP1VSMC4CRPc83stfGFX%)eH2r^HR8)iy$012u^ zO*?a{8ixO>+4KU{5W@`j@vryc^xt@cnfSQ{>Vt0~aPOA~B@Nm1vknE`MWC`8c~4XozXX)AdDy;twBIC&kI!Q7|6EcA5qCNV9hzYQw%x_6ygAQ~^Y zKeFC?UTSiN9P#Rl*AWHP#^GVl6dS43QBvLG$BY`K4N771mmk0Xvexk3F#lWO*%R({ za>99UAtscIW@`KB(htGK#brCvr&WdmdaPi9JJ#+YCaB6(SmH;7YL8VJkLXUD08uLLb&xQ zGC%@uZdZ%!w!7yfanXFmb&ipC9+YjbovK}2LW)x4#_B-n{L}NF;ZSYEr-(J}2L?~0 zRd~KkN>T(EeSk%_86D2o*Vo?-Z9jftZO$(0%8Z-$y)e+`9g)|qEC7&z+G-q^AgM*x zXbB4S>IEVZrEe}oOtchBK9QOwAMZk;TaUU~mttXScf>+IzkU2M=YjhfM9NCwx=0r! zwf7?&te~O&q>Zu^t8yECn%Q-^p2hu1msP96Ko_yJ6hM52kiBr$o%AX5@>f!ZbYg(oPaGztR2h49g~dIY5pN8#2=&<#%K@|~WrDT5}>R`w;=QnE-fRZxokkITOqNs1xwxI|r9ViqTc9T*e( z`lL?nPrLKCq>AMR6%g&wuggR)^QL!iG!+#`9;P+c6V!#*9%uSb4D)+sP2NK5s+v9Q zcKx64p5nk#yzaJkN*v{9csj+}w6Ik9#IJq-+S*(esNOgD!7EIElj0lJXOo;OxOePz z`=ckB^k~*N4s=Lit3^NSx*OvTOqX1QWgn;?|1r4h(^!u0oZTUQd&&73o6~E*b){X{ zkea2sY+PfXFuf=f=7KBin>D3jX|%#SLvk%~>T!pA7HMp`$RL|{`vkVN>#yZ=o@$~U z^kfV1N*H^xsus2ivnf69vYB*lg>PM>ok_~0pT6J&{+GcAD7Xi)RPlZ4iy~t#Uq2~l zh7BVcWP@RHv(RexC}*Yj=_ z2L~q))bO-Y!$-DBIisVagBKjmc_w&9(-rzV-@EoGq*E>p!TQE%0w^W{4 zPp}1lYkU_2Z83hg*ON=bF zS1-IC%HQBgq^`II9{%=TV{L6rJlF_GhHtf&x3uuv!MNRMtzNhi>* zrAuQBOfM5icmO9G0rDR^^9n5dB+_iEfwOKh6kKlO?BN5Z+uzukOI7%feYv(IQQ_aoRYDM_2mX9Y@w9^n2I z##+t+x%VVm??lx|pjCw@hu1#FT0L3vwzo}KG=RmnjOyRWcv)~$XNf>~m!yq4EB<8M zE21$48mpyV;br7qg9tJfj^<*r9RFpLcaMv(IDz?PV1YI#F`+h1FEV)ExVQ@$&42Q6 z%n!rnv;|*GHrM=s#)@6N8*`Drd2XqWM#wKyq ztz4&6?*M5f%xy?|oIHA*y0*Y@3ASd1yF5k~qTXkIJRm`zU|&Go8=5s#px1Umrc7%d zBgYTrZhE?5R@ViuHh90`JD%umfzRSFEB<6ar%oDy-YDuz91Ke|g(%o+glljO&*~9v z=BPdiXLHSk7^}ZVdwdtoIoA((0(cJ01}a&R8=5+e!+l2;-5xA8r7mqDjz75m2u+-5 z945YHwL0r-!nIlbd2rx>nD~~lQq1$#*zj}g7rB%H@=;-!Fj=WX{ynvyhUXM_Y7svC zOo`g6O1UGZH=%jbBu}|uD`Y)zZ|+SsjTIm$@j6=X`&UuZSY0I@aJjO@%nnhVT+TDQ zV#4lnNQP@&DFOSP2oPlJ=k|O+9eJ>j=RIXye>HFNQd0MV<~zagGgl4L2D7<0vSZNZ zp(D>3Auq37@pskQYs`WE0EB3nlU3! z+OS_Z{o#9 zC9(4vJQ=`bSJ)Zj&S+_wk~~ebhKy>&QV4kUo|>0?!55S^U5A$_Ou0pC?+<#~+Q}^! z%geVv)s`RLQZh%qn_+wTm|0M0#mVb2Df;M9+XmqIWi9Xh5xYt&AfSb4Cn(@eQ1yQr zG{;C~-aF91tRas|1efTez%Jjc z?S)Ki8Y`cB@;K;vg7`R57+=M$Dh@9p^{w5TdygRHdWtj|pqAy1w_@NLef#su z9rtX=@uY1e>WNrTVST;3si$Y7+@IZp5B7v}E6U%|12^1=hmu*y8Uk*7PS2O7Gh!^B zy9$xQ-AGRKw`Bll*O_b-hjxoF62{QN6QftVpMk*=aA!PTC=Jo}fd63tJQ!%9bXo6Yi*SeU#9wQ2I+5RtDUHaOBN3pfL z^k!4|>F9-WpNNBg;Sey3NBX_$aI$&&&0wOqy*tx8u&ODrqm{`Ik%ad7^)QuH60@Nm zQDm#C+_pDhU#_2D8`o2Y+`j7Ql!cF}`G5Pg^X)Aw zFPk!XA}8=2`872zJx43u+8+T$E4(grs@c4icCO zJc8{mHcx(ND4*Lr)|%>V5YjP5Q}k0{X47#)o|9&~C3*8mhi$o*0w^olTUDp!TzVuM z;n-yJdIOsBal45l8UJRLl68e**+qO>wMkY(JQcOeV?5CEp4!u4q36bVMkzt3#{`x2kG{UHdt>}L(BSKmT70o zr-M!1I=?0xDTrD6VS1>-WYoV}+_<*7XSXTOkj%a5;#ObS!DRfn~d7 zdUo}V)N5?cG+R46;t%i=&m$*r-r7csSvg$uJM~>W)gxI&Jy7kAqF_cOe2X)|uDY>w zCKVnJw?8j{fB?sS-Yl!MlUkaWM4m+fj#d=B;|y+CE_Df~d_J^K`z+yy{NvBD6m#PG zc(4>nY1j&5vz-Xu{}MmtvnzJt#Na%IQw~aoFK|5NaF=sQWcaDc@8aEEYU>8lYJ_)B zk5=f-`l2xZbTNW^b_tI#1XbMS6G3~jqTAPm(SzxHuIrt5Hi@`?#=@ zB~9Ue)ic;A#2I(^kjIxJnQ<1nG*+2CpH!J59m{WUHYCCA3S`)f9kHh^&!0yz z<@N}#6VUfmge(2yEN}JADb&@|onv9IgN_lO8G6U1RKZrm?HRc+LC3rY|c$A2>7;Pmr+yS8FNQ*AcD%zS#HPyiiyV0Sv6ThM9Xl=y+itIRYu=5d8tscs_X8tqz;n;^4{V-l*kr#%X6y|wGD%Jm3~0qZSc zq@52;p}Ti>zNK*)ujdqRK+yXDIc#8Zfp(Io7KN~Gz%fTrxQuj7hhKIi#oXn_wkklY z9sM|7XM z%sDO1KG@2DRy-?5ch-7Sx8OHb@DiKT%GJWl(Dhkca@cr;ZNFhjX({F94F1`Gs}6By zto_Chk&Ej9j5bd`j6Ah8KISVC@w*nZGH=kVJm5Iun>R!^@dYUQwlNFmayP>p0thInDq> zQlw;Vfun&OyN)j4ERcnqB3i_24PmTNls5r)wOS3+czeO^)fh_yzXb)ia1GKkN?qsu zy8@0)@1R6h;_QOT`*-@kFel!;&>#dRe$<2;YwO;Fi0oYD3e?xOkW9_C?iH@Gy$kqoe-zgy z%L!Tju9{3p_!0&SJgUNprSvKjel+Pz@WTK4ih8eAoC}dS^ukhC-FWP4hl-FSVwq&a zYfn3zhN+g6riSdKN~B?0B^I~fOLiCAFa0)Sk^bsbgjeTX%*NVXKq{X5~RoEU^dq z_m&5&h<0u>lh%l?SKsVKPPxCz*VtidKi3RW602Qoo+@a^Peu9!7F!u!;V33!)+E{)W2zUTffz zM-}&n`|C5GcKNH_k@2}Xz3Ih8k~bNxdF_Gv(ax2WN`FZB{d&SM^*X+13FDr#H_x5- z>OGXpPxswfP8eT(mZO#_PW)KX?}Cwa$* z8)vgCnlcOFEJrI~poiVO>$=6%R^x$Nx*f&Q?uhjip3>&CBVo%nVuiqpKhH3V^cUax zbRc~q_6Ev!04+x|(N+XQmDrJ#c zxung@6xoiL=tCM=3_CUIxpHv43v>M~!$jI;D?$g`|3kcg)JMGgYB18YiAS<75pX=J zRXk0e+XTI#g|=dKehyopXH+OZFL(5pXYROIoirfhhnm1OG8{V>&t=$Y2VXSn?93z- ze)Olwa0z1)vmHJNm^Jd6GL`n4oX*-ja5V$C6(W?;MSz$7~wE1Yzv9lw_ z-Vv)C5w^0b0Pl7!d?x_WXLiE$ZT#)$oUiObUHXI_sD^-3^{wRLv$DXKxUp$vYaWwv z&SC8jWycIY;dkK2quC$fbhAz_2so}bd2vi%b*~)d{~npD+*HF@O?9ZZ%tD`0CR^d! zvok>`9|tIold6397VykeM3)4s{*}+z53cm!X(v~7%`#D6A)_r zhSe{cLKyt6P|Dsyq!Bd0>W%;+ch|LBUY?!3G>SQy^&{Bd?j@d@E}R6(W2w!p&u`RE z&`F~~>!iJinOK;aiM8>MFMsf1`I$sS?QiUM4*M55H4xdG?mg9i+ENlhQSJk{dlO2~ zq4Mk1*)>iJe|n@kL@zz4+ltS ztNet{DRORR#!&KkqkfaL$0y!;awvqg#$RW@MG9vfelhUjHo2xXyFS-7SWNN{hkxgA zTG*PKn)E{8+2NZaO57^jvVI&ICzj2+J%v!uoU6N?GfbppcM1O?GP*ks6Sy9Tr`}rI zrL>#aX_4^Oobk*LyLyp0)-j%tUF^w^TLdLqy^pVhI9EGom(x_bWsCVNM|sy!kG+1Q z^Av7A@?QCbxBfFPHtBTNw^O!qGygIKHA%jQr909b{l!j}jsHo3xI==LH*UGJJMO+} zefw@@r%}M4H8NYr&_UnBc3N#C?*hS7jjTMSd}3xCm(0l@EFIsJ@TKyf`%X_T*A#m7 z)B|$Qp>jg+U7bB;e)IsJ)za5b1GgT%L6J0E9e*yEGUq~g%a&g3VxRTGX7B{wd8O`m zrx!bNuW}qEqAEvfYiLA)+~babt3si!%$Q*8S=B63CsZ8m^{Eg?V)i0Q<~C6kklX-m z+mh?Ck7G@fkJ0Aa?dRB>v-D?3ioC=ftSJgcw(kCA*Y$5%FX|Ad6DSn!wax;Onq|j6 z?H>$$yQT8J=a7()@L_;kBRM;~xs@gn?4rJEC+A2^4!$%EzV(Uj?u>~@XlKPA%*;_p z-*Lg`a0$P2i}U-~=wB)*`98m9Pd2jA*X{7TtU5b8>up9=g?3D?c(leIUEdsTN0fpR zJSptRK5Td9H}_e!5Am6_SWU7F_@B7dB`_o`vwOg^6UMMJ=EBT;*OQe9aSZ_QuW@rCdcjL*-S zWgk8k`kk3-St9E~`aM@UL}r1pqPA!tUci3-skK=yvf@j;k2xKEAEqC`rX`!`hIi)M z!n|Wa7V-o3JS^Z#(9KcxsJ-JeysDC|H=W`}E&HN6|jiI~8I2{rd*Q;G(!`8QAR3O$AG-IYzn4IN2Z zg*N_hjBqV?&@WPxy$|Wku){wl=Fnh=nC#^-KFHZL5xrJ(%}F7RBn&*<|JZph{2eni z=v?dcwnI3SL2pu!!KyTCC&F5tmzFH5*W=>)m#4>MCB10E@nOL&s2NT6tT~qk5|wo~ zAnPx3s|tgXog^(o&dT^n^s`e@zE|@{gyBO9)^W5)R?!3A^pnJFz)%{e$O{_sL-^HQ zBkLL)&o9&43lx~+^=6eXymg29sp%_oaBd|i#v?pZ&=6*uskRkyC-BB|LJ~XzcK<6k z?~{?+&>1qCCrUK#zcdXVX@qr<-?`~U`?u<_k5;E7u(LU2&_u$k-6``WlTZk`2yR51 zbQ%N)Y`F=Eh@{^N?Bvp$Y4dVXJz`dIC3tAfxI^?2d@Y5duAqBu_=_hCmfOs{ zC62b+&KaEUHx}fg97OgerAFGk6@-eTp;fqtmN-+}u76~E3Ta~Rat1CU8jz#0&_e^` z!KJy{nu-G=+joD9DgORU zxx7XEI?<&uY9kyPcB4JFL8!~XlKOMN9T?J}MY192Eu-APRx?TV(Pij$W50dlV&N@x z_q@3^Oq)5Ge^xnUhA=^MKmPM2jqgy(2KF=~0O?@+#i!PBBQGqi?%=CIKl}Z9%vM(w zuOGJs-5jHzNf)MRwl6`Za|#M9D!l}k4y&-dMEI+2R`_W=3r7Iz{pMeIywm*PxjIiQ zS~u_L;kn41vYl23iP0oVDrg5`Uv11Z0*_N-=q%yOFZ)Lhug*d_6si_!x$cmJ)kn@k zcGan{QqpCpTx6vVKFhmMC6jW_;4SiMVW1&Btkhq;eZogGLfY-?VpqZTQ{@>@qDBqoWk(q6a9GTY%>^ji{*-hG%2 zHuC}jZe1U{j`GpEC$x#2%fE?%tayiq|5o#FWQJ5NP;M5gtGL4b4tFw z#R|)fxSsS8Ihy+&u(9g|Fy{5@zbA`kU=x6SV{;6VHYlGT%6?nUIm0uHW*ujNkxJ{N z`a9aMCpfYZyXwLgSGnGT`HLMbEvSh9FGNI}*B0^#%v`ZfQ&dpC`T{a4eArGo9SAZ~ ztq>A59tV|ap6e^m$mPG7=g3F7zw(t}Z_!P3zp#|^ngz6&y_dE@PhdGjTM_PI?Zbmt zR%yQ5=^|pHf`?{oh`|;wq0XM>ExFS9(Q4%A1}gT^*7+Z8tzQRQ6vlpjGP|}RCd1R$ zsef=BT8B(k{AEeKdo9%vWA`Jt9vvLAFA~yHwj?O)C7AhMz1w3aUOuRA_w?$%FAisK zP6dZjRSom)Em?TyUGi>NaKF+gPrL}aVCct~zEva018?oS^Klw&`O>o5s)N1RTI!cI z8;3>Z_d%G;W{PD=`017ZlBgPUV7&8Vfx4Hcii&!7nz~Gp`S9r1|eiEA+e z%%?LBO-Bh6N&3N&_DWOlUPmn#L^RiIx zz5NstnlLT;*R7sXt*L#+;MVN12w5F`Yk=3a>?@Y*RGWJF z`d&YabY>OJ!!!!sDX(dtJv|a0?zwiVM@yOZhpE4I-Vx z-rk;GfwD+8kX zzOD^SN<`_9Zjfe3>24`OknS3~6{MuQyJ4t7x|Htjl*AR|+CsA(-^j5MPh zPv(^{40bJqf~f&i$TL>?O?DuA$$sKr8k@=x#7fK(4wmNOn;Ks~$y3?kB@ ziPl9g;UJP02@=(uo3^q6ds;`MBcXoKmU?OwHg|Ksy_I#MPndj*#v4JJtr^AQ(bg5x zUQpJ#DHM884<_t+Sm+IG_u10Fi`PAt8`f?>sLx&RKQDkZ< zQ;wE|zW$0IsQ;=mQ&(DEx+Q%ss!9mck-^eg$Yf%A-ixL1di~N9g2$OEU&xI#1*EXo z-Zt4-{K0e1@zT$XRBrC}>RjrUUiY(FoB~Rc-u>_Cgz)@OHSvMptTV#u>gsNWhK9Eh z(dIkCb&d5h`FJS4#qa0o+0?WKDU9}$>-<|;%C@w%lF*SJTb2`L2F9j#%7DHgtU~-z z@#*y0OosuM>~IO6O8Sj9XkR#M320b;P^*-C$zrkΝ22bNT|zD}|&~n}sm-$@}Bc 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 z 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 CVOE>~ literal 0 HcmV?d00001 diff --git a/sreez-showcase/packages/app/src/theme/custom.ts b/sreez-showcase/packages/app/src/theme/custom.ts new file mode 100644 index 0000000..7446659 --- /dev/null +++ b/sreez-showcase/packages/app/src/theme/custom.ts @@ -0,0 +1,47 @@ +import { + createBaseThemeOptions, + createUnifiedTheme, + palettes, +} from '@backstage/theme'; + +export const SreezCustomTheme = createUnifiedTheme({ + ...createBaseThemeOptions({ + palette: { + ...palettes.light, + primary: { + main: '#4E8479', + }, + secondary: { + main: '#794e84', + }, + error: { + main: '#d32f2f', + }, + warning: { + main: '#ed6c02', + }, + info: { + main: '#0288d1', + }, + success: { + main: '#2e7d32', + }, + banner: { + info: '#34548a', + error: '#8c4351', + text: '#343b58', + link: '#565a6e', + }, + errorBackground: '#8c4351', + warningBackground: '#8f5e15', + infoBackground: '#343b58', + navigation: { + background: '#121212', + indicator: '#8f5e15', + color: '#d5d6db', + selectedColor: '#ffffff', + }, + }, + }), + defaultPageTheme: 'home', +}); diff --git a/sreez-showcase/packages/backend/package.json b/sreez-showcase/packages/backend/package.json index aea5017..8f92932 100644 --- a/sreez-showcase/packages/backend/package.json +++ b/sreez-showcase/packages/backend/package.json @@ -41,18 +41,23 @@ "@backstage/plugin-proxy-backend": "^0.4.15", "@backstage/plugin-scaffolder-backend": "^1.22.4", "@backstage/plugin-scaffolder-backend-module-github": "^0.2.7", + "@backstage/plugin-scaffolder-node": "^0.4.3", "@backstage/plugin-search-backend": "^1.5.7", "@backstage/plugin-search-backend-module-catalog": "^0.1.22", "@backstage/plugin-search-backend-module-techdocs": "^0.1.22", "@backstage/plugin-search-backend-node": "^1.2.21", "@backstage/plugin-techdocs-backend": "^1.10.4", + "@janus-idp/plugin-notifications-backend": "^1.4.12", + "@muvaf/create-argocd-application": "^0.4.1", + "@muvaf/kubernetes-apply": "^0.1.0", "@roadiehq/scaffolder-backend-argocd": "^1.1.26", "app": "link:../app", "better-sqlite3": "^9.0.0", "dockerode": "^3.3.1", "node-gyp": "^9.0.0", "pg": "^8.11.3", - "winston": "^3.2.1" + "winston": "^3.2.1", + "zod": "^3.23.6" }, "devDependencies": { "@backstage/cli": "^0.26.3", diff --git a/sreez-showcase/packages/backend/src/index.ts b/sreez-showcase/packages/backend/src/index.ts index 5af52af..da99300 100644 --- a/sreez-showcase/packages/backend/src/index.ts +++ b/sreez-showcase/packages/backend/src/index.ts @@ -9,6 +9,13 @@ import { createBackend } from '@backstage/backend-defaults'; import { eventsModuleGithubEventRouter } from '@backstage/plugin-events-backend-module-github/alpha'; import { eventsModuleGithubWebhook } from '@backstage/plugin-events-backend-module-github/alpha'; +import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha'; +import { + createBackendModule, +} from '@backstage/backend-plugin-api'; +import { createNewFileAction } from './plugins/scaffolder/actions/custom'; +import { kubernetesApply } from "@muvaf/kubernetes-apply"; +import { createArgoProjectAction } from './plugins/scaffolder/actions/argo'; const backend = createBackend(); @@ -49,11 +56,6 @@ backend.add(import('@backstage/plugin-search-backend/alpha')); backend.add(import('@backstage/plugin-devtools-backend')); -import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha'; -import { createBackendModule } from '@backstage/backend-plugin-api'; -import { createNewFileAction } from './plugins/scaffolder/actions/custom'; -import { createArgoProjectAction } from './plugins/scaffolder/actions/argo'; - const scaffolderModuleCustomExtensions = createBackendModule({ pluginId: 'scaffolder', // name of the plugin that the module is targeting moduleId: 'custom-extensions', @@ -68,6 +70,7 @@ const scaffolderModuleCustomExtensions = createBackendModule({ // point before the plugin itself gets instantiated scaffolder.addActions(createNewFileAction()); // just an example scaffolder.addActions(createArgoProjectAction()); // just an example + scaffolder.addActions(kubernetesApply()); }, }); }, diff --git a/sreez-showcase/yarn.lock b/sreez-showcase/yarn.lock index 183ff8c..9bd543f 100644 --- a/sreez-showcase/yarn.lock +++ b/sreez-showcase/yarn.lock @@ -24,6 +24,15 @@ call-me-maybe "^1.0.1" js-yaml "^3.13.1" +"@apidevtools/json-schema-ref-parser@^11.1.0": + version "11.6.1" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.1.tgz#ce462f4fe6d1f952f3695f3c05eac955f177ac43" + integrity sha512-DxjgKBCoyReu4p5HMvpmgSOfRhhBcuf5V5soDDRgOTZMwsA4KSFzol1abFZgiCTE11L2kKGca5Md9GwDdXVBwQ== + dependencies: + "@jsdevtools/ono" "^7.1.3" + "@types/json-schema" "^7.0.15" + js-yaml "^4.1.0" + "@apidevtools/json-schema-ref-parser@^9.1.2": version "9.1.2" resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.1.2.tgz#8ff5386b365d4c9faa7c8b566ff16a46a577d9b8" @@ -2156,6 +2165,48 @@ winston "^3.2.1" winston-transport "^4.5.0" +"@backstage/backend-app-api@^0.7.3": + version "0.7.4" + resolved "https://registry.yarnpkg.com/@backstage/backend-app-api/-/backend-app-api-0.7.4.tgz#9ee8f0ea63164d8bb2dbee526b0654c4b8710517" + integrity sha512-G9aUt4/pujIVqMimlDXwUr0DwqFgCajUnAW+hJs4uBubsWAPTkoL0qH0A+Nv0btMImqXDG2jCB1YFAdUii2UVw== + dependencies: + "@backstage/backend-common" "^0.22.0" + "@backstage/backend-plugin-api" "^0.6.18" + "@backstage/backend-tasks" "^0.5.23" + "@backstage/cli-common" "^0.1.13" + "@backstage/cli-node" "^0.2.5" + "@backstage/config" "^1.2.0" + "@backstage/config-loader" "^1.8.0" + "@backstage/errors" "^1.2.4" + "@backstage/plugin-auth-node" "^0.4.13" + "@backstage/plugin-permission-node" "^0.7.29" + "@backstage/types" "^1.1.1" + "@manypkg/get-packages" "^1.1.3" + "@types/cors" "^2.8.6" + "@types/express" "^4.17.6" + compression "^1.7.4" + cookie "^0.6.0" + cors "^2.8.5" + express "^4.17.1" + express-promise-router "^4.1.0" + fs-extra "^11.2.0" + helmet "^6.0.0" + jose "^5.0.0" + knex "^3.0.0" + lodash "^4.17.21" + logform "^2.3.2" + luxon "^3.0.0" + minimatch "^9.0.0" + minimist "^1.2.5" + morgan "^1.10.0" + node-forge "^1.3.1" + path-to-regexp "^6.2.1" + selfsigned "^2.0.0" + stoppable "^1.1.0" + uuid "^9.0.0" + winston "^3.2.1" + winston-transport "^4.5.0" + "@backstage/backend-common@^0.21.6", "@backstage/backend-common@^0.21.7": version "0.21.7" resolved "https://registry.yarnpkg.com/@backstage/backend-common/-/backend-common-0.21.7.tgz#5ae796d8adccebc484edeeb2326464c28e14849e" @@ -2219,6 +2270,69 @@ yauzl "^3.0.0" yn "^4.0.0" +"@backstage/backend-common@^0.22.0": + version "0.22.0" + resolved "https://registry.yarnpkg.com/@backstage/backend-common/-/backend-common-0.22.0.tgz#d57a0eff218dc7cd8e227b989eaa13834040d322" + integrity sha512-puremJU59ILyWOSnmm8FegnlxZyu7sKaYjWCop2HmoMuFeEdYxJhPysZOQf1G7N3JootJXGEn6HB/EXy8kAipA== + dependencies: + "@aws-sdk/abort-controller" "^3.347.0" + "@aws-sdk/client-codecommit" "^3.350.0" + "@aws-sdk/client-s3" "^3.350.0" + "@aws-sdk/credential-providers" "^3.350.0" + "@aws-sdk/types" "^3.347.0" + "@backstage/backend-app-api" "^0.7.3" + "@backstage/backend-dev-utils" "^0.1.4" + "@backstage/backend-plugin-api" "^0.6.18" + "@backstage/cli-common" "^0.1.13" + "@backstage/config" "^1.2.0" + "@backstage/config-loader" "^1.8.0" + "@backstage/errors" "^1.2.4" + "@backstage/integration" "^1.11.0" + "@backstage/integration-aws-node" "^0.1.12" + "@backstage/plugin-auth-node" "^0.4.13" + "@backstage/types" "^1.1.1" + "@google-cloud/storage" "^7.0.0" + "@keyv/memcache" "^1.3.5" + "@keyv/redis" "^2.5.3" + "@kubernetes/client-node" "0.20.0" + "@manypkg/get-packages" "^1.1.3" + "@octokit/rest" "^19.0.3" + "@types/cors" "^2.8.6" + "@types/dockerode" "^3.3.0" + "@types/express" "^4.17.6" + "@types/luxon" "^3.0.0" + "@types/webpack-env" "^1.15.2" + archiver "^6.0.0" + base64-stream "^1.0.0" + compression "^1.7.4" + concat-stream "^2.0.0" + cors "^2.8.5" + dockerode "^4.0.0" + express "^4.17.1" + express-promise-router "^4.1.0" + fs-extra "^11.2.0" + git-url-parse "^14.0.0" + helmet "^6.0.0" + isomorphic-git "^1.23.0" + jose "^5.0.0" + keyv "^4.5.2" + knex "^3.0.0" + lodash "^4.17.21" + logform "^2.3.2" + luxon "^3.0.0" + minimatch "^9.0.0" + mysql2 "^3.0.0" + node-fetch "^2.6.7" + p-limit "^3.1.0" + pg "^8.11.3" + raw-body "^2.4.1" + tar "^6.1.12" + uuid "^9.0.0" + winston "^3.2.1" + winston-transport "^4.5.0" + yauzl "^3.0.0" + yn "^4.0.0" + "@backstage/backend-defaults@^0.2.17": version "0.2.17" resolved "https://registry.yarnpkg.com/@backstage/backend-defaults/-/backend-defaults-0.2.17.tgz#cbb2b7e0ac2c9b340513e38d762f7bc2d06e0ce0" @@ -2232,6 +2346,39 @@ resolved "https://registry.yarnpkg.com/@backstage/backend-dev-utils/-/backend-dev-utils-0.1.4.tgz#65d204939c49b5df6a2148e8ad4dc718ccd1df07" integrity sha512-5YgAPz4CRtnqdaUlYCHwGmXvpkGQ1jaUMoDtiQ81WDxQrf+0iYZCwS4ftVyQmB0Ga6BaGOUf6GG/OuFA56Y5mA== +"@backstage/backend-dynamic-feature-service@^0.2.9": + version "0.2.10" + resolved "https://registry.yarnpkg.com/@backstage/backend-dynamic-feature-service/-/backend-dynamic-feature-service-0.2.10.tgz#aef627570f82bc674dc5e8a91662f8db6cc5a1c9" + integrity sha512-VHMXpGDn6EflsFDedAV7Y+JOTagJknDeWcyBRtaVMRk812g2znZ5odW0u8vjckZy9/TVrSsfofjAYo36uevq4A== + dependencies: + "@backstage/backend-app-api" "^0.7.3" + "@backstage/backend-common" "^0.22.0" + "@backstage/backend-plugin-api" "^0.6.18" + "@backstage/backend-tasks" "^0.5.23" + "@backstage/cli-common" "^0.1.13" + "@backstage/cli-node" "^0.2.5" + "@backstage/config" "^1.2.0" + "@backstage/config-loader" "^1.8.0" + "@backstage/errors" "^1.2.4" + "@backstage/plugin-app-node" "^0.1.18" + "@backstage/plugin-auth-node" "^0.4.13" + "@backstage/plugin-catalog-backend" "^1.22.0" + "@backstage/plugin-events-backend" "^0.3.5" + "@backstage/plugin-events-node" "^0.3.4" + "@backstage/plugin-permission-common" "^0.7.13" + "@backstage/plugin-permission-node" "^0.7.29" + "@backstage/plugin-scaffolder-node" "^0.4.4" + "@backstage/plugin-search-backend-node" "^1.2.22" + "@backstage/plugin-search-common" "^1.2.11" + "@backstage/types" "^1.1.1" + "@manypkg/get-packages" "^1.1.3" + "@types/express" "^4.17.6" + chokidar "^3.5.3" + express "^4.17.1" + fs-extra "^11.2.0" + lodash "^4.17.21" + winston "^3.2.1" + "@backstage/backend-openapi-utils@^0.1.10": version "0.1.10" resolved "https://registry.yarnpkg.com/@backstage/backend-openapi-utils/-/backend-openapi-utils-0.1.10.tgz#924b70a692e1374003ea2b27dfd7dd19b8ad5230" @@ -2249,6 +2396,23 @@ openapi-merge "^1.3.2" openapi3-ts "^3.1.2" +"@backstage/backend-openapi-utils@^0.1.11": + version "0.1.11" + resolved "https://registry.yarnpkg.com/@backstage/backend-openapi-utils/-/backend-openapi-utils-0.1.11.tgz#1ac9ec6392d280d3d2420cda0f8dc27c4e595b4c" + integrity sha512-IHrfYYL7CtQOx4p/6vHMtoxvIdlt9b5npNh/7bzAfStYhBxmJ2kau/qqrJgQq6dBPPaQmRU4pLOp/q1HEIc6VQ== + dependencies: + "@backstage/backend-plugin-api" "^0.6.18" + "@backstage/errors" "^1.2.4" + "@types/express" "^4.17.6" + "@types/express-serve-static-core" "^4.17.5" + express "^4.17.1" + express-openapi-validator "^5.0.4" + express-promise-router "^4.1.0" + json-schema-to-ts "^3.0.0" + lodash "^4.17.21" + openapi-merge "^1.3.2" + openapi3-ts "^3.1.2" + "@backstage/backend-plugin-api@^0.6.17": version "0.6.17" resolved "https://registry.yarnpkg.com/@backstage/backend-plugin-api/-/backend-plugin-api-0.6.17.tgz#3d00b167cccb36e2341ae5cc4026352904938322" @@ -2263,6 +2427,22 @@ express "^4.17.1" knex "^3.0.0" +"@backstage/backend-plugin-api@^0.6.18": + version "0.6.18" + resolved "https://registry.yarnpkg.com/@backstage/backend-plugin-api/-/backend-plugin-api-0.6.18.tgz#0da77be39616ce4bb09c3fc55a3cdf9c973edba4" + integrity sha512-AAnLvQ8BBKEzFKenh+1sF9RaGNXLdxdNI9aCs6KpqOIQCZjWyRqXfFHO4SDY+iu/FSW5BzVlKWpe4irSk/wl3g== + dependencies: + "@backstage/backend-tasks" "^0.5.23" + "@backstage/cli-common" "^0.1.13" + "@backstage/config" "^1.2.0" + "@backstage/errors" "^1.2.4" + "@backstage/plugin-auth-node" "^0.4.13" + "@backstage/plugin-permission-common" "^0.7.13" + "@backstage/types" "^1.1.1" + "@types/express" "^4.17.6" + express "^4.17.1" + knex "^3.0.0" + "@backstage/backend-tasks@^0.5.22": version "0.5.22" resolved "https://registry.yarnpkg.com/@backstage/backend-tasks/-/backend-tasks-0.5.22.tgz#67c464f5fdccdcc161e609154c671596b642c868" @@ -2282,6 +2462,25 @@ uuid "^9.0.0" zod "^3.22.4" +"@backstage/backend-tasks@^0.5.23": + version "0.5.23" + resolved "https://registry.yarnpkg.com/@backstage/backend-tasks/-/backend-tasks-0.5.23.tgz#85c14fff99189d0540d6bd5be4cc81faf0617620" + integrity sha512-nLdRG6RkzbpiDH0BQDmz8ZFebP4FNffDfxT9VX50+UJC2Q+0qJirqpbZKcQmHIYT66u7NNeJtsOJBSn/S23P6A== + dependencies: + "@backstage/backend-common" "^0.22.0" + "@backstage/backend-plugin-api" "^0.6.18" + "@backstage/config" "^1.2.0" + "@backstage/errors" "^1.2.4" + "@backstage/types" "^1.1.1" + "@opentelemetry/api" "^1.3.0" + "@types/luxon" "^3.0.0" + cron "^3.0.0" + knex "^3.0.0" + lodash "^4.17.21" + luxon "^3.0.0" + uuid "^9.0.0" + zod "^3.22.4" + "@backstage/backend-test-utils@^0.3.6": version "0.3.7" resolved "https://registry.yarnpkg.com/@backstage/backend-test-utils/-/backend-test-utils-0.3.7.tgz#436eccbe53014f3c7becc92675e107ddba389398" @@ -2316,6 +2515,16 @@ cross-fetch "^4.0.0" uri-template "^2.0.0" +"@backstage/catalog-client@^1.6.5": + version "1.6.5" + resolved "https://registry.yarnpkg.com/@backstage/catalog-client/-/catalog-client-1.6.5.tgz#f27c933abf8c7bf8bcbd090b4b550a7eb1957686" + integrity sha512-powm86JuibW0GtxtVYwO/xj3SjwV8AWMbL/D9C3Yl3mZ+4sp8lwXTTlKR+IdNHnFlDfwHiNH7LKT4BMgtTZbtA== + dependencies: + "@backstage/catalog-model" "^1.5.0" + "@backstage/errors" "^1.2.4" + cross-fetch "^4.0.0" + uri-template "^2.0.0" + "@backstage/catalog-model@^1.0.0", "@backstage/catalog-model@^1.4.4", "@backstage/catalog-model@^1.4.5": version "1.4.5" resolved "https://registry.yarnpkg.com/@backstage/catalog-model/-/catalog-model-1.4.5.tgz#b8f6309ff12b72dffdfe852d615c553ae13452c0" @@ -2326,6 +2535,16 @@ ajv "^8.10.0" lodash "^4.17.21" +"@backstage/catalog-model@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@backstage/catalog-model/-/catalog-model-1.5.0.tgz#7f5c4a80a3341555db5209fbc6fc2d25f6500707" + integrity sha512-CfLO5/DMGahneuLU4KTQEs1tgNhBciUtyGUDZB4Ii9i1Uha1poWcqp4HKg61lj1hmXNDUHmlbFqY9W7kmzRC0A== + dependencies: + "@backstage/errors" "^1.2.4" + "@backstage/types" "^1.1.1" + ajv "^8.10.0" + lodash "^4.17.21" + "@backstage/cli-common@^0.1.13": version "0.1.13" resolved "https://registry.yarnpkg.com/@backstage/cli-common/-/cli-common-0.1.13.tgz#cbeda6a359ca4437fc782f0ac51bb957e8d49e73" @@ -2566,6 +2785,49 @@ zen-observable "^0.10.0" zod "^3.22.4" +"@backstage/core-components@^0.14.6": + version "0.14.7" + resolved "https://registry.yarnpkg.com/@backstage/core-components/-/core-components-0.14.7.tgz#3dd43b9fc21d0dd0ef7f7c39b54eb9e5819b9e08" + integrity sha512-VgGCbS/CRvrHbx+e5s3h+voFVBKO1EvpCfn7z0QcwptIpMNwlj/pT0Nwou/fLUoXTUjeS8Fa8LDc2OAiBJ96Sg== + dependencies: + "@backstage/config" "^1.2.0" + "@backstage/core-plugin-api" "^1.9.2" + "@backstage/errors" "^1.2.4" + "@backstage/theme" "^0.5.4" + "@backstage/version-bridge" "^1.0.8" + "@date-io/core" "^1.3.13" + "@material-table/core" "^3.1.0" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.61" + "@react-hookz/web" "^24.0.0" + "@types/react" "^16.13.1 || ^17.0.0 || ^18.0.0" + "@types/react-sparklines" "^1.7.0" + ansi-regex "^6.0.1" + classnames "^2.2.6" + d3-selection "^3.0.0" + d3-shape "^3.0.0" + d3-zoom "^3.0.0" + dagre "^0.8.5" + linkify-react "4.1.3" + linkifyjs "4.1.3" + lodash "^4.17.21" + pluralize "^8.0.0" + qs "^6.9.4" + rc-progress "3.5.1" + react-helmet "6.1.0" + react-hook-form "^7.12.2" + react-idle-timer "5.7.2" + react-markdown "^8.0.0" + react-sparklines "^1.7.0" + react-syntax-highlighter "^15.4.5" + react-use "^17.3.2" + react-virtualized-auto-sizer "^1.0.11" + react-window "^1.8.6" + remark-gfm "^3.0.1" + zen-observable "^0.10.0" + zod "^3.22.4" + "@backstage/core-components@^0.9.2": version "0.9.5" resolved "https://registry.yarnpkg.com/@backstage/core-components/-/core-components-0.9.5.tgz#5a0b34867aaee0549bfa67b39a69c09588fa3c7a" @@ -2702,6 +2964,21 @@ lodash "^4.17.21" luxon "^3.0.0" +"@backstage/integration@^1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@backstage/integration/-/integration-1.11.0.tgz#0a04b6d3e15569c1074b7f39a7a3a17eefd1b89b" + integrity sha512-RRci3a/uEmfYCCFxuw+8GgLPuWeCxt7iGOJYUZlyDEPfvUL+GSIdB2GQm4nzktRCUrNaJPd7QxaagmQgPCaIzg== + dependencies: + "@azure/identity" "^4.0.0" + "@backstage/config" "^1.2.0" + "@backstage/errors" "^1.2.4" + "@octokit/auth-app" "^4.0.0" + "@octokit/rest" "^19.0.3" + cross-fetch "^4.0.0" + git-url-parse "^14.0.0" + lodash "^4.17.21" + luxon "^3.0.0" + "@backstage/plugin-api-docs@^0.11.4": version "0.11.4" resolved "https://registry.yarnpkg.com/@backstage/plugin-api-docs/-/plugin-api-docs-0.11.4.tgz#0d4d47f8ed9d4550a1f2b00b2e6ad0c57da85500" @@ -2764,6 +3041,17 @@ express "^4.17.1" fs-extra "^11.2.0" +"@backstage/plugin-app-node@^0.1.18": + version "0.1.18" + resolved "https://registry.yarnpkg.com/@backstage/plugin-app-node/-/plugin-app-node-0.1.18.tgz#d3c79135432497acf434b0e6ed03dd504300f8de" + integrity sha512-v7Yk9/IykyVJChhio8wtGQaoEqOWaDX7sXBxkqP8+Z1Yy584TIaaJv4cofc1csJGZBzGWoZ//EVlWD7FfbwOog== + dependencies: + "@backstage/backend-plugin-api" "^0.6.18" + "@backstage/config-loader" "^1.8.0" + "@types/express" "^4.17.6" + express "^4.17.1" + fs-extra "^11.2.0" + "@backstage/plugin-auth-backend-module-atlassian-provider@^0.1.9": version "0.1.9" resolved "https://registry.yarnpkg.com/@backstage/plugin-auth-backend-module-atlassian-provider/-/plugin-auth-backend-module-atlassian-provider-0.1.9.tgz#d04e6a25cea5b9c7f1c62768c9c8a119d4e3fc49" @@ -3022,6 +3310,29 @@ zod "^3.22.4" zod-to-json-schema "^3.21.4" +"@backstage/plugin-auth-node@^0.4.13": + version "0.4.13" + resolved "https://registry.yarnpkg.com/@backstage/plugin-auth-node/-/plugin-auth-node-0.4.13.tgz#df54d69b0f6cbce91526937cfb21a7c732630787" + integrity sha512-i+41bNGQGY8JWFq/9GO08mylaAlSTn4vxiVpj3BYG1BZdtqpHT45MqpnVZ3s1i+/49gLoAo+PquLks9WNvmU0A== + dependencies: + "@backstage/backend-common" "^0.22.0" + "@backstage/backend-plugin-api" "^0.6.18" + "@backstage/catalog-client" "^1.6.5" + "@backstage/catalog-model" "^1.5.0" + "@backstage/config" "^1.2.0" + "@backstage/errors" "^1.2.4" + "@backstage/types" "^1.1.1" + "@types/express" "*" + "@types/passport" "^1.0.3" + express "^4.17.1" + jose "^5.0.0" + lodash "^4.17.21" + node-fetch "^2.6.7" + passport "^0.7.0" + winston "^3.2.1" + zod "^3.22.4" + zod-to-json-schema "^3.21.4" + "@backstage/plugin-auth-react@^0.1.0": version "0.1.1" resolved "https://registry.yarnpkg.com/@backstage/plugin-auth-react/-/plugin-auth-react-0.1.1.tgz#8307b83c6d1958c2a0c790bed5d9d9c3f6598670" @@ -3124,6 +3435,48 @@ yn "^4.0.0" zod "^3.22.4" +"@backstage/plugin-catalog-backend@^1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@backstage/plugin-catalog-backend/-/plugin-catalog-backend-1.22.0.tgz#7199e5b29abf121c7af0e917cb9b2c149482fec8" + integrity sha512-iuMGNNyhmYTbysH1La7tI8/mQWevFq2aHHVqD800QUCyxqYfXfESAGJRXlqUtmzxxetQLwq7CF/MgvTNZD5bCw== + dependencies: + "@backstage/backend-common" "^0.22.0" + "@backstage/backend-openapi-utils" "^0.1.11" + "@backstage/backend-plugin-api" "^0.6.18" + "@backstage/backend-tasks" "^0.5.23" + "@backstage/catalog-client" "^1.6.5" + "@backstage/catalog-model" "^1.5.0" + "@backstage/config" "^1.2.0" + "@backstage/errors" "^1.2.4" + "@backstage/integration" "^1.11.0" + "@backstage/plugin-catalog-common" "^1.0.23" + "@backstage/plugin-catalog-node" "^1.12.0" + "@backstage/plugin-events-node" "^0.3.4" + "@backstage/plugin-permission-common" "^0.7.13" + "@backstage/plugin-permission-node" "^0.7.29" + "@backstage/plugin-search-backend-module-catalog" "^0.1.24" + "@backstage/types" "^1.1.1" + "@opentelemetry/api" "^1.3.0" + "@types/express" "^4.17.6" + codeowners-utils "^1.0.2" + core-js "^3.6.5" + express "^4.17.1" + fast-json-stable-stringify "^2.1.0" + fs-extra "^11.2.0" + git-url-parse "^14.0.0" + glob "^7.1.6" + knex "^3.0.0" + lodash "^4.17.21" + luxon "^3.0.0" + minimatch "^9.0.0" + node-fetch "^2.6.7" + p-limit "^3.0.2" + prom-client "^15.0.0" + uuid "^9.0.0" + yaml "^2.0.0" + yn "^4.0.0" + zod "^3.22.4" + "@backstage/plugin-catalog-common@^1.0.22": version "1.0.22" resolved "https://registry.yarnpkg.com/@backstage/plugin-catalog-common/-/plugin-catalog-common-1.0.22.tgz#a5ceb222f89f31b0ade96a32ff875b63067755be" @@ -3133,6 +3486,15 @@ "@backstage/plugin-permission-common" "^0.7.13" "@backstage/plugin-search-common" "^1.2.11" +"@backstage/plugin-catalog-common@^1.0.23": + version "1.0.23" + resolved "https://registry.yarnpkg.com/@backstage/plugin-catalog-common/-/plugin-catalog-common-1.0.23.tgz#2ba1fe13450f6283e049acc83aa4fcebda6153e8" + integrity sha512-u04VUq/2wNjF9ikpGxdt1kXSQf5VlPDWTwzYyJYKD80qGa6l/klUXJ3IBs8P4XyQObkPNyS/Tho/H8XDFNeqEw== + dependencies: + "@backstage/catalog-model" "^1.5.0" + "@backstage/plugin-permission-common" "^0.7.13" + "@backstage/plugin-search-common" "^1.2.11" + "@backstage/plugin-catalog-graph@^0.4.4": version "0.4.4" resolved "https://registry.yarnpkg.com/@backstage/plugin-catalog-graph/-/plugin-catalog-graph-0.4.4.tgz#ff26dcec8ae437d07bbdc98093aa52503fe2a1b1" @@ -3199,6 +3561,20 @@ "@backstage/plugin-permission-node" "^0.7.28" "@backstage/types" "^1.1.1" +"@backstage/plugin-catalog-node@^1.12.0": + version "1.12.0" + resolved "https://registry.yarnpkg.com/@backstage/plugin-catalog-node/-/plugin-catalog-node-1.12.0.tgz#513bd374d48c605c664aa77c7350c8585eb9e56e" + integrity sha512-y+MsHc94Sepnqhg6pMTCMJBNEWhnCfoKhsl79/a+lsK3Hi+g6e+fNDfTJbg8shhMVnnvwwvfY/UWySZm1B02QQ== + dependencies: + "@backstage/backend-plugin-api" "^0.6.18" + "@backstage/catalog-client" "^1.6.5" + "@backstage/catalog-model" "^1.5.0" + "@backstage/errors" "^1.2.4" + "@backstage/plugin-catalog-common" "^1.0.23" + "@backstage/plugin-permission-common" "^0.7.13" + "@backstage/plugin-permission-node" "^0.7.29" + "@backstage/types" "^1.1.1" + "@backstage/plugin-catalog-react@^1.0.0", "@backstage/plugin-catalog-react@^1.10.0", "@backstage/plugin-catalog-react@^1.11.2", "@backstage/plugin-catalog-react@^1.11.3": version "1.11.3" resolved "https://registry.yarnpkg.com/@backstage/plugin-catalog-react/-/plugin-catalog-react-1.11.3.tgz#e83948f3c921791066499d30ef487a9f4ce5964b" @@ -3326,6 +3702,20 @@ "@backstage/plugin-events-node" "^0.3.3" "@octokit/webhooks-methods" "^3.0.0" +"@backstage/plugin-events-backend@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@backstage/plugin-events-backend/-/plugin-events-backend-0.3.5.tgz#beb43af13e4db963ec188183447c2d2f4604283e" + integrity sha512-6PoYpNr2HBQISB+O8Us7QCG+6QoHTRI6msIQt9pKz/V30JtlGtfkjPaId9/OotiPo2csgp1p83ILRyknfmknjQ== + dependencies: + "@backstage/backend-common" "^0.22.0" + "@backstage/backend-plugin-api" "^0.6.18" + "@backstage/config" "^1.2.0" + "@backstage/plugin-events-node" "^0.3.4" + "@types/express" "^4.17.6" + express "^4.17.1" + express-promise-router "^4.1.0" + winston "^3.2.1" + "@backstage/plugin-events-node@^0.3.3": version "0.3.3" resolved "https://registry.yarnpkg.com/@backstage/plugin-events-node/-/plugin-events-node-0.3.3.tgz#4881730ed0889439b6366b27defb3e6ea6ba8fcf" @@ -3333,6 +3723,13 @@ dependencies: "@backstage/backend-plugin-api" "^0.6.17" +"@backstage/plugin-events-node@^0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@backstage/plugin-events-node/-/plugin-events-node-0.3.4.tgz#9d56b47edf9fc0d71f94b46ff91333fb10aad0f4" + integrity sha512-vALPBLIqlqAxGohbHat/z4qtvmUcC7+AyWUy+mn84O9OFB+L/v53m79qPjAJhUB9rzPZu8ClsVCfmhm/84j52Q== + dependencies: + "@backstage/backend-plugin-api" "^0.6.18" + "@backstage/plugin-home-react@^0.1.11": version "0.1.12" resolved "https://registry.yarnpkg.com/@backstage/plugin-home-react/-/plugin-home-react-0.1.12.tgz#414997aa79e1c98e208233aab1e71eb5e8f81b55" @@ -3427,6 +3824,23 @@ zod "^3.22.4" zod-to-json-schema "^3.20.4" +"@backstage/plugin-permission-node@^0.7.29": + version "0.7.29" + resolved "https://registry.yarnpkg.com/@backstage/plugin-permission-node/-/plugin-permission-node-0.7.29.tgz#9545fe0fce26ca191beff5e458b920e4445a0a03" + integrity sha512-Bjvuk9m3a2qCqoQKIuTA2Lm1zQwf+zVRJWVDIGtK+gJl1xR/gEdyEDDzIa9jX6YjfXRZ3RVsuQVA7jUg8DMw+Q== + dependencies: + "@backstage/backend-common" "^0.22.0" + "@backstage/backend-plugin-api" "^0.6.18" + "@backstage/config" "^1.2.0" + "@backstage/errors" "^1.2.4" + "@backstage/plugin-auth-node" "^0.4.13" + "@backstage/plugin-permission-common" "^0.7.13" + "@types/express" "^4.17.6" + express "^4.17.1" + express-promise-router "^4.1.0" + zod "^3.22.4" + zod-to-json-schema "^3.20.4" + "@backstage/plugin-permission-react@^0.4.22": version "0.4.22" resolved "https://registry.yarnpkg.com/@backstage/plugin-permission-react/-/plugin-permission-react-0.4.22.tgz#7a6d60a7ada0748ca7c23ccba64b1afc7b33045c" @@ -3575,10 +3989,10 @@ yaml "^2.0.0" zod "^3.22.4" -"@backstage/plugin-scaffolder-backend@^1.22.3", "@backstage/plugin-scaffolder-backend@^1.22.4": - version "1.22.4" - resolved "https://registry.yarnpkg.com/@backstage/plugin-scaffolder-backend/-/plugin-scaffolder-backend-1.22.4.tgz#8bb4b188441f0b72735687d1267af46c0c0819f6" - integrity sha512-g8f7hdx3/2x9cEFOKssuomBipphK2OUIL4X6gUJOsrZ7+J/Q/1daFy9RuLzVJPA0aDeirSjgE27n5wl4Mt8YJQ== +"@backstage/plugin-scaffolder-backend@^1.22.3", "@backstage/plugin-scaffolder-backend@^1.22.4", "@backstage/plugin-scaffolder-backend@^1.7.0": + version "1.22.5" + resolved "https://registry.yarnpkg.com/@backstage/plugin-scaffolder-backend/-/plugin-scaffolder-backend-1.22.5.tgz#db81592e28ff1399742fc15f50187fab8729d97c" + integrity sha512-HJ9FxafG4di0tq9MZsnNoh4aY5pzLUfsE8JJiQvzEEO2geOozhs3BFEHfQ/x6wCJuleUq9FPLX4+ymmLgTIgQw== dependencies: "@backstage/backend-common" "^0.21.7" "@backstage/backend-plugin-api" "^0.6.17" @@ -3623,6 +4037,7 @@ prom-client "^15.0.0" uuid "^9.0.0" winston "^3.2.1" + winston-transport "^4.7.0" yaml "^2.0.0" zen-observable "^0.10.0" zod "^3.22.4" @@ -3636,6 +4051,15 @@ "@backstage/plugin-permission-common" "^0.7.13" "@backstage/types" "^1.1.1" +"@backstage/plugin-scaffolder-common@^1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@backstage/plugin-scaffolder-common/-/plugin-scaffolder-common-1.5.2.tgz#f16d88a3594e02961bd2facd13bf7fc013cab3a2" + integrity sha512-lBet98Oxx+sLsKv84Ke8yF+47svpfzOmGdK8H0YBg+/BQ5M8SrfE05VNXF6VQw5NLsRundgcPMSIrpwKNGJxmQ== + dependencies: + "@backstage/catalog-model" "^1.5.0" + "@backstage/plugin-permission-common" "^0.7.13" + "@backstage/types" "^1.1.1" + "@backstage/plugin-scaffolder-node@^0.4.3": version "0.4.3" resolved "https://registry.yarnpkg.com/@backstage/plugin-scaffolder-node/-/plugin-scaffolder-node-0.4.3.tgz#edeeef01fb7adf445ce67611b8a7f76a59c7b038" @@ -3656,6 +4080,27 @@ zod "^3.22.4" zod-to-json-schema "^3.20.4" +"@backstage/plugin-scaffolder-node@^0.4.4": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@backstage/plugin-scaffolder-node/-/plugin-scaffolder-node-0.4.4.tgz#4d90476b5c69341eba21c9fb164edb0ad3f2894e" + integrity sha512-8IEAntAutYZvyETC750yIly13d2WMaCXwIXxMOA3M0bGPfqnYj9rca4rJFBBS1sSlvYmWu+U4I16+5FO13xXKA== + dependencies: + "@backstage/backend-common" "^0.22.0" + "@backstage/backend-plugin-api" "^0.6.18" + "@backstage/catalog-model" "^1.5.0" + "@backstage/errors" "^1.2.4" + "@backstage/integration" "^1.11.0" + "@backstage/plugin-scaffolder-common" "^1.5.2" + "@backstage/types" "^1.1.1" + fs-extra "^11.2.0" + globby "^11.0.0" + isomorphic-git "^1.23.0" + jsonschema "^1.2.6" + p-limit "^3.1.0" + winston "^3.2.1" + zod "^3.22.4" + zod-to-json-schema "^3.20.4" + "@backstage/plugin-scaffolder-react@^1.8.4": version "1.8.4" resolved "https://registry.yarnpkg.com/@backstage/plugin-scaffolder-react/-/plugin-scaffolder-react-1.8.4.tgz#cb2797bd94b60d4e0c65e9c25792bf161f5f611a" @@ -3761,6 +4206,24 @@ "@backstage/plugin-search-backend-node" "^1.2.21" "@backstage/plugin-search-common" "^1.2.11" +"@backstage/plugin-search-backend-module-catalog@^0.1.24": + version "0.1.24" + resolved "https://registry.yarnpkg.com/@backstage/plugin-search-backend-module-catalog/-/plugin-search-backend-module-catalog-0.1.24.tgz#450db10a30f56f729322b72aa8385db2ca78b071" + integrity sha512-05lHb677OfCN26RwxspNYC8C5xJHfC+tyH7C7iEfJWtKNT2gknYBjpscHTSDwHrw7SzXjPP2hpfYGXhyD/0kyQ== + dependencies: + "@backstage/backend-common" "^0.22.0" + "@backstage/backend-plugin-api" "^0.6.18" + "@backstage/backend-tasks" "^0.5.23" + "@backstage/catalog-client" "^1.6.5" + "@backstage/catalog-model" "^1.5.0" + "@backstage/config" "^1.2.0" + "@backstage/errors" "^1.2.4" + "@backstage/plugin-catalog-common" "^1.0.23" + "@backstage/plugin-catalog-node" "^1.12.0" + "@backstage/plugin-permission-common" "^0.7.13" + "@backstage/plugin-search-backend-node" "^1.2.22" + "@backstage/plugin-search-common" "^1.2.11" + "@backstage/plugin-search-backend-module-techdocs@^0.1.22": version "0.1.22" resolved "https://registry.yarnpkg.com/@backstage/plugin-search-backend-module-techdocs/-/plugin-search-backend-module-techdocs-0.1.22.tgz#aaeafd653603b54f6c618adc765572612c6af451" @@ -3800,6 +4263,24 @@ ndjson "^2.0.0" uuid "^9.0.0" +"@backstage/plugin-search-backend-node@^1.2.22": + version "1.2.22" + resolved "https://registry.yarnpkg.com/@backstage/plugin-search-backend-node/-/plugin-search-backend-node-1.2.22.tgz#26e7dfdbd7a3bb3051c1d6ddbb0fd30c0cce5c2a" + integrity sha512-QetkAHUZB87i2OBYXJE4/LbBmfE+eg3PxvERc82PJSqPTk3RVAfyJe+TAODyPf7zPDXjwke4hys6pGzeTZDjUA== + dependencies: + "@backstage/backend-common" "^0.22.0" + "@backstage/backend-plugin-api" "^0.6.18" + "@backstage/backend-tasks" "^0.5.23" + "@backstage/config" "^1.2.0" + "@backstage/errors" "^1.2.4" + "@backstage/plugin-permission-common" "^0.7.13" + "@backstage/plugin-search-common" "^1.2.11" + "@types/lunr" "^2.3.3" + lodash "^4.17.21" + lunr "^2.3.9" + ndjson "^2.0.0" + uuid "^9.0.0" + "@backstage/plugin-search-backend@^1.5.7": version "1.5.7" resolved "https://registry.yarnpkg.com/@backstage/plugin-search-backend/-/plugin-search-backend-1.5.7.tgz#88f6fc3c49219cdd9b541c107a4e6a8ec87e598b" @@ -4119,7 +4600,16 @@ "@emotion/styled" "^11.10.5" "@mui/material" "^5.12.2" -"@backstage/types@^1.1.1": +"@backstage/theme@^0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@backstage/theme/-/theme-0.5.4.tgz#6509672e47f07edd64d5cdf9e8ac4c5d9c0bc3c3" + integrity sha512-uUswMJvEYiRiJWShcxrxWZui2KFLGXeBrxbmoCxpIKF+WmN1B7u8Q9uraCDprXHvEyYo87DDE21AaE255ldsUA== + dependencies: + "@emotion/react" "^11.10.5" + "@emotion/styled" "^11.10.5" + "@mui/material" "^5.12.2" + +"@backstage/types@^1.0.0", "@backstage/types@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@backstage/types/-/types-1.1.1.tgz#c9ccb30357005e7fb5fa2ac140198059976eb076" integrity sha512-1cUGu+FwiJZCBOuecd0BOhIRkQYllb+7no9hHhxpAsx/DvsPGMVQMGOMvtdTycdT9SQ5MuSyFwI9wpXp2DwVvQ== @@ -4984,6 +5474,49 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== +"@janus-idp/plugin-notifications-backend@^1.4.12": + version "1.4.12" + resolved "https://registry.yarnpkg.com/@janus-idp/plugin-notifications-backend/-/plugin-notifications-backend-1.4.12.tgz#9a93933a4170fc3380f484b330ae31cd72908a56" + integrity sha512-BFk1yBC/DwCPNRgQBP5ToStNQxgQMSdXntaoMqG7q0LUNrYHmcitZefL8j62cdZTJe3/N02mfbA1vPSWsOPBKw== + dependencies: + "@backstage/backend-common" "^0.21.7" + "@backstage/backend-dynamic-feature-service" "^0.2.9" + "@backstage/backend-openapi-utils" "^0.1.10" + "@backstage/backend-plugin-api" "^0.6.17" + "@backstage/catalog-client" "^1.6.4" + "@backstage/config" "^1.2.0" + "@backstage/errors" "^1.2.4" + "@backstage/plugin-auth-node" "^0.4.12" + "@backstage/plugin-permission-common" "^0.7.13" + "@backstage/plugin-permission-node" "^0.7.28" + "@backstage/plugin-scaffolder-node" "^0.4.3" + ajv-formats "^2.1.1" + express "^4.18.2" + express-promise-router "^4.1.1" + knex "^3.0.0" + lodash "^4.17.21" + node-fetch "^3.3.2" + openapi "^1.0.1" + openapi-backend "^5.10.5" + yn "^4.0.0" + +"@janus-idp/plugin-notifications@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@janus-idp/plugin-notifications/-/plugin-notifications-1.3.0.tgz#d5827c2bb3496120584fe920369b6b55e9e21782" + integrity sha512-IVBYy0YngPzmAP98Q1/aRc+vvJbIivbBKAksu0P8uue/H2Xlq5//H5J7WCIQ3g0lCvLQsQf2CCSm668Vvc6YhQ== + dependencies: + "@backstage/core-components" "^0.14.6" + "@backstage/core-plugin-api" "^1.9.2" + "@backstage/theme" "^0.5.3" + "@material-table/core" "^3.1.0" + "@material-ui/core" "^4.9.13" + "@material-ui/icons" "^4.11.3" + "@material-ui/lab" "^4.0.0-alpha.45" + "@mui/material" "^5.12.2" + lodash "^4.17.21" + react-relative-time "^0.0.9" + react-use "^17.4.0" + "@jest/console@^29.7.0": version "29.7.0" resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" @@ -5171,6 +5704,17 @@ slash "^3.0.0" write-file-atomic "^4.0.2" +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + "@jest/types@^29.6.3": version "29.6.3" resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" @@ -5320,6 +5864,28 @@ optionalDependencies: openid-client "^5.3.0" +"@kubernetes/client-node@^0.17.1": + version "0.17.1" + resolved "https://registry.yarnpkg.com/@kubernetes/client-node/-/client-node-0.17.1.tgz#a5740712848d77823e7d0eee70229936398b4142" + integrity sha512-qXANjukuTq/drb1hq1NCYZafpdRTvbyTzbliWO6RwW7eEb2b9qwINbw0DiVHpBQg3e9DeQd8+brI1sR1Fck5kQ== + dependencies: + byline "^5.0.0" + execa "5.0.0" + isomorphic-ws "^4.0.1" + js-yaml "^4.1.0" + jsonpath-plus "^0.19.0" + request "^2.88.0" + rfc4648 "^1.3.0" + shelljs "^0.8.5" + stream-buffers "^3.0.2" + tar "^6.1.11" + tmp-promise "^3.0.2" + tslib "^1.9.3" + underscore "^1.9.1" + ws "^7.3.1" + optionalDependencies: + openid-client "^5.1.6" + "@leichtgewicht/ip-codec@^2.0.1": version "2.0.5" resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" @@ -5487,7 +6053,7 @@ react-is "^16.8.0 || ^17.0.0" react-transition-group "^4.4.0" -"@material-ui/icons@^4.9.1": +"@material-ui/icons@^4.11.3", "@material-ui/icons@^4.9.1": version "4.11.3" resolved "https://registry.yarnpkg.com/@material-ui/icons/-/icons-4.11.3.tgz#b0693709f9b161ce9ccde276a770d968484ecff1" integrity sha512-IKHlyx6LDh8n19vzwH5RtHIOHl9Tu90aAAxcbWME6kp4dmvODM3UvOHJeMIDzUbd4muuJKHmlNoBN+mDY4XkBA== @@ -5516,7 +6082,7 @@ prop-types "^15.7.2" react-is "^16.8.0 || ^17.0.0" -"@material-ui/lab@4.0.0-alpha.61", "@material-ui/lab@^4.0.0-alpha.57", "@material-ui/lab@^4.0.0-alpha.60": +"@material-ui/lab@4.0.0-alpha.61", "@material-ui/lab@^4.0.0-alpha.45", "@material-ui/lab@^4.0.0-alpha.57", "@material-ui/lab@^4.0.0-alpha.60": version "4.0.0-alpha.61" resolved "https://registry.yarnpkg.com/@material-ui/lab/-/lab-4.0.0-alpha.61.tgz#9bf8eb389c0c26c15e40933cc114d4ad85e3d978" integrity sha512-rSzm+XKiNUjKegj8bzt5+pygZeckNLOr+IjykH8sYdVk7dE9y2ZuUSofiMV2bJk3qU+JHwexmw+q0RyNZB9ugg== @@ -5805,6 +6371,28 @@ prop-types "^15.8.1" react-is "^18.2.0" +"@muvaf/create-argocd-application@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@muvaf/create-argocd-application/-/create-argocd-application-0.4.1.tgz#85ab1b9a6c40ba966ab678aec40e365f79ba34fc" + integrity sha512-AO2azS4bnADgXNB6nPjiuh4qcdzZ9i8JBow0M1iK4EgHkmdQg+2QzGHlr4ztvv7pQURRAHD+K2vpF1ioiYam8g== + dependencies: + "@backstage/plugin-scaffolder-backend" "^1.7.0" + "@backstage/types" "^1.0.0" + "@kubernetes/client-node" "^0.17.1" + "@octokit/rest" "^19.0.5" + yaml "^2.1.3" + +"@muvaf/kubernetes-apply@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@muvaf/kubernetes-apply/-/kubernetes-apply-0.1.0.tgz#d56ca28ec2fd80fc4eb63c67a135501c91d5b718" + integrity sha512-NOk7/dAMrHSrvZEiE5DsitY6JPdcM38ByH0KZ2sSU654htXsJ4Q85hroKhv3H9DTmAidl489smVNR2nHO/O0JA== + dependencies: + "@backstage/plugin-scaffolder-backend" "^1.7.0" + "@backstage/types" "^1.0.0" + "@kubernetes/client-node" "^0.17.1" + "@octokit/rest" "^19.0.5" + yaml "^2.1.3" + "@n1ru4l/push-pull-async-iterable-iterator@^3.1.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@n1ru4l/push-pull-async-iterable-iterator/-/push-pull-async-iterable-iterator-3.2.0.tgz#c15791112db68dd9315d329d652b7e797f737655" @@ -6441,7 +7029,7 @@ "@octokit/plugin-request-log" "^1.0.4" "@octokit/plugin-rest-endpoint-methods" "^7.1.2" -"@octokit/rest@^19.0.3": +"@octokit/rest@^19.0.3", "@octokit/rest@^19.0.5": version "19.0.13" resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.13.tgz#e799393264edc6d3c67eeda9e5bd7832dcf974e4" integrity sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA== @@ -9067,6 +9655,14 @@ dependencies: "@types/istanbul-lib-report" "*" +"@types/jest@^26.0.14": + version "26.0.24" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.24.tgz#943d11976b16739185913a1936e0de0c4a7d595a" + integrity sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w== + dependencies: + jest-diff "^26.0.0" + pretty-format "^26.0.0" + "@types/jest@^29.5.11": version "29.5.12" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544" @@ -9099,7 +9695,7 @@ "@types/tough-cookie" "*" parse5 "^7.0.0" -"@types/json-schema@*", "@types/json-schema@^7.0.11", "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@*", "@types/json-schema@^7.0.11", "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -9287,9 +9883,9 @@ integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== "@types/react-dom@*", "@types/react-dom@^18", "@types/react-dom@^18.0.0": - version "18.2.25" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.25.tgz#2946a30081f53e7c8d585eb138277245caedc521" - integrity sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA== + version "18.3.0" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0" + integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg== dependencies: "@types/react" "*" @@ -9325,9 +9921,9 @@ "@types/react" "*" "@types/react@*", "@types/react@^16.13.1 || ^17.0.0", "@types/react@^16.13.1 || ^17.0.0 || ^18.0.0", "@types/react@^18": - version "18.2.79" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.79.tgz#c40efb4f255711f554d47b449f796d1c7756d865" - integrity sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w== + version "18.3.2" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.2.tgz#462ae4904973bc212fa910424d901e3d137dbfcd" + integrity sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w== dependencies: "@types/prop-types" "*" csstype "^3.0.2" @@ -9524,6 +10120,13 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== +"@types/yargs@^15.0.0": + version "15.0.19" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.19.tgz#328fb89e46109ecbdb70c295d96ff2f46dfd01b9" + integrity sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA== + dependencies: + "@types/yargs-parser" "*" + "@types/yargs@^17.0.8": version "17.0.32" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" @@ -9999,6 +10602,11 @@ add-stream@^1.0.0: resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== +add@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/add/-/add-2.0.6.tgz#248f0a9f6e5a528ef2295dbeec30532130ae2235" + integrity sha512-j5QzrmsokwWWp6kUcJQySpbG+xfOBqqKnup3OIk1pz+kB/80SLorZ9V8zHFLO92Lcd+hbvq8bT+zOGoPkmBV0Q== + address@^1.0.1, address@^1.1.2: version "1.2.2" resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" @@ -10043,7 +10651,7 @@ ajv-errors@^3.0.0, ajv-errors@~3.0.0: resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-3.0.0.tgz#e54f299f3a3d30fe144161e5f0d8d51196c527bc" integrity sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ== -ajv-formats@^2.1.1, ajv-formats@~2.1.0: +ajv-formats@^2.0.2, ajv-formats@^2.1.1, ajv-formats@~2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== @@ -10072,7 +10680,7 @@ ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@~6.12.6: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.10.0, ajv@^8.11.0, ajv@^8.11.2, ajv@^8.12.0, ajv@^8.6.0, ajv@^8.6.3, ajv@^8.8.2, ajv@^8.9.0: +ajv@^8.0.0, ajv@^8.1.0, ajv@^8.10.0, ajv@^8.11.0, ajv@^8.11.2, ajv@^8.12.0, ajv@^8.6.0, ajv@^8.6.2, ajv@^8.6.3, ajv@^8.8.2, ajv@^8.9.0: version "8.13.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.13.0.tgz#a3939eaec9fb80d217ddf0c3376948c023f28c91" integrity sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA== @@ -10104,7 +10712,7 @@ ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== -ansi-regex@^5.0.1: +ansi-regex@^5.0.0, ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== @@ -10181,17 +10789,20 @@ anymatch@^3.0.3, anymatch@~3.1.2: "@backstage/plugin-user-settings" "^0.8.5" "@backstage/theme" "^0.5.3" "@bestsellerit/backstage-plugin-harbor" "^0.3.1" + "@janus-idp/plugin-notifications" "^1.3.0" "@material-ui/core" "^4.12.2" "@material-ui/icons" "^4.9.1" "@roadiehq/backstage-plugin-argo-cd" "^2.6.4" "@roadiehq/backstage-plugin-github-pull-requests" "^2.5.25" "@veecode-platform/backstage-plugin-github-workflows" "^0.2.70" + add "^2.0.6" history "^5.0.0" react "^18.0.2" react-dom "^18.0.2" react-router "^6.3.0" react-router-dom "^6.3.0" react-use "^17.2.4" + yarn "^1.22.22" append-field@^1.0.0: version "1.0.0" @@ -10809,6 +11420,11 @@ batch@0.6.1: resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== +bath-es5@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/bath-es5/-/bath-es5-3.0.3.tgz#4e2808e8b33b4a5e3328ec1e9032f370f042193d" + integrity sha512-PdCioDToH3t84lP40kUFCKWCOCH389Dl1kbC8FGoqOwamxsmqxxnJSXdkTOsPoNHXjem4+sJ+bbNoQm5zeCqxg== + bcrypt-pbkdf@^1.0.0, bcrypt-pbkdf@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -11295,6 +11911,15 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001587: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001614.tgz#f894b4209376a0bf923d67d9c361d96b1dfebe39" integrity sha512-jmZQ1VpmlRwHgdP1/uiKzgiAuGOfLEJsYFP4+GBou/QQ4U6IOJCB4NP1c+1p9RGLpwObcT94jA5/uO+F1vBbog== +capital-case@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" + integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -11338,6 +11963,24 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +change-case@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" + integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== + dependencies: + camel-case "^4.1.2" + capital-case "^1.0.4" + constant-case "^3.0.4" + dot-case "^3.0.4" + header-case "^2.0.4" + no-case "^3.0.4" + param-case "^3.0.4" + pascal-case "^3.1.2" + path-case "^3.0.4" + sentence-case "^3.0.4" + snake-case "^3.0.4" + tslib "^2.0.3" + char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" @@ -11716,6 +12359,11 @@ commander@^5.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== +commander@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + commander@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" @@ -11894,6 +12542,15 @@ console.table@0.10.0: dependencies: easy-table "1.1.0" +constant-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" + integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case "^2.0.2" + constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" @@ -12027,6 +12684,11 @@ cookie@^0.4.2: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== +cookie@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + copy-to-clipboard@^3.2.0, copy-to-clipboard@^3.3.1: version "3.3.3" resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" @@ -12776,6 +13438,11 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + data-urls@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" @@ -13072,6 +13739,11 @@ dequal@^2.0.0, dequal@^2.0.3: resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== +dereference-json-schema@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/dereference-json-schema/-/dereference-json-schema-0.2.1.tgz#fcad3c98e0116f7124b0989d39d947fa318cae09" + integrity sha512-uzJsrg225owJyRQ8FNTPHIuBOdSzIZlHhss9u6W8mp7jJldHqGuLv9cULagP/E26QVJDnjtG8U7Dw139mM1ydA== + des.js@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da" @@ -13118,6 +13790,11 @@ detect-port-alt@^1.1.6: address "^1.0.1" debug "^2.6.0" +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + diff-sequences@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" @@ -14174,7 +14851,7 @@ express-openapi-validator@^5.0.4: ono "^7.1.3" path-to-regexp "^6.2.0" -express-promise-router@^4.1.0: +express-promise-router@^4.1.0, express-promise-router@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/express-promise-router/-/express-promise-router-4.1.1.tgz#8fac102060b9bcc868f84d34fbb12fd8fa494291" integrity sha512-Lkvcy/ZGrBhzkl3y7uYBHLMtLI4D6XQ2kiFg9dq7fbktBch5gjqJ0+KovX0cvCAvTJw92raWunRLM/OM+5l4fA== @@ -14423,6 +15100,14 @@ fecha@^4.2.0: resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + figures@3.2.0, figures@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -14675,6 +15360,13 @@ format@^0.2.0: resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -15054,7 +15746,7 @@ glob@7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@7.2.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@^7.2.3: +glob@7.2.3, glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@^7.2.3: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -15438,6 +16130,14 @@ he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +header-case@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" + integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== + dependencies: + capital-case "^1.0.4" + tslib "^2.0.3" + headers-polyfill@3.2.5: version "3.2.5" resolved "https://registry.yarnpkg.com/headers-polyfill/-/headers-polyfill-3.2.5.tgz#6e67d392c9d113d37448fe45014e0afdd168faed" @@ -15943,6 +16643,11 @@ internmap@^1.0.0: resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + interpret@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" @@ -16377,6 +17082,11 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-url@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + is-weakmap@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" @@ -16476,6 +17186,11 @@ isomorphic-git@^1.23.0: sha.js "^2.4.9" simple-get "^4.0.1" +isomorphic-ws@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" + integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== + isomorphic-ws@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" @@ -16671,6 +17386,16 @@ jest-css-modules@^2.1.0: jest-get-type "^29.6.3" pretty-format "^29.7.0" +jest-diff@^26.0.0: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + jest-docblock@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" @@ -16715,6 +17440,11 @@ jest-environment-node@^29.7.0: jest-mock "^29.7.0" jest-util "^29.7.0" +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + jest-get-type@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" @@ -17289,6 +18019,11 @@ jsonpath-plus@7.1.0: resolved "https://registry.yarnpkg.com/jsonpath-plus/-/jsonpath-plus-7.1.0.tgz#9ac63c3d32a4d91ada68d57e056cb7983e73290a" integrity sha512-gTaNRsPWO/K2KY6MrqaUFClF9kmuM6MFH5Dhg1VYDODgFbByw1yb7xu3hrViE/sz+dGOeMWgCzwUwQtAnCTE9g== +jsonpath-plus@^0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/jsonpath-plus/-/jsonpath-plus-0.19.0.tgz#b901e57607055933dc9a8bef0cc25160ee9dd64c" + integrity sha512-GSVwsrzW9LsA5lzsqe4CkuZ9wp+kxBb2GwNniaWzI2YFn5Ig42rSW8ZxVpWXaAfakXNrx5pgY5AbQq7kzX29kg== + jsonpath-plus@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/jsonpath-plus/-/jsonpath-plus-6.0.1.tgz#9a3e16cedadfab07a3d8dc4e8cd5df4ed8f49c4d" @@ -17917,7 +18652,7 @@ lodash.memoize@^4.1.2: resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== -lodash.merge@^4.6.2: +lodash.merge@^4.6.1, lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== @@ -18971,6 +19706,13 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mock-json-schema@^1.0.7: + version "1.1.1" + resolved "https://registry.yarnpkg.com/mock-json-schema/-/mock-json-schema-1.1.1.tgz#35cf35ae16e519986ff83c22b4a886a8fe5b9ba5" + integrity sha512-YV23vlsLP1EEOy0EviUvZTluXjLR+rhMzeayP2rcDiezj3RW01MhOSQkbQskdtg0K2fnGas5LKbSXgNjAOSX4A== + dependencies: + lodash "^4.17.21" + modify-values@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" @@ -19256,6 +19998,15 @@ node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7, nod dependencies: whatwg-url "^5.0.0" +node-fetch@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" + integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + node-forge@^1, node-forge@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" @@ -19617,7 +20368,7 @@ object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1 resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-hash@^2.2.0: +object-hash@^2.0.3, object-hash@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== @@ -19808,6 +20559,22 @@ open@^8.0.0, open@^8.4.0: is-docker "^2.1.1" is-wsl "^2.2.0" +openapi-backend@^5.10.5: + version "5.10.6" + resolved "https://registry.yarnpkg.com/openapi-backend/-/openapi-backend-5.10.6.tgz#e719be85d006a1379900d0ff5c8f60baecb5de21" + integrity sha512-vTjBRys/O4JIHdlRHUKZ7pxS+gwIJreAAU9dvYRFrImtPzQ5qxm5a6B8BTVT9m6I8RGGsShJv35MAc3Tu2/y/A== + dependencies: + "@apidevtools/json-schema-ref-parser" "^11.1.0" + ajv "^8.6.2" + bath-es5 "^3.0.3" + cookie "^0.5.0" + dereference-json-schema "^0.2.1" + lodash "^4.17.15" + mock-json-schema "^1.0.7" + openapi-schema-validator "^12.0.0" + openapi-types "^12.0.2" + qs "^6.9.3" + openapi-merge@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/openapi-merge/-/openapi-merge-1.3.2.tgz#dc77a8e85ac63a5d7373eb63f05ab8b93ff78380" @@ -19825,6 +20592,21 @@ openapi-sampler@^1.2.1: "@types/json-schema" "^7.0.7" json-pointer "0.6.2" +openapi-schema-validator@^12.0.0: + version "12.1.3" + resolved "https://registry.yarnpkg.com/openapi-schema-validator/-/openapi-schema-validator-12.1.3.tgz#c9234af67b00cdbbecfdd4eb546d7006bacfe518" + integrity sha512-xTHOmxU/VQGUgo7Cm0jhwbklOKobXby+/237EG967+3TQEYJztMgX9Q5UE2taZKwyKPUq0j11dngpGjUuxz1hQ== + dependencies: + ajv "^8.1.0" + ajv-formats "^2.0.2" + lodash.merge "^4.6.1" + openapi-types "^12.1.3" + +openapi-types@^12.0.2, openapi-types@^12.1.3: + version "12.1.3" + resolved "https://registry.yarnpkg.com/openapi-types/-/openapi-types-12.1.3.tgz#471995eb26c4b97b7bd356aacf7b91b73e777dd3" + integrity sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw== + openapi3-ts@^3.1.2: version "3.2.0" resolved "https://registry.yarnpkg.com/openapi3-ts/-/openapi3-ts-3.2.0.tgz#7e30d33c480e938e67e809ab16f419bc9beae3f8" @@ -19832,7 +20614,22 @@ openapi3-ts@^3.1.2: dependencies: yaml "^2.2.1" -openid-client@^5.2.1, openid-client@^5.3.0, openid-client@^5.5.0: +openapi@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/openapi/-/openapi-1.0.1.tgz#f70ba667cf55b1684a7bfe1e6bcea7134bc9bb72" + integrity sha512-hiQ6/K2Q2eFqlOoPQb8V2hzsVsbv31ipMCKfuwZQmqf+MnLzVUcYMBy0h/Y+Sv/HeDCTN4mf0GoOmET4EoJS8A== + dependencies: + "@types/jest" "^26.0.14" + change-case "^4.1.1" + commander "^6.1.0" + cosmiconfig "^6.0.0" + is-url "^1.2.4" + js-yaml "^3.13.1" + node-fetch "^2.6.0" + object-hash "^2.0.3" + url-parse "^1.4.7" + +openid-client@^5.1.6, openid-client@^5.2.1, openid-client@^5.3.0, openid-client@^5.5.0: version "5.6.5" resolved "https://registry.yarnpkg.com/openid-client/-/openid-client-5.6.5.tgz#c149ad07b9c399476dc347097e297bbe288b8b00" integrity sha512-5P4qO9nGJzB5PI0LFlhj4Dzg3m4odt0qsJTfyEtZyOlkgpILwEioOhVVJOrS1iVH494S4Ee5OCjjg6Bf5WOj3w== @@ -20293,6 +21090,14 @@ path-browserify@0.0.1: resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== +path-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" + integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + path-equal@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/path-equal/-/path-equal-1.2.5.tgz#9fcbdd5e5daee448e96f43f3bac06c666b5e982a" @@ -20946,6 +21751,16 @@ pretty-error@^4.0.0: lodash "^4.17.20" renderkid "^3.0.0" +pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + pretty-format@^27.0.2: version "27.5.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" @@ -21174,7 +21989,7 @@ qs@6.11.0: dependencies: side-channel "^1.0.4" -qs@^6.10.1, qs@^6.10.2, qs@^6.11.2, qs@^6.9.1, qs@^6.9.4: +qs@^6.10.1, qs@^6.10.2, qs@^6.11.2, qs@^6.9.1, qs@^6.9.3, qs@^6.9.4: version "6.12.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== @@ -21559,6 +22374,11 @@ react-refresh@^0.14.0: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9" integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== +react-relative-time@^0.0.9: + version "0.0.9" + resolved "https://registry.yarnpkg.com/react-relative-time/-/react-relative-time-0.0.9.tgz#2fcbd7e9a74ee82ff0eac24bfbd26a7dc2998ccc" + integrity sha512-Vf59erCwSaJaYp/IhoEtq7dtt1y4YNDqNegmOY8sK2P6oHHe3sLOXjz9VTCr0yvL2Y7W6uwufrxU4jOX8fS/dA== + react-remove-scroll-bar@^2.3.3: version "2.3.6" resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz#3e585e9d163be84a010180b18721e851ac81a29c" @@ -21671,7 +22491,7 @@ react-universal-interface@^0.6.2: resolved "https://registry.yarnpkg.com/react-universal-interface/-/react-universal-interface-0.6.2.tgz#5e8d438a01729a4dbbcbeeceb0b86be146fe2b3b" integrity sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw== -react-use@^17.2.4, react-use@^17.3.2: +react-use@^17.2.4, react-use@^17.3.2, react-use@^17.4.0: version "17.5.0" resolved "https://registry.yarnpkg.com/react-use/-/react-use-17.5.0.tgz#1fae45638828a338291efa0f0c61862db7ee6442" integrity sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg== @@ -21837,6 +22657,13 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== + dependencies: + resolve "^1.1.6" + rechoir@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" @@ -22133,7 +22960,7 @@ resolve.exports@^2.0.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== -resolve@^1.10.0, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.4, resolve@~1.22.1: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.4, resolve@~1.22.1: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -22569,6 +23396,15 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" +sentence-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" + integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + seq-queue@^0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/seq-queue/-/seq-queue-0.0.5.tgz#d56812e1c017a6e4e7c3e3a37a1da6d78dd3c93e" @@ -22710,6 +23546,15 @@ shell-quote@^1.7.3, shell-quote@^1.8.1: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== +shelljs@^0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + short-unique-id@^5.0.2: version "5.1.1" resolved "https://registry.yarnpkg.com/short-unique-id/-/short-unique-id-5.1.1.tgz#aefeedea3da44a2b77acf0abf07c836f31ec1802" @@ -22801,6 +23646,14 @@ smtp-address-parser@1.0.10: dependencies: nearley "^2.20.1" +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + sockjs@^0.3.24: version "0.3.24" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" @@ -23238,16 +24091,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -23325,7 +24169,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@6.0, strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -23339,13 +24183,6 @@ strip-ansi@5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@6.0, strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi@^7.0.1: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -23858,6 +24695,13 @@ tiny-warning@^1.0.2: resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== +tmp-promise@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" + integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== + dependencies: + tmp "^0.2.0" + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -23865,7 +24709,7 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" -tmp@^0.2.1, tmp@~0.2.1: +tmp@^0.2.0, tmp@^0.2.1, tmp@~0.2.1: version "0.2.3" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== @@ -24092,7 +24936,7 @@ tslib@2.6.2, tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3. resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -tslib@^1.11.1, tslib@^1.14.1, tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.11.1, tslib@^1.14.1, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== @@ -24365,7 +25209,7 @@ underscore@1.12.1: resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== -underscore@^1.12.1: +underscore@^1.12.1, underscore@^1.9.1: version "1.13.6" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441" integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== @@ -24540,6 +25384,20 @@ update-browserslist-db@^1.0.13: escalade "^3.1.1" picocolors "^1.0.0" +upper-case-first@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" + integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== + dependencies: + tslib "^2.0.3" + +upper-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" + integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== + dependencies: + tslib "^2.0.3" + uri-js@^4.2.2, uri-js@^4.4.1: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -24559,7 +25417,7 @@ urijs@^1.19.10, urijs@^1.19.11: resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.11.tgz#204b0d6b605ae80bea54bea39280cdb7c9f923cc" integrity sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ== -url-parse@^1.5.10, url-parse@^1.5.3: +url-parse@^1.4.7, url-parse@^1.5.10, url-parse@^1.5.3: version "1.5.10" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== @@ -25199,7 +26057,7 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -25217,15 +26075,6 @@ wrap-ansi@^6.0.1: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" @@ -25286,7 +26135,7 @@ write-pkg@4.0.0: type-fest "^0.4.1" write-json-file "^3.2.0" -ws@^7.4.6: +ws@^7.3.1, ws@^7.4.6: version "7.5.9" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== @@ -25407,7 +26256,7 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^2.0.0, yaml@^2.0.0-10, yaml@^2.2.1, yaml@^2.2.2: +yaml@^2.0.0, yaml@^2.0.0-10, yaml@^2.1.3, yaml@^2.2.1, yaml@^2.2.2: version "2.4.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.2.tgz#7a2b30f2243a5fc299e1f14ca58d475ed4bc5362" integrity sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA== @@ -25453,6 +26302,11 @@ yargs@^17.1.1, yargs@^17.3.1, yargs@^17.6.2, yargs@^17.7.2: y18n "^5.0.5" yargs-parser "^21.1.1" +yarn@^1.22.22: + version "1.22.22" + resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.22.tgz#ac34549e6aa8e7ead463a7407e1c7390f61a6610" + integrity sha512-prL3kGtyG7o9Z9Sv8IPfBNrWTDmXB4Qbes8A9rEzt6wkJV8mUvoirjU0Mp3GGAU06Y0XQyA3/2/RQFVuK7MTfg== + yauzl@^3.0.0: version "3.1.3" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-3.1.3.tgz#f61c17ad1a09403bc7adb01dfb302a9e74bf4a50" @@ -25548,6 +26402,11 @@ zod@^3.11.6, zod@^3.22.4: resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.5.tgz#c7b7617d017d4a2f21852f533258d26a9a5ae09f" integrity sha512-fkwiq0VIQTksNNA131rDOsVJcns0pfVUjHzLrNBiF/O/Xxb5lQyEXkhZWcJ7npWsYlvs+h0jFWXXy4X46Em1JA== +zod@^3.23.6: + version "3.23.6" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.6.tgz#c08a977e2255dab1fdba933651584a05fcbf19e1" + integrity sha512-RTHJlZhsRbuA8Hmp/iNL7jnfc4nZishjsanDAfEY1QpDQZCahUp3xDzl+zfweE9BklxMUcgBgS1b7Lvie/ZVwA== + zwitch@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7"