From 4f72ebc27d90d176e615463b52869a337ebe10ed Mon Sep 17 00:00:00 2001 From: sergeichestakov Date: Mon, 21 Aug 2023 14:38:01 -0400 Subject: [PATCH 1/4] Add eslint and prettier --- .eslintignore | 4 ++ eslintrc.js | 129 +++++++++++++++++++++++++++++++++++++++++ forge.config.js | 70 +++++++++++----------- package.json | 7 +++ pnpm-lock.yaml | 35 +++++++++++ src/checkForUpdates.ts | 42 +++++++------- src/constants.ts | 22 +++---- src/createMenu.ts | 94 +++++++++++++++--------------- src/createWindow.ts | 46 +++++++-------- src/deeplink.ts | 40 ++++++------- src/events.ts | 16 ++--- src/ipc.ts | 22 +++---- src/isSupportedPage.ts | 4 +- src/main.ts | 34 +++++------ src/platform.ts | 4 +- src/preload.ts | 8 +-- src/sentry.ts | 10 ++-- src/store.ts | 18 +++--- 18 files changed, 390 insertions(+), 215 deletions(-) create mode 100644 .eslintignore create mode 100644 eslintrc.js diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..070d001 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,4 @@ +out/ +dist/ +extract/ +node_modules/ diff --git a/eslintrc.js b/eslintrc.js new file mode 100644 index 0000000..2e88054 --- /dev/null +++ b/eslintrc.js @@ -0,0 +1,129 @@ +module.exports = { + env: { + browser: false, + es6: true, + node: true, + }, + extends: ['eslint:recommended', 'plugin:prettier/recommended'], + parser: '@typescript-eslint/parser', + parserOptions: { + sourceType: 'module', + ecmaVersion: 2018, + }, + plugins: ['@typescript-eslint', 'prettier'], + rules: { + 'prettier/prettier': 'off', + 'array-callback-return': 'error', + 'brace-style': 'error', + camelcase: [ + 'error', + { + properties: 'never', + allow: ['^UNSAFE_'], + }, + ], + curly: ['error', 'all'], + 'consistent-return': 'warn', + 'declare-theme-extension-at-module': 'error', + eqeqeq: [ + 'error', + 'always', + { + null: 'ignore', + }, + ], + 'flowtype/define-flow-type': 1, + 'flowtype/use-flow-type': 1, + 'import/no-anonymous-default-export': [ + 'error', + { + allowObject: true, + allowArray: true, + allowLiteral: true, + allowNew: true, + }, + ], + 'no-console': 'error', + 'no-focus-in-set-timeout': 'error', + 'no-lonely-if': 'error', + 'no-multi-spaces': 'error', + 'no-nested-ternary': 'error', + 'no-restricted-globals': ['error', 'event'], + 'no-restricted-properties': 'error', + 'no-restricted-syntax': ['error', 'LabeledStatement', 'WithStatement'], + 'no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^__', + }, + ], + 'one-var': ['error', 'never'], + 'padding-line-between-statements': [ + 'error', + { + blankLine: 'always', + prev: '*', + next: 'return', + }, + { + blankLine: 'always', + prev: 'block-like', + next: '*', + }, + ], + 'prefer-const': [ + 'error', + { + destructuring: 'all', + }, + ], + 'prefer-rest-params': 'error', + }, + overrides: [ + { + files: ['**/*.ts', '**/*.tsx'], + extends: ['plugin:@typescript-eslint/recommended'], + rules: { + 'consistent-return': 'off', + 'array-callback-return': 'off', + 'no-shadow': 'off', + '@typescript-eslint/no-shadow': 'error', + '@typescript-eslint/no-namespace': [ + 'error', + { + allowDeclarations: true, + }, + ], + '@typescript-eslint/no-unused-expressions': ['error'], + '@typescript-eslint/no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^__', + }, + ], + '@typescript-eslint/ban-types': 'warn', + '@typescript-eslint/consistent-type-imports': [ + 'error', + { + prefer: 'type-imports', + disallowTypeAnnotations: false, + fixStyle: 'separate-type-imports', + }, + ], + '@typescript-eslint/no-empty-interface': 'off', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-inferrable-types': 'off', + '@typescript-eslint/no-non-null-assertion': 'warn', + '@typescript-eslint/array-type': [ + 'error', + { + default: 'generic', + }, + ], + '@typescript-eslint/no-redeclare': 'error', + }, + }, + ], +}; diff --git a/forge.config.js b/forge.config.js index 659bf53..69fd98e 100644 --- a/forge.config.js +++ b/forge.config.js @@ -3,7 +3,7 @@ const osxNotarize = process.env.APPLE_PASSWORD && process.env.APPLE_TEAM_ID ? { - tool: "notarytool", + tool: 'notarytool', appleId: process.env.APPLE_ID, appleIdPassword: process.env.APPLE_PASSWORD, teamId: process.env.APPLE_TEAM_ID, @@ -14,37 +14,37 @@ const osxSign = osxNotarize ? {} : undefined; if (!osxNotarize) { console.log( - "Notarytool credentials not passed, skipping sign and notarize step for OSX." + 'Notarytool credentials not passed, skipping sign and notarize step for OSX.', ); } module.exports = { packagerConfig: { - icon: "./assets/logo", - executableName: "Replit", + icon: './assets/logo', + executableName: 'Replit', osxSign, osxNotarize, asar: true, // ignore development files like README, typescript sources, etc. ignore: (path) => { - if (path === "") { + if (path === '') { return false; } // dist folder is necessary for the app to run - if (path.startsWith("/dist")) { + if (path.startsWith('/dist')) { return false; } // package.json is necessary for the app to run - if (path === "/package.json") { + if (path === '/package.json') { return false; } // node_modules are necessary, but we have to strip binaries - if (path.includes("node_modules")) { - const ignoreNodeBinaries = "/node_modules/\\.bin($|/)"; + if (path.includes('node_modules')) { + const ignoreNodeBinaries = '/node_modules/\\.bin($|/)'; return path.match(ignoreNodeBinaries); } @@ -54,69 +54,69 @@ module.exports = { protocols: [ { - name: "Replit", - schemes: ["replit"], + name: 'Replit', + schemes: ['replit'], }, ], }, rebuildConfig: {}, hooks: { generateAssets: async () => { - const cpy = (await import("cpy")).default; - await cpy("assets", "dist"); + const cpy = (await import('cpy')).default; + await cpy('assets', 'dist'); }, }, makers: [ { - name: "@electron-forge/maker-squirrel", + name: '@electron-forge/maker-squirrel', config: { - setupIcon: "./assets/logo.ico", - iconUrl: "https://replit.com/public/images/logo.ico", + setupIcon: './assets/logo.ico', + iconUrl: 'https://replit.com/public/images/logo.ico', certificateFile: process.env.WINDOWS_CERTIFICATE_FILE, certificatePassword: process.env.WINDOWS_CERTIFICATE_PASSWORD, }, }, { - name: "@electron-forge/maker-dmg", + name: '@electron-forge/maker-dmg', config: { - name: "Replit", - icon: "./assets/logo.icns", + name: 'Replit', + icon: './assets/logo.icns', overwrite: true, additionalDMGOptions: { - "background-color": "#0E1525", + 'background-color': '#0E1525', }, }, }, { - name: "@electron-forge/maker-deb", + name: '@electron-forge/maker-deb', config: { options: { - name: "replit", - bin: "Replit", - productName: "Replit", - maintainer: "Replit", - mimeType: ["x-scheme-handler/replit"], - homepage: "https://replit.com", - description: "Replit desktop app", - icon: "./assets/logo.png", - categories: ["Development"], - section: "devel", + name: 'replit', + bin: 'Replit', + productName: 'Replit', + maintainer: 'Replit', + mimeType: ['x-scheme-handler/replit'], + homepage: 'https://replit.com', + description: 'Replit desktop app', + icon: './assets/logo.png', + categories: ['Development'], + section: 'devel', }, }, }, { - name: "@electron-forge/maker-zip", + name: '@electron-forge/maker-zip', config: {}, }, ], publishers: [ { - name: "@electron-forge/publisher-github", + name: '@electron-forge/publisher-github', authToken: process.env.GH_TOKEN, config: { repository: { - owner: "replit", - name: "desktop", + owner: 'replit', + name: 'desktop', }, }, }, diff --git a/package.json b/package.json index 9401abf..6d31ff8 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,10 @@ "engines": { "pnpm": "8.5.1" }, + "prettier": { + "trailingComma": "all", + "singleQuote": true + }, "devDependencies": { "@electron-forge/cli": "^6.1.0", "@electron-forge/maker-deb": "^6.0.5", @@ -30,6 +34,7 @@ "@electron-forge/maker-squirrel": "^6.0.5", "@electron-forge/maker-zip": "^6.0.5", "@electron-forge/publisher-github": "^6.1.1", + "@types/eslint": "^8.44.2", "@types/node": "^18.15.11", "@typescript-eslint/eslint-plugin": "^4.33.0", "@typescript-eslint/parser": "^4.33.0", @@ -39,7 +44,9 @@ "electron-winstaller": "^5.1.0", "esbuild": "^0.18.6", "eslint": "^7.32.0", + "eslint-config-prettier": "^9.0.0", "npm-run-all": "^4.1.5", + "prettier": "^3.0.2", "rimraf": "^5.0.1", "typescript": "^4.9.5" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dc9ef66..786d2e5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,6 +33,9 @@ devDependencies: '@electron-forge/publisher-github': specifier: ^6.1.1 version: 6.1.1 + '@types/eslint': + specifier: ^8.44.2 + version: 8.44.2 '@types/node': specifier: ^18.15.11 version: 18.15.11 @@ -60,9 +63,15 @@ devDependencies: eslint: specifier: ^7.32.0 version: 7.32.0 + eslint-config-prettier: + specifier: ^9.0.0 + version: 9.0.0(eslint@7.32.0) npm-run-all: specifier: ^4.1.5 version: 4.1.5 + prettier: + specifier: ^3.0.2 + version: 3.0.2 rimraf: specifier: ^5.0.1 version: 5.0.1 @@ -977,6 +986,17 @@ packages: '@types/responselike': 1.0.0 dev: true + /@types/eslint@8.44.2: + resolution: {integrity: sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg==} + dependencies: + '@types/estree': 1.0.1 + '@types/json-schema': 7.0.11 + dev: true + + /@types/estree@1.0.1: + resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} + dev: true + /@types/fs-extra@9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} requiresBuild: true @@ -2176,6 +2196,15 @@ packages: engines: {node: '>=12'} dev: true + /eslint-config-prettier@9.0.0(eslint@7.32.0): + resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 7.32.0 + dev: true + /eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -4114,6 +4143,12 @@ packages: engines: {node: '>= 0.8.0'} dev: true + /prettier@3.0.2: + resolution: {integrity: sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ==} + engines: {node: '>=14'} + hasBin: true + dev: true + /progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} diff --git a/src/checkForUpdates.ts b/src/checkForUpdates.ts index e9a6dc7..dca6adb 100644 --- a/src/checkForUpdates.ts +++ b/src/checkForUpdates.ts @@ -1,13 +1,13 @@ -import * as Sentry from "@sentry/electron"; -import { app, autoUpdater, dialog } from "electron"; -import { isProduction } from "./constants"; -import { isLinux, isMac } from "./platform"; -import log from "electron-log/main"; +import * as Sentry from '@sentry/electron'; +import { app, autoUpdater, dialog } from 'electron'; +import { isProduction } from './constants'; +import { isLinux, isMac } from './platform'; +import log from 'electron-log/main'; // We need this to differentiate between M1 and Intel Macs const platform = - isMac() && process.arch === "arm64" ? "darwin_arm64" : process.platform; -const server = "https://desktop.replit.com"; + isMac() && process.arch === 'arm64' ? 'darwin_arm64' : process.platform; +const server = 'https://desktop.replit.com'; const url = `${server}/update/${platform}/${app.getVersion()}`; export default function checkForUpdates(): void { @@ -26,27 +26,27 @@ export default function checkForUpdates(): void { } catch (e) { // This function will throw if the app is not signed which should only happen if you build from source without the appropriate env vars set. log.error( - "Skipping auto-update. setFeedURL threw with the following error: ", - e + 'Skipping auto-update. setFeedURL threw with the following error: ', + e, ); return; } - autoUpdater.on("update-downloaded", () => { + autoUpdater.on('update-downloaded', () => { const dialogOpts = { - type: "info" as const, - buttons: ["Restart"], - title: "Application Update", - message: "New Update Available", + type: 'info' as const, + buttons: ['Restart'], + title: 'Application Update', + message: 'New Update Available', detail: - "A new version has been downloaded. Restart the application to apply the updates.", + 'A new version has been downloaded. Restart the application to apply the updates.', }; - log.info("Update downloaded"); + log.info('Update downloaded'); dialog.showMessageBox(dialogOpts).then((returnValue) => { - log.info("Update dialog selected: ", returnValue); + log.info('Update dialog selected: ', returnValue); if (returnValue.response === 0) { autoUpdater.quitAndInstall(); @@ -54,11 +54,11 @@ export default function checkForUpdates(): void { }); }); - autoUpdater.on("error", (message) => { - log.error("There was a problem updating the application"); + autoUpdater.on('error', (message) => { + log.error('There was a problem updating the application'); log.error(message); - const error = new Error("Failed to auto-update the application"); + const error = new Error('Failed to auto-update the application'); Sentry.captureException(error, { extra: { @@ -67,6 +67,6 @@ export default function checkForUpdates(): void { }); }); - log.info("Checking for updates"); + log.info('Checking for updates'); autoUpdater.checkForUpdates(); } diff --git a/src/constants.ts b/src/constants.ts index 38d38f5..88ec6e8 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,26 +1,26 @@ -import { app, nativeImage } from "electron"; -import * as path from "path"; +import { app, nativeImage } from 'electron'; +import * as path from 'path'; -export const appName = "Replit"; -export const protocol = "replit"; +export const appName = 'Replit'; +export const protocol = 'replit'; export const appIcon = nativeImage.createFromPath( - path.join(__dirname, "assets", "logo.png") + path.join(__dirname, 'assets', 'logo.png'), ); export const macAppIcon = nativeImage.createFromPath( - path.join(__dirname, "assets", "logo-mac.png") + path.join(__dirname, 'assets', 'logo-mac.png'), ); -export const preloadScript = path.join(__dirname, "preload.js"); +export const preloadScript = path.join(__dirname, 'preload.js'); -export const baseUrl = process.env.REPLIT_URL || "https://replit.com"; +export const baseUrl = process.env.REPLIT_URL || 'https://replit.com'; export const workspaceUrlRegex = /^\/@\S+\/\S+/; -export const homePage = "/desktopApp/home"; -export const authPage = "/desktopApp/auth"; -export const desktopAppPrefix = "/desktopApp"; +export const homePage = '/desktopApp/home'; +export const authPage = '/desktopApp/auth'; +export const desktopAppPrefix = '/desktopApp'; // from https://stackoverflow.com/a/72900791/ export const semverRegex = diff --git a/src/createMenu.ts b/src/createMenu.ts index 2705559..a93be75 100644 --- a/src/createMenu.ts +++ b/src/createMenu.ts @@ -5,21 +5,21 @@ import { Menu, MenuItem, MenuItemConstructorOptions, -} from "electron"; -import { baseUrl, isProduction } from "./constants"; -import { createWindow } from "./createWindow"; -import { isMac } from "./platform"; +} from 'electron'; +import { baseUrl, isProduction } from './constants'; +import { createWindow } from './createWindow'; +import { isMac } from './platform'; const replUrlRegExp = new RegExp(`${baseUrl}/@[^/]+/.+`); const newWindowMenuItem = { - label: "New Window", - accelerator: "CommandOrControl+Shift+N", + label: 'New Window', + accelerator: 'CommandOrControl+Shift+N', click: () => createWindow(), }; const openReplFromClipboardMenuItem = { - label: "Open Repl URL from Clipboard", + label: 'Open Repl URL from Clipboard', click: () => { const clipboardText = clipboard.readText(); const isReplUrl = replUrlRegExp.test(clipboardText); @@ -28,8 +28,8 @@ const openReplFromClipboardMenuItem = { createWindow({ url: clipboardText }); } else { dialog.showMessageBox({ - type: "warning" as const, - message: "The URL in Clipboard is not a Repl URL", + type: 'warning' as const, + message: 'The URL in Clipboard is not a Repl URL', }); } }, @@ -52,80 +52,80 @@ export function createApplicationMenu(): Menu { template.push({ label: app.name, submenu: [ - { role: "about" }, - { type: "separator" }, - { role: "services" }, - { type: "separator" }, - { role: "hide" }, - { role: "hideOthers" }, - { role: "unhide" }, - { type: "separator" }, - { role: "quit" }, + { role: 'about' }, + { type: 'separator' }, + { role: 'services' }, + { type: 'separator' }, + { role: 'hide' }, + { role: 'hideOthers' }, + { role: 'unhide' }, + { type: 'separator' }, + { role: 'quit' }, ], }); } // File Menu template.push({ - label: "File", + label: 'File', submenu: [ newWindowMenuItem, openReplFromClipboardMenuItem, - { type: "separator" }, - isMac() ? { role: "close" } : { role: "quit" }, + { type: 'separator' }, + isMac() ? { role: 'close' } : { role: 'quit' }, ], }); // Edit Menu template.push({ - label: "Edit", + label: 'Edit', submenu: [ - { role: "undo" }, - { role: "redo" }, - { type: "separator" }, - { role: "cut" }, - { role: "copy" }, - { role: "paste" }, - { role: "pasteandmatchstyle" }, - { role: "delete" }, - { role: "selectall" }, + { role: 'undo' }, + { role: 'redo' }, + { type: 'separator' }, + { role: 'cut' }, + { role: 'copy' }, + { role: 'paste' }, + { role: 'pasteandmatchstyle' }, + { role: 'delete' }, + { role: 'selectall' }, ], }); // View Menu template.push({ - label: "View", + label: 'View', submenu: [ - { role: "reload" }, - { role: "forceReload" }, + { role: 'reload' }, + { role: 'forceReload' }, // Don't expose dev tools in production - ...(!isProduction ? [{ role: "toggleDevTools" }] : []), - { type: "separator" }, - { type: "separator" }, - { role: "togglefullscreen" }, + ...(!isProduction ? [{ role: 'toggleDevTools' }] : []), + { type: 'separator' }, + { type: 'separator' }, + { role: 'togglefullscreen' }, ], }); // Window Menu template.push({ - label: "Window", + label: 'Window', submenu: [ - { role: "minimize" }, - { role: "zoom" }, + { role: 'minimize' }, + { role: 'zoom' }, ...(isMac() ? [ - { type: "separator" }, - { role: "front" }, - { type: "separator" }, - { role: "window" }, + { type: 'separator' }, + { role: 'front' }, + { type: 'separator' }, + { role: 'window' }, ] - : [{ role: "close" }]), + : [{ role: 'close' }]), ], }); // Help Menu template.push({ - role: "help", + role: 'help', }); const menu = Menu.buildFromTemplate(template as MenuItemConstructorOptions[]); diff --git a/src/createWindow.ts b/src/createWindow.ts index e4a6fab..aa4422c 100644 --- a/src/createWindow.ts +++ b/src/createWindow.ts @@ -5,7 +5,7 @@ import { shell, app, Rectangle, -} from "electron"; +} from 'electron'; import { appIcon as icon, appName as title, @@ -13,12 +13,12 @@ import { preloadScript as preload, workspaceUrlRegex, homePage, -} from "./constants"; -import log from "electron-log/main"; -import { events } from "./events"; -import isSupportedPage from "./isSupportedPage"; -import { isMac } from "./platform"; -import store from "./store"; +} from './constants'; +import log from 'electron-log/main'; +import { events } from './events'; +import isSupportedPage from './isSupportedPage'; +import { isMac } from './platform'; +import store from './store'; interface WindowProps { url?: string | null; @@ -28,7 +28,7 @@ const defaultUrl = `${baseUrl}${homePage}`; function createURL(url?: string | null) { if (url) { - return url.startsWith("/") ? `${baseUrl}${url}` : url; + return url.startsWith('/') ? `${baseUrl}${url}` : url; } return defaultUrl; @@ -77,11 +77,11 @@ function isInBounds(rect: Rectangle) { } async function getLastSeenBackgroundColor( - window: BrowserWindow + window: BrowserWindow, ): Promise { // We're capturing the background color to use as main browser window background color. return window.webContents.executeJavaScript( - `getComputedStyle(document.body).getPropertyValue('--background-root');` + `getComputedStyle(document.body).getPropertyValue('--background-root');`, ); } @@ -112,16 +112,16 @@ export function createWindow(props?: WindowProps): BrowserWindow { lastOpenRepl = newValue; }); - log.info("Creating window with URL: ", url); + log.info('Creating window with URL: ', url); // For MacOS we use a hidden titlebar and move the traffic lights into the header of the interface // the corresponding CSS adjustments to enable that live in the repl-it-web repo! const platformStyling: BrowserWindowConstructorOptions = isMac() ? { - titleBarStyle: "hidden", + titleBarStyle: 'hidden', titleBarOverlay: { - color: "var(--background-root)", - symbolColor: "var(--foreground-default)", + color: 'var(--background-root)', + symbolColor: 'var(--foreground-default)', height: 48, }, trafficLightPosition: { x: 20, y: 16 }, @@ -149,7 +149,7 @@ export function createWindow(props?: WindowProps): BrowserWindow { // Add a custom string to user agent to make it easier to differentiate requests from desktop app window.webContents.setUserAgent( - `${window.webContents.getUserAgent()} ReplitDesktop` + `${window.webContents.getUserAgent()} ReplitDesktop`, ); // Prevent any URLs opened via a target="_blank" anchor tag or programmatically using `window.open` from @@ -158,15 +158,15 @@ export function createWindow(props?: WindowProps): BrowserWindow { shell.openExternal(details.url); return { - action: "deny", + action: 'deny', }; }); - window.webContents.on("did-navigate-in-page", (_event, url) => { + window.webContents.on('did-navigate-in-page', (_event, url) => { setLastOpenRepl(url, lastOpenRepl); }); - window.webContents.on("will-navigate", (event, navigationUrl) => { + window.webContents.on('will-navigate', (event, navigationUrl) => { const url = new URL(navigationUrl); const isReplit = url.origin === baseUrl; @@ -189,29 +189,29 @@ export function createWindow(props?: WindowProps): BrowserWindow { window.setBounds(store.getWindowBounds()); - window.on("close", async () => { + window.on('close', async () => { const backgroundColor = await getLastSeenBackgroundColor(window); store.setLastSeenBackgroundColor(backgroundColor); store.setWindowBounds(window.getBounds()); disposeOnLastOpenReplChange(); }); - window.on("focus", () => { + window.on('focus', () => { setLastOpenRepl(url, lastOpenRepl); }); - window.on("enter-full-screen", () => { + window.on('enter-full-screen', () => { window.webContents.send(events.ON_ENTER_FULLSCREEN); }); - window.on("leave-full-screen", () => { + window.on('leave-full-screen', () => { window.webContents.send(events.ON_LEAVE_FULLSCREEN); }); // Bypass the browser's cache when initially loading the remote URL // in order to ensure that we load the latest web build. // See: https://github.com/electron/electron/issues/1360#issuecomment-156506130 - window.loadURL(url, { extraHeaders: "pragma: no-cache\n" }); + window.loadURL(url, { extraHeaders: 'pragma: no-cache\n' }); // We've set up the window, so let's show it! window.show(); diff --git a/src/deeplink.ts b/src/deeplink.ts index 51ca2d6..92bb86f 100644 --- a/src/deeplink.ts +++ b/src/deeplink.ts @@ -1,5 +1,5 @@ -import { app, BrowserWindow } from "electron"; -import { isWindows, isLinux } from "./platform"; +import { app, BrowserWindow } from 'electron'; +import { isWindows, isLinux } from './platform'; import { baseUrl, protocol, @@ -7,11 +7,11 @@ import { semverRegex, authPage, homePage, -} from "./constants"; -import path from "path"; -import { createWindow } from "./createWindow"; -import { events } from "./events"; -import log from "electron-log/main"; +} from './constants'; +import path from 'path'; +import { createWindow } from './createWindow'; +import { events } from './events'; +import log from 'electron-log/main'; export function initializeDeeplinking(): void { registerDeeplinkProtocol(); @@ -19,7 +19,7 @@ export function initializeDeeplinking(): void { } function registerDeeplinkProtocol(): void { - log.info("Registering deeplink protocol"); + log.info('Registering deeplink protocol'); if (process.defaultApp && isWindows() && process.argv.length >= 2) { // Set the path of electron.exe and your app. @@ -40,7 +40,7 @@ async function handleDeeplink(deeplink: string): Promise { // Remove trailing ":" if (url.protocol.slice(0, -1) !== protocol) { - throw new Error("Invalid protocol"); + throw new Error('Invalid protocol'); } // We set the listeners before the app is ready to make sure we don't miss any events @@ -49,25 +49,25 @@ async function handleDeeplink(deeplink: string): Promise { await app.whenReady(); switch (url.hostname) { - case "authComplete": { - handleAuthComplete(url.searchParams.get("authToken")); + case 'authComplete': { + handleAuthComplete(url.searchParams.get('authToken')); break; } - case "home": { + case 'home': { handleHome(); break; } - case "new": { - handleNew(url.searchParams.get("language") || "python3"); + case 'new': { + handleNew(url.searchParams.get('language') || 'python3'); break; } - case "repl": { + case 'repl': { handleRepl(url.pathname); break; @@ -116,7 +116,7 @@ function handleNew(language: string) { function handleRepl(url: string) { if (!workspaceUrlRegex.test(url)) { - log.error("Expected URL of the format /@username/slug"); + log.error('Expected URL of the format /@username/slug'); return; } @@ -141,7 +141,7 @@ function handleAuthComplete(authToken: string) { // If we already have the auth window open which triggered // this flow, then we will pass the auth token to it via IPC. const authWindow = windows.find( - (window) => window.webContents.getURL() === authUrl + (window) => window.webContents.getURL() === authUrl, ); // Close all other windows that may have been opened during this time. @@ -175,12 +175,12 @@ function handleAuthComplete(authToken: string) { } function setOpenDeeplinkListeners(): void { - log.info("Setting deeplink listeners"); + log.info('Setting deeplink listeners'); // Windows and Linux fire a different event when deeplinks are opened // See docs: https://www.electronjs.org/docs/latest/tutorial/launch-app-from-url-in-another-app if (isWindows() || isLinux()) { - app.on("second-instance", (_event, commandLine) => { + app.on('second-instance', (_event, commandLine) => { // the commandLine is an array of strings in which the last element is the deep link url const url = commandLine.pop(); @@ -195,7 +195,7 @@ function setOpenDeeplinkListeners(): void { return; } - app.on("open-url", (_event, url) => { + app.on('open-url', (_event, url) => { handleDeeplink(url); }); } diff --git a/src/events.ts b/src/events.ts index b878add..b0934d3 100644 --- a/src/events.ts +++ b/src/events.ts @@ -6,12 +6,12 @@ * as that will break `./preload.ts` since we bundle only local files. */ export enum events { - CLOSE_CURRENT_WINDOW = "CLOSE_CURRENT_WINDOW", - AUTH_TOKEN_RECEIVED = "AUTH_TOKEN_RECEIVED", - OPEN_WINDOW = "OPEN_WINDOW", - OPEN_EXTERNAL_URL = "OPEN_EXTERNAL_URL", - LOGOUT = "LOGOUT", - SHOW_MESSAGE_BOX = "SHOW_MESSAGE_BOX", - ON_ENTER_FULLSCREEN = "ON_ENTER_FULLSCREEN", - ON_LEAVE_FULLSCREEN = "ON_LEAVE_FULLSCREEN", + CLOSE_CURRENT_WINDOW = 'CLOSE_CURRENT_WINDOW', + AUTH_TOKEN_RECEIVED = 'AUTH_TOKEN_RECEIVED', + OPEN_WINDOW = 'OPEN_WINDOW', + OPEN_EXTERNAL_URL = 'OPEN_EXTERNAL_URL', + LOGOUT = 'LOGOUT', + SHOW_MESSAGE_BOX = 'SHOW_MESSAGE_BOX', + ON_ENTER_FULLSCREEN = 'ON_ENTER_FULLSCREEN', + ON_LEAVE_FULLSCREEN = 'ON_LEAVE_FULLSCREEN', } diff --git a/src/ipc.ts b/src/ipc.ts index fcb21ac..3bda665 100644 --- a/src/ipc.ts +++ b/src/ipc.ts @@ -1,16 +1,16 @@ -import { BrowserWindow, dialog, ipcMain, shell } from "electron"; -import { createWindow } from "./createWindow"; -import { authPage, baseUrl } from "./constants"; -import { events } from "./events"; -import store from "./store"; -import isSupportedPage from "./isSupportedPage"; -import log from "electron-log/main"; +import { BrowserWindow, dialog, ipcMain, shell } from 'electron'; +import { createWindow } from './createWindow'; +import { authPage, baseUrl } from './constants'; +import { events } from './events'; +import store from './store'; +import isSupportedPage from './isSupportedPage'; +import log from 'electron-log/main'; function logEvent(event: events, params?: Record) { log.info( `Recieved IPC event: ${event}${ - params ? ` with params ${JSON.stringify(params)}` : "" - }` + params ? ` with params ${JSON.stringify(params)}` : '' + }`, ); } @@ -26,7 +26,7 @@ export function setIpcEventListeners(): void { ipcMain.on(events.CLOSE_CURRENT_WINDOW, (event) => { logEvent(events.CLOSE_CURRENT_WINDOW); const senderWindow = BrowserWindow.getAllWindows().find( - (win) => win.webContents.id === event.sender.id + (win) => win.webContents.id === event.sender.id, ); senderWindow.close(); }); @@ -34,7 +34,7 @@ export function setIpcEventListeners(): void { ipcMain.on(events.OPEN_WINDOW, (_, slug) => { logEvent(events.OPEN_WINDOW, { slug }); if (!isSupportedPage(slug)) { - throw new Error("Page not supported"); + throw new Error('Page not supported'); } const url = `${baseUrl}${slug}`; diff --git a/src/isSupportedPage.ts b/src/isSupportedPage.ts index 454af24..5a5f565 100644 --- a/src/isSupportedPage.ts +++ b/src/isSupportedPage.ts @@ -1,6 +1,6 @@ -import { desktopAppPrefix, workspaceUrlRegex } from "./constants"; +import { desktopAppPrefix, workspaceUrlRegex } from './constants'; -const supportedNonDesktopAppPages = ["logout"]; +const supportedNonDesktopAppPages = ['logout']; export default function isSupportedPage(page: string): boolean { return ( diff --git a/src/main.ts b/src/main.ts index c07b5f1..15ce02d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,14 +1,14 @@ -import { app, Menu, BrowserWindow } from "electron"; -import { createWindow } from "./createWindow"; -import { appName, macAppIcon } from "./constants"; -import { isMac } from "./platform"; -import { initSentry } from "./sentry"; -import { createApplicationMenu, createDockMenu } from "./createMenu"; -import checkForUpdates from "./checkForUpdates"; -import { initializeDeeplinking } from "./deeplink"; -import { setIpcEventListeners } from "./ipc"; -import store from "./store"; -import log from "electron-log/main"; +import { app, Menu, BrowserWindow } from 'electron'; +import { createWindow } from './createWindow'; +import { appName, macAppIcon } from './constants'; +import { isMac } from './platform'; +import { initSentry } from './sentry'; +import { createApplicationMenu, createDockMenu } from './createMenu'; +import checkForUpdates from './checkForUpdates'; +import { initializeDeeplinking } from './deeplink'; +import { setIpcEventListeners } from './ipc'; +import store from './store'; +import log from 'electron-log/main'; // Setup logging log.initialize({ preload: true }); @@ -22,8 +22,8 @@ log.info(`Args: ${process.argv}`); // Handles Squirrel (https://github.com/Squirrel/Squirrel.Windows) events on Windows. // This should run as early in the main process as possible. // See docs: https://github.com/electron-archive/grunt-electron-installer#handling-squirrel-events -if (require("electron-squirrel-startup")) { - log.info("electron-squirrel-startup returned true. Quitting the app"); +if (require('electron-squirrel-startup')) { + log.info('electron-squirrel-startup returned true. Quitting the app'); app.quit(); } @@ -40,7 +40,7 @@ const instanceLock = app.requestSingleInstanceLock(); // If it failed to obtain the lock, you can assume that another instance // of your application is already running with the lock and exit immediately. if (!instanceLock) { - log.info("Failed to acquire instance lock. Quitting the app."); + log.info('Failed to acquire instance lock. Quitting the app.'); app.quit(); } @@ -51,7 +51,7 @@ Menu.setApplicationMenu(createApplicationMenu()); // initialization and is ready to create browser windows. // Some APIs can only be used after this event occurs. app.whenReady().then(() => { - log.info("App Ready"); + log.info('App Ready'); // MacOS only APIs if (isMac()) { @@ -66,7 +66,7 @@ app.whenReady().then(() => { } checkForUpdates(); - app.on("activate", () => { + app.on('activate', () => { // On macOS it's common to re-create a window in the app when the // dock icon is clicked and there are no other windows open. if (BrowserWindow.getAllWindows().length === 0) { @@ -78,7 +78,7 @@ app.whenReady().then(() => { // Quit when all windows are closed, except on macOS. There, it's common // for applications and their menu bar to stay active until the user quits // explicitly with Cmd + Q. -app.on("window-all-closed", () => { +app.on('window-all-closed', () => { if (!isMac()) { app.quit(); } diff --git a/src/platform.ts b/src/platform.ts index def5c5d..262cb3c 100644 --- a/src/platform.ts +++ b/src/platform.ts @@ -1,9 +1,9 @@ export function isMac(): boolean { - return process.platform === "darwin"; + return process.platform === 'darwin'; } export function isWindows(): boolean { - return process.platform === "win32"; + return process.platform === 'win32'; } export function isLinux(): boolean { diff --git a/src/preload.ts b/src/preload.ts index 20fdb94..f82fa5b 100644 --- a/src/preload.ts +++ b/src/preload.ts @@ -1,5 +1,5 @@ -import { contextBridge, ipcRenderer, IpcRendererEvent } from "electron"; -import { events } from "./events"; +import { contextBridge, ipcRenderer, IpcRendererEvent } from 'electron'; +import { events } from './events'; function makeEventHandler(event: events) { return function (callback: () => void) { @@ -19,7 +19,7 @@ function parseArgument(name: string) { throw new Error(`Expected ${name} argument`); } - const [, value] = arg.split("="); + const [, value] = arg.split('='); return value; } @@ -27,7 +27,7 @@ function parseArgument(name: string) { const version = parseArgument('app-version'); const platform = parseArgument('platform'); -contextBridge.exposeInMainWorld("replitDesktop", { +contextBridge.exposeInMainWorld('replitDesktop', { closeCurrentWindow: () => ipcRenderer.send(events.CLOSE_CURRENT_WINDOW), openWindow: (replSlug: string) => ipcRenderer.send(events.OPEN_WINDOW, replSlug), diff --git a/src/sentry.ts b/src/sentry.ts index 79def21..d76b1fe 100644 --- a/src/sentry.ts +++ b/src/sentry.ts @@ -1,17 +1,17 @@ -import * as Sentry from "@sentry/electron"; -import { isProduction } from "./constants"; -import log from "electron-log/main"; +import * as Sentry from '@sentry/electron'; +import { isProduction } from './constants'; +import log from 'electron-log/main'; // DSN for "desktop" project in Sentry const dsn = - "https://d88a656213ca4c1892091cc955fd7783@o1151714.ingest.sentry.io/4505167464693760"; + 'https://d88a656213ca4c1892091cc955fd7783@o1151714.ingest.sentry.io/4505167464693760'; export function initSentry(): void { if (!isProduction) { return; } - log.info("Initializing Sentry"); + log.info('Initializing Sentry'); Sentry.init({ dsn, diff --git a/src/store.ts b/src/store.ts index 767936a..fd2b595 100644 --- a/src/store.ts +++ b/src/store.ts @@ -1,15 +1,15 @@ -import { Rectangle, screen } from "electron"; -import Store from "electron-store"; +import { Rectangle, screen } from 'electron'; +import Store from 'electron-store'; const keys = { - LAST_SEEN_BACKGROUND_COLOR: "LAST_SEEN_BACKGROUND_COLOR", - LAST_OPEN_REPL: "LAST_OPEN_REPL", - WINDOW_BOUNDS: "WINDOW_BOUNDS", - NUM_DISPLAYS: "NUM_DISPLAYS", + LAST_SEEN_BACKGROUND_COLOR: 'LAST_SEEN_BACKGROUND_COLOR', + LAST_OPEN_REPL: 'LAST_OPEN_REPL', + WINDOW_BOUNDS: 'WINDOW_BOUNDS', + NUM_DISPLAYS: 'NUM_DISPLAYS', }; // var(--background-root) value for dark mode -const defaultBgColor = "#0E1525"; +const defaultBgColor = '#0E1525'; function createStore() { const store = new Store(); @@ -21,7 +21,7 @@ function createStore() { getLastSeenBackgroundColor(): string { return store.get( keys.LAST_SEEN_BACKGROUND_COLOR, - defaultBgColor + defaultBgColor, ) as string; }, clearWindowBounds() { @@ -45,7 +45,7 @@ function createStore() { return store.get(keys.LAST_OPEN_REPL, null) as string | null; }, onLastOpenReplChange( - listener: (lastOpenRepl: string | null) => void + listener: (lastOpenRepl: string | null) => void, ): () => void { return store.onDidChange(keys.LAST_OPEN_REPL, listener); }, From 7d101d85a8933d31a4e350c9cc22b20fc380c0c6 Mon Sep 17 00:00:00 2001 From: sergeichestakov Date: Mon, 21 Aug 2023 14:46:12 -0400 Subject: [PATCH 2/4] Rename to dotfile, rm some custom rules --- eslintrc.js => .eslintrc.js | 13 ------------- 1 file changed, 13 deletions(-) rename eslintrc.js => .eslintrc.js (89%) diff --git a/eslintrc.js b/.eslintrc.js similarity index 89% rename from eslintrc.js rename to .eslintrc.js index 2e88054..455839d 100644 --- a/eslintrc.js +++ b/.eslintrc.js @@ -24,7 +24,6 @@ module.exports = { ], curly: ['error', 'all'], 'consistent-return': 'warn', - 'declare-theme-extension-at-module': 'error', eqeqeq: [ 'error', 'always', @@ -32,19 +31,7 @@ module.exports = { null: 'ignore', }, ], - 'flowtype/define-flow-type': 1, - 'flowtype/use-flow-type': 1, - 'import/no-anonymous-default-export': [ - 'error', - { - allowObject: true, - allowArray: true, - allowLiteral: true, - allowNew: true, - }, - ], 'no-console': 'error', - 'no-focus-in-set-timeout': 'error', 'no-lonely-if': 'error', 'no-multi-spaces': 'error', 'no-nested-ternary': 'error', From e8abe6ad754b461cb64ad3c68b609ccfd4b02e7a Mon Sep 17 00:00:00 2001 From: sergeichestakov Date: Mon, 21 Aug 2023 14:53:11 -0400 Subject: [PATCH 3/4] eslint fix --- .eslintrc.js | 8 -- package.json | 1 + pnpm-lock.yaml | 262 +++++++++++++++++++++++++++++++++++++++++++- src/createMenu.ts | 2 +- src/createWindow.ts | 14 +-- src/main.ts | 1 + 6 files changed, 270 insertions(+), 18 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 455839d..cb009fc 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -91,14 +91,6 @@ module.exports = { }, ], '@typescript-eslint/ban-types': 'warn', - '@typescript-eslint/consistent-type-imports': [ - 'error', - { - prefer: 'type-imports', - disallowTypeAnnotations: false, - fixStyle: 'separate-type-imports', - }, - ], '@typescript-eslint/no-empty-interface': 'off', '@typescript-eslint/no-empty-function': 'off', '@typescript-eslint/no-inferrable-types': 'off', diff --git a/package.json b/package.json index 6d31ff8..be2ab8f 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "esbuild": "^0.18.6", "eslint": "^7.32.0", "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.0", "npm-run-all": "^4.1.5", "prettier": "^3.0.2", "rimraf": "^5.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 786d2e5..f462657 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -66,6 +66,9 @@ devDependencies: eslint-config-prettier: specifier: ^9.0.0 version: 9.0.0(eslint@7.32.0) + eslint-plugin-prettier: + specifier: ^5.0.0 + version: 5.0.0(@types/eslint@8.44.2)(eslint-config-prettier@9.0.0)(eslint@7.32.0)(prettier@3.0.2) npm-run-all: specifier: ^4.1.5 version: 4.1.5 @@ -877,6 +880,18 @@ packages: dev: true optional: true + /@pkgr/utils@2.4.2: + resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + fast-glob: 3.3.1 + is-glob: 4.0.3 + open: 9.1.0 + picocolors: 1.0.0 + tslib: 2.6.2 + dev: true + /@sentry-internal/tracing@7.48.0: resolution: {integrity: sha512-MFAPDTrvCtfSm0/Zbmx7HA0Q5uCfRadOUpN8Y8rP1ndz+329h2kA3mZRCuC+3/aXL11zs2CHUhcAkGjwH2vogg==} engines: {node: '>=8'} @@ -1399,6 +1414,11 @@ packages: resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} dev: true + /big-integer@1.6.51: + resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} + engines: {node: '>=0.6'} + dev: true + /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: @@ -1427,6 +1447,13 @@ packages: dev: true optional: true + /bplist-parser@0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} + engines: {node: '>= 5.10.0'} + dependencies: + big-integer: 1.6.51 + dev: true + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -1467,6 +1494,13 @@ packages: ieee754: 1.2.1 dev: true + /bundle-name@3.0.0: + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} + engines: {node: '>=12'} + dependencies: + run-applescript: 5.0.0 + dev: true + /cacache@16.1.3: resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -1822,6 +1856,24 @@ packages: engines: {node: '>=0.10.0'} dev: false + /default-browser-id@3.0.0: + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} + engines: {node: '>=12'} + dependencies: + bplist-parser: 0.2.0 + untildify: 4.0.0 + dev: true + + /default-browser@4.0.0: + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} + engines: {node: '>=14.16'} + dependencies: + bundle-name: 3.0.0 + default-browser-id: 3.0.0 + execa: 7.2.0 + titleize: 3.0.0 + dev: true + /defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: @@ -1833,6 +1885,11 @@ packages: engines: {node: '>=10'} dev: true + /define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + dev: true + /define-properties@1.2.0: resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} engines: {node: '>= 0.4'} @@ -2205,6 +2262,28 @@ packages: eslint: 7.32.0 dev: true + /eslint-plugin-prettier@5.0.0(@types/eslint@8.44.2)(eslint-config-prettier@9.0.0)(eslint@7.32.0)(prettier@3.0.2): + resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + dependencies: + '@types/eslint': 8.44.2 + eslint: 7.32.0 + eslint-config-prettier: 9.0.0(eslint@7.32.0) + prettier: 3.0.2 + prettier-linter-helpers: 1.0.0 + synckit: 0.8.5 + dev: true + /eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -2346,6 +2425,36 @@ packages: strip-eof: 1.0.0 dev: true + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + /expand-tilde@2.0.2: resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} engines: {node: '>=0.10.0'} @@ -2370,6 +2479,10 @@ packages: /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + dev: true + /fast-glob@3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} engines: {node: '>=8.6.0'} @@ -2381,6 +2494,17 @@ packages: micromatch: 4.0.5 dev: true + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true @@ -2692,6 +2816,11 @@ packages: pump: 3.0.0 dev: true + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} @@ -2795,7 +2924,7 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.12 + fast-glob: 3.3.1 ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 @@ -2930,6 +3059,16 @@ packages: transitivePeerDependencies: - supports-color + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + dev: true + /humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} dependencies: @@ -3081,6 +3220,12 @@ packages: hasBin: true dev: true + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: true + /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -3098,6 +3243,14 @@ packages: is-extglob: 2.1.1 dev: true + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + dependencies: + is-docker: 3.0.0 + dev: true + /is-interactive@1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} @@ -3174,6 +3327,16 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -3539,6 +3702,10 @@ packages: engines: {node: '>= 0.10.0'} dev: true + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -3573,6 +3740,11 @@ packages: engines: {node: '>=8'} dev: false + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + /mimic-response@1.0.1: resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} engines: {node: '>=4'} @@ -3815,6 +3987,20 @@ packages: path-key: 2.0.1 dev: true + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + /npmlog@6.0.2: resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -3856,6 +4042,23 @@ packages: dependencies: mimic-fn: 2.1.0 + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + + /open@9.1.0: + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} + engines: {node: '>=14.16'} + dependencies: + default-browser: 4.0.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 2.2.0 + dev: true + /optionator@0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} engines: {node: '>= 0.8.0'} @@ -4060,6 +4263,11 @@ packages: engines: {node: '>=8'} dev: true + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true @@ -4095,6 +4303,10 @@ packages: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} dev: true + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -4143,6 +4355,13 @@ packages: engines: {node: '>= 0.8.0'} dev: true + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: 1.3.0 + dev: true + /prettier@3.0.2: resolution: {integrity: sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ==} engines: {node: '>=14'} @@ -4378,6 +4597,13 @@ packages: dev: true optional: true + /run-applescript@5.0.0: + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} + engines: {node: '>=12'} + dependencies: + execa: 5.1.1 + dev: true + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -4387,7 +4613,7 @@ packages: /rxjs@7.8.0: resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} dependencies: - tslib: 2.5.0 + tslib: 2.6.2 dev: true /safe-buffer@5.2.1: @@ -4676,6 +4902,16 @@ packages: engines: {node: '>=0.10.0'} dev: true + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -4720,6 +4956,14 @@ packages: engines: {node: '>= 0.4'} dev: true + /synckit@0.8.5: + resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/utils': 2.4.2 + tslib: 2.5.0 + dev: true + /table@6.8.1: resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} engines: {node: '>=10.0.0'} @@ -4764,6 +5008,11 @@ packages: dev: true optional: true + /titleize@3.0.0: + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} + engines: {node: '>=12'} + dev: true + /tmp-promise@3.0.3: resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} dependencies: @@ -4816,6 +5065,10 @@ packages: /tslib@2.5.0: resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: true + /tsutils@3.21.0(typescript@4.9.5): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -4911,6 +5164,11 @@ packages: dev: true optional: true + /untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + dev: true + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: diff --git a/src/createMenu.ts b/src/createMenu.ts index a93be75..d3b72d6 100644 --- a/src/createMenu.ts +++ b/src/createMenu.ts @@ -128,7 +128,7 @@ export function createApplicationMenu(): Menu { role: 'help', }); - const menu = Menu.buildFromTemplate(template as MenuItemConstructorOptions[]); + const menu = Menu.buildFromTemplate(template as Array); return menu; } diff --git a/src/createWindow.ts b/src/createWindow.ts index aa4422c..f3cf0bb 100644 --- a/src/createWindow.ts +++ b/src/createWindow.ts @@ -162,17 +162,17 @@ export function createWindow(props?: WindowProps): BrowserWindow { }; }); - window.webContents.on('did-navigate-in-page', (_event, url) => { - setLastOpenRepl(url, lastOpenRepl); + window.webContents.on('did-navigate-in-page', (_event, navigationUrl) => { + setLastOpenRepl(navigationUrl, lastOpenRepl); }); window.webContents.on('will-navigate', (event, navigationUrl) => { - const url = new URL(navigationUrl); + const u = new URL(navigationUrl); - const isReplit = url.origin === baseUrl; + const isReplit = u.origin === baseUrl; // Prevent navigation away from Replit or supported pages - if (!isReplit || !isSupportedPage(url.pathname)) { + if (!isReplit || !isSupportedPage(u.pathname)) { event.preventDefault(); shell.openExternal(navigationUrl); } @@ -190,8 +190,8 @@ export function createWindow(props?: WindowProps): BrowserWindow { window.setBounds(store.getWindowBounds()); window.on('close', async () => { - const backgroundColor = await getLastSeenBackgroundColor(window); - store.setLastSeenBackgroundColor(backgroundColor); + const bgColor = await getLastSeenBackgroundColor(window); + store.setLastSeenBackgroundColor(bgColor); store.setWindowBounds(window.getBounds()); disposeOnLastOpenReplChange(); }); diff --git a/src/main.ts b/src/main.ts index 15ce02d..c05c587 100644 --- a/src/main.ts +++ b/src/main.ts @@ -64,6 +64,7 @@ app.whenReady().then(() => { if (BrowserWindow.getAllWindows().length === 0) { createWindow({ url: store.getLastOpenRepl() }); } + checkForUpdates(); app.on('activate', () => { From e23b35fab92631977c26721c01d4ddd9775ace06 Mon Sep 17 00:00:00 2001 From: sergeichestakov Date: Mon, 21 Aug 2023 14:57:36 -0400 Subject: [PATCH 4/4] Remove old eslint config, fix path in lint command --- .eslintrc | 15 - .eslintrc.js | 8 +- package.json | 2 +- pnpm-lock.yaml | 928 ++++++++++++++++++++++------------------------ src/createMenu.ts | 4 +- 5 files changed, 462 insertions(+), 495 deletions(-) delete mode 100644 .eslintrc diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 0862bf9..0000000 --- a/.eslintrc +++ /dev/null @@ -1,15 +0,0 @@ -{ - "root": true, - "parser": "@typescript-eslint/parser", - "plugins": [ - "@typescript-eslint" - ], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended" - ], - "env": { - "node": true, - } -} diff --git a/.eslintrc.js b/.eslintrc.js index cb009fc..8d47a82 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,10 +1,16 @@ module.exports = { + root: true, env: { browser: false, es6: true, node: true, }, - extends: ['eslint:recommended', 'plugin:prettier/recommended'], + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:prettier/recommended', + ], parser: '@typescript-eslint/parser', parserOptions: { sourceType: 'module', diff --git a/package.json b/package.json index be2ab8f..1102e21 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "build": "rimraf dist && esbuild src/main.ts src/preload.ts --target=es2015 --platform=node --format=cjs --packages=external --minify --bundle --outdir=dist", "ts:check": "tsc --noEmit", "ts:watch": "tsc --noEmit -w", - "lint": "eslint -c .eslintrc --ext .ts ./src", + "lint": "eslint -c .eslintrc.js --ext .ts ./src", "ci": "npm-run-all --parallel build ts:check lint", "start": "pnpm build && electron-forge start", "start:local": "pnpm build && cross-env REPLIT_URL=http://localhost:3000 electron-forge start", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f462657..16ff490 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,19 +17,19 @@ dependencies: devDependencies: '@electron-forge/cli': specifier: ^6.1.0 - version: 6.1.1 + version: 6.1.0 '@electron-forge/maker-deb': specifier: ^6.0.5 - version: 6.1.1 + version: 6.0.5 '@electron-forge/maker-dmg': specifier: ^6.1.0 - version: 6.1.1 + version: 6.1.0 '@electron-forge/maker-squirrel': specifier: ^6.0.5 - version: 6.1.1 + version: 6.0.5 '@electron-forge/maker-zip': specifier: ^6.0.5 - version: 6.1.1 + version: 6.0.5 '@electron-forge/publisher-github': specifier: ^6.1.1 version: 6.1.1 @@ -53,7 +53,7 @@ devDependencies: version: 7.0.3 electron: specifier: ^24.0.0 - version: 24.1.1 + version: 24.0.0 electron-winstaller: specifier: ^5.1.0 version: 5.1.0 @@ -84,87 +84,89 @@ devDependencies: packages: + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: true + /@babel/code-frame@7.12.11: resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} dependencies: - '@babel/highlight': 7.18.6 + '@babel/highlight': 7.22.10 dev: true - /@babel/helper-validator-identifier@7.19.1: - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + /@babel/helper-validator-identifier@7.22.5: + resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/highlight@7.18.6: - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + /@babel/highlight@7.22.10: + resolution: {integrity: sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.19.1 + '@babel/helper-validator-identifier': 7.22.5 chalk: 2.4.2 js-tokens: 4.0.0 dev: true - /@electron-forge/cli@6.1.1: - resolution: {integrity: sha512-ufD9wKh35Mynj5MEKcWQKLpuIgxPvehwvykHRULi2ev8MWLCqxN4wda1Wy/cj57Uaeokf2rTbcGHGqbBX60bFQ==} + /@electron-forge/cli@6.1.0: + resolution: {integrity: sha512-rJ9vJkNq6INjIl50r3tV7iErnjSAQ+gB/Y15AjPADBuOixiPGTBOSTO53P0/GFV0UO4QBCP0terUSLZc2isKaw==} engines: {node: '>= 14.17.5'} hasBin: true dependencies: - '@electron-forge/core': 6.1.1 - '@electron-forge/shared-types': 6.1.1 + '@electron-forge/core': 6.1.0 + '@electron-forge/shared-types': 6.1.0 '@electron/get': 2.0.2 chalk: 4.1.2 commander: 4.1.1 debug: 4.3.4 fs-extra: 10.1.0 listr2: 5.0.8 - semver: 7.4.0 + semver: 7.5.4 transitivePeerDependencies: - - bluebird - encoding - enquirer - supports-color dev: true - /@electron-forge/core-utils@6.1.1: - resolution: {integrity: sha512-7Kt0o85UEzpYjWU2WQ3pVuSOnRIDfuFimCQ1bh9qym5NLrkDcIQx9sIsCFIFkWYkUY7oIuMIMOhrGA4tyWGl2w==} + /@electron-forge/core-utils@6.1.0: + resolution: {integrity: sha512-9Wl2dsU6gwSuoeDUoVw22cRSmURMF9KMYIs3fAmTJEjONcGcgCaZ1pDHxOD9OocV4wZ+AQfK8h+7BT8jKP6niQ==} engines: {node: '>= 14.17.5'} dependencies: - '@electron-forge/shared-types': 6.1.1 - '@electron/rebuild': 3.2.12 + '@electron-forge/shared-types': 6.1.0 + '@electron/rebuild': 3.2.13 '@malept/cross-spawn-promise': 2.0.0 chalk: 4.1.2 debug: 4.3.4 find-up: 5.0.0 fs-extra: 10.1.0 log-symbols: 4.1.0 - semver: 7.4.0 + semver: 7.5.4 yarn-or-npm: 3.0.1 transitivePeerDependencies: - - bluebird - enquirer - supports-color dev: true - /@electron-forge/core@6.1.1: - resolution: {integrity: sha512-Fh1rNY1eI2wqbFXJ8eRBsJDS6gxfElgVR4nhMY+I+MZs9ddw1MFHIWwoqYjGFJKUBd9xTXCk5lkf8TwCpb4Igg==} + /@electron-forge/core@6.1.0: + resolution: {integrity: sha512-i0R6D8EGLPYxb6CLKBDE5iv0ZU696TvkmsSI2nvkJV2psMvqlcukW7ll5wVm5KSyregqQToJ5wLuNhNukubjOA==} engines: {node: '>= 14.17.5'} dependencies: - '@electron-forge/core-utils': 6.1.1 - '@electron-forge/maker-base': 6.1.1 - '@electron-forge/plugin-base': 6.1.1 - '@electron-forge/publisher-base': 6.1.1 - '@electron-forge/shared-types': 6.1.1 - '@electron-forge/template-base': 6.1.1 - '@electron-forge/template-vite': 6.1.1 - '@electron-forge/template-webpack': 6.1.1 - '@electron-forge/template-webpack-typescript': 6.1.1 + '@electron-forge/core-utils': 6.1.0 + '@electron-forge/maker-base': 6.1.0 + '@electron-forge/plugin-base': 6.1.0 + '@electron-forge/publisher-base': 6.1.0 + '@electron-forge/shared-types': 6.1.0 + '@electron-forge/template-base': 6.1.0 + '@electron-forge/template-webpack': 6.1.0 + '@electron-forge/template-webpack-typescript': 6.1.0 '@electron/get': 2.0.2 - '@electron/rebuild': 3.2.12 + '@electron/rebuild': 3.2.13 '@malept/cross-spawn-promise': 2.0.0 chalk: 4.1.2 debug: 4.3.4 - electron-packager: 17.1.1 - fast-glob: 3.2.12 + electron-packager: 17.1.2 + fast-glob: 3.3.1 filenamify: 4.3.0 find-up: 5.0.0 fs-extra: 10.1.0 @@ -173,101 +175,115 @@ packages: listr2: 5.0.8 lodash: 4.17.21 log-symbols: 4.1.0 - node-fetch: 2.6.9 + node-fetch: 2.6.13 progress: 2.0.3 rechoir: 0.8.0 resolve-package: 1.0.1 - semver: 7.4.0 + semver: 7.5.4 source-map-support: 0.5.21 sudo-prompt: 9.2.1 username: 5.1.0 yarn-or-npm: 3.0.1 transitivePeerDependencies: - - bluebird - encoding - enquirer - supports-color dev: true - /@electron-forge/maker-base@6.1.1: - resolution: {integrity: sha512-qEW8vuSq6/r1rKh7JENK9yGmueymMzbm817GDk5usHia5o7otHYY4JMkdzZaKww56Ed/Ege2ch6LEYqYGTfl/Q==} + /@electron-forge/maker-base@6.0.5: + resolution: {integrity: sha512-m3xS/Gd2XlYUjXO4o8bxZEcwN9AulMDjuIzq68FRH5VB1vuESJKtVZjSa331IjaA+0aRXbSCa108FLy8g5Qlaw==} engines: {node: '>= 14.17.5'} dependencies: - '@electron-forge/shared-types': 6.1.1 + '@electron-forge/shared-types': 6.0.5 fs-extra: 10.1.0 which: 2.0.2 transitivePeerDependencies: - - bluebird - enquirer - supports-color dev: true - /@electron-forge/maker-deb@6.1.1: - resolution: {integrity: sha512-Qk/QMBwWP/D6Fx7+VU54xHec47R9CYg0TCaRtQ1KeBNFdJ3DpwCARr966/IJqEUxX7y8vv8Awc8HvKDPxbpIUA==} + /@electron-forge/maker-base@6.1.0: + resolution: {integrity: sha512-pNj/iVSU1NZTUtR5RiY5IyUj1+nHST/lcVmhsvu+3dpOFfcPx91+4E0nGeWMepL5mraFnZO7DQXKPd0/VJsr7w==} engines: {node: '>= 14.17.5'} dependencies: - '@electron-forge/maker-base': 6.1.1 - '@electron-forge/shared-types': 6.1.1 + '@electron-forge/shared-types': 6.1.0 + fs-extra: 10.1.0 + which: 2.0.2 + transitivePeerDependencies: + - enquirer + - supports-color + dev: true + + /@electron-forge/maker-deb@6.0.5: + resolution: {integrity: sha512-uaDxBeLhJcrySnPGPEZbGwJG7qeiBE05+rdkPpsfHzsTBYca1abQ2Ll66R5EmOrosIZv60OUt1eGyxOrWlo1+w==} + engines: {node: '>= 14.17.5'} + dependencies: + '@electron-forge/maker-base': 6.0.5 + '@electron-forge/shared-types': 6.0.5 optionalDependencies: - electron-installer-debian: 3.1.0 + electron-installer-debian: 3.2.0 transitivePeerDependencies: - - bluebird - enquirer - supports-color dev: true - /@electron-forge/maker-dmg@6.1.1: - resolution: {integrity: sha512-ko9ZkbXgsRUoRFVpfESVr7O68QmoIylOscoBHLxdESHy4FPI+C6BYxQrxIRdAR27vQmRmdVm6zVXRXmaQgLQBQ==} + /@electron-forge/maker-dmg@6.1.0: + resolution: {integrity: sha512-LEf3zk89HhDtoG8G7rYk9vSmRO5GB66IGXJqs1ds8cHpBn7wv+aT61v5wrh1xySPZRnbtdTK7Faok1Fu9xGnew==} engines: {node: '>= 14.17.5'} dependencies: - '@electron-forge/maker-base': 6.1.1 - '@electron-forge/shared-types': 6.1.1 + '@electron-forge/maker-base': 6.1.0 + '@electron-forge/shared-types': 6.1.0 fs-extra: 10.1.0 optionalDependencies: electron-installer-dmg: 4.0.0 transitivePeerDependencies: - - bluebird - enquirer - supports-color dev: true - /@electron-forge/maker-squirrel@6.1.1: - resolution: {integrity: sha512-YA7EY7He5FGGiwNlcOLSHwtrDFmq1XZ+0sKHy/xLu0Q8JZzo15WQ0vwJJEIAxL8KAtjwfhyV5VAWI6w0elr/jg==} + /@electron-forge/maker-squirrel@6.0.5: + resolution: {integrity: sha512-moP4OIytJlqxx3J7UCWrOv04tepjQIzK9RdzK4m9jfjPAxZtRObesFGXr/jLO18NHXk7fDcbYLf3sTIfaPU6jg==} engines: {node: '>= 14.17.5'} dependencies: - '@electron-forge/maker-base': 6.1.1 - '@electron-forge/shared-types': 6.1.1 + '@electron-forge/maker-base': 6.0.5 + '@electron-forge/shared-types': 6.0.5 fs-extra: 10.1.0 optionalDependencies: electron-winstaller: 5.1.0 transitivePeerDependencies: - - bluebird - enquirer - supports-color dev: true - /@electron-forge/maker-zip@6.1.1: - resolution: {integrity: sha512-3T2bIbYhKl3Z/VyeN+X7+7U+HhgaCtBCfDi0k/Ga7CoUpge2uJS/+yjfGJdwFk4TbWhS3sNkZV2mFMKhx/rlmQ==} + /@electron-forge/maker-zip@6.0.5: + resolution: {integrity: sha512-Yg256nGQUWT35EZyRIALpgtdM8WSvgZc0O4aA6Wy0S6ektaxyM2a+tO2ug/Vl+RgYA6oIeAADfkU2RxLiGnhbA==} engines: {node: '>= 14.17.5'} dependencies: - '@electron-forge/maker-base': 6.1.1 - '@electron-forge/shared-types': 6.1.1 + '@electron-forge/maker-base': 6.0.5 + '@electron-forge/shared-types': 6.0.5 cross-zip: 4.0.0 fs-extra: 10.1.0 - got: 11.8.6 transitivePeerDependencies: - - bluebird - enquirer - supports-color dev: true - /@electron-forge/plugin-base@6.1.1: - resolution: {integrity: sha512-xZWZxvD2fQYnkFREK+46FS59vMEsPFINwydtD24QGTBoRMOKXkfXv16yN4eexVi+02Hj6mihYY8zhxJi56OmxA==} + /@electron-forge/plugin-base@6.1.0: + resolution: {integrity: sha512-uf8G5J4OUKQ3m9SIhMCq/FWoT5tEu6iH1w0CZJIellDJidK3vGWv0eA+ZiY/7RsM8o5gHWTQNVWCkddBDvmDhA==} engines: {node: '>= 14.17.5'} dependencies: - '@electron-forge/shared-types': 6.1.1 + '@electron-forge/shared-types': 6.1.0 + transitivePeerDependencies: + - enquirer + - supports-color + dev: true + + /@electron-forge/publisher-base@6.1.0: + resolution: {integrity: sha512-+oajLUs9iNiuI729KqUqWO5x+9yEb7gwLy0TbwXX8GQYdXbgQeLptVoCzapcqjZ31G7IGFe/b7RmA+gfOdeYVA==} + engines: {node: '>= 14.17.5'} + dependencies: + '@electron-forge/shared-types': 6.1.0 transitivePeerDependencies: - - bluebird - enquirer - supports-color dev: true @@ -278,7 +294,6 @@ packages: dependencies: '@electron-forge/shared-types': 6.1.1 transitivePeerDependencies: - - bluebird - enquirer - supports-color dev: true @@ -297,75 +312,81 @@ packages: fs-extra: 10.1.0 mime-types: 2.1.35 transitivePeerDependencies: - - bluebird - encoding - enquirer - supports-color dev: true - /@electron-forge/shared-types@6.1.1: - resolution: {integrity: sha512-sFQQ2ldMq5mlNv4m7lZOZLf9aOn6MLNc8QVeTzOBQ+psxI3mVTDjb+/Lhs/jU8dm2igVfEqAmlj57Gi+C4u4Vw==} + /@electron-forge/shared-types@6.0.5: + resolution: {integrity: sha512-FrJI11afw/Cxk0JwgWyKg9aPoHOdmMi4JHTY6pnmi95MjarQ1d0SIqKJUzX7q2lXPUAxqPKA2Wmykg6F2CThlg==} engines: {node: '>= 14.17.5'} dependencies: - '@electron/rebuild': 3.2.12 - electron-packager: 17.1.1 + '@electron/rebuild': 3.2.13 + electron-packager: 17.1.2 listr2: 5.0.8 transitivePeerDependencies: - - bluebird - enquirer - supports-color dev: true - /@electron-forge/template-base@6.1.1: - resolution: {integrity: sha512-i4EZHXIFTo+nJXJHPS1k9PAnWKEKGC4kMUvIsyYKEu+NrOTcGLMT4FIRM9VYe1nGarQLd486/274S3b2SaCUuw==} + /@electron-forge/shared-types@6.1.0: + resolution: {integrity: sha512-XemHvhVv/wvPfs5wHCp1keNZ7nFsC4U88ySLLznVNYdbe5yORNZhCiZC/vd4RykGIh+37jNnKBLXqzwxygqM4g==} engines: {node: '>= 14.17.5'} dependencies: - '@electron-forge/shared-types': 6.1.1 - '@malept/cross-spawn-promise': 2.0.0 - debug: 4.3.4 - fs-extra: 10.1.0 - username: 5.1.0 + '@electron/rebuild': 3.2.13 + electron-packager: 17.1.2 + listr2: 5.0.8 transitivePeerDependencies: - - bluebird - enquirer - supports-color dev: true - /@electron-forge/template-vite@6.1.1: - resolution: {integrity: sha512-/6Sv7trkfjJR9LI7i83xmddVhi32pDlDE2kwlCkRgcoE2jGoW0fJU1BNfjNWy61Rd1wNzgrpfjMTPQlMnwHb4g==} - engines: {node: ^14.18.0 || >=16.0.0} + /@electron-forge/shared-types@6.1.1: + resolution: {integrity: sha512-sFQQ2ldMq5mlNv4m7lZOZLf9aOn6MLNc8QVeTzOBQ+psxI3mVTDjb+/Lhs/jU8dm2igVfEqAmlj57Gi+C4u4Vw==} + engines: {node: '>= 14.17.5'} dependencies: - '@electron-forge/shared-types': 6.1.1 - '@electron-forge/template-base': 6.1.1 + '@electron/rebuild': 3.2.13 + electron-packager: 17.1.2 + listr2: 5.0.8 + transitivePeerDependencies: + - enquirer + - supports-color + dev: true + + /@electron-forge/template-base@6.1.0: + resolution: {integrity: sha512-6BRuseExGSRTTpmb5NlIMEOLVf0+zHoXCJ3SfxvJ8hgEGQAnQTWNDA8x65VB6+UOlk5quOwKf99qJirIz4QEPg==} + engines: {node: '>= 14.17.5'} + dependencies: + '@electron-forge/shared-types': 6.1.0 + '@malept/cross-spawn-promise': 2.0.0 + debug: 4.3.4 fs-extra: 10.1.0 + username: 5.1.0 transitivePeerDependencies: - - bluebird - enquirer - supports-color dev: true - /@electron-forge/template-webpack-typescript@6.1.1: - resolution: {integrity: sha512-Ck7EgqoqfUL4r4NCioTsQT1/EFNCUqnsNd71MboU1RUvRbcrqpYvkoKk99+9QvxBrljMQp935gTieY7HADWQ9A==} + /@electron-forge/template-webpack-typescript@6.1.0: + resolution: {integrity: sha512-sOcY5tpBIYlpbsxiUuPvNwsF3pFtKQirAYl1uaK8UxZL30pSHOoDgf2e4c5hENIvSJZgk6LP8ZSWymJwqYa6nw==} engines: {node: '>= 14.17.5'} dependencies: - '@electron-forge/shared-types': 6.1.1 - '@electron-forge/template-base': 6.1.1 + '@electron-forge/shared-types': 6.1.0 + '@electron-forge/template-base': 6.1.0 fs-extra: 10.1.0 transitivePeerDependencies: - - bluebird - enquirer - supports-color dev: true - /@electron-forge/template-webpack@6.1.1: - resolution: {integrity: sha512-M3hTEF3iV6VYufassMilautoOYTLbqD06U1u3B6MDZVn74xAzprIZ+5EgrvQR33N+E3PyDpkgyMh+FJtWCo0/A==} + /@electron-forge/template-webpack@6.1.0: + resolution: {integrity: sha512-NdE7SeE3+lArVFTMjAPsTUeH7T1SX25fm6kueXzT7N7klVSJo98/tIg1tyhrBQHoeNRqrq9c5WfNXb4BaGU9vw==} engines: {node: '>= 14.17.5'} dependencies: - '@electron-forge/shared-types': 6.1.1 - '@electron-forge/template-base': 6.1.1 + '@electron-forge/shared-types': 6.1.0 + '@electron-forge/template-base': 6.1.0 fs-extra: 10.1.0 transitivePeerDependencies: - - bluebird - enquirer - supports-color dev: true @@ -390,7 +411,7 @@ packages: fs-extra: 8.1.0 got: 11.8.6 progress: 2.0.3 - semver: 6.3.0 + semver: 6.3.1 sumchecker: 3.0.1 optionalDependencies: global-agent: 3.0.0 @@ -398,8 +419,8 @@ packages: - supports-color dev: true - /@electron/notarize@1.2.3: - resolution: {integrity: sha512-9oRzT56rKh5bspk3KpAVF8lPKHYQrBnRwcgiOeR0hdilVEQmszDaAu0IPCPrwwzJN0ugNs0rRboTreHMt/6mBQ==} + /@electron/notarize@1.2.4: + resolution: {integrity: sha512-W5GQhJEosFNafewnS28d3bpQ37/s91CDWqxVchHfmv2dQSTWpOzNlUVQwYzC1ay5bChRV/A9BTL68yj0Pa+TSg==} engines: {node: '>= 10.0.0'} dependencies: debug: 4.3.4 @@ -408,8 +429,8 @@ packages: - supports-color dev: true - /@electron/osx-sign@1.0.4: - resolution: {integrity: sha512-xfhdEcIOfAZg7scZ9RQPya1G1lWo8/zMCwUXAulq0SfY7ONIW+b9qGyKdMyuMctNYwllrIS+vmxfijSfjeh97g==} + /@electron/osx-sign@1.0.5: + resolution: {integrity: sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==} engines: {node: '>=12.0.0'} hasBin: true dependencies: @@ -418,36 +439,35 @@ packages: fs-extra: 10.1.0 isbinaryfile: 4.0.10 minimist: 1.2.8 - plist: 3.0.6 + plist: 3.1.0 transitivePeerDependencies: - supports-color dev: true - /@electron/rebuild@3.2.12: - resolution: {integrity: sha512-2P9TpygstHQ13LtCAK2N2XB9D1lQq5sZ73dv3YXwKoJ78/XG8Gjbm+44vWtjNiEtj98a3dVZc8Pw3YVS8Iu0KA==} + /@electron/rebuild@3.2.13: + resolution: {integrity: sha512-DH9Ol4JCnHDYVOD0fKWq+Qqbn/0WU1O6QR0mIpMXEVU4YFM4PlaqNC9K36mGShNBxxGFotZCMDrB1wl/iHM12g==} engines: {node: '>=12.13.0'} hasBin: true dependencies: '@malept/cross-spawn-promise': 2.0.0 chalk: 4.1.2 debug: 4.3.4 - detect-libc: 2.0.1 + detect-libc: 2.0.2 fs-extra: 10.1.0 got: 11.8.6 - node-abi: 3.35.0 + node-abi: 3.47.0 node-api-version: 0.1.4 - node-gyp: 9.3.1 + node-gyp: 9.4.0 ora: 5.4.1 - semver: 7.4.0 - tar: 6.1.13 - yargs: 17.7.1 + semver: 7.5.4 + tar: 6.1.15 + yargs: 17.7.2 transitivePeerDependencies: - - bluebird - supports-color dev: true - /@electron/universal@1.3.4: - resolution: {integrity: sha512-BdhBgm2ZBnYyYRLRgOjM5VHkyFItsbggJ0MHycOjKWdFGYwK97ZFXH54dTvUWEfha81vfvwr5On6XBjt99uDcg==} + /@electron/universal@1.4.1: + resolution: {integrity: sha512-lE/U3UNw1YHuowNbTmKNs9UlS3En3cPgwM5MI+agIgr/B1hSze9NdOP0qn7boZaI9Lph8IDv3/24g9IxnJP7aQ==} engines: {node: '>=8.6'} dependencies: '@electron/asar': 3.2.4 @@ -456,7 +476,7 @@ packages: dir-compare: 3.3.0 fs-extra: 9.1.0 minimatch: 3.1.2 - plist: 3.0.6 + plist: 3.1.0 transitivePeerDependencies: - supports-color dev: true @@ -666,7 +686,7 @@ packages: ajv: 6.12.6 debug: 4.3.4 espree: 7.3.1 - globals: 13.20.0 + globals: 13.21.0 ignore: 4.0.6 import-fresh: 3.3.0 js-yaml: 3.14.1 @@ -676,10 +696,6 @@ packages: - supports-color dev: true - /@gar/promisify@1.1.3: - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - dev: true - /@humanwhocodes/config-array@0.5.0: resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} engines: {node: '>=10.10.0'} @@ -742,21 +758,11 @@ packages: fastq: 1.15.0 dev: true - /@npmcli/fs@2.1.2: - resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /@npmcli/fs@3.1.0: + resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - '@gar/promisify': 1.1.3 - semver: 7.4.0 - dev: true - - /@npmcli/move-file@2.0.1: - resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This functionality has been moved to @npmcli/fs - dependencies: - mkdirp: 1.0.4 - rimraf: 3.0.2 + semver: 7.5.4 dev: true /@octokit/auth-token@2.5.0: @@ -850,7 +856,7 @@ packages: '@octokit/request-error': 2.1.0 '@octokit/types': 6.41.0 is-plain-object: 5.0.0 - node-fetch: 2.6.9 + node-fetch: 2.6.13 universal-user-agent: 6.0.0 transitivePeerDependencies: - encoding @@ -932,7 +938,7 @@ packages: '@sentry/types': 7.48.0 '@sentry/utils': 7.48.0 deepmerge: 4.3.0 - tslib: 2.5.0 + tslib: 2.6.2 transitivePeerDependencies: - supports-color dev: false @@ -1005,7 +1011,7 @@ packages: resolution: {integrity: sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg==} dependencies: '@types/estree': 1.0.1 - '@types/json-schema': 7.0.11 + '@types/json-schema': 7.0.12 dev: true /@types/estree@1.0.1: @@ -1033,8 +1039,8 @@ packages: resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} dev: true - /@types/json-schema@7.0.11: - resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + /@types/json-schema@7.0.12: + resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true /@types/keyv@3.1.4: @@ -1085,7 +1091,7 @@ packages: functional-red-black-tree: 1.0.1 ignore: 5.2.4 regexpp: 3.2.0 - semver: 7.4.0 + semver: 7.5.4 tsutils: 3.21.0(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: @@ -1098,7 +1104,7 @@ packages: peerDependencies: eslint: '*' dependencies: - '@types/json-schema': 7.0.11 + '@types/json-schema': 7.0.12 '@typescript-eslint/scope-manager': 4.33.0 '@typescript-eslint/types': 4.33.0 '@typescript-eslint/typescript-estree': 4.33.0(typescript@4.9.5) @@ -1157,7 +1163,7 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.4.0 + semver: 7.5.4 tsutils: 3.21.0(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: @@ -1172,6 +1178,11 @@ packages: eslint-visitor-keys: 2.1.0 dev: true + /@xmldom/xmldom@0.8.10: + resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + engines: {node: '>=10.0.0'} + dev: true + /abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} dev: true @@ -1198,15 +1209,11 @@ packages: transitivePeerDependencies: - supports-color - /agentkeepalive@4.3.0: - resolution: {integrity: sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==} + /agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} engines: {node: '>= 8.0.0'} dependencies: - debug: 4.3.4 - depd: 2.0.0 humanize-ms: 1.2.1 - transitivePeerDependencies: - - supports-color dev: true /aggregate-error@3.1.0: @@ -1345,6 +1352,18 @@ packages: engines: {node: '>=8'} dev: true + /arraybuffer.prototype.slice@1.0.1: + resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.0 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + /arrify@3.0.0: resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==} engines: {node: '>=12'} @@ -1501,30 +1520,22 @@ packages: run-applescript: 5.0.0 dev: true - /cacache@16.1.3: - resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /cacache@17.1.4: + resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - '@npmcli/fs': 2.1.2 - '@npmcli/move-file': 2.0.1 - chownr: 2.0.0 - fs-minipass: 2.1.0 - glob: 8.1.0 - infer-owner: 1.0.4 + '@npmcli/fs': 3.1.0 + fs-minipass: 3.0.3 + glob: 10.3.3 lru-cache: 7.18.3 - minipass: 3.3.6 + minipass: 7.0.3 minipass-collect: 1.0.2 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 - mkdirp: 1.0.4 p-map: 4.0.0 - promise-inflight: 1.0.1 - rimraf: 3.0.2 - ssri: 9.0.1 - tar: 6.1.13 - unique-filename: 2.0.1 - transitivePeerDependencies: - - bluebird + ssri: 10.0.5 + tar: 6.1.15 + unique-filename: 3.0.0 dev: true /cacheable-lookup@5.0.4: @@ -1532,14 +1543,14 @@ packages: engines: {node: '>=10.6.0'} dev: true - /cacheable-request@7.0.2: - resolution: {integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==} + /cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} engines: {node: '>=8'} dependencies: clone-response: 1.0.3 get-stream: 5.2.0 http-cache-semantics: 4.1.1 - keyv: 4.5.2 + keyv: 4.5.3 lowercase-keys: 2.0.0 normalize-url: 6.1.0 responselike: 2.0.1 @@ -1549,7 +1560,7 @@ packages: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 dev: true /callsites@3.1.0: @@ -1557,12 +1568,6 @@ packages: engines: {node: '>=6'} dev: true - /camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - dev: true - optional: true - /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -1608,8 +1613,8 @@ packages: restore-cursor: 3.1.0 dev: true - /cli-spinners@2.8.0: - resolution: {integrity: sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ==} + /cli-spinners@2.9.0: + resolution: {integrity: sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==} engines: {node: '>=6'} dev: true @@ -1621,12 +1626,12 @@ packages: string-width: 4.2.3 dev: true - /cliui@6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + /cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 + wrap-ansi: 7.0.0 dev: true optional: true @@ -1681,8 +1686,8 @@ packages: hasBin: true dev: true - /colorette@2.0.19: - resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true /commander@4.1.1: @@ -1717,7 +1722,7 @@ packages: json-schema-typed: 7.0.3 onetime: 5.1.2 pkg-up: 3.1.0 - semver: 7.4.0 + semver: 7.5.4 dev: false /console-control-strings@1.1.0: @@ -1745,8 +1750,8 @@ packages: dependencies: arrify: 3.0.0 cp-file: 9.1.0 - globby: 13.1.4 - junk: 4.0.0 + globby: 13.2.2 + junk: 4.0.1 micromatch: 4.0.5 nested-error-stacks: 2.1.1 p-filter: 3.0.0 @@ -1776,7 +1781,7 @@ packages: dependencies: nice-try: 1.0.5 path-key: 2.0.1 - semver: 5.7.1 + semver: 5.7.2 shebang-command: 1.2.0 which: 1.3.1 dev: true @@ -1812,17 +1817,6 @@ packages: dependencies: ms: 2.0.0 - /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.3 - dev: true - /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -1834,12 +1828,6 @@ packages: dependencies: ms: 2.1.2 - /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: true - optional: true - /decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} @@ -1902,17 +1890,12 @@ packages: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} dev: true - /depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - dev: true - /deprecation@2.3.1: resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} dev: true - /detect-libc@2.0.1: - resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} + /detect-libc@2.0.2: + resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} engines: {node: '>=8'} dev: true @@ -1973,7 +1956,7 @@ packages: glob: 7.2.3 lodash: 4.17.21 parse-author: 2.0.0 - semver: 7.4.0 + semver: 7.5.4 tmp-promise: 3.0.3 optionalDependencies: '@types/fs-extra': 9.0.13 @@ -1982,8 +1965,8 @@ packages: dev: true optional: true - /electron-installer-debian@3.1.0: - resolution: {integrity: sha512-k6KChvx0Fw8XTlCqwwbBfh19yGQaKjGdbugokmr1IpzINOm4QFyACKMTHAYFHW5LCBUZQShZD96hwxUZ+8Kx+w==} + /electron-installer-debian@3.2.0: + resolution: {integrity: sha512-58ZrlJ1HQY80VucsEIG9tQ//HrTlG6sfofA3nRGr6TmkX661uJyu4cMPPh6kXW+aHdq/7+q25KyQhDrXvRL7jw==} engines: {node: '>= 10.0.0'} os: [darwin, linux] hasBin: true @@ -1995,8 +1978,8 @@ packages: fs-extra: 9.1.0 get-folder-size: 2.0.1 lodash: 4.17.21 - word-wrap: 1.2.3 - yargs: 15.4.1 + word-wrap: 1.2.5 + yargs: 16.2.0 transitivePeerDependencies: - supports-color dev: true @@ -2022,29 +2005,29 @@ packages: engines: {electron: '>= 13', node: '>= 14'} dev: false - /electron-packager@17.1.1: - resolution: {integrity: sha512-r1NDtlajsq7gf2EXgjRfblCVPquvD2yeg+6XGErOKblvxOpDi0iulZLVhgYDP4AEF1P5/HgbX/vwjlkEv7PEIQ==} + /electron-packager@17.1.2: + resolution: {integrity: sha512-XofXdikjYI7MVBcnXeoOvRR+yFFFHOLs3J7PF5KYQweigtgLshcH4W660PsvHr4lYZ03JBpLyEcUB8DzHZ+BNw==} engines: {node: '>= 14.17.5'} hasBin: true dependencies: '@electron/asar': 3.2.4 '@electron/get': 2.0.2 - '@electron/notarize': 1.2.3 - '@electron/osx-sign': 1.0.4 - '@electron/universal': 1.3.4 + '@electron/notarize': 1.2.4 + '@electron/osx-sign': 1.0.5 + '@electron/universal': 1.4.1 cross-spawn-windows-exe: 1.2.0 debug: 4.3.4 extract-zip: 2.0.1 filenamify: 4.3.0 - fs-extra: 10.1.0 - galactus: 0.2.1 + fs-extra: 11.1.1 + galactus: 1.0.0 get-package-info: 1.0.0 junk: 3.1.0 parse-author: 2.0.0 - plist: 3.0.6 - rcedit: 3.0.1 - resolve: 1.22.2 - semver: 7.4.0 + plist: 3.1.0 + rcedit: 3.1.0 + resolve: 1.22.4 + semver: 7.5.4 yargs-parser: 21.1.1 transitivePeerDependencies: - supports-color @@ -2079,8 +2062,8 @@ packages: - supports-color dev: true - /electron@24.1.1: - resolution: {integrity: sha512-ymjUMe6Pvh9ytpM4lOvr+Qxd6NG5AELRtR6tw54bK3FXfKtTTKKAtZw/NbwHwkRAlWu8FNAGOuvCoap6/bm9LQ==} + /electron@24.0.0: + resolution: {integrity: sha512-QmL8L53fQ+xOAp8m2mSGNewhDvJqQttCxrcesf0cqndKQDsIq4QvR35wGJqHg7MyPQKcBErLhZj9QvRheO5qnA==} engines: {node: '>= 12.20.55'} hasBin: true requiresBuild: true @@ -2119,11 +2102,12 @@ packages: once: 1.4.0 dev: true - /enquirer@2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + /enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.3 + strip-ansi: 6.0.1 dev: true /env-paths@2.2.1: @@ -2140,17 +2124,18 @@ packages: is-arrayish: 0.2.1 dev: true - /es-abstract@1.21.2: - resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} + /es-abstract@1.22.1: + resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.1 available-typed-arrays: 1.0.5 call-bind: 1.0.2 es-set-tostringtag: 2.0.1 es-to-primitive: 1.2.1 function.prototype.name: 1.1.5 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 get-symbol-description: 1.0.0 globalthis: 1.0.3 gopd: 1.0.1 @@ -2165,26 +2150,30 @@ packages: is-regex: 1.1.4 is-shared-array-buffer: 1.0.2 is-string: 1.0.7 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 is-weakref: 1.0.2 object-inspect: 1.12.3 object-keys: 1.1.1 object.assign: 4.1.4 regexp.prototype.flags: 1.5.0 + safe-array-concat: 1.0.0 safe-regex-test: 1.0.0 string.prototype.trim: 1.2.7 string.prototype.trimend: 1.0.6 string.prototype.trimstart: 1.0.6 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 typed-array-length: 1.0.4 unbox-primitive: 1.0.2 - which-typed-array: 1.1.9 + which-typed-array: 1.1.11 dev: true /es-set-tostringtag@2.0.1: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 has: 1.0.3 has-tostringtag: 1.0.0 dev: true @@ -2332,7 +2321,7 @@ packages: cross-spawn: 7.0.3 debug: 4.3.4 doctrine: 3.0.0 - enquirer: 2.3.6 + enquirer: 2.4.1 escape-string-regexp: 4.0.0 eslint-scope: 5.1.1 eslint-utils: 2.1.0 @@ -2344,7 +2333,7 @@ packages: file-entry-cache: 6.0.1 functional-red-black-tree: 1.0.1 glob-parent: 5.1.2 - globals: 13.20.0 + globals: 13.21.0 ignore: 4.0.6 import-fresh: 3.3.0 imurmurhash: 0.1.4 @@ -2355,15 +2344,15 @@ packages: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.1 + optionator: 0.9.3 progress: 2.0.3 regexpp: 3.2.0 - semver: 7.4.0 + semver: 7.5.4 strip-ansi: 6.0.1 strip-json-comments: 3.1.1 table: 6.8.1 text-table: 0.2.0 - v8-compile-cache: 2.3.0 + v8-compile-cache: 2.4.0 transitivePeerDependencies: - supports-color dev: true @@ -2462,6 +2451,10 @@ packages: homedir-polyfill: 1.0.3 dev: true + /exponential-backoff@3.1.1: + resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} + dev: true + /extract-zip@2.0.1: resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} engines: {node: '>= 10.17.0'} @@ -2483,17 +2476,6 @@ packages: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} dev: true - /fast-glob@3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - /fast-glob@3.3.1: resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} @@ -2595,12 +2577,12 @@ packages: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} dev: true - /flora-colossus@1.0.1: - resolution: {integrity: sha512-d+9na7t9FyH8gBJoNDSi28mE4NgQVGGvxQ4aHtFRetjyh5SXjuus+V5EZaxFmFdXVemSOrx0lsgEl/ZMjnOWJA==} - engines: {node: '>= 6.0.0'} + /flora-colossus@2.0.0: + resolution: {integrity: sha512-dz4HxH6pOvbUzZpZ/yXhafjbR2I8cenK5xL0KtBFb7U2ADsR+OwXifnxZjij/pZWF775uSCMzWVd+jDik2H2IA==} + engines: {node: '>= 12'} dependencies: debug: 4.3.4 - fs-extra: 7.0.1 + fs-extra: 10.1.0 transitivePeerDependencies: - supports-color dev: true @@ -2623,7 +2605,7 @@ packages: engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 - signal-exit: 4.0.2 + signal-exit: 4.1.0 dev: true /fs-extra@10.1.0: @@ -2635,12 +2617,13 @@ packages: universalify: 2.0.0 dev: true - /fs-extra@4.0.3: - resolution: {integrity: sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==} + /fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} dependencies: graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 + jsonfile: 6.1.0 + universalify: 2.0.0 dev: true /fs-extra@7.0.1: @@ -2678,6 +2661,13 @@ packages: minipass: 3.3.6 dev: true + /fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + minipass: 7.0.3 + dev: true + /fs-temp@1.2.1: resolution: {integrity: sha512-okTwLB7/Qsq82G6iN5zZJFsOfZtx2/pqrA7Hk/9fvy+c+eJS9CvgGXT2uNxwnI14BDY9L/jQPkaBgSvlKfSW9w==} dependencies: @@ -2707,7 +2697,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 functions-have-names: 1.2.3 dev: true @@ -2719,12 +2709,13 @@ packages: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true - /galactus@0.2.1: - resolution: {integrity: sha512-mDc8EQJKtxjp9PMYS3PbpjjbX3oXhBTxoGaPahw620XZBIHJ4+nvw5KN/tRtmmSDR9dypstGNvqQ3C29QGoGHQ==} + /galactus@1.0.0: + resolution: {integrity: sha512-R1fam6D4CyKQGNlvJne4dkNF+PvUUl7TAJInvTGa9fti9qAv95quQz29GXapA4d8Ec266mJJxFVh82M4GIIGDQ==} + engines: {node: '>= 12'} dependencies: - debug: 3.2.7 - flora-colossus: 1.0.1 - fs-extra: 4.0.3 + debug: 4.3.4 + flora-colossus: 2.0.0 + fs-extra: 10.1.0 transitivePeerDependencies: - supports-color dev: true @@ -2782,11 +2773,12 @@ packages: global-modules: 1.0.0 dev: true - /get-intrinsic@1.2.0: - resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} dependencies: function-bind: 1.1.1 has: 1.0.3 + has-proto: 1.0.1 has-symbols: 1.0.3 dev: true @@ -2826,7 +2818,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 dev: true /glob-parent@5.1.2: @@ -2836,16 +2828,16 @@ packages: is-glob: 4.0.3 dev: true - /glob@10.3.0: - resolution: {integrity: sha512-AQ1/SB9HH0yCx1jXAT4vmCbTOPe5RQ+kCurjbel5xSCGhebumUv+GJZfa1rEqor3XIViqwSEmlkZCQD43RWrBg==} + /glob@10.3.3: + resolution: {integrity: sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: foreground-child: 3.1.1 - jackspeak: 2.2.1 - minimatch: 9.0.1 - minipass: 6.0.2 - path-scurry: 1.9.2 + jackspeak: 2.3.0 + minimatch: 9.0.3 + minipass: 7.0.3 + path-scurry: 1.10.1 dev: true /glob@7.2.3: @@ -2859,17 +2851,6 @@ packages: path-is-absolute: 1.0.1 dev: true - /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - dev: true - /global-agent@3.0.0: resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} engines: {node: '>=10.0'} @@ -2879,7 +2860,7 @@ packages: es6-error: 4.1.1 matcher: 3.0.0 roarr: 2.15.4 - semver: 7.4.0 + semver: 7.5.4 serialize-error: 7.0.1 dev: true optional: true @@ -2904,8 +2885,8 @@ packages: which: 1.3.1 dev: true - /globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + /globals@13.21.0: + resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -2930,12 +2911,12 @@ packages: slash: 3.0.0 dev: true - /globby@13.1.4: - resolution: {integrity: sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==} + /globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 - fast-glob: 3.2.12 + fast-glob: 3.3.1 ignore: 5.2.4 merge2: 1.4.1 slash: 4.0.0 @@ -2944,7 +2925,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 dev: true /got@11.8.6: @@ -2956,7 +2937,7 @@ packages: '@types/cacheable-request': 6.0.3 '@types/responselike': 1.0.0 cacheable-lookup: 5.0.4 - cacheable-request: 7.0.2 + cacheable-request: 7.0.4 decompress-response: 6.0.0 http2-wrapper: 1.0.3 lowercase-keys: 2.0.0 @@ -2985,7 +2966,7 @@ packages: /has-property-descriptors@1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 dev: true /has-proto@1.0.1: @@ -3133,10 +3114,6 @@ packages: engines: {node: '>=12'} dev: true - /infer-owner@1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} - dev: true - /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: @@ -3156,7 +3133,7 @@ packages: resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 has: 1.0.3 side-channel: 1.0.4 dev: true @@ -3174,8 +3151,8 @@ packages: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 - is-typed-array: 1.1.10 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 dev: true /is-arrayish@0.2.1: @@ -3201,8 +3178,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /is-core-module@2.12.0: - resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==} + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} dependencies: has: 1.0.3 dev: true @@ -3351,15 +3328,11 @@ packages: has-symbols: 1.0.3 dev: true - /is-typed-array@1.1.10: - resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 + which-typed-array: 1.1.11 dev: true /is-unicode-supported@0.1.0: @@ -3385,6 +3358,10 @@ packages: is-docker: 2.2.1 dev: true + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + /isbinaryfile@4.0.10: resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} engines: {node: '>= 8.0.0'} @@ -3394,8 +3371,8 @@ packages: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true - /jackspeak@2.2.1: - resolution: {integrity: sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==} + /jackspeak@2.3.0: + resolution: {integrity: sha512-uKmsITSsF4rUWQHzqaRUuyAir3fZfW3f202Ee34lz/gZCi970CPZwyQXLGNgWJvvZbvFyzeyGq0+4fcG/mBKZg==} engines: {node: '>=14'} dependencies: '@isaacs/cliui': 8.0.2 @@ -3468,13 +3445,13 @@ packages: engines: {node: '>=8'} dev: true - /junk@4.0.0: - resolution: {integrity: sha512-ojtSU++zLJ3jQG9bAYjg94w+/DOJtRyD7nPaerMFrBhmdVmiV5/exYH5t4uHga4G/95nT6hr1OJoKIFbYbrW5w==} + /junk@4.0.1: + resolution: {integrity: sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==} engines: {node: '>=12.20'} dev: true - /keyv@4.5.2: - resolution: {integrity: sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==} + /keyv@4.5.3: + resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==} dependencies: json-buffer: 3.0.1 dev: true @@ -3497,11 +3474,11 @@ packages: optional: true dependencies: cli-truncate: 2.1.0 - colorette: 2.0.19 + colorette: 2.0.20 log-update: 4.0.0 p-map: 4.0.0 rfdc: 1.3.0 - rxjs: 7.8.0 + rxjs: 7.8.1 through: 2.3.8 wrap-ansi: 7.0.0 dev: true @@ -3612,6 +3589,11 @@ packages: engines: {node: '>=8'} dev: true + /lru-cache@10.0.1: + resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} + engines: {node: 14 || >=16.14} + dev: true + /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -3623,11 +3605,6 @@ packages: engines: {node: '>=12'} dev: true - /lru-cache@9.1.2: - resolution: {integrity: sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ==} - engines: {node: 14 || >=16.14} - dev: true - /lru_map@0.3.3: resolution: {integrity: sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==} dev: false @@ -3645,31 +3622,29 @@ packages: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} dependencies: - semver: 6.3.0 + semver: 6.3.1 dev: true - /make-fetch-happen@10.2.1: - resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /make-fetch-happen@11.1.1: + resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - agentkeepalive: 4.3.0 - cacache: 16.1.3 + agentkeepalive: 4.5.0 + cacache: 17.1.4 http-cache-semantics: 4.1.1 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 is-lambda: 1.0.1 lru-cache: 7.18.3 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-fetch: 2.1.2 + minipass: 5.0.0 + minipass-fetch: 3.0.4 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 negotiator: 0.6.3 promise-retry: 2.0.1 socks-proxy-agent: 7.0.0 - ssri: 9.0.1 + ssri: 10.0.5 transitivePeerDependencies: - - bluebird - supports-color dev: true @@ -3761,15 +3736,8 @@ packages: brace-expansion: 1.1.11 dev: true - /minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - dev: true - - /minimatch@9.0.1: - resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 @@ -3786,11 +3754,11 @@ packages: minipass: 3.3.6 dev: true - /minipass-fetch@2.1.2: - resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /minipass-fetch@3.0.4: + resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - minipass: 3.3.6 + minipass: 7.0.3 minipass-sized: 1.0.3 minizlib: 2.1.2 optionalDependencies: @@ -3825,13 +3793,13 @@ packages: yallist: 4.0.0 dev: true - /minipass@4.2.8: - resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} + /minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} dev: true - /minipass@6.0.2: - resolution: {integrity: sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==} + /minipass@7.0.3: + resolution: {integrity: sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==} engines: {node: '>=16 || 14 >=14.17'} dev: true @@ -3897,21 +3865,21 @@ packages: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} dev: true - /node-abi@3.35.0: - resolution: {integrity: sha512-jAlSOFR1Bls963NmFwxeQkNTzqjUF0NThm8Le7eRIRGzFUVJuMOFZDLv5Y30W/Oaw+KEebEJLAigwO9gQHoEmw==} + /node-abi@3.47.0: + resolution: {integrity: sha512-2s6B2CWZM//kPgwnuI0KrYwNjfdByE25zvAaEpq9IH4zcNsarH8Ihu/UuX6XMPEogDAxkuUFeZn60pXNHAqn3A==} engines: {node: '>=10'} dependencies: - semver: 7.4.0 + semver: 7.5.4 dev: true /node-api-version@0.1.4: resolution: {integrity: sha512-KGXihXdUChwJAOHO53bv9/vXcLmdUsZ6jIptbvYvkpKfth+r7jw44JkVxQFA3kX5nQjzjmGu1uAu/xNNLNlI5g==} dependencies: - semver: 7.4.0 + semver: 7.5.4 dev: true - /node-fetch@2.6.9: - resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} + /node-fetch@2.6.13: + resolution: {integrity: sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA==} engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 @@ -3922,23 +3890,23 @@ packages: whatwg-url: 5.0.0 dev: true - /node-gyp@9.3.1: - resolution: {integrity: sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==} + /node-gyp@9.4.0: + resolution: {integrity: sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==} engines: {node: ^12.13 || ^14.13 || >=16} hasBin: true dependencies: env-paths: 2.2.1 + exponential-backoff: 3.1.1 glob: 7.2.3 graceful-fs: 4.2.11 - make-fetch-happen: 10.2.1 + make-fetch-happen: 11.1.1 nopt: 6.0.0 npmlog: 6.0.2 rimraf: 3.0.2 - semver: 7.4.0 - tar: 6.1.13 + semver: 7.5.4 + tar: 6.1.15 which: 2.0.2 transitivePeerDependencies: - - bluebird - supports-color dev: true @@ -3954,8 +3922,8 @@ packages: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.2 - semver: 5.7.1 + resolve: 1.22.4 + semver: 5.7.2 validate-npm-package-license: 3.0.4 dev: true @@ -4059,16 +4027,16 @@ packages: is-wsl: 2.2.0 dev: true - /optionator@0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - word-wrap: 1.2.3 dev: true /ora@5.4.1: @@ -4078,7 +4046,7 @@ packages: bl: 4.1.0 chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.8.0 + cli-spinners: 2.9.0 is-interactive: 1.0.0 is-unicode-supported: 0.1.0 log-symbols: 4.1.0 @@ -4272,12 +4240,12 @@ packages: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true - /path-scurry@1.9.2: - resolution: {integrity: sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==} + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 9.1.2 - minipass: 6.0.2 + lru-cache: 10.0.1 + minipass: 7.0.3 dev: true /path-type@2.0.0: @@ -4342,10 +4310,11 @@ packages: find-up: 3.0.0 dev: false - /plist@3.0.6: - resolution: {integrity: sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==} - engines: {node: '>=6'} + /plist@3.1.0: + resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==} + engines: {node: '>=10.4.0'} dependencies: + '@xmldom/xmldom': 0.8.10 base64-js: 1.5.1 xmlbuilder: 15.1.1 dev: true @@ -4373,15 +4342,6 @@ packages: engines: {node: '>=0.4.0'} dev: true - /promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - dev: true - /promise-retry@2.0.1: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} @@ -4418,8 +4378,8 @@ packages: dev: true optional: true - /rcedit@3.0.1: - resolution: {integrity: sha512-XM0Jv40/y4hVAqj/MO70o/IWs4uOsaSoo2mLyk3klFDW+SStLnCtzuQu+1OBTIMGlM8CvaK9ftlYCp6DJ+cMsw==} + /rcedit@3.1.0: + resolution: {integrity: sha512-WRlRdY1qZbu1L11DklT07KuHfRk42l0NFFJdaExELEu4fEQ982bP5Z6OWGPj/wLLIuKRQDCxZJGAwoFsxhZhNA==} engines: {node: '>= 10.0.0'} dependencies: cross-spawn-windows-exe: 1.2.0 @@ -4464,7 +4424,7 @@ packages: resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} engines: {node: '>= 10.13.0'} dependencies: - resolve: 1.22.2 + resolve: 1.22.4 dev: true /regexp.prototype.flags@1.5.0: @@ -4496,11 +4456,6 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - /require-main-filename@2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - dev: true - optional: true - /resolve-alpn@1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} dev: true @@ -4525,11 +4480,11 @@ packages: get-installed-path: 2.1.1 dev: true - /resolve@1.22.2: - resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} + /resolve@1.22.4: + resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} hasBin: true dependencies: - is-core-module: 2.12.0 + is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -4581,7 +4536,7 @@ packages: engines: {node: '>=14'} hasBin: true dependencies: - glob: 10.3.0 + glob: 10.3.3 dev: true /roarr@2.15.4: @@ -4610,12 +4565,22 @@ packages: queue-microtask: 1.2.3 dev: true - /rxjs@7.8.0: - resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: tslib: 2.6.2 dev: true + /safe-array-concat@1.0.0: + resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true @@ -4624,7 +4589,7 @@ packages: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 is-regex: 1.1.4 dev: true @@ -4638,18 +4603,18 @@ packages: dev: true optional: true - /semver@5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true dev: true - /semver@6.3.0: - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true dev: true - /semver@7.4.0: - resolution: {integrity: sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==} + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -4699,7 +4664,7 @@ packages: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 object-inspect: 1.12.3 dev: true @@ -4707,8 +4672,8 @@ packages: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /signal-exit@4.0.2: - resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} dev: true @@ -4807,11 +4772,11 @@ packages: dev: true optional: true - /ssri@9.0.1: - resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /ssri@10.0.5: + resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - minipass: 3.3.6 + minipass: 7.0.3 dev: true /stream-buffers@2.2.0: @@ -4844,7 +4809,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 dev: true /string.prototype.trim@1.2.7: @@ -4853,7 +4818,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 dev: true /string.prototype.trimend@1.0.6: @@ -4861,7 +4826,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 dev: true /string.prototype.trimstart@1.0.6: @@ -4869,7 +4834,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 dev: true /string_decoder@1.3.0: @@ -4961,7 +4926,7 @@ packages: engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@pkgr/utils': 2.4.2 - tslib: 2.5.0 + tslib: 2.6.2 dev: true /table@6.8.1: @@ -4975,13 +4940,13 @@ packages: strip-ansi: 6.0.1 dev: true - /tar@6.1.13: - resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==} + /tar@6.1.15: + resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} engines: {node: '>=10'} dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 - minipass: 4.2.8 + minipass: 5.0.0 minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 @@ -5062,12 +5027,8 @@ packages: /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - /tslib@2.5.0: - resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} - /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - dev: true /tsutils@3.21.0(typescript@4.9.5): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -5107,12 +5068,42 @@ packages: engines: {node: '>=12.20'} dev: false + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + /typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: call-bind: 1.0.2 for-each: 0.3.3 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: true /typescript@4.9.5: @@ -5130,16 +5121,16 @@ packages: which-boxed-primitive: 1.0.2 dev: true - /unique-filename@2.0.1: - resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /unique-filename@3.0.0: + resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - unique-slug: 3.0.0 + unique-slug: 4.0.0 dev: true - /unique-slug@3.0.0: - resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /unique-slug@4.0.0: + resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: imurmurhash: 0.1.4 dev: true @@ -5186,8 +5177,8 @@ packages: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true - /v8-compile-cache@2.3.0: - resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} + /v8-compile-cache@2.4.0: + resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} dev: true /validate-npm-package-license@3.0.4: @@ -5224,13 +5215,8 @@ packages: is-symbol: 1.0.4 dev: true - /which-module@2.0.0: - resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} - dev: true - optional: true - - /which-typed-array@1.1.9: - resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + /which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 @@ -5238,7 +5224,6 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - is-typed-array: 1.1.10 dev: true /which@1.3.1: @@ -5262,10 +5247,11 @@ packages: string-width: 4.2.3 dev: true - /word-wrap@1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} dev: true + optional: true /wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} @@ -5309,11 +5295,6 @@ packages: dev: true optional: true - /y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - dev: true - optional: true - /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -5322,12 +5303,9 @@ packages: /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - /yargs-parser@18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} - engines: {node: '>=6'} - dependencies: - camelcase: 5.3.1 - decamelize: 1.2.0 + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} dev: true optional: true @@ -5336,26 +5314,22 @@ packages: engines: {node: '>=12'} dev: true - /yargs@15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} + /yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} dependencies: - cliui: 6.0.0 - decamelize: 1.2.0 - find-up: 4.1.0 + cliui: 7.0.4 + escalade: 3.1.1 get-caller-file: 2.0.5 require-directory: 2.1.1 - require-main-filename: 2.0.0 - set-blocking: 2.0.0 string-width: 4.2.3 - which-module: 2.0.0 - y18n: 4.0.3 - yargs-parser: 18.1.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 dev: true optional: true - /yargs@17.7.1: - resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==} + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} dependencies: cliui: 8.0.1 diff --git a/src/createMenu.ts b/src/createMenu.ts index d3b72d6..3d0e03a 100644 --- a/src/createMenu.ts +++ b/src/createMenu.ts @@ -128,7 +128,9 @@ export function createApplicationMenu(): Menu { role: 'help', }); - const menu = Menu.buildFromTemplate(template as Array); + const menu = Menu.buildFromTemplate( + template as Array, + ); return menu; }