diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..9fee4794 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "npm" # See documentation for possible values + directory: "/desktop-app" # Location of package manifests + schedule: + interval: "weekly" diff --git a/desktop-app/.eslintrc.js b/desktop-app/.eslintrc.js index 554e30c2..03f7c220 100644 --- a/desktop-app/.eslintrc.js +++ b/desktop-app/.eslintrc.js @@ -4,6 +4,9 @@ module.exports = { // A temporary hack related to IDE not resolving correct package.json 'import/no-extraneous-dependencies': 'off', 'import/no-unresolved': 'error', + + 'import/prefer-default-export': 'off', + // Since React 17 and typescript 4.1 you can safely disable the rule 'react/react-in-jsx-scope': 'off', 'react/require-default-props': 'off', diff --git a/desktop-app/package.json b/desktop-app/package.json index 894f4ff0..e24b2342 100644 --- a/desktop-app/package.json +++ b/desktop-app/package.json @@ -168,7 +168,7 @@ "electron-builder": "^23.3.3", "electron-devtools-installer": "^3.2.0", "electronmon": "^2.0.2", - "eslint": "^8.22.0", + "eslint": "^8.34.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-erb": "^4.0.3", "eslint-import-resolver-typescript": "^3.4.1", @@ -186,7 +186,7 @@ "identity-obj-proxy": "^3.0.0", "jest": "^28.1.3", "jest-environment-jsdom": "^28.1.3", - "lint-staged": "^13.0.3", + "lint-staged": "^13.1.2", "mini-css-extract-plugin": "^2.6.1", "postcss-loader": "^7.0.0", "prettier": "^2.7.1", @@ -200,7 +200,7 @@ "style-loader": "^3.3.1", "terser-webpack-plugin": "^5.3.5", "ts-jest": "^28.0.8", - "ts-loader": "^9.3.1", + "ts-loader": "^9.4.2", "ts-node": "^10.9.1", "tsconfig-paths-webpack-plugin": "^4.0.0", "typescript": "^4.7.4", diff --git a/desktop-app/release/app/yarn.lock b/desktop-app/release/app/yarn.lock index 5c2f3dd2..c6860858 100644 --- a/desktop-app/release/app/yarn.lock +++ b/desktop-app/release/app/yarn.lock @@ -18,9 +18,9 @@ integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== "@types/node@>=10.0.0": - version "18.11.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.2.tgz#c59b7641832531264fda3f1ba610362dc9a7dfc8" - integrity sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw== + version "18.11.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4" + integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== accepts@~1.3.4: version "1.3.8" @@ -374,9 +374,9 @@ engine.io-parser@~5.0.3: integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg== engine.io@~6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.2.0.tgz#003bec48f6815926f2b1b17873e576acd54f41d0" - integrity sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg== + version "6.2.1" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.2.1.tgz#e3f7826ebc4140db9bbaa9021ad6b1efb175878f" + integrity sha512-ECceEFcAaNRybd3lsGQKas3ZlMVjN3cyWwMP25D2i0zWfyiytVbTpRPa34qrr+FHddtpBVOmq4H/DCv1O0lZRA== dependencies: "@types/cookie" "^0.4.1" "@types/cors" "^2.8.12" diff --git a/desktop-app/src/main/devtools/index.ts b/desktop-app/src/main/devtools/index.ts index f8817073..8d1a43a7 100644 --- a/desktop-app/src/main/devtools/index.ts +++ b/desktop-app/src/main/devtools/index.ts @@ -109,11 +109,12 @@ const disableInspector = async ( const { webviewId } = args; const webViewContents = webContents.fromId(webviewId); const dbg = webViewContents.debugger; - await dbg.sendCommand('Overlay.setInspectMode', { - mode: 'none', - highlightConfig: {}, - }); try { + await dbg.sendCommand('Overlay.setInspectMode', { + mode: 'none', + highlightConfig: {}, + }); + dbg.removeAllListeners().detach(); } catch (err) { // eslint-disable-next-line no-console diff --git a/desktop-app/src/main/preload-webview.ts b/desktop-app/src/main/preload-webview.ts index 480acc7d..c1502814 100644 --- a/desktop-app/src/main/preload-webview.ts +++ b/desktop-app/src/main/preload-webview.ts @@ -1,10 +1,7 @@ import { ipcRenderer } from 'electron'; -console.log('Preload main'); - const documentBodyInit = () => { // Browser Sync - console.log('Registering browserSync'); const bsScript = window.document.createElement('script'); bsScript.src = 'https://localhost:12719/browser-sync/browser-sync-client.js?v=2.27.10'; diff --git a/desktop-app/src/main/webview-context-menu/common.ts b/desktop-app/src/main/webview-context-menu/common.ts new file mode 100644 index 00000000..a152bdac --- /dev/null +++ b/desktop-app/src/main/webview-context-menu/common.ts @@ -0,0 +1,9 @@ +interface ContextMenuMetadata { + id: string; + label: string; +} + +export const CONTEXT_MENUS: { [key: string]: ContextMenuMetadata } = { + INSPECT_ELEMENT: { id: 'INSPECT_ELEMENT', label: 'Inspect Element' }, + OPEN_CONSOLE: { id: 'OPEN_CONSOLE', label: 'Open Console' }, +}; diff --git a/desktop-app/src/main/webview-context-menu/handler.ts b/desktop-app/src/main/webview-context-menu/handler.ts deleted file mode 100644 index cdccd159..00000000 --- a/desktop-app/src/main/webview-context-menu/handler.ts +++ /dev/null @@ -1,33 +0,0 @@ -interface ContextMenuMetadata { - id: string; - label: string; -} - -export const CONTEXT_MENUS: { [key: string]: ContextMenuMetadata } = { - INSPECT_ELEMENT: { id: 'INSPECT_ELEMENT', label: 'Inspect Element' }, - OPEN_CONSOLE: { id: 'OPEN_CONSOLE', label: 'Open Console' }, -}; - -export const handleContextMenuEvent = ( - webview: Electron.WebviewTag, - command: string, - arg: any -) => { - switch (command) { - case CONTEXT_MENUS.INSPECT_ELEMENT.id: { - const { x: webViewX, y: webViewY } = webview.getBoundingClientRect(); - const { contextMenuMeta } = arg; - const scaleFactor = parseFloat(webview.dataset?.scaleFactor ?? '1'); - const x = Math.floor(webViewX + contextMenuMeta.x * scaleFactor); - const y = Math.floor(webViewY + contextMenuMeta.y * scaleFactor); - webview.inspectElement(x, y); - break; - } - case CONTEXT_MENUS.OPEN_CONSOLE.id: { - webview.openDevTools(); - break; - } - default: - console.log('Unknown context menu command:', command); - } -}; diff --git a/desktop-app/src/main/webview-context-menu/register.ts b/desktop-app/src/main/webview-context-menu/register.ts index 1fd096e9..43c49509 100644 --- a/desktop-app/src/main/webview-context-menu/register.ts +++ b/desktop-app/src/main/webview-context-menu/register.ts @@ -1,7 +1,8 @@ import { BrowserWindow, ipcMain, Menu } from 'electron'; -import { CONTEXT_MENUS } from './handler'; +import { CONTEXT_MENUS } from './common'; export const initWebviewContextMenu = () => { + ipcMain.removeAllListeners('show-context-menu'); ipcMain.on('show-context-menu', (event, ...args) => { const template: Electron.MenuItemConstructorOptions[] = Object.values( CONTEXT_MENUS diff --git a/desktop-app/src/renderer/components/Previewer/Device/common.ts b/desktop-app/src/renderer/components/Previewer/Device/common.ts new file mode 100644 index 00000000..a152bdac --- /dev/null +++ b/desktop-app/src/renderer/components/Previewer/Device/common.ts @@ -0,0 +1,9 @@ +interface ContextMenuMetadata { + id: string; + label: string; +} + +export const CONTEXT_MENUS: { [key: string]: ContextMenuMetadata } = { + INSPECT_ELEMENT: { id: 'INSPECT_ELEMENT', label: 'Inspect Element' }, + OPEN_CONSOLE: { id: 'OPEN_CONSOLE', label: 'Open Console' }, +}; diff --git a/desktop-app/src/renderer/components/Previewer/Device/index.tsx b/desktop-app/src/renderer/components/Previewer/Device/index.tsx index 1277407a..d412e60b 100644 --- a/desktop-app/src/renderer/components/Previewer/Device/index.tsx +++ b/desktop-app/src/renderer/components/Previewer/Device/index.tsx @@ -11,7 +11,7 @@ import { DisableDefaultWindowOpenHandlerArgs, DisableDefaultWindowOpenHandlerResult, } from 'main/native-functions'; -import { handleContextMenuEvent } from 'main/webview-context-menu/handler'; +import { CONTEXT_MENUS } from 'main/webview-context-menu/common'; import { DeleteStorageArgs, DeleteStorageResult, @@ -151,50 +151,114 @@ const Device = ({ isPrimary, device }: Props) => { dispatch(setDevtoolsOpen(webview.getWebContentsId())); }, [dispatch, dockPosition]); + const inspectElement = useCallback( + async (deviceX: number, deviceY: number) => { + if (!ref.current) { + return; + } + const webview = ref.current as Electron.WebviewTag; + if (webview == null) { + return; + } + + if (devtoolsOpenForWebviewId !== webview.getWebContentsId()) { + if (isDevtoolsOpen) { + dispatch(setDevtoolsClose()); + await window.electron.ipcRenderer.invoke('close-devtools'); + } + await openDevTools(); + } + const { x: webViewX, y: webViewY } = webview.getBoundingClientRect(); + webview.inspectElement( + Math.round(webViewX + deviceX * zoomfactor), + Math.round(webViewY + deviceY * zoomfactor) + ); + }, + [ + dispatch, + devtoolsOpenForWebviewId, + isDevtoolsOpen, + openDevTools, + zoomfactor, + ] + ); + useEffect(() => { if (!ref.current) { return; } const webview = ref.current as Electron.WebviewTag; - webview.addEventListener('did-navigate', (e) => { + const handlerRemovers: (() => void)[] = []; + + const didNavigateHandler = (e: Electron.DidNavigateEvent) => { dispatch(setAddress(e.url)); if (isPrimary) { appendHistory(webview.getURL(), webview.getTitle()); } + }; + webview.addEventListener('did-navigate', didNavigateHandler); + handlerRemovers.push(() => { + webview.removeEventListener('did-navigate', didNavigateHandler); }); - webview.addEventListener('ipc-message', (e) => { + const ipc̨MessageHandler = (e: Electron.IpcMessageEvent) => { if (e.channel === 'context-menu-command') { const { command, arg } = e.args[0]; - handleContextMenuEvent(webview, command, arg); + switch (command) { + case CONTEXT_MENUS.OPEN_CONSOLE.id: + openDevTools(); + break; + case CONTEXT_MENUS.INSPECT_ELEMENT.id: { + const { + contextMenuMeta: { x, y }, + } = arg; + inspectElement(x, y); + break; + } + default: + console.log('Unhandled context menu command', command); + } } + }; + webview.addEventListener('ipc-message', ipc̨MessageHandler); + handlerRemovers.push(() => { + webview.removeEventListener('ipc-message', ipc̨MessageHandler); }); - webview.addEventListener('did-start-loading', () => { + const didStartLoadingHandler = () => { setLoading(true); setError(null); + }; + webview.addEventListener('did-start-loading', didStartLoadingHandler); + handlerRemovers.push(() => { + webview.removeEventListener('did-start-loading', didStartLoadingHandler); }); - webview.addEventListener('did-stop-loading', () => { + + const didStopLoadingHandler = () => { setLoading(false); + }; + + webview.addEventListener('did-stop-loading', didStopLoadingHandler); + handlerRemovers.push(() => { + webview.removeEventListener('did-stop-loading', didStopLoadingHandler); }); - webview.addEventListener( - 'did-fail-load', - ({ errorCode, errorDescription }) => { - if (errorCode === -3) { - // Aborted error, can be ignored - return; - } - setError({ - code: errorCode, - description: errorDescription, - }); + const didFailLoadHandler = ({ + errorCode, + errorDescription, + }: Electron.DidFailLoadEvent) => { + if (errorCode === -3) { + // Aborted error, can be ignored + return; } - ); - - webview.addEventListener('crashed', () => { - // eslint-disable-next-line no-console - console.error('Web view crashed'); + setError({ + code: errorCode, + description: errorDescription, + }); + }; + webview.addEventListener('did-fail-load', didFailLoadHandler); + handlerRemovers.push(() => { + webview.removeEventListener('did-fail-load', didFailLoadHandler); }); if (!isPrimary) { @@ -206,12 +270,26 @@ const Device = ({ isPrimary, device }: Props) => { webContentsId: webview.getWebContentsId(), }); }, 2000); - - return; } - registerNavigationHandlers(); - }, [ref, dispatch, registerNavigationHandlers, isPrimary]); + if (isPrimary) { + registerNavigationHandlers(); + } + + // eslint-disable-next-line consistent-return + return () => { + handlerRemovers.forEach((handlerRemover) => { + handlerRemover(); + }); + }; + }, [ + ref, + dispatch, + registerNavigationHandlers, + isPrimary, + inspectElement, + openDevTools, + ]); useEffect(() => { // Reload keyboard shortcuts effect @@ -223,10 +301,8 @@ const Device = ({ isPrimary, device }: Props) => { const reloadHandler = (args: ReloadArgs) => { const { ignoreCache } = args; if (ignoreCache === true) { - console.log('Reloading reloadIgnoringCache'); webview.reloadIgnoringCache(); } else { - console.log('Reloading'); webview.reload(); } }; @@ -249,21 +325,10 @@ const Device = ({ isPrimary, device }: Props) => { return; } dispatch(setIsInspecting(false)); - const { x: webViewX, y: webViewY } = webview.getBoundingClientRect(); const { coords: { x: deviceX, y: deviceY }, } = args; - if (devtoolsOpenForWebviewId !== webview.getWebContentsId()) { - if (isDevtoolsOpen) { - dispatch(setDevtoolsClose()); - await window.electron.ipcRenderer.invoke('close-devtools'); - } - await openDevTools(); - } - webview.inspectElement( - Math.round(webViewX + deviceX * zoomfactor), - Math.round(webViewY + deviceY * zoomfactor) - ); + inspectElement(deviceX, deviceY); }; window.electron.ipcRenderer.on('inspect-element', inspectElementHandler); @@ -283,6 +348,7 @@ const Device = ({ isPrimary, device }: Props) => { devtoolsOpenForWebviewId, openDevTools, zoomfactor, + inspectElement, ]); useEffect(() => { diff --git a/desktop-app/yarn.lock b/desktop-app/yarn.lock index d736a4db..db4a011e 100644 --- a/desktop-app/yarn.lock +++ b/desktop-app/yarn.lock @@ -1097,15 +1097,15 @@ minimatch "^3.0.4" plist "^3.0.4" -"@eslint/eslintrc@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95" - integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg== +"@eslint/eslintrc@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" + integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== dependencies: ajv "^6.12.4" debug "^4.3.2" espree "^9.4.0" - globals "^13.15.0" + globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" @@ -1137,14 +1137,14 @@ dependencies: client-only "^0.0.1" -"@humanwhocodes/config-array@^0.11.6": - version "0.11.6" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.6.tgz#6a51d603a3aaf8d4cf45b42b3f2ac9318a4adc4b" - integrity sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg== +"@humanwhocodes/config-array@^0.11.8": + version "0.11.8" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" - minimatch "^3.0.4" + minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" @@ -1920,9 +1920,11 @@ integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== "@types/cors@^2.8.12": - version "2.8.12" - resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" - integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== + version "2.8.13" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.13.tgz#b8ade22ba455a1b8cb3b5d3f35910fd204f84f94" + integrity sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA== + dependencies: + "@types/node" "*" "@types/debug@^4.0.0", "@types/debug@^4.1.6": version "4.1.7" @@ -2130,7 +2132,7 @@ resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== -"@types/node@*", "@types/node@>=10.0.0": +"@types/node@*": version "18.11.5" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.5.tgz#1bc94cf2f9ab5fe33353bc7c79c797dcc5325bef" integrity sha512-3JRwhbjI+cHLAkUorhf8RnqUbFXajvzX4q6fMn5JwkgtuwfYtRQYI3u4V92vI6NJuTsbBQWWh3RZjFsuevyMGQ== @@ -2140,6 +2142,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.6.tgz#31743bc5772b6ac223845e18c3fc26f042713c83" integrity sha512-EdxgKRXgYsNITy5mjjXjVE/CS8YENSdhiagGrLqjG0pvA2owgJ6i4l7wy/PFZGC0B1/H20lWKN7ONVDNYDZm7A== +"@types/node@>=10.0.0": + version "18.11.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" + integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== + "@types/node@^16.11.26": version "16.18.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.0.tgz#34982c6d5b5734c900f4ee69e1b87d212db6c60f" @@ -3579,10 +3586,10 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browser-sync-client@^2.27.10: - version "2.27.10" - resolved "https://registry.yarnpkg.com/browser-sync-client/-/browser-sync-client-2.27.10.tgz#f06233ea66bd873b96664f001cbc49035022634d" - integrity sha512-KCFKA1YDj6cNul0VsA28apohtBsdk5Wv8T82ClOZPZMZWxPj4Ny5AUbrj9UlAb/k6pdxE5HABrWDhP9+cjt4HQ== +browser-sync-client@^2.27.11: + version "2.27.11" + resolved "https://registry.yarnpkg.com/browser-sync-client/-/browser-sync-client-2.27.11.tgz#1450e662ba805386b842f2b89456b48bdab7b968" + integrity sha512-okMNfD2NasL/XD1/BclP3onXjhahisk3e/kTQ5HPDT/lLqdBqNDd6QFcjI5I1ak7na2hxKQSLjryql+7fp5gKQ== dependencies: etag "1.8.1" fresh "0.5.2" @@ -3590,10 +3597,10 @@ browser-sync-client@^2.27.10: rxjs "^5.5.6" typescript "^4.6.2" -browser-sync-ui@^2.27.10: - version "2.27.10" - resolved "https://registry.yarnpkg.com/browser-sync-ui/-/browser-sync-ui-2.27.10.tgz#59dd6e436e17b743c99094ff5129306ab7ab5b79" - integrity sha512-elbJILq4Uo6OQv6gsvS3Y9vRAJlWu+h8j0JDkF0X/ua+3S6SVbbiWnZc8sNOFlG7yvVGIwBED3eaYQ0iBo1Dtw== +browser-sync-ui@^2.27.11: + version "2.27.11" + resolved "https://registry.yarnpkg.com/browser-sync-ui/-/browser-sync-ui-2.27.11.tgz#a391a0cd011dc19cb1798d10bc2ba29c9bcc5a2c" + integrity sha512-1T/Y8Pp1R68aUL7zVSFq0nxtr258xWd/nTasCAHX2M6EsGaswVOFtXsw3bKqsr35z+J+LfVfOdz1HFLYKxdgrA== dependencies: async-each-series "0.1.1" connect-history-api-fallback "^1" @@ -3603,12 +3610,12 @@ browser-sync-ui@^2.27.10: stream-throttle "^0.1.3" browser-sync@^2.27.10: - version "2.27.10" - resolved "https://registry.yarnpkg.com/browser-sync/-/browser-sync-2.27.10.tgz#3568d4f66afb0f68fee4a10902ecbbe8b2f680dd" - integrity sha512-xKm+6KJmJu6RuMWWbFkKwOCSqQOxYe3nOrFkKI5Tr/ZzjPxyU3pFShKK3tWnazBo/3lYQzN7fzjixG8fwJh1Xw== + version "2.27.11" + resolved "https://registry.yarnpkg.com/browser-sync/-/browser-sync-2.27.11.tgz#bb2c07fa586863612507cf0b7963e352a26a07af" + integrity sha512-U5f9u97OYJH66T0MGWWzG9rOQTW6ZmDMj97vsmtqwNS03JAwdLVES8eel2lD3rvAqQCNAFqaJ74NMacBI57vJg== dependencies: - browser-sync-client "^2.27.10" - browser-sync-ui "^2.27.10" + browser-sync-client "^2.27.11" + browser-sync-ui "^2.27.11" bs-recipes "1.3.4" bs-snippet-injector "^2.0.1" chokidar "^3.5.1" @@ -3626,7 +3633,7 @@ browser-sync@^2.27.10: micromatch "^4.0.2" opn "5.3.0" portscanner "2.2.0" - qs "6.2.3" + qs "^6.11.0" raw-body "^2.3.2" resp-modifier "6.0.2" rx "4.1.0" @@ -4158,7 +4165,7 @@ colord@^2.9.1: resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== -colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.16, colorette@^2.0.17: +colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.19: version "2.0.19" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== @@ -4207,10 +4214,10 @@ commander@^8.3.0: resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== -commander@^9.3.0: - version "9.4.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" - integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw== +commander@^9.4.1: + version "9.5.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" + integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== common-path-prefix@^3.0.0: version "3.0.0" @@ -4691,9 +4698,9 @@ decode-named-character-reference@^1.0.0: character-entities "^2.0.0" decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== + version "0.2.2" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== decompress-response@^6.0.0: version "6.0.0" @@ -5365,14 +5372,14 @@ engine.io-client@~6.2.3: xmlhttprequest-ssl "~2.0.0" engine.io-parser@~5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.4.tgz#0b13f704fa9271b3ec4f33112410d8f3f41d0fc0" - integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg== + version "5.0.6" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.6.tgz#7811244af173e157295dec9b2718dfe42a64ef45" + integrity sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw== -engine.io@~6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.2.0.tgz#003bec48f6815926f2b1b17873e576acd54f41d0" - integrity sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg== +engine.io@~6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.2.1.tgz#e3f7826ebc4140db9bbaa9021ad6b1efb175878f" + integrity sha512-ECceEFcAaNRybd3lsGQKas3ZlMVjN3cyWwMP25D2i0zWfyiytVbTpRPa34qrr+FHddtpBVOmq4H/DCv1O0lZRA== dependencies: "@types/cookie" "^0.4.1" "@types/cors" "^2.8.12" @@ -5394,15 +5401,7 @@ enhanced-resolve@^0.9.1: memory-fs "^0.2.0" tapable "^0.1.8" -enhanced-resolve@^5.0.0, enhanced-resolve@^5.10.0: - version "5.10.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6" - integrity sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -enhanced-resolve@^5.7.0: +enhanced-resolve@^5.0.0, enhanced-resolve@^5.10.0, enhanced-resolve@^5.7.0: version "5.12.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== @@ -5831,13 +5830,13 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.22.0: - version "8.26.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.26.0.tgz#2bcc8836e6c424c4ac26a5674a70d44d84f2181d" - integrity sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg== +eslint@^8.34.0: + version "8.34.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.34.0.tgz#fe0ab0ef478104c1f9ebc5537e303d25a8fb22d6" + integrity sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg== dependencies: - "@eslint/eslintrc" "^1.3.3" - "@humanwhocodes/config-array" "^0.11.6" + "@eslint/eslintrc" "^1.4.1" + "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" ajv "^6.10.0" @@ -5856,7 +5855,7 @@ eslint@^8.22.0: file-entry-cache "^6.0.1" find-up "^5.0.0" glob-parent "^6.0.2" - globals "^13.15.0" + globals "^13.19.0" grapheme-splitter "^1.0.4" ignore "^5.2.0" import-fresh "^3.0.0" @@ -6688,10 +6687,10 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.15.0: - version "13.17.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" - integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== +globals@^13.19.0: + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== dependencies: type-fest "^0.20.2" @@ -7110,9 +7109,9 @@ htmlparser2@^6.1.0: entities "^2.0.0" http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== http-deceiver@^1.2.7: version "1.2.7" @@ -8620,12 +8619,7 @@ liftoff@^2.1.0: rechoir "^0.6.2" resolve "^1.1.7" -lilconfig@2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" - integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== - -lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.0.6: +lilconfig@2.0.6, lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== @@ -8640,36 +8634,36 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -lint-staged@^13.0.3: - version "13.0.3" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.0.3.tgz#d7cdf03a3830b327a2b63c6aec953d71d9dc48c6" - integrity sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug== +lint-staged@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.2.tgz#443636a0cfd834d5518d57d228130dc04c83d6fb" + integrity sha512-K9b4FPbWkpnupvK3WXZLbgu9pchUJ6N7TtVZjbaPsoizkqFUDkUReUL25xdrCljJs7uLUF3tZ7nVPeo/6lp+6w== dependencies: cli-truncate "^3.1.0" - colorette "^2.0.17" - commander "^9.3.0" + colorette "^2.0.19" + commander "^9.4.1" debug "^4.3.4" execa "^6.1.0" - lilconfig "2.0.5" - listr2 "^4.0.5" + lilconfig "2.0.6" + listr2 "^5.0.5" micromatch "^4.0.5" normalize-path "^3.0.0" object-inspect "^1.12.2" pidtree "^0.6.0" string-argv "^0.3.1" - yaml "^2.1.1" + yaml "^2.1.3" -listr2@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" - integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== +listr2@^5.0.5: + version "5.0.7" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.7.tgz#de69ccc4caf6bea7da03c74f7a2ffecf3904bd53" + integrity sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw== dependencies: cli-truncate "^2.1.0" - colorette "^2.0.16" + colorette "^2.0.19" log-update "^4.0.0" p-map "^4.0.0" rfdc "^1.3.0" - rxjs "^7.5.5" + rxjs "^7.8.0" through "^2.3.8" wrap-ansi "^7.0.0" @@ -9417,7 +9411,7 @@ minimalistic-assert@^1.0.0: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: +"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -10745,18 +10739,13 @@ q@^1.1.2: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== -qs@6.11.0: +qs@6.11.0, qs@^6.11.0: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" -qs@6.2.3: - version "6.2.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe" - integrity sha512-AY4g8t3LMboim0t6XWFdz6J5OuJ1ZNYu54SXihS/OMpgyCqYmcAJnWqkNSOjSjWmq3xxy+GF9uWQI2lI/7tKIA== - querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" @@ -11427,13 +11416,20 @@ rxjs@^5.5.6: dependencies: symbol-observable "1.0.1" -rxjs@^7.0.0, rxjs@^7.5.2, rxjs@^7.5.5: +rxjs@^7.0.0, rxjs@^7.5.2: version "7.5.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39" integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA== dependencies: tslib "^2.1.0" +rxjs@^7.8.0: + version "7.8.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" + integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== + dependencies: + tslib "^2.1.0" + sade@^1.7.3: version "1.8.1" resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" @@ -11880,34 +11876,34 @@ socket.io-adapter@~2.4.0: integrity sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg== socket.io-client@^4.4.1: - version "4.5.3" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.5.3.tgz#bed69209d001465b2fea650d2e95c1e82768ab5e" - integrity sha512-I/hqDYpQ6JKwtJOf5ikM+Qz+YujZPMEl6qBLhxiP0nX+TfXKhW4KZZG8lamrD6Y5ngjmYHreESVasVCgi5Kl3A== + version "4.5.4" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.5.4.tgz#d3cde8a06a6250041ba7390f08d2468ccebc5ac9" + integrity sha512-ZpKteoA06RzkD32IbqILZ+Cnst4xewU7ZYK12aS1mzHftFFjpoMz69IuhP/nL25pJfao/amoPI527KnuhFm01g== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.2" engine.io-client "~6.2.3" - socket.io-parser "~4.2.0" + socket.io-parser "~4.2.1" -socket.io-parser@~4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.1.tgz#01c96efa11ded938dcb21cbe590c26af5eff65e5" - integrity sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g== +socket.io-parser@~4.2.1: + version "4.2.2" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.2.tgz#1dd384019e25b7a3d374877f492ab34f2ad0d206" + integrity sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" socket.io@^4.4.1: - version "4.5.3" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.5.3.tgz#44dffea48d7f5aa41df4a66377c386b953bc521c" - integrity sha512-zdpnnKU+H6mOp7nYRXH4GNv1ux6HL6+lHL8g7Ds7Lj8CkdK1jJK/dlwsKDculbyOHifcJ0Pr/yeXnZQ5GeFrcg== + version "4.5.4" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.5.4.tgz#a4513f06e87451c17013b8d13fdfaf8da5a86a90" + integrity sha512-m3GC94iK9MfIEeIBfbhJs5BqFibMtkRk8ZpKwG2QwxV0m/eEhPIV4ara6XCF1LWNAus7z58RodiZlAH71U3EhQ== dependencies: accepts "~1.3.4" base64id "~2.0.0" debug "~4.3.2" - engine.io "~6.2.0" + engine.io "~6.2.1" socket.io-adapter "~2.4.0" - socket.io-parser "~4.2.0" + socket.io-parser "~4.2.1" sockjs@^0.3.24: version "0.3.24" @@ -12688,10 +12684,10 @@ ts-jest@^28.0.8: semver "7.x" yargs-parser "^21.0.1" -ts-loader@^9.3.1: - version "9.4.1" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.4.1.tgz#b6f3d82db0eac5a8295994f8cb5e4940ff6b1060" - integrity sha512-384TYAqGs70rn9F0VBnh6BPTfhga7yFNdC5gXbQpDrBj9/KsT4iRkGqKXhziofHOlE2j6YEaiTYVGKKvPhGWvw== +ts-loader@^9.4.2: + version "9.4.2" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.4.2.tgz#80a45eee92dd5170b900b3d00abcfa14949aeb78" + integrity sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA== dependencies: chalk "^4.1.0" enhanced-resolve "^5.0.0" @@ -12816,7 +12812,12 @@ typed-emitter@^2.1.0: optionalDependencies: rxjs "^7.5.2" -typescript@^4.6.2, typescript@^4.7.4: +typescript@^4.6.2: + version "4.9.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" + integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== + +typescript@^4.7.4: version "4.8.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== @@ -13594,10 +13595,10 @@ yaml@^1.10.0, yaml@^1.10.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.3.tgz#9b3a4c8aff9821b696275c79a8bee8399d945207" - integrity sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg== +yaml@^2.1.3: + version "2.2.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.1.tgz#3014bf0482dcd15147aa8e56109ce8632cd60ce4" + integrity sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw== yargs-parser@^18.1.2: version "18.1.3"