From a9d76ebce6c24711cb8f8627a2385ffd55c91a78 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Tue, 10 Dec 2024 17:44:51 +0000 Subject: [PATCH 01/41] chore: add .gitignore for e2e --- .gitignore | 4 ---- e2e/.gitignore | 6 ++++++ 2 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 e2e/.gitignore diff --git a/.gitignore b/.gitignore index 810c5dd1..fa4f3354 100644 --- a/.gitignore +++ b/.gitignore @@ -110,10 +110,6 @@ bin/LICENSE bin/LICENSES.chromium.html bin/gen -# Integration test logs -wdio-logs* -wdio-multiremote-logs* - # OS files .DS_Store diff --git a/e2e/.gitignore b/e2e/.gitignore new file mode 100644 index 00000000..5db70c4e --- /dev/null +++ b/e2e/.gitignore @@ -0,0 +1,6 @@ +# JS Test Files (these are transpiled from TS) +js + +# Logs +wdio-logs* +wdio-multiremote-logs* From 9cf6f5b39adc4b60aa7eb10bd823098cf4fb7daf Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Tue, 10 Dec 2024 17:56:34 +0000 Subject: [PATCH 02/41] feat: improve interface for `startElectron` --- packages/@wdio_electron-types/src/index.ts | 35 +++++++++++++++---- packages/wdio-electron-service/src/index.ts | 8 +++-- .../wdio-electron-service/src/launcher.ts | 16 ++++----- packages/wdio-electron-service/src/service.ts | 16 ++++----- packages/wdio-electron-service/src/session.ts | 29 +++++++-------- 5 files changed, 59 insertions(+), 45 deletions(-) diff --git a/packages/@wdio_electron-types/src/index.ts b/packages/@wdio_electron-types/src/index.ts index 8c91302b..7cac90f8 100644 --- a/packages/@wdio_electron-types/src/index.ts +++ b/packages/@wdio_electron-types/src/index.ts @@ -2,6 +2,7 @@ import type * as Electron from 'electron'; import type { OfficialArch } from '@electron/packager'; import type { ForgeConfig as ElectronForgeConfig } from '@electron-forge/shared-types'; import { fn as vitestFn, type Mock } from '@vitest/spy'; +import type { Capabilities, Options } from '@wdio/types'; import type { ArchType } from 'builder-util'; import type { PackageJson } from 'read-package-up'; @@ -171,6 +172,11 @@ export interface ElectronServiceOptions { restoreMocks?: boolean; } +export type ElectronServiceGlobalOptions = Pick< + ElectronServiceOptions, + 'clearMocks' | 'resetMocks' | 'restoreMocks' +> & { rootDir?: string }; + export type ApiCommand = { name: string; bridgeProp: string }; export type WebdriverClientFunc = (this: WebdriverIO.Browser, ...args: unknown[]) => Promise; @@ -695,6 +701,27 @@ export interface BrowserExtension extends BrowserBase { electron: ElectronServiceAPI; } +type ElectronServiceCustomCapability = { + /** + * custom capabilities to configure the Electron service + */ + 'wdio:electronServiceOptions'?: ElectronServiceOptions; +}; + +type ElectronServiceRequestedStandaloneCapabilities = Capabilities.RequestedStandaloneCapabilities & + ElectronServiceCustomCapability; +type ElectronServiceRequestedMultiremoteCapabilities = Capabilities.RequestedMultiremoteCapabilities & + ElectronServiceCustomCapability; + +export type ElectronServiceCapabilities = + | ElectronServiceRequestedStandaloneCapabilities[] + | ElectronServiceRequestedMultiremoteCapabilities + | ElectronServiceRequestedMultiremoteCapabilities[]; + +export type WdioElectronConfig = Options.Testrunner & { + capabilities: ElectronServiceCapabilities | ElectronServiceCapabilities[]; +}; + declare global { interface Window { wdioElectron: WdioElectronWindowObj; @@ -704,12 +731,8 @@ declare global { interface Browser extends BrowserExtension {} interface Element extends ElementBase {} interface MultiRemoteBrowser extends BrowserExtension {} - interface Capabilities { - /** - * custom capabilities to configure the Electron service - */ - 'wdio:electronServiceOptions'?: ElectronServiceOptions; - } + interface Capabilities extends ElectronServiceCustomCapability {} + interface ServiceOption extends ElectronServiceGlobalOptions {} } var __name: (func: Fn) => Fn; diff --git a/packages/wdio-electron-service/src/index.ts b/packages/wdio-electron-service/src/index.ts index e96e40d6..74592025 100644 --- a/packages/wdio-electron-service/src/index.ts +++ b/packages/wdio-electron-service/src/index.ts @@ -1,13 +1,15 @@ import { browser as wdioBrowser } from '@wdio/globals'; -import type { ElectronServiceOptions } from '@wdio/electron-types'; - import { init as initSession } from './session.js'; import ElectronLaunchService from './launcher.js'; import ElectronWorkerService from './service.js'; +import type { ElectronServiceCapabilities, ElectronServiceGlobalOptions } from '@wdio/electron-types'; export const launcher = ElectronLaunchService; export default ElectronWorkerService; export const browser: WebdriverIO.Browser = wdioBrowser; -export const startElectron: (opts: ElectronServiceOptions) => Promise = initSession; +export const startElectron: ( + capabilities: ElectronServiceCapabilities, + serviceGlobalOptions: ElectronServiceGlobalOptions, +) => Promise = initSession; diff --git a/packages/wdio-electron-service/src/launcher.ts b/packages/wdio-electron-service/src/launcher.ts index 582553ab..fec8d439 100644 --- a/packages/wdio-electron-service/src/launcher.ts +++ b/packages/wdio-electron-service/src/launcher.ts @@ -3,26 +3,22 @@ import path from 'node:path'; import { readPackageUp, type NormalizedReadResult } from 'read-package-up'; import { SevereServiceError } from 'webdriverio'; -import type { Services, Options, Capabilities } from '@wdio/types'; - import log from '@wdio/electron-utils/log'; import { getAppBuildInfo, getBinaryPath, getElectronVersion } from '@wdio/electron-utils'; +import type { Services, Options, Capabilities } from '@wdio/types'; +import type { ElectronServiceCapabilities, ElectronServiceGlobalOptions } from '@wdio/electron-types'; + import { getChromeOptions, getChromedriverOptions, getElectronCapabilities } from './capabilities.js'; import { getChromiumVersion } from './versions.js'; import { APP_NOT_FOUND_ERROR, CUSTOM_CAPABILITY_NAME } from './constants.js'; -import type { ElectronServiceOptions } from '@wdio/electron-types'; - -export type ElectronServiceCapabilities = Capabilities.TestrunnerCapabilities & { - [CUSTOM_CAPABILITY_NAME]?: ElectronServiceOptions; -}; export default class ElectronLaunchService implements Services.ServiceInstance { - #globalOptions: ElectronServiceOptions; + #globalOptions: ElectronServiceGlobalOptions; #projectRoot: string; - constructor(globalOptions: ElectronServiceOptions, _caps: unknown, config: Options.Testrunner) { + constructor(globalOptions: ElectronServiceGlobalOptions, _caps: unknown, config: Options.Testrunner) { this.#globalOptions = globalOptions; - this.#projectRoot = config.rootDir || process.cwd(); + this.#projectRoot = globalOptions.rootDir || config.rootDir || process.cwd(); } async onPrepare(_config: Options.Testrunner, capabilities: ElectronServiceCapabilities) { diff --git a/packages/wdio-electron-service/src/service.ts b/packages/wdio-electron-service/src/service.ts index fbbda29d..b021dd14 100644 --- a/packages/wdio-electron-service/src/service.ts +++ b/packages/wdio-electron-service/src/service.ts @@ -1,5 +1,5 @@ import log from '@wdio/electron-utils/log'; -import type { AbstractFn, BrowserExtension, ElectronServiceOptions, ExecuteOpts } from '@wdio/electron-types'; +import type { AbstractFn, BrowserExtension, ElectronServiceGlobalOptions, ExecuteOpts } from '@wdio/electron-types'; import type { Capabilities, Services } from '@wdio/types'; import mockStore from './mockStore.js'; @@ -39,12 +39,12 @@ const initSerializationWorkaround = async (browser: WebdriverIO.Browser) => { export default class ElectronWorkerService implements Services.ServiceInstance { #browser?: WebdriverIO.Browser | WebdriverIO.MultiRemoteBrowser; - #globalOptions: ElectronServiceOptions; + #globalOptions: ElectronServiceGlobalOptions; #clearMocks = false; #resetMocks = false; #restoreMocks = false; - constructor(globalOptions: ElectronServiceOptions = {}) { + constructor(globalOptions: ElectronServiceGlobalOptions = {}) { this.#globalOptions = globalOptions; } @@ -71,17 +71,12 @@ export default class ElectronWorkerService implements Services.ServiceInstance { } async before( - capabilities: WebdriverIO.Capabilities, + _capabilities: WebdriverIO.Capabilities, _specs: string[], instance: WebdriverIO.Browser | WebdriverIO.MultiRemoteBrowser, ): Promise { const browser = instance as WebdriverIO.Browser; - const mrBrowser = instance as WebdriverIO.MultiRemoteBrowser; - const { clearMocks, resetMocks, restoreMocks } = Object.assign( - {}, - this.#globalOptions, - capabilities[CUSTOM_CAPABILITY_NAME], - ); + const { clearMocks, resetMocks, restoreMocks } = this.#globalOptions; this.#clearMocks = clearMocks ?? false; this.#resetMocks = resetMocks ?? false; @@ -99,6 +94,7 @@ export default class ElectronWorkerService implements Services.ServiceInstance { } if (this.#browser.isMultiremote) { + const mrBrowser = instance as WebdriverIO.MultiRemoteBrowser; for (const instance of mrBrowser.instances) { const mrInstance = mrBrowser.getInstance(instance); const caps = diff --git a/packages/wdio-electron-service/src/session.ts b/packages/wdio-electron-service/src/session.ts index ea3e731e..bd31a931 100644 --- a/packages/wdio-electron-service/src/session.ts +++ b/packages/wdio-electron-service/src/session.ts @@ -1,32 +1,29 @@ import { remote } from 'webdriverio'; -import type { Options } from '@wdio/types'; +import log from '@wdio/electron-utils/log'; +import type { Capabilities, Options } from '@wdio/types'; +import type { ElectronServiceCapabilities, ElectronServiceGlobalOptions } from '@wdio/electron-types'; import ElectronWorkerService from './service.js'; import ElectronLaunchService from './launcher.js'; -import { CUSTOM_CAPABILITY_NAME } from './constants.js'; -import log from '@wdio/electron-utils/log'; -import type { ElectronServiceOptions } from '@wdio/electron-types'; - -export async function init(opts: ElectronServiceOptions) { - const testRunnerOpts = opts as Options.Testrunner; - let capabilities = { - browserName: 'electron', - [CUSTOM_CAPABILITY_NAME]: opts, - }; - const launcher = new ElectronLaunchService(opts, capabilities, testRunnerOpts); - const service = new ElectronWorkerService(opts); +export async function init( + capabilities: ElectronServiceCapabilities = [{ browserName: 'electron' }], + globalOptions: ElectronServiceGlobalOptions = {}, +) { + const testRunnerOpts: Options.Testrunner = { rootDir: globalOptions.rootDir }; + const launcher = new ElectronLaunchService(globalOptions, capabilities, testRunnerOpts); + const service = new ElectronWorkerService(globalOptions); - await launcher.onPrepare(testRunnerOpts, [capabilities]); + await launcher.onPrepare(testRunnerOpts, capabilities); log.debug('Session capabilities:', capabilities); // initialise session const browser = await remote({ - capabilities, + capabilities: capabilities as Capabilities.RequestedStandaloneCapabilities, }); - await service.before(capabilities, [], browser); + await service.before({}, [], browser); return browser; } From 63a2c81348ce43474ced10825dd682224c84be11 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Tue, 10 Dec 2024 18:00:44 +0000 Subject: [PATCH 03/41] refactor: update e2e configs for type & interface changes --- e2e/package.json | 2 +- e2e/wdio.conf.js | 3 +-- e2e/wdio.conf.ts | 9 ++++----- e2e/wdio.multiremote.conf.ts | 8 ++++---- e2e/wdio.no-binary.conf.js | 3 +-- e2e/wdio.no-binary.conf.ts | 9 ++++----- e2e/wdio.no-binary.multiremote.conf.ts | 8 ++++---- e2e/wdio.no-binary.standalone.ts | 4 ++-- e2e/wdio.standalone.conf.ts | 4 ++-- pnpm-lock.yaml | 6 +++--- 10 files changed, 26 insertions(+), 30 deletions(-) diff --git a/e2e/package.json b/e2e/package.json index 60e07490..18df9bbe 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -49,7 +49,7 @@ "@types/mocha": "^10.0.9", "@types/node": "^22.9.1", "@vitest/spy": "^2.1.5", - "@wdio/types": "^9.2.2", + "@wdio/electron-types": "workspace:*", "read-package-up": "^11.0.0", "rollup": "^4.27.3", "typescript": "^5.6.3" diff --git a/e2e/wdio.conf.js b/e2e/wdio.conf.js index a853997b..fecddfd4 100644 --- a/e2e/wdio.conf.js +++ b/e2e/wdio.conf.js @@ -17,14 +17,13 @@ globalThis.packageJson = packageJson; process.env.TEST = 'true'; export const config = { - services: ['electron'], + services: [['electron', { restoreMocks: true }]], capabilities: [ { 'browserName': 'electron', 'wdio:electronServiceOptions': { appBinaryPath, appArgs: ['foo', 'bar=baz'], - restoreMocks: true, }, }, ], diff --git a/e2e/wdio.conf.ts b/e2e/wdio.conf.ts index ed6d4d17..4858e75a 100644 --- a/e2e/wdio.conf.ts +++ b/e2e/wdio.conf.ts @@ -3,9 +3,9 @@ import path from 'node:path'; import fs from 'node:fs'; import type { NormalizedPackageJson } from 'read-package-up'; -import type { Options } from '@wdio/types'; import { getAppBuildInfo, getBinaryPath, getElectronVersion } from '@wdio/electron-utils'; +import type { WdioElectronConfig } from '@wdio/electron-types'; const exampleDir = process.env.EXAMPLE_DIR || 'forge-esm'; const __dirname = path.dirname(url.fileURLToPath(import.meta.url)); @@ -19,17 +19,16 @@ const appBinaryPath = await getBinaryPath(packageJsonPath, appBuildInfo, electro globalThis.packageJson = packageJson; process.env.TEST = 'true'; -export const config: Options.Testrunner = { - services: ['electron'], +export const config: WdioElectronConfig = { + services: [['electron', { restoreMocks: true }]], capabilities: [ { 'browserName': 'electron', 'wdio:electronServiceOptions': { appBinaryPath, appArgs: ['foo', 'bar=baz'], - restoreMocks: true, }, - } as WebdriverIO.Capabilities, + }, ], waitforTimeout: 5000, connectionRetryCount: 10, diff --git a/e2e/wdio.multiremote.conf.ts b/e2e/wdio.multiremote.conf.ts index 9886159c..bca98aab 100644 --- a/e2e/wdio.multiremote.conf.ts +++ b/e2e/wdio.multiremote.conf.ts @@ -1,11 +1,11 @@ -import type { Options } from '@wdio/types'; +import type { WdioElectronConfig } from '@wdio/electron-types'; import { config as baseConfig } from './wdio.conf.js'; const exampleDir = process.env.EXAMPLE_DIR || 'forge-esm'; const baseServiceOptions = baseConfig.capabilities[0]['wdio:electronServiceOptions']; -export const config: Options.Testrunner = { +export const config: WdioElectronConfig = { ...baseConfig, outputDir: `wdio-logs-multiremote-${exampleDir}`, specs: ['./multiremote/*.spec.ts'], @@ -17,7 +17,7 @@ export const config: Options.Testrunner = { ...baseServiceOptions, appArgs: ['browser=A'], }, - } as WebdriverIO.Capabilities, + }, }, browserB: { capabilities: { @@ -26,7 +26,7 @@ export const config: Options.Testrunner = { ...baseServiceOptions, appArgs: ['browser=B'], }, - } as WebdriverIO.Capabilities, + }, }, }, }; diff --git a/e2e/wdio.no-binary.conf.js b/e2e/wdio.no-binary.conf.js index 0f487313..f39b8717 100644 --- a/e2e/wdio.no-binary.conf.js +++ b/e2e/wdio.no-binary.conf.js @@ -17,14 +17,13 @@ globalThis.packageJson = { process.env.TEST = 'true'; export const config = { - services: ['electron'], + services: [['electron', { restoreMocks: true }]], capabilities: [ { 'browserName': 'electron', 'wdio:electronServiceOptions': { appEntryPoint, appArgs: ['foo', 'bar=baz'], - restoreMocks: true, }, }, ], diff --git a/e2e/wdio.no-binary.conf.ts b/e2e/wdio.no-binary.conf.ts index 4baa8b9c..b9182d34 100644 --- a/e2e/wdio.no-binary.conf.ts +++ b/e2e/wdio.no-binary.conf.ts @@ -3,9 +3,9 @@ import path from 'node:path'; import fs from 'node:fs'; import type { NormalizedPackageJson } from 'read-package-up'; -import type { Options } from '@wdio/types'; import { getElectronVersion } from '@wdio/electron-utils'; +import type { WdioElectronConfig } from '@wdio/electron-types'; const exampleDir = process.env.EXAMPLE_DIR || 'forge-esm'; const __dirname = path.dirname(url.fileURLToPath(import.meta.url)); @@ -19,17 +19,16 @@ globalThis.packageJson = { }; process.env.TEST = 'true'; -export const config: Options.Testrunner = { - services: ['electron'], +export const config: WdioElectronConfig = { + services: [['electron', { restoreMocks: true }]], capabilities: [ { 'browserName': 'electron', 'wdio:electronServiceOptions': { appEntryPoint, appArgs: ['foo', 'bar=baz'], - restoreMocks: true, }, - } as WebdriverIO.Capabilities, + }, ], waitforTimeout: 5000, connectionRetryCount: 10, diff --git a/e2e/wdio.no-binary.multiremote.conf.ts b/e2e/wdio.no-binary.multiremote.conf.ts index 14b15ad5..942106bb 100644 --- a/e2e/wdio.no-binary.multiremote.conf.ts +++ b/e2e/wdio.no-binary.multiremote.conf.ts @@ -1,11 +1,11 @@ -import type { Options } from '@wdio/types'; +import type { WdioElectronConfig } from '@wdio/electron-types'; import { config as baseConfig } from './wdio.no-binary.conf.js'; const exampleDir = process.env.EXAMPLE_DIR || 'forge-esm'; const baseServiceOptions = baseConfig.capabilities[0]['wdio:electronServiceOptions']; -export const config: Options.Testrunner = { +export const config: WdioElectronConfig = { ...baseConfig, outputDir: `wdio-logs-multiremote-${exampleDir}`, specs: ['./multiremote/*.spec.ts'], @@ -17,7 +17,7 @@ export const config: Options.Testrunner = { ...baseServiceOptions, appArgs: ['browser=A'], }, - } as WebdriverIO.Capabilities, + }, }, browserB: { capabilities: { @@ -26,7 +26,7 @@ export const config: Options.Testrunner = { ...baseServiceOptions, appArgs: ['browser=B'], }, - } as WebdriverIO.Capabilities, + }, }, }, }; diff --git a/e2e/wdio.no-binary.standalone.ts b/e2e/wdio.no-binary.standalone.ts index 6d102f33..3d6aa3e7 100644 --- a/e2e/wdio.no-binary.standalone.ts +++ b/e2e/wdio.no-binary.standalone.ts @@ -1,8 +1,8 @@ -import type { Options } from '@wdio/types'; +import type { WdioElectronConfig } from '@wdio/electron-types'; import { config as baseConfig } from './wdio.no-binary.conf.js'; -export const config: Options.Testrunner = { +export const config: WdioElectronConfig = { ...baseConfig, outputDir: 'wdio-standalone-logs', specs: ['./standalone/*.spec.ts'], diff --git a/e2e/wdio.standalone.conf.ts b/e2e/wdio.standalone.conf.ts index 4daabbac..d129552b 100644 --- a/e2e/wdio.standalone.conf.ts +++ b/e2e/wdio.standalone.conf.ts @@ -1,8 +1,8 @@ -import type { Options } from '@wdio/types'; +import type { WdioElectronConfig } from '@wdio/electron-types'; import { config as baseConfig } from './wdio.conf.js'; -export const config: Options.Testrunner = { +export const config: WdioElectronConfig = { ...baseConfig, outputDir: 'wdio-standalone-logs', specs: ['./standalone/*.spec.ts'], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 42932772..a9aed668 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -393,9 +393,9 @@ importers: '@vitest/spy': specifier: ^2.1.5 version: 2.1.5 - '@wdio/types': - specifier: ^9.2.2 - version: 9.2.2 + '@wdio/electron-types': + specifier: workspace:* + version: link:../packages/@wdio_electron-types read-package-up: specifier: ^11.0.0 version: 11.0.0 From 6372872e1ebfcf9891fdb43a55aae6b46f3e642f Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Tue, 10 Dec 2024 18:11:27 +0000 Subject: [PATCH 04/41] fix: remove default --- packages/wdio-electron-service/src/session.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/wdio-electron-service/src/session.ts b/packages/wdio-electron-service/src/session.ts index bd31a931..e2064810 100644 --- a/packages/wdio-electron-service/src/session.ts +++ b/packages/wdio-electron-service/src/session.ts @@ -7,7 +7,7 @@ import ElectronWorkerService from './service.js'; import ElectronLaunchService from './launcher.js'; export async function init( - capabilities: ElectronServiceCapabilities = [{ browserName: 'electron' }], + capabilities: ElectronServiceCapabilities, globalOptions: ElectronServiceGlobalOptions = {}, ) { const testRunnerOpts: Options.Testrunner = { rootDir: globalOptions.rootDir }; From 29a137e85f77dcaf1e1092c399ddc4c81b5b8597 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Tue, 10 Dec 2024 18:11:59 +0000 Subject: [PATCH 05/41] test: update for new interface --- .../wdio-electron-service/test/session.spec.ts | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/packages/wdio-electron-service/test/session.spec.ts b/packages/wdio-electron-service/test/session.spec.ts index 1393fd4a..e624fb8e 100644 --- a/packages/wdio-electron-service/test/session.spec.ts +++ b/packages/wdio-electron-service/test/session.spec.ts @@ -31,7 +31,7 @@ describe('init', () => { }); it('should call onPrepare with the expected parameters', async () => { - await init({ appBinaryPath: '/path/to/binary' }); + await init([{ 'wdio:electronServiceOptions': { appBinaryPath: '/path/to/binary' } }]); expect(onPrepareMock).toHaveBeenCalledWith( { appBinaryPath: '/path/to/binary', @@ -48,16 +48,7 @@ describe('init', () => { }); it('should call before with the expected parameters', async () => { - await init({ appBinaryPath: '/path/to/binary' }); - expect(beforeMock).toHaveBeenCalledWith( - { - 'browserName': 'electron', - 'wdio:electronServiceOptions': { - appBinaryPath: '/path/to/binary', - }, - }, - [], - browserMock, - ); + await init([{ 'wdio:electronServiceOptions': { appBinaryPath: '/path/to/binary' } }]); + expect(beforeMock).toHaveBeenCalledWith({}, [], browserMock); }); }); From 62f6d37a7ea1770cb99a807286db570b1bbcf3da Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Tue, 10 Dec 2024 18:15:27 +0000 Subject: [PATCH 06/41] fix: don't pass undefined rootDir --- packages/wdio-electron-service/src/session.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/wdio-electron-service/src/session.ts b/packages/wdio-electron-service/src/session.ts index e2064810..68bcd11d 100644 --- a/packages/wdio-electron-service/src/session.ts +++ b/packages/wdio-electron-service/src/session.ts @@ -10,7 +10,7 @@ export async function init( capabilities: ElectronServiceCapabilities, globalOptions: ElectronServiceGlobalOptions = {}, ) { - const testRunnerOpts: Options.Testrunner = { rootDir: globalOptions.rootDir }; + const testRunnerOpts: Options.Testrunner = globalOptions.rootDir ? { rootDir: globalOptions.rootDir } : {}; const launcher = new ElectronLaunchService(globalOptions, capabilities, testRunnerOpts); const service = new ElectronWorkerService(globalOptions); From f4b2de14c6a5fbd31c759fbf03d54f23cc7f5a90 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Tue, 10 Dec 2024 18:20:46 +0000 Subject: [PATCH 07/41] test: fix test, add rootDir test --- .../test/session.spec.ts | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/packages/wdio-electron-service/test/session.spec.ts b/packages/wdio-electron-service/test/session.spec.ts index e624fb8e..1009f5fe 100644 --- a/packages/wdio-electron-service/test/session.spec.ts +++ b/packages/wdio-electron-service/test/session.spec.ts @@ -31,20 +31,29 @@ describe('init', () => { }); it('should call onPrepare with the expected parameters', async () => { - await init([{ 'wdio:electronServiceOptions': { appBinaryPath: '/path/to/binary' } }]); - expect(onPrepareMock).toHaveBeenCalledWith( + await init([{ 'browserName': 'electron', 'wdio:electronServiceOptions': { appBinaryPath: '/path/to/binary' } }]); + expect(onPrepareMock).toHaveBeenCalledWith({}, [ { - appBinaryPath: '/path/to/binary', + 'browserName': 'electron', + 'wdio:electronServiceOptions': { + appBinaryPath: '/path/to/binary', + }, }, - [ - { - 'browserName': 'electron', - 'wdio:electronServiceOptions': { - appBinaryPath: '/path/to/binary', - }, + ]); + }); + + it('should call onPrepare with the expected parameters when a rootDir is specified', async () => { + await init([{ 'browserName': 'electron', 'wdio:electronServiceOptions': { appBinaryPath: '/path/to/binary' } }], { + rootDir: '/path/to/root', + }); + expect(onPrepareMock).toHaveBeenCalledWith({ rootDir: '/path/to/root' }, [ + { + 'browserName': 'electron', + 'wdio:electronServiceOptions': { + appBinaryPath: '/path/to/binary', }, - ], - ); + }, + ]); }); it('should call before with the expected parameters', async () => { From 0da9f216a54777ed667012c8f7f1168262e1c383 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Tue, 10 Dec 2024 18:24:25 +0000 Subject: [PATCH 08/41] chore: disambiguate TS specs --- packages/@wdio_electron-utils/test/index.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/@wdio_electron-utils/test/index.spec.ts b/packages/@wdio_electron-utils/test/index.spec.ts index 30e6bb54..a643aecd 100644 --- a/packages/@wdio_electron-utils/test/index.spec.ts +++ b/packages/@wdio_electron-utils/test/index.spec.ts @@ -868,8 +868,8 @@ describe('getAppBuildInfo', () => { ['JSON', 'json-config'], // .config.json ['JSON5', 'json5-config'], // .config.json5 ['TOML', 'toml-config'], // .config.toml - ['TS', 'ts-fn-config'], // .config.ts (Function) - ['TS', 'ts-obj-config'], // .config.ts (Object) + ['TS (fn)', 'ts-fn-config'], // .config.ts (Function) + ['TS (obj)', 'ts-obj-config'], // .config.ts (Object) ['YAML (.yaml)', 'yaml-config'], // .config.yaml ['YAML (.yml)', 'yml-config'], // .config.yml ])( From 868d1353f59697ea85c76f96a504e84a0632cc7b Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Tue, 10 Dec 2024 18:40:20 +0000 Subject: [PATCH 09/41] refactor: make `globalOptions` optional --- packages/wdio-electron-service/src/session.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/wdio-electron-service/src/session.ts b/packages/wdio-electron-service/src/session.ts index 68bcd11d..e10772d4 100644 --- a/packages/wdio-electron-service/src/session.ts +++ b/packages/wdio-electron-service/src/session.ts @@ -6,12 +6,9 @@ import type { ElectronServiceCapabilities, ElectronServiceGlobalOptions } from ' import ElectronWorkerService from './service.js'; import ElectronLaunchService from './launcher.js'; -export async function init( - capabilities: ElectronServiceCapabilities, - globalOptions: ElectronServiceGlobalOptions = {}, -) { - const testRunnerOpts: Options.Testrunner = globalOptions.rootDir ? { rootDir: globalOptions.rootDir } : {}; - const launcher = new ElectronLaunchService(globalOptions, capabilities, testRunnerOpts); +export async function init(capabilities: ElectronServiceCapabilities, globalOptions?: ElectronServiceGlobalOptions) { + const testRunnerOpts: Options.Testrunner = globalOptions?.rootDir ? { rootDir: globalOptions.rootDir } : {}; + const launcher = new ElectronLaunchService(globalOptions || {}, capabilities, testRunnerOpts); const service = new ElectronWorkerService(globalOptions); await launcher.onPrepare(testRunnerOpts, capabilities); From 787e1f237ca45be23227dd5f82dfaddfce650ec9 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Tue, 10 Dec 2024 18:43:28 +0000 Subject: [PATCH 10/41] test(e2e): standardise capabilities for standalone --- e2e/standalone/api.no-binary.spec.ts | 13 +++++++++---- e2e/standalone/api.spec.ts | 13 +++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/e2e/standalone/api.no-binary.spec.ts b/e2e/standalone/api.no-binary.spec.ts index c502649b..82ef461a 100644 --- a/e2e/standalone/api.no-binary.spec.ts +++ b/e2e/standalone/api.no-binary.spec.ts @@ -18,10 +18,15 @@ const pkg = { packageJson, path: packageJsonPath }; const appEntryPoint = path.join(__dirname, '..', '..', 'apps', exampleDir, 'dist', 'main.bundle.js'); const electronVersion = getElectronVersion(pkg); -const browser = await startElectron({ - appEntryPoint, - appArgs: ['foo', 'bar=baz'], -}); +const browser = await startElectron([ + { + 'browserName': 'electron', + 'wdio:electronServiceOptions': { + appEntryPoint, + appArgs: ['foo', 'bar=baz'], + }, + }, +]); const appName = await browser.electron.execute((electron) => electron.app.getName()); if (appName !== 'Electron') { diff --git a/e2e/standalone/api.spec.ts b/e2e/standalone/api.spec.ts index 6c9b1997..a1ae7547 100644 --- a/e2e/standalone/api.spec.ts +++ b/e2e/standalone/api.spec.ts @@ -19,10 +19,15 @@ const electronVersion = getElectronVersion(pkg); const appBuildInfo = await getAppBuildInfo(pkg); const appBinaryPath = await getBinaryPath(packageJsonPath, appBuildInfo, electronVersion); -const browser = await startElectron({ - appBinaryPath, - appArgs: ['foo', 'bar=baz'], -}); +const browser = await startElectron([ + { + 'browserName': 'electron', + 'wdio:electronServiceOptions': { + appBinaryPath, + appArgs: ['foo', 'bar=baz'], + }, + }, +]); const appName = await browser.electron.execute((electron) => electron.app.getName()); if (appName !== packageJson.name) { From 285b39da4f52c74ef1a971ce7a5c401c593f2794 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Tue, 10 Dec 2024 20:55:38 +0000 Subject: [PATCH 11/41] refactor: rename `startElectron` to `startWdioSession`, update CJS --- e2e/standalone/api.no-binary.spec.ts | 4 ++-- packages/wdio-electron-service/src/cjs/index.ts | 8 +++++--- packages/wdio-electron-service/src/index.ts | 4 ++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/e2e/standalone/api.no-binary.spec.ts b/e2e/standalone/api.no-binary.spec.ts index 82ef461a..e7c80e0b 100644 --- a/e2e/standalone/api.no-binary.spec.ts +++ b/e2e/standalone/api.no-binary.spec.ts @@ -3,7 +3,7 @@ import url from 'node:url'; import fs from 'node:fs'; import process from 'node:process'; -import { startElectron } from 'wdio-electron-service'; +import { startWdioSession } from 'wdio-electron-service'; import type { NormalizedPackageJson } from 'read-package-up'; import { getElectronVersion } from '@wdio/electron-utils'; @@ -18,7 +18,7 @@ const pkg = { packageJson, path: packageJsonPath }; const appEntryPoint = path.join(__dirname, '..', '..', 'apps', exampleDir, 'dist', 'main.bundle.js'); const electronVersion = getElectronVersion(pkg); -const browser = await startElectron([ +const browser = await startWdioSession([ { 'browserName': 'electron', 'wdio:electronServiceOptions': { diff --git a/packages/wdio-electron-service/src/cjs/index.ts b/packages/wdio-electron-service/src/cjs/index.ts index 70941220..f3f563a5 100644 --- a/packages/wdio-electron-service/src/cjs/index.ts +++ b/packages/wdio-electron-service/src/cjs/index.ts @@ -1,6 +1,5 @@ import { browser as wdioBrowser } from '@wdio/globals'; - -import type { ElectronServiceOptions } from '@wdio/electron-types'; +import type { ElectronServiceCapabilities, ElectronServiceGlobalOptions } from '@wdio/electron-types'; import { init as initSession } from './session.js'; import { CJSElectronLauncher, CJSElectronService } from './classes.js'; @@ -9,4 +8,7 @@ export default CJSElectronService; export const launcher = CJSElectronLauncher; export const browser: WebdriverIO.Browser = wdioBrowser; -export const startElectron: (opts: ElectronServiceOptions) => Promise = initSession; +export const startWdioSession: ( + capabilities: ElectronServiceCapabilities, + serviceGlobalOptions: ElectronServiceGlobalOptions, +) => Promise = initSession; diff --git a/packages/wdio-electron-service/src/index.ts b/packages/wdio-electron-service/src/index.ts index 74592025..e1d4d5eb 100644 --- a/packages/wdio-electron-service/src/index.ts +++ b/packages/wdio-electron-service/src/index.ts @@ -1,15 +1,15 @@ import { browser as wdioBrowser } from '@wdio/globals'; +import type { ElectronServiceCapabilities, ElectronServiceGlobalOptions } from '@wdio/electron-types'; import { init as initSession } from './session.js'; import ElectronLaunchService from './launcher.js'; import ElectronWorkerService from './service.js'; -import type { ElectronServiceCapabilities, ElectronServiceGlobalOptions } from '@wdio/electron-types'; export const launcher = ElectronLaunchService; export default ElectronWorkerService; export const browser: WebdriverIO.Browser = wdioBrowser; -export const startElectron: ( +export const startWdioSession: ( capabilities: ElectronServiceCapabilities, serviceGlobalOptions: ElectronServiceGlobalOptions, ) => Promise = initSession; From f81f78f711ac5c8a26ed7a0036b85a90e38a406c Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Tue, 10 Dec 2024 21:03:46 +0000 Subject: [PATCH 12/41] fix: update CJS --- .../wdio-electron-service/src/cjs/session.ts | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/packages/wdio-electron-service/src/cjs/session.ts b/packages/wdio-electron-service/src/cjs/session.ts index ebc6c98a..be6062ba 100644 --- a/packages/wdio-electron-service/src/cjs/session.ts +++ b/packages/wdio-electron-service/src/cjs/session.ts @@ -1,29 +1,27 @@ import { remote } from 'webdriverio'; -import type { Options } from '@wdio/types'; +import log from '@wdio/electron-utils/log'; +import type { Capabilities, Options } from '@wdio/types'; +import type { ElectronServiceCapabilities, ElectronServiceGlobalOptions } from '@wdio/electron-types'; import { CJSElectronLauncher, CJSElectronService } from './classes.js'; -import { CUSTOM_CAPABILITY_NAME } from './constants.js'; -import type { ElectronServiceOptions } from '@wdio/electron-types'; -export async function init(opts: ElectronServiceOptions) { + +export async function init(capabilities: ElectronServiceCapabilities, globalOptions?: ElectronServiceGlobalOptions) { // CJS variants of the Launcher and Service classes are needed here // - which is why we are not simply doing a dynamic import of `../session.js` - const testRunnerOpts = opts as Options.Testrunner; - let capabilities = { - browserName: 'electron', - [CUSTOM_CAPABILITY_NAME]: opts, - }; + const testRunnerOpts: Options.Testrunner = globalOptions?.rootDir ? { rootDir: globalOptions.rootDir } : {}; + const launcher = new CJSElectronLauncher(globalOptions || {}, capabilities, testRunnerOpts); + const service = new CJSElectronService(globalOptions); - const launcher = new CJSElectronLauncher(opts, capabilities, testRunnerOpts); - const service = new CJSElectronService(opts); + await launcher.onPrepare(testRunnerOpts, capabilities); - await launcher.onPrepare(testRunnerOpts, [capabilities]); + log.debug('Session capabilities:', capabilities); // initialise session const browser = await remote({ - capabilities, + capabilities: capabilities as Capabilities.RequestedStandaloneCapabilities, }); - await service.before(capabilities, [], browser); + await service.before({}, [], browser); return browser; } From 7aa92a411e55b4df39ad758caa0c6e8df2e09a54 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Tue, 10 Dec 2024 21:04:18 +0000 Subject: [PATCH 13/41] chore: update name --- e2e/standalone/api.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e/standalone/api.spec.ts b/e2e/standalone/api.spec.ts index a1ae7547..1a708f35 100644 --- a/e2e/standalone/api.spec.ts +++ b/e2e/standalone/api.spec.ts @@ -3,7 +3,7 @@ import url from 'node:url'; import fs from 'node:fs'; import process from 'node:process'; -import { startElectron } from 'wdio-electron-service'; +import { startWdioSession } from 'wdio-electron-service'; import type { NormalizedPackageJson } from 'read-package-up'; import { getBinaryPath, getAppBuildInfo, getElectronVersion } from '@wdio/electron-utils'; @@ -19,7 +19,7 @@ const electronVersion = getElectronVersion(pkg); const appBuildInfo = await getAppBuildInfo(pkg); const appBinaryPath = await getBinaryPath(packageJsonPath, appBuildInfo, electronVersion); -const browser = await startElectron([ +const browser = await startWdioSession([ { 'browserName': 'electron', 'wdio:electronServiceOptions': { From 023f94416566bcb4bb3f788f97eccbd3f6a70344 Mon Sep 17 00:00:00 2001 From: mato533 <35281743+mato533@users.noreply.github.com> Date: Wed, 11 Dec 2024 10:04:18 +0900 Subject: [PATCH 14/41] test: add test for parameter of the init function --- .../test/session.spec.ts | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/packages/wdio-electron-service/test/session.spec.ts b/packages/wdio-electron-service/test/session.spec.ts index 1009f5fe..1eb48f96 100644 --- a/packages/wdio-electron-service/test/session.spec.ts +++ b/packages/wdio-electron-service/test/session.spec.ts @@ -1,4 +1,4 @@ -import { describe, it, vi, expect } from 'vitest'; +import { describe, it, vi, expect, beforeAll } from 'vitest'; import { init } from '../src/session.js'; @@ -25,19 +25,43 @@ vi.mock('../src/launcher.js', () => ({ vi.mock('webdriverio', () => ({ remote: async () => Promise.resolve(browserMock) })); describe('init', () => { + beforeAll(() => { + vi.clearAllMocks(); + }); it('should create a new browser session', async () => { const session = await init({}); expect(session).toStrictEqual(browserMock); }); it('should call onPrepare with the expected parameters', async () => { - await init([{ 'browserName': 'electron', 'wdio:electronServiceOptions': { appBinaryPath: '/path/to/binary' } }]); + await init([ + { + 'browserName': 'electron', + 'browserVersion': '99.9.9', + 'wdio:electronServiceOptions': { + appBinaryPath: '/path/to/binary', + }, + 'goog:chromeOptions': { + args: ['--disable-dev-shm-usage', '--disable-gpu', '--headless'], + }, + 'wdio:chromedriverOptions': { + binary: '/path/to/chromedriver', + }, + }, + ]); expect(onPrepareMock).toHaveBeenCalledWith({}, [ { 'browserName': 'electron', + 'browserVersion': '99.9.9', 'wdio:electronServiceOptions': { appBinaryPath: '/path/to/binary', }, + 'goog:chromeOptions': { + args: ['--disable-dev-shm-usage', '--disable-gpu', '--headless'], + }, + 'wdio:chromedriverOptions': { + binary: '/path/to/chromedriver', + }, }, ]); }); From 91d6fa5fde14ae35b4b9024dc34212bebb966692 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 02:01:31 +0000 Subject: [PATCH 15/41] fix: use `__filename` --- packages/@wdio_electron-utils/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@wdio_electron-utils/src/index.ts b/packages/@wdio_electron-utils/src/index.ts index 611f992b..e0cf031c 100644 --- a/packages/@wdio_electron-utils/src/index.ts +++ b/packages/@wdio_electron-utils/src/index.ts @@ -41,7 +41,7 @@ async function readConfig(configFile: string, projectDir: string) { if (extRegex.js.test(ext)) { const { tsImport } = await import('tsx/esm/api'); const configFilePathUrl = pathToFileURL(configFilePath).toString(); - const readResult = (await tsImport(configFilePathUrl, import.meta.url)).default; + const readResult = (await tsImport(configFilePathUrl, __filename)).default; if (typeof readResult === 'function') { result = readResult(); From fb20cff6d1e4efc0a38d50d7e5fe082eed9dea24 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 02:02:29 +0000 Subject: [PATCH 16/41] chore: ignore CJS files --- packages/@wdio_electron-utils/.gitignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 packages/@wdio_electron-utils/.gitignore diff --git a/packages/@wdio_electron-utils/.gitignore b/packages/@wdio_electron-utils/.gitignore new file mode 100644 index 00000000..785a13aa --- /dev/null +++ b/packages/@wdio_electron-utils/.gitignore @@ -0,0 +1,2 @@ +# CJS build +src/cjs/*.ts From e21f44d61ba3ad19769666a62b465f8198a6d85c Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 02:03:13 +0000 Subject: [PATCH 17/41] chore: bust cache on build --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 61021018..6fce05c1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "node": ">=18 || >=20" }, "scripts": { - "build": "turbo run build --filter=@wdio* --filter=wdio-electron-service --only", + "build": "turbo run build --filter=@wdio* --filter=wdio-electron-service --only --force", "ci": "turbo run lint format:check test:unit test:e2e:builder-cjs test:e2e:builder-esm test:e2e:forge-cjs test:e2e:forge-esm test:e2e:no-binary-cjs test:e2e:no-binary-esm", "ci-linux": "turbo run lint format:check test:unit test:e2e:builder-cjs test:e2e:builder-esm test:e2e:forge-cjs test:e2e:forge-esm test:e2e:no-binary-cjs test:e2e:no-binary-esm --concurrency=1", "ci-mac:e2e:mac-universal": "turbo run build:mac-universal init-e2es test:e2e-mac-universal:builder-cjs test:e2e-mac-universal:builder-esm test:e2e-mac-universal:forge-cjs test:e2e-mac-universal:forge-esm --only", From 1bb9aa1988eb954aad3b08b8e9069f7abffe2df4 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 02:04:43 +0000 Subject: [PATCH 18/41] chore: standardise imports, improve CJS build --- packages/@wdio_electron-utils/package.json | 27 ++++++++++++++----- .../@wdio_electron-utils/tsconfig.cjs.json | 4 +++ packages/wdio-electron-service/package.json | 4 +-- .../wdio-electron-service/tsconfig.cjs.json | 3 ++- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/packages/@wdio_electron-utils/package.json b/packages/@wdio_electron-utils/package.json index 790c63ea..8baed4dd 100644 --- a/packages/@wdio_electron-utils/package.json +++ b/packages/@wdio_electron-utils/package.json @@ -10,17 +10,27 @@ "exports": { ".": [ { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "require": "./dist/cjs/index.js" + "import": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "require": { + "types": "./dist/cjs/index.d.ts", + "default": "./dist/cjs/index.js" + } }, "./dist/cjs/index.js" ], "./log": [ { - "import": "./dist/log.js", - "types": "./dist/log.d.ts", - "require": "./dist/cjs/log.js" + "import": { + "types": "./dist/log.d.ts", + "default": "./dist/log.js" + }, + "require": { + "types": "./dist/cjs/log.d.ts", + "default": "./dist/cjs/log.js" + } }, "./dist/cjs/log.js" ] @@ -33,7 +43,10 @@ "clean:dist": "pnpm dlx shx rm -rf ./dist", "build": "pnpm build:esm && pnpm build:cjs", "build:esm": "tsc --outDir dist", - "build:cjs": "tsc --build tsconfig.cjs.json", + "build:cjs": "pnpm build:cjs:copy && pnpm build:cjs:replace-import && pnpm build:cjs:compile", + "build:cjs:compile": "tsc --build tsconfig.cjs.json", + "build:cjs:copy": "cp -f src/*.ts src/cjs", + "build:cjs:replace-import": "sed -i '' 's/tsx\\/esm\\/api/tsx\\/cjs\\/api/g' ./src/cjs/index.ts && sed -i '' 's/{ tsImport }/{ require: tsImport }/g' ./src/cjs/index.ts", "release": "release-it -VV --ci --npm.skipChecks --no-git.requireCleanWorkingDir", "test:unit": "vitest --coverage --watch=false", "test:dev": "vitest --coverage", diff --git a/packages/@wdio_electron-utils/tsconfig.cjs.json b/packages/@wdio_electron-utils/tsconfig.cjs.json index 5f6afc37..7c1b2420 100644 --- a/packages/@wdio_electron-utils/tsconfig.cjs.json +++ b/packages/@wdio_electron-utils/tsconfig.cjs.json @@ -1,7 +1,11 @@ { "extends": "../../tsconfig.base.cjs.json", "include": ["./src/cjs/*.ts", "./src/cjs/package.json"], + "exclude": ["src/*.ts", "node_modules", "coverage", "dist", "test"], "compilerOptions": { + "moduleResolution": "bundler", + "module": "Preserve", + "rootDir": "./src/cjs", "outDir": "./dist/cjs" } } diff --git a/packages/wdio-electron-service/package.json b/packages/wdio-electron-service/package.json index de3453cf..35dbe2aa 100644 --- a/packages/wdio-electron-service/package.json +++ b/packages/wdio-electron-service/package.json @@ -57,10 +57,10 @@ "clean": "pnpm clean:dist && pnpm dlx shx rm -rf *.tgz ./node_modules pnpm-lock.yaml ./src/cjs/preload.ts ./src/cjs/main.ts", "clean:dist": "pnpm dlx shx rm -rf ./dist", "build": "pnpm build:esm && pnpm build:cjs", - "build:esm": "pnpm build:esm:compile && pnpm build:esm:bundle && pnpm build:esm:replace", + "build:esm": "pnpm build:esm:compile && pnpm build:esm:bundle && pnpm build:esm:replace-file", "build:esm:compile": "tsc --outDir dist", "build:esm:bundle": "tsx ./scripts/inject-dependency.ts ./dist/mock.js ./dist/mock.bundle.js @vitest/spy spy", - "build:esm:replace": "shx rm ./dist/mock.js && shx mv ./dist/mock.bundle.js ./dist/mock.js", + "build:esm:replace-file": "shx rm ./dist/mock.js && shx mv ./dist/mock.bundle.js ./dist/mock.js", "build:cjs": "pnpm build:cjs:copy && pnpm build:cjs:compile", "build:cjs:copy": "cp -f ./src/preload.ts ./src/cjs/preload.ts && cp -f ./src/main.ts ./src/cjs/main.ts && cp -f ./src/constants.ts ./src/cjs/constants.ts", "build:cjs:compile": "tsc --project tsconfig.cjs.json --outDir dist/cjs", diff --git a/packages/wdio-electron-service/tsconfig.cjs.json b/packages/wdio-electron-service/tsconfig.cjs.json index 86588033..5ce94f10 100644 --- a/packages/wdio-electron-service/tsconfig.cjs.json +++ b/packages/wdio-electron-service/tsconfig.cjs.json @@ -3,6 +3,7 @@ "include": ["src/cjs/**/*", "src/cjs/package.json"], "exclude": ["src/*.ts", "src/commands/*.ts", "node_modules", "coverage", "dist", "test"], "compilerOptions": { - "rootDir": "src/cjs" + "module": "Preserve", + "moduleResolution": "bundler" } } From 33272b37f34d63e09b73b1ca1c7369f35b84275d Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 02:15:00 +0000 Subject: [PATCH 19/41] fix: remove type override --- packages/wdio-electron-service/src/cjs/index.ts | 6 +----- packages/wdio-electron-service/src/index.ts | 6 +----- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/packages/wdio-electron-service/src/cjs/index.ts b/packages/wdio-electron-service/src/cjs/index.ts index f3f563a5..9cf7735e 100644 --- a/packages/wdio-electron-service/src/cjs/index.ts +++ b/packages/wdio-electron-service/src/cjs/index.ts @@ -1,5 +1,4 @@ import { browser as wdioBrowser } from '@wdio/globals'; -import type { ElectronServiceCapabilities, ElectronServiceGlobalOptions } from '@wdio/electron-types'; import { init as initSession } from './session.js'; import { CJSElectronLauncher, CJSElectronService } from './classes.js'; @@ -8,7 +7,4 @@ export default CJSElectronService; export const launcher = CJSElectronLauncher; export const browser: WebdriverIO.Browser = wdioBrowser; -export const startWdioSession: ( - capabilities: ElectronServiceCapabilities, - serviceGlobalOptions: ElectronServiceGlobalOptions, -) => Promise = initSession; +export const startWdioSession = initSession; diff --git a/packages/wdio-electron-service/src/index.ts b/packages/wdio-electron-service/src/index.ts index e1d4d5eb..abac4906 100644 --- a/packages/wdio-electron-service/src/index.ts +++ b/packages/wdio-electron-service/src/index.ts @@ -1,5 +1,4 @@ import { browser as wdioBrowser } from '@wdio/globals'; -import type { ElectronServiceCapabilities, ElectronServiceGlobalOptions } from '@wdio/electron-types'; import { init as initSession } from './session.js'; import ElectronLaunchService from './launcher.js'; @@ -9,7 +8,4 @@ export const launcher = ElectronLaunchService; export default ElectronWorkerService; export const browser: WebdriverIO.Browser = wdioBrowser; -export const startWdioSession: ( - capabilities: ElectronServiceCapabilities, - serviceGlobalOptions: ElectronServiceGlobalOptions, -) => Promise = initSession; +export const startWdioSession = initSession; From 5408938af63e167bbfac693d766bd2eec0e4db34 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 02:31:03 +0000 Subject: [PATCH 20/41] fix: flatten capabilities --- packages/wdio-electron-service/src/session.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/wdio-electron-service/src/session.ts b/packages/wdio-electron-service/src/session.ts index e10772d4..cc6cc921 100644 --- a/packages/wdio-electron-service/src/session.ts +++ b/packages/wdio-electron-service/src/session.ts @@ -1,6 +1,6 @@ import { remote } from 'webdriverio'; import log from '@wdio/electron-utils/log'; -import type { Capabilities, Options } from '@wdio/types'; +import type { Options, Capabilities } from '@wdio/types'; import type { ElectronServiceCapabilities, ElectronServiceGlobalOptions } from '@wdio/electron-types'; import ElectronWorkerService from './service.js'; @@ -17,7 +17,9 @@ export async function init(capabilities: ElectronServiceCapabilities, globalOpti // initialise session const browser = await remote({ - capabilities: capabilities as Capabilities.RequestedStandaloneCapabilities, + capabilities: (Array.isArray(capabilities) + ? capabilities[0] + : capabilities) as Capabilities.RequestedStandaloneCapabilities, }); await service.before({}, [], browser); From 6ea1c1e7cc33449eb28454c3ca82e0dc45fcce97 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 02:41:10 +0000 Subject: [PATCH 21/41] chore: use shx --- packages/@wdio_electron-utils/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@wdio_electron-utils/package.json b/packages/@wdio_electron-utils/package.json index 8baed4dd..de15dcef 100644 --- a/packages/@wdio_electron-utils/package.json +++ b/packages/@wdio_electron-utils/package.json @@ -46,7 +46,7 @@ "build:cjs": "pnpm build:cjs:copy && pnpm build:cjs:replace-import && pnpm build:cjs:compile", "build:cjs:compile": "tsc --build tsconfig.cjs.json", "build:cjs:copy": "cp -f src/*.ts src/cjs", - "build:cjs:replace-import": "sed -i '' 's/tsx\\/esm\\/api/tsx\\/cjs\\/api/g' ./src/cjs/index.ts && sed -i '' 's/{ tsImport }/{ require: tsImport }/g' ./src/cjs/index.ts", + "build:cjs:replace-import": "shx sed -i '' 's/tsx\\/esm\\/api/tsx\\/cjs\\/api/g' ./src/cjs/index.ts && shx sed -i '' 's/{ tsImport }/{ require: tsImport }/g' ./src/cjs/index.ts", "release": "release-it -VV --ci --npm.skipChecks --no-git.requireCleanWorkingDir", "test:unit": "vitest --coverage --watch=false", "test:dev": "vitest --coverage", From 323adec245794f4dac3a70fbb433ef329a2cbc9b Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 03:00:17 +0000 Subject: [PATCH 22/41] chore: fix sed command --- packages/@wdio_electron-utils/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@wdio_electron-utils/package.json b/packages/@wdio_electron-utils/package.json index de15dcef..dc3d9eee 100644 --- a/packages/@wdio_electron-utils/package.json +++ b/packages/@wdio_electron-utils/package.json @@ -46,7 +46,7 @@ "build:cjs": "pnpm build:cjs:copy && pnpm build:cjs:replace-import && pnpm build:cjs:compile", "build:cjs:compile": "tsc --build tsconfig.cjs.json", "build:cjs:copy": "cp -f src/*.ts src/cjs", - "build:cjs:replace-import": "shx sed -i '' 's/tsx\\/esm\\/api/tsx\\/cjs\\/api/g' ./src/cjs/index.ts && shx sed -i '' 's/{ tsImport }/{ require: tsImport }/g' ./src/cjs/index.ts", + "build:cjs:replace-import": "shx sed -i \"s/tsx\\/esm\\/api/tsx\\/cjs\\/api/g\" \"./src/cjs/index.ts\" && shx sed -i \"s/{ tsImport }/{ require: tsImport }/g\" \"./src/cjs/index.ts\"", "release": "release-it -VV --ci --npm.skipChecks --no-git.requireCleanWorkingDir", "test:unit": "vitest --coverage --watch=false", "test:dev": "vitest --coverage", From 19407f8d455262ab9bcc6588df0d072622b9b095 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 05:53:22 +0000 Subject: [PATCH 23/41] fix: requires in preloads --- apps/builder-cjs/src/preload.ts | 4 ++-- apps/builder-esm/src/preload.cts | 26 +++++++++++--------------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/apps/builder-cjs/src/preload.ts b/apps/builder-cjs/src/preload.ts index 5b7b4321..7e7051be 100644 --- a/apps/builder-cjs/src/preload.ts +++ b/apps/builder-cjs/src/preload.ts @@ -1,5 +1,5 @@ -import { contextBridge, ipcRenderer } from 'electron'; -import { isTest } from './util.js'; +const { contextBridge, ipcRenderer } = require('electron'); +const isTest = require('./util'); if (isTest) { require('wdio-electron-service/preload'); diff --git a/apps/builder-esm/src/preload.cts b/apps/builder-esm/src/preload.cts index b8a8be1d..7e7051be 100644 --- a/apps/builder-esm/src/preload.cts +++ b/apps/builder-esm/src/preload.cts @@ -1,19 +1,15 @@ -import { contextBridge, ipcRenderer } from 'electron'; +const { contextBridge, ipcRenderer } = require('electron'); +const isTest = require('./util'); -(async () => { - // util.js is an ESM module so we need to use dynamic import - const { isTest } = await import('./util.js'); +if (isTest) { + require('wdio-electron-service/preload'); +} - if (isTest) { - require('wdio-electron-service/preload'); - } +const validChannels = ['increase-window-size', 'decrease-window-size']; - const validChannels = ['increase-window-size', 'decrease-window-size']; +const invoke = (channel: string, ...data: unknown[]) => + validChannels.includes(channel) ? ipcRenderer.invoke(channel, data) : Promise.reject(); - const invoke = (channel: string, ...data: unknown[]) => - validChannels.includes(channel) ? ipcRenderer.invoke(channel, data) : Promise.reject(); - - contextBridge.exposeInMainWorld('api', { - invoke, - }); -})(); +contextBridge.exposeInMainWorld('api', { + invoke, +}); From 4c22f153a37ebf9119b8049af52eb3d3ea5e7a8c Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 05:59:07 +0000 Subject: [PATCH 24/41] debug: remove util --- apps/builder-cjs/src/main.ts | 2 +- apps/builder-esm/src/main.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/builder-cjs/src/main.ts b/apps/builder-cjs/src/main.ts index c3713fd8..8cd84656 100644 --- a/apps/builder-cjs/src/main.ts +++ b/apps/builder-cjs/src/main.ts @@ -1,5 +1,5 @@ import { app, BrowserWindow, ipcMain } from 'electron'; -import { isTest } from './util.js'; +const isTest = process.env.TEST === 'true'; if (isTest) { require('wdio-electron-service/main'); diff --git a/apps/builder-esm/src/main.ts b/apps/builder-esm/src/main.ts index 466981de..7bed571c 100644 --- a/apps/builder-esm/src/main.ts +++ b/apps/builder-esm/src/main.ts @@ -1,5 +1,5 @@ import { app, BrowserWindow, ipcMain } from 'electron'; -import { isTest } from './util.js'; +const isTest = process.env.TEST === 'true'; if (isTest) { import('wdio-electron-service/main'); From cda06cbd5a4cab20d7d36612c80895b319dbeb10 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 06:02:49 +0000 Subject: [PATCH 25/41] chore: update deps --- apps/builder-cjs/package.json | 14 +- apps/builder-esm/package.json | 14 +- apps/forge-cjs/package.json | 18 +- apps/forge-esm/package.json | 18 +- apps/no-binary-cjs/package.json | 16 +- apps/no-binary-esm/package.json | 16 +- e2e/package.json | 22 +- package.json | 28 +- packages/@wdio_electron-types/package.json | 12 +- packages/@wdio_electron-utils/package.json | 10 +- packages/wdio-electron-service/package.json | 24 +- pnpm-lock.yaml | 1753 +++++++++---------- 12 files changed, 938 insertions(+), 1007 deletions(-) diff --git a/apps/builder-cjs/package.json b/apps/builder-cjs/package.json index e6ff78c9..da0b6e92 100644 --- a/apps/builder-cjs/package.json +++ b/apps/builder-cjs/package.json @@ -16,16 +16,16 @@ "wdio-electron-service": "workspace:*" }, "devDependencies": { - "@types/node": "^22.9.1", - "@wdio/cli": "^9.2.14", - "@wdio/globals": "^9.2.14", - "@wdio/local-runner": "^9.2.15", + "@types/node": "^22.10.1", + "@wdio/cli": "^9.4.1", + "@wdio/globals": "^9.4.1", + "@wdio/local-runner": "^9.4.1", "@wdio/mocha-framework": "^9.2.8", - "electron": "^33.2.0", + "electron": "^33.2.1", "electron-builder": "^25.1.8", "tsx": "^4.19.2", - "typescript": "^5.6.3", - "webdriverio": "^9.2.14" + "typescript": "^5.7.2", + "webdriverio": "^9.4.1" }, "build": { "asar": true, diff --git a/apps/builder-esm/package.json b/apps/builder-esm/package.json index ce9cb1d5..06496a75 100644 --- a/apps/builder-esm/package.json +++ b/apps/builder-esm/package.json @@ -18,16 +18,16 @@ "wdio-electron-service": "workspace:*" }, "devDependencies": { - "@types/node": "^22.9.1", - "@wdio/cli": "^9.2.14", - "@wdio/globals": "^9.2.14", - "@wdio/local-runner": "^9.2.15", + "@types/node": "^22.10.1", + "@wdio/cli": "^9.4.1", + "@wdio/globals": "^9.4.1", + "@wdio/local-runner": "^9.4.1", "@wdio/mocha-framework": "^9.2.8", - "electron": "^33.2.0", + "electron": "^33.2.1", "electron-builder": "^25.1.8", "tsx": "^4.19.2", - "typescript": "^5.6.3", - "webdriverio": "^9.2.14" + "typescript": "^5.7.2", + "webdriverio": "^9.4.1" }, "build": { "asar": true, diff --git a/apps/forge-cjs/package.json b/apps/forge-cjs/package.json index 562e1d0b..afea6d2e 100644 --- a/apps/forge-cjs/package.json +++ b/apps/forge-cjs/package.json @@ -17,19 +17,19 @@ "wdio-electron-service": "workspace:*" }, "devDependencies": { - "@electron-forge/cli": "^7.5.0", + "@electron-forge/cli": "^7.6.0", "@rollup/plugin-commonjs": "^28.0.1", "@rollup/plugin-node-resolve": "^15.3.0", "@rollup/plugin-typescript": "^12.1.1", - "@types/node": "^22.9.1", - "@wdio/cli": "^9.2.14", - "@wdio/globals": "^9.2.14", - "@wdio/local-runner": "^9.2.15", + "@types/node": "^22.10.1", + "@wdio/cli": "^9.4.1", + "@wdio/globals": "^9.4.1", + "@wdio/local-runner": "^9.4.1", "@wdio/mocha-framework": "^9.2.8", - "electron": "^33.2.0", - "rollup": "^4.27.3", + "electron": "^33.2.1", + "rollup": "^4.28.1", "tsx": "^4.19.2", - "typescript": "^5.6.3", - "webdriverio": "^9.2.14" + "typescript": "^5.7.2", + "webdriverio": "^9.4.1" } } diff --git a/apps/forge-esm/package.json b/apps/forge-esm/package.json index f52e02df..db107a5e 100644 --- a/apps/forge-esm/package.json +++ b/apps/forge-esm/package.json @@ -18,19 +18,19 @@ "wdio-electron-service": "workspace:*" }, "devDependencies": { - "@electron-forge/cli": "^7.5.0", + "@electron-forge/cli": "^7.6.0", "@rollup/plugin-commonjs": "^28.0.1", "@rollup/plugin-node-resolve": "^15.3.0", "@rollup/plugin-typescript": "^12.1.1", - "@types/node": "^22.9.1", - "@wdio/cli": "^9.2.14", - "@wdio/globals": "^9.2.14", - "@wdio/local-runner": "^9.2.15", + "@types/node": "^22.10.1", + "@wdio/cli": "^9.4.1", + "@wdio/globals": "^9.4.1", + "@wdio/local-runner": "^9.4.1", "@wdio/mocha-framework": "^9.2.8", - "electron": "^33.2.0", - "rollup": "^4.27.3", + "electron": "^33.2.1", + "rollup": "^4.28.1", "tsx": "^4.19.2", - "typescript": "^5.6.3", - "webdriverio": "^9.2.14" + "typescript": "^5.7.2", + "webdriverio": "^9.4.1" } } diff --git a/apps/no-binary-cjs/package.json b/apps/no-binary-cjs/package.json index 0824450b..e766d478 100644 --- a/apps/no-binary-cjs/package.json +++ b/apps/no-binary-cjs/package.json @@ -15,15 +15,15 @@ "@rollup/plugin-commonjs": "^28.0.1", "@rollup/plugin-node-resolve": "^15.3.0", "@rollup/plugin-typescript": "^12.1.1", - "@types/node": "^22.9.1", - "@wdio/cli": "^9.2.14", - "@wdio/globals": "^9.2.14", - "@wdio/local-runner": "^9.2.15", + "@types/node": "^22.10.1", + "@wdio/cli": "^9.4.1", + "@wdio/globals": "^9.4.1", + "@wdio/local-runner": "^9.4.1", "@wdio/mocha-framework": "^9.2.8", - "electron": "^33.2.0", - "rollup": "^4.27.3", + "electron": "^33.2.1", + "rollup": "^4.28.1", "tsx": "^4.19.2", - "typescript": "^5.6.3", - "webdriverio": "^9.2.14" + "typescript": "^5.7.2", + "webdriverio": "^9.4.1" } } diff --git a/apps/no-binary-esm/package.json b/apps/no-binary-esm/package.json index bd3e464a..bf5ba697 100644 --- a/apps/no-binary-esm/package.json +++ b/apps/no-binary-esm/package.json @@ -17,15 +17,15 @@ "@rollup/plugin-commonjs": "^28.0.1", "@rollup/plugin-node-resolve": "^15.3.0", "@rollup/plugin-typescript": "^12.1.1", - "@types/node": "^22.9.1", - "@wdio/cli": "^9.2.14", - "@wdio/globals": "^9.2.14", - "@wdio/local-runner": "^9.2.15", + "@types/node": "^22.10.1", + "@wdio/cli": "^9.4.1", + "@wdio/globals": "^9.4.1", + "@wdio/local-runner": "^9.4.1", "@wdio/mocha-framework": "^9.2.8", - "electron": "^33.2.0", - "rollup": "^4.27.3", + "electron": "^33.2.1", + "rollup": "^4.28.1", "tsx": "^4.19.2", - "typescript": "^5.6.3", - "webdriverio": "^9.2.14" + "typescript": "^5.7.2", + "webdriverio": "^9.4.1" } } diff --git a/e2e/package.json b/e2e/package.json index 18df9bbe..1128897c 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -32,26 +32,26 @@ }, "dependencies": { "@testing-library/webdriverio": "^3.2.1", - "@wdio/cli": "^9.2.14", + "@wdio/cli": "^9.4.1", "@wdio/electron-utils": "workspace:*", - "@wdio/globals": "^9.2.14", - "@wdio/local-runner": "^9.2.15", + "@wdio/globals": "^9.4.1", + "@wdio/local-runner": "^9.4.1", "@wdio/mocha-framework": "^9.2.8", - "electron": "^33.2.0", + "electron": "^33.2.1", "tsx": "^4.19.2", "wdio-electron-service": "workspace:*", - "webdriverio": "^9.2.14", + "webdriverio": "^9.4.1", "xvfb-maybe": "^0.2.1" }, "devDependencies": { - "@electron-forge/cli": "^7.5.0", + "@electron-forge/cli": "^7.6.0", "@rollup/plugin-typescript": "^12.1.1", - "@types/mocha": "^10.0.9", - "@types/node": "^22.9.1", - "@vitest/spy": "^2.1.5", + "@types/mocha": "^10.0.10", + "@types/node": "^22.10.1", + "@vitest/spy": "^2.1.8", "@wdio/electron-types": "workspace:*", "read-package-up": "^11.0.0", - "rollup": "^4.27.3", - "typescript": "^5.6.3" + "rollup": "^4.28.1", + "typescript": "^5.7.2" } } diff --git a/package.json b/package.json index 6fce05c1..96191052 100644 --- a/package.json +++ b/package.json @@ -44,36 +44,35 @@ "update:all": "pnpm up -iLr" }, "devDependencies": { - "@eslint/js": "^9.15.0", + "@eslint/js": "^9.16.0", "@types/eslint-config-prettier": "^6.11.2", - "@types/node": "^22.9.1", + "@types/node": "^22.10.1", "@types/shelljs": "^0.8.15", - "@typescript-eslint/eslint-plugin": "^8.15.0", - "@typescript-eslint/parser": "^8.15.0", - "@vitest/eslint-plugin": "^1.1.10", + "@typescript-eslint/eslint-plugin": "^8.18.0", + "@typescript-eslint/parser": "^8.18.0", + "@vitest/eslint-plugin": "^1.1.15", "cross-env": "^7.0.3", - "eslint": "^9.15.0", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-import-resolver-typescript": "^3.6.3", - "eslint-plugin-import-x": "^4.4.3", + "eslint-import-resolver-typescript": "^3.7.0", + "eslint-plugin-import-x": "^4.5.0", "eslint-plugin-wdio": "^9.2.11", - "globals": "^15.12.0", + "globals": "^15.13.0", "husky": "^9.1.7", - "lint-staged": "^15.2.10", - "prettier": "^3.3.3", + "lint-staged": "^15.2.11", + "prettier": "^3.4.2", "read-package-up": "^11.0.0", "release-it": "^17.10.0", "shelljs": "^0.8.5", "shx": "^0.3.4", "tsx": "^4.19.2", - "turbo": "^2.3.0" + "turbo": "^2.3.3" }, "lint-staged": { "**/*.{yml,json,md,ts,js}": [ "prettier --write" ] }, - "packageManager": "pnpm@9.13.0+sha512.beb9e2a803db336c10c9af682b58ad7181ca0fbd0d4119f2b33d5f2582e96d6c0d93c85b23869295b765170fbdaa92890c0da6ada457415039769edf3c959efe", "release-it": { "git": { "commitMessage": "chore: release v${version}", @@ -86,5 +85,6 @@ "npm": { "publish": false } - } + }, + "packageManager": "pnpm@9.13.0+sha512.beb9e2a803db336c10c9af682b58ad7181ca0fbd0d4119f2b33d5f2582e96d6c0d93c85b23869295b765170fbdaa92890c0da6ada457415039769edf3c959efe" } diff --git a/packages/@wdio_electron-types/package.json b/packages/@wdio_electron-types/package.json index 39989f50..255b4cc4 100644 --- a/packages/@wdio_electron-types/package.json +++ b/packages/@wdio_electron-types/package.json @@ -16,19 +16,19 @@ "release": "release-it -VV --ci --npm.skipChecks --no-git.requireCleanWorkingDir" }, "dependencies": { - "@vitest/spy": "^2.1.5" + "@vitest/spy": "^2.1.8" }, "devDependencies": { - "@electron-forge/shared-types": "^7.5.0", + "@electron-forge/shared-types": "^7.6.0", "@electron/packager": "^18.3.6", - "@wdio/globals": "^9.2.14", + "@wdio/globals": "^9.4.1", "@wdio/types": "^9.2.2", "builder-util": "25.1.7", - "electron": "^33.2.0", + "electron": "^33.2.1", "read-package-up": "^11.0.0", "release-it": "^17.10.0", - "typescript": "^5.6.3", - "webdriverio": "^9.2.14" + "typescript": "^5.7.2", + "webdriverio": "^9.4.1" }, "files": [ "dist/*" diff --git a/packages/@wdio_electron-utils/package.json b/packages/@wdio_electron-utils/package.json index dc3d9eee..53a30759 100644 --- a/packages/@wdio_electron-utils/package.json +++ b/packages/@wdio_electron-utils/package.json @@ -55,7 +55,7 @@ "dependencies": { "@electron/packager": "^18.3.6", "@wdio/logger": "^9.1.3", - "debug": "^4.3.7", + "debug": "^4.4.0", "find-versions": "^6.0.0", "json5": "^2.2.3", "read-package-up": "^11.0.0", @@ -65,13 +65,13 @@ }, "devDependencies": { "@types/debug": "^4.1.12", - "@types/node": "^22.9.1", - "@vitest/coverage-v8": "^2.1.5", + "@types/node": "^22.10.1", + "@vitest/coverage-v8": "^2.1.8", "@wdio/electron-types": "workspace:*", "release-it": "^17.10.0", "shx": "^0.3.4", - "typescript": "^5.6.3", - "vitest": "^2.1.5" + "typescript": "^5.7.2", + "vitest": "^2.1.8" }, "release-it": { "hooks": { diff --git a/packages/wdio-electron-service/package.json b/packages/wdio-electron-service/package.json index 35dbe2aa..31294e17 100644 --- a/packages/wdio-electron-service/package.json +++ b/packages/wdio-electron-service/package.json @@ -91,35 +91,35 @@ } }, "dependencies": { - "@vitest/spy": "^2.1.5", + "@vitest/spy": "^2.1.8", "@wdio/electron-types": "workspace:*", "@wdio/electron-utils": "workspace:*", - "@wdio/globals": "^9.2.14", + "@wdio/globals": "^9.4.1", "@wdio/logger": "^9.1.3", "compare-versions": "^6.1.1", - "debug": "^4.3.7", - "electron-to-chromium": "^1.5.63", + "debug": "^4.4.0", + "electron-to-chromium": "^1.5.72", "fast-copy": "^3.0.1", "read-package-up": "^11.0.0", "tinyspy": "^3.0.2", - "webdriverio": "^9.2.14" + "webdriverio": "^9.4.1" }, "devDependencies": { - "@electron-forge/shared-types": "^7.5.0", + "@electron-forge/shared-types": "^7.6.0", "@rollup/plugin-node-resolve": "^15.3.0", "@testing-library/webdriverio": "^3.2.1", "@types/debug": "^4.1.12", - "@types/node": "^22.9.1", - "@vitest/coverage-v8": "^2.1.5", + "@types/node": "^22.10.1", + "@vitest/coverage-v8": "^2.1.8", "@wdio/types": "^9.2.2", "builder-util": "^25.1.7", - "electron": "^33.2.0", + "electron": "^33.2.1", "nock": "^14.0.0-beta.16", "release-it": "^17.10.0", - "rollup": "^4.27.3", + "rollup": "^4.28.1", "shx": "^0.3.4", - "typescript": "^5.6.3", - "vitest": "^2.1.5" + "typescript": "^5.7.2", + "vitest": "^2.1.8" }, "files": [ "dist", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a9aed668..7dc5abab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,62 +9,62 @@ importers: .: devDependencies: '@eslint/js': - specifier: ^9.15.0 - version: 9.15.0 + specifier: ^9.16.0 + version: 9.16.0 '@types/eslint-config-prettier': specifier: ^6.11.2 version: 6.11.3 '@types/node': - specifier: ^22.9.1 - version: 22.9.1 + specifier: ^22.10.1 + version: 22.10.1 '@types/shelljs': specifier: ^0.8.15 version: 0.8.15 '@typescript-eslint/eslint-plugin': - specifier: ^8.15.0 - version: 8.15.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0)(typescript@5.6.3))(eslint@9.15.0)(typescript@5.6.3) + specifier: ^8.18.0 + version: 8.18.0(@typescript-eslint/parser@8.18.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0)(typescript@5.7.2) '@typescript-eslint/parser': - specifier: ^8.15.0 - version: 8.15.0(eslint@9.15.0)(typescript@5.6.3) + specifier: ^8.18.0 + version: 8.18.0(eslint@9.16.0)(typescript@5.7.2) '@vitest/eslint-plugin': - specifier: ^1.1.10 - version: 1.1.10(@typescript-eslint/utils@8.15.0(eslint@9.15.0)(typescript@5.6.3))(eslint@9.15.0)(typescript@5.6.3)(vitest@2.1.5(@types/node@22.9.1)(jsdom@25.0.1)(terser@5.36.0)) + specifier: ^1.1.15 + version: 1.1.15(@typescript-eslint/utils@8.18.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0)(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.1)(jsdom@25.0.1)(terser@5.36.0)) cross-env: specifier: ^7.0.3 version: 7.0.3 eslint: - specifier: ^9.15.0 - version: 9.15.0 + specifier: ^9.16.0 + version: 9.16.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@9.15.0) + version: 9.1.0(eslint@9.16.0) eslint-import-resolver-typescript: - specifier: ^3.6.3 - version: 3.6.3(@typescript-eslint/parser@8.15.0(eslint@9.15.0)(typescript@5.6.3))(eslint-plugin-import-x@4.4.3(eslint@9.15.0)(typescript@5.6.3))(eslint@9.15.0) + specifier: ^3.7.0 + version: 3.7.0(eslint-plugin-import-x@4.5.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0) eslint-plugin-import-x: - specifier: ^4.4.3 - version: 4.4.3(eslint@9.15.0)(typescript@5.6.3) + specifier: ^4.5.0 + version: 4.5.0(eslint@9.16.0)(typescript@5.7.2) eslint-plugin-wdio: specifier: ^9.2.11 version: 9.2.11 globals: - specifier: ^15.12.0 - version: 15.12.0 + specifier: ^15.13.0 + version: 15.13.0 husky: specifier: ^9.1.7 version: 9.1.7 lint-staged: - specifier: ^15.2.10 - version: 15.2.10 + specifier: ^15.2.11 + version: 15.2.11 prettier: - specifier: ^3.3.3 - version: 3.3.3 + specifier: ^3.4.2 + version: 3.4.2 read-package-up: specifier: ^11.0.0 version: 11.0.0 release-it: specifier: ^17.10.0 - version: 17.10.0(typescript@5.6.3) + version: 17.10.0(typescript@5.7.2) shelljs: specifier: ^0.8.5 version: 0.8.5 @@ -75,8 +75,8 @@ importers: specifier: ^4.19.2 version: 4.19.2 turbo: - specifier: ^2.3.0 - version: 2.3.0 + specifier: ^2.3.3 + version: 2.3.3 apps/builder-cjs: dependencies: @@ -85,23 +85,23 @@ importers: version: link:../../packages/wdio-electron-service devDependencies: '@types/node': - specifier: ^22.9.1 - version: 22.9.1 + specifier: ^22.10.1 + version: 22.10.1 '@wdio/cli': - specifier: ^9.2.14 - version: 9.2.14 + specifier: ^9.4.1 + version: 9.4.1 '@wdio/globals': - specifier: ^9.2.14 - version: 9.2.14(@wdio/logger@9.1.3) + specifier: ^9.4.1 + version: 9.4.1(@wdio/logger@9.1.3) '@wdio/local-runner': - specifier: ^9.2.15 - version: 9.2.15 + specifier: ^9.4.1 + version: 9.4.1 '@wdio/mocha-framework': specifier: ^9.2.8 version: 9.2.8 electron: - specifier: ^33.2.0 - version: 33.2.0 + specifier: ^33.2.1 + version: 33.2.1 electron-builder: specifier: ^25.1.8 version: 25.1.8(electron-builder-squirrel-windows@25.1.8) @@ -109,11 +109,11 @@ importers: specifier: ^4.19.2 version: 4.19.2 typescript: - specifier: ^5.6.3 - version: 5.6.3 + specifier: ^5.7.2 + version: 5.7.2 webdriverio: - specifier: ^9.2.14 - version: 9.2.14 + specifier: ^9.4.1 + version: 9.4.1 apps/builder-esm: dependencies: @@ -122,23 +122,23 @@ importers: version: link:../../packages/wdio-electron-service devDependencies: '@types/node': - specifier: ^22.9.1 - version: 22.9.1 + specifier: ^22.10.1 + version: 22.10.1 '@wdio/cli': - specifier: ^9.2.14 - version: 9.2.14 + specifier: ^9.4.1 + version: 9.4.1 '@wdio/globals': - specifier: ^9.2.14 - version: 9.2.14(@wdio/logger@9.1.3) + specifier: ^9.4.1 + version: 9.4.1(@wdio/logger@9.1.3) '@wdio/local-runner': - specifier: ^9.2.15 - version: 9.2.15 + specifier: ^9.4.1 + version: 9.4.1 '@wdio/mocha-framework': specifier: ^9.2.8 version: 9.2.8 electron: - specifier: ^33.2.0 - version: 33.2.0 + specifier: ^33.2.1 + version: 33.2.1 electron-builder: specifier: ^25.1.8 version: 25.1.8(electron-builder-squirrel-windows@25.1.8) @@ -146,11 +146,11 @@ importers: specifier: ^4.19.2 version: 4.19.2 typescript: - specifier: ^5.6.3 - version: 5.6.3 + specifier: ^5.7.2 + version: 5.7.2 webdriverio: - specifier: ^9.2.14 - version: 9.2.14 + specifier: ^9.4.1 + version: 9.4.1 apps/forge-cjs: dependencies: @@ -159,47 +159,47 @@ importers: version: link:../../packages/wdio-electron-service devDependencies: '@electron-forge/cli': - specifier: ^7.5.0 - version: 7.5.0(encoding@0.1.13) + specifier: ^7.6.0 + version: 7.6.0(encoding@0.1.13) '@rollup/plugin-commonjs': specifier: ^28.0.1 - version: 28.0.1(rollup@4.27.3) + version: 28.0.1(rollup@4.28.1) '@rollup/plugin-node-resolve': specifier: ^15.3.0 - version: 15.3.0(rollup@4.27.3) + version: 15.3.0(rollup@4.28.1) '@rollup/plugin-typescript': specifier: ^12.1.1 - version: 12.1.1(rollup@4.27.3)(tslib@2.8.1)(typescript@5.6.3) + version: 12.1.1(rollup@4.28.1)(tslib@2.8.1)(typescript@5.7.2) '@types/node': - specifier: ^22.9.1 - version: 22.9.1 + specifier: ^22.10.1 + version: 22.10.1 '@wdio/cli': - specifier: ^9.2.14 - version: 9.2.14 + specifier: ^9.4.1 + version: 9.4.1 '@wdio/globals': - specifier: ^9.2.14 - version: 9.2.14(@wdio/logger@9.1.3) + specifier: ^9.4.1 + version: 9.4.1(@wdio/logger@9.1.3) '@wdio/local-runner': - specifier: ^9.2.15 - version: 9.2.15 + specifier: ^9.4.1 + version: 9.4.1 '@wdio/mocha-framework': specifier: ^9.2.8 version: 9.2.8 electron: - specifier: ^33.2.0 - version: 33.2.0 + specifier: ^33.2.1 + version: 33.2.1 rollup: - specifier: ^4.27.3 - version: 4.27.3 + specifier: ^4.28.1 + version: 4.28.1 tsx: specifier: ^4.19.2 version: 4.19.2 typescript: - specifier: ^5.6.3 - version: 5.6.3 + specifier: ^5.7.2 + version: 5.7.2 webdriverio: - specifier: ^9.2.14 - version: 9.2.14 + specifier: ^9.4.1 + version: 9.4.1 apps/forge-esm: dependencies: @@ -208,47 +208,47 @@ importers: version: link:../../packages/wdio-electron-service devDependencies: '@electron-forge/cli': - specifier: ^7.5.0 - version: 7.5.0(encoding@0.1.13) + specifier: ^7.6.0 + version: 7.6.0(encoding@0.1.13) '@rollup/plugin-commonjs': specifier: ^28.0.1 - version: 28.0.1(rollup@4.27.3) + version: 28.0.1(rollup@4.28.1) '@rollup/plugin-node-resolve': specifier: ^15.3.0 - version: 15.3.0(rollup@4.27.3) + version: 15.3.0(rollup@4.28.1) '@rollup/plugin-typescript': specifier: ^12.1.1 - version: 12.1.1(rollup@4.27.3)(tslib@2.8.1)(typescript@5.6.3) + version: 12.1.1(rollup@4.28.1)(tslib@2.8.1)(typescript@5.7.2) '@types/node': - specifier: ^22.9.1 - version: 22.9.1 + specifier: ^22.10.1 + version: 22.10.1 '@wdio/cli': - specifier: ^9.2.14 - version: 9.2.14 + specifier: ^9.4.1 + version: 9.4.1 '@wdio/globals': - specifier: ^9.2.14 - version: 9.2.14(@wdio/logger@9.1.3) + specifier: ^9.4.1 + version: 9.4.1(@wdio/logger@9.1.3) '@wdio/local-runner': - specifier: ^9.2.15 - version: 9.2.15 + specifier: ^9.4.1 + version: 9.4.1 '@wdio/mocha-framework': specifier: ^9.2.8 version: 9.2.8 electron: - specifier: ^33.2.0 - version: 33.2.0 + specifier: ^33.2.1 + version: 33.2.1 rollup: - specifier: ^4.27.3 - version: 4.27.3 + specifier: ^4.28.1 + version: 4.28.1 tsx: specifier: ^4.19.2 version: 4.19.2 typescript: - specifier: ^5.6.3 - version: 5.6.3 + specifier: ^5.7.2 + version: 5.7.2 webdriverio: - specifier: ^9.2.14 - version: 9.2.14 + specifier: ^9.4.1 + version: 9.4.1 apps/no-binary-cjs: dependencies: @@ -258,43 +258,43 @@ importers: devDependencies: '@rollup/plugin-commonjs': specifier: ^28.0.1 - version: 28.0.1(rollup@4.27.3) + version: 28.0.1(rollup@4.28.1) '@rollup/plugin-node-resolve': specifier: ^15.3.0 - version: 15.3.0(rollup@4.27.3) + version: 15.3.0(rollup@4.28.1) '@rollup/plugin-typescript': specifier: ^12.1.1 - version: 12.1.1(rollup@4.27.3)(tslib@2.8.1)(typescript@5.6.3) + version: 12.1.1(rollup@4.28.1)(tslib@2.8.1)(typescript@5.7.2) '@types/node': - specifier: ^22.9.1 - version: 22.9.1 + specifier: ^22.10.1 + version: 22.10.1 '@wdio/cli': - specifier: ^9.2.14 - version: 9.2.14 + specifier: ^9.4.1 + version: 9.4.1 '@wdio/globals': - specifier: ^9.2.14 - version: 9.2.14(@wdio/logger@9.1.3) + specifier: ^9.4.1 + version: 9.4.1(@wdio/logger@9.1.3) '@wdio/local-runner': - specifier: ^9.2.15 - version: 9.2.15 + specifier: ^9.4.1 + version: 9.4.1 '@wdio/mocha-framework': specifier: ^9.2.8 version: 9.2.8 electron: - specifier: ^33.2.0 - version: 33.2.0 + specifier: ^33.2.1 + version: 33.2.1 rollup: - specifier: ^4.27.3 - version: 4.27.3 + specifier: ^4.28.1 + version: 4.28.1 tsx: specifier: ^4.19.2 version: 4.19.2 typescript: - specifier: ^5.6.3 - version: 5.6.3 + specifier: ^5.7.2 + version: 5.7.2 webdriverio: - specifier: ^9.2.14 - version: 9.2.14 + specifier: ^9.4.1 + version: 9.4.1 apps/no-binary-esm: dependencies: @@ -304,67 +304,67 @@ importers: devDependencies: '@rollup/plugin-commonjs': specifier: ^28.0.1 - version: 28.0.1(rollup@4.27.3) + version: 28.0.1(rollup@4.28.1) '@rollup/plugin-node-resolve': specifier: ^15.3.0 - version: 15.3.0(rollup@4.27.3) + version: 15.3.0(rollup@4.28.1) '@rollup/plugin-typescript': specifier: ^12.1.1 - version: 12.1.1(rollup@4.27.3)(tslib@2.8.1)(typescript@5.6.3) + version: 12.1.1(rollup@4.28.1)(tslib@2.8.1)(typescript@5.7.2) '@types/node': - specifier: ^22.9.1 - version: 22.9.1 + specifier: ^22.10.1 + version: 22.10.1 '@wdio/cli': - specifier: ^9.2.14 - version: 9.2.14 + specifier: ^9.4.1 + version: 9.4.1 '@wdio/globals': - specifier: ^9.2.14 - version: 9.2.14(@wdio/logger@9.1.3) + specifier: ^9.4.1 + version: 9.4.1(@wdio/logger@9.1.3) '@wdio/local-runner': - specifier: ^9.2.15 - version: 9.2.15 + specifier: ^9.4.1 + version: 9.4.1 '@wdio/mocha-framework': specifier: ^9.2.8 version: 9.2.8 electron: - specifier: ^33.2.0 - version: 33.2.0 + specifier: ^33.2.1 + version: 33.2.1 rollup: - specifier: ^4.27.3 - version: 4.27.3 + specifier: ^4.28.1 + version: 4.28.1 tsx: specifier: ^4.19.2 version: 4.19.2 typescript: - specifier: ^5.6.3 - version: 5.6.3 + specifier: ^5.7.2 + version: 5.7.2 webdriverio: - specifier: ^9.2.14 - version: 9.2.14 + specifier: ^9.4.1 + version: 9.4.1 e2e: dependencies: '@testing-library/webdriverio': specifier: ^3.2.1 - version: 3.2.1(webdriverio@9.2.14) + version: 3.2.1(webdriverio@9.4.1) '@wdio/cli': - specifier: ^9.2.14 - version: 9.2.14 + specifier: ^9.4.1 + version: 9.4.1 '@wdio/electron-utils': specifier: workspace:* version: link:../packages/@wdio_electron-utils '@wdio/globals': - specifier: ^9.2.14 - version: 9.2.14(@wdio/logger@9.1.3) + specifier: ^9.4.1 + version: 9.4.1(@wdio/logger@9.1.3) '@wdio/local-runner': - specifier: ^9.2.15 - version: 9.2.15 + specifier: ^9.4.1 + version: 9.4.1 '@wdio/mocha-framework': specifier: ^9.2.8 version: 9.2.8 electron: - specifier: ^33.2.0 - version: 33.2.0 + specifier: ^33.2.1 + version: 33.2.1 tsx: specifier: ^4.19.2 version: 4.19.2 @@ -372,27 +372,27 @@ importers: specifier: workspace:* version: link:../packages/wdio-electron-service webdriverio: - specifier: ^9.2.14 - version: 9.2.14 + specifier: ^9.4.1 + version: 9.4.1 xvfb-maybe: specifier: ^0.2.1 version: 0.2.1 devDependencies: '@electron-forge/cli': - specifier: ^7.5.0 - version: 7.5.0(encoding@0.1.13) + specifier: ^7.6.0 + version: 7.6.0(encoding@0.1.13) '@rollup/plugin-typescript': specifier: ^12.1.1 - version: 12.1.1(rollup@4.27.3)(tslib@2.8.1)(typescript@5.6.3) + version: 12.1.1(rollup@4.28.1)(tslib@2.8.1)(typescript@5.7.2) '@types/mocha': - specifier: ^10.0.9 - version: 10.0.9 + specifier: ^10.0.10 + version: 10.0.10 '@types/node': - specifier: ^22.9.1 - version: 22.9.1 + specifier: ^22.10.1 + version: 22.10.1 '@vitest/spy': - specifier: ^2.1.5 - version: 2.1.5 + specifier: ^2.1.8 + version: 2.1.8 '@wdio/electron-types': specifier: workspace:* version: link:../packages/@wdio_electron-types @@ -400,27 +400,27 @@ importers: specifier: ^11.0.0 version: 11.0.0 rollup: - specifier: ^4.27.3 - version: 4.27.3 + specifier: ^4.28.1 + version: 4.28.1 typescript: - specifier: ^5.6.3 - version: 5.6.3 + specifier: ^5.7.2 + version: 5.7.2 packages/@wdio_electron-types: dependencies: '@vitest/spy': - specifier: ^2.1.5 - version: 2.1.5 + specifier: ^2.1.8 + version: 2.1.8 devDependencies: '@electron-forge/shared-types': - specifier: ^7.5.0 - version: 7.5.0 + specifier: ^7.6.0 + version: 7.6.0 '@electron/packager': specifier: ^18.3.6 version: 18.3.6 '@wdio/globals': - specifier: ^9.2.14 - version: 9.2.14(@wdio/logger@9.1.3) + specifier: ^9.4.1 + version: 9.4.1(@wdio/logger@9.1.3) '@wdio/types': specifier: ^9.2.2 version: 9.2.2 @@ -428,20 +428,20 @@ importers: specifier: 25.1.7 version: 25.1.7 electron: - specifier: ^33.2.0 - version: 33.2.0 + specifier: ^33.2.1 + version: 33.2.1 read-package-up: specifier: ^11.0.0 version: 11.0.0 release-it: specifier: ^17.10.0 - version: 17.10.0(typescript@5.6.3) + version: 17.10.0(typescript@5.7.2) typescript: - specifier: ^5.6.3 - version: 5.6.3 + specifier: ^5.7.2 + version: 5.7.2 webdriverio: - specifier: ^9.2.14 - version: 9.2.14 + specifier: ^9.4.1 + version: 9.4.1 packages/@wdio_electron-utils: dependencies: @@ -452,8 +452,8 @@ importers: specifier: ^9.1.3 version: 9.1.3 debug: - specifier: ^4.3.7 - version: 4.3.7(supports-color@8.1.1) + specifier: ^4.4.0 + version: 4.4.0(supports-color@8.1.1) find-versions: specifier: ^6.0.0 version: 6.0.0 @@ -477,32 +477,32 @@ importers: specifier: ^4.1.12 version: 4.1.12 '@types/node': - specifier: ^22.9.1 - version: 22.9.1 + specifier: ^22.10.1 + version: 22.10.1 '@vitest/coverage-v8': - specifier: ^2.1.5 - version: 2.1.5(vitest@2.1.5(@types/node@22.9.1)(jsdom@25.0.1)(terser@5.36.0)) + specifier: ^2.1.8 + version: 2.1.8(vitest@2.1.8(@types/node@22.10.1)(jsdom@25.0.1)(terser@5.36.0)) '@wdio/electron-types': specifier: workspace:* version: link:../@wdio_electron-types release-it: specifier: ^17.10.0 - version: 17.10.0(typescript@5.6.3) + version: 17.10.0(typescript@5.7.2) shx: specifier: ^0.3.4 version: 0.3.4 typescript: - specifier: ^5.6.3 - version: 5.6.3 + specifier: ^5.7.2 + version: 5.7.2 vitest: - specifier: ^2.1.5 - version: 2.1.5(@types/node@22.9.1)(jsdom@25.0.1)(terser@5.36.0) + specifier: ^2.1.8 + version: 2.1.8(@types/node@22.10.1)(jsdom@25.0.1)(terser@5.36.0) packages/wdio-electron-service: dependencies: '@vitest/spy': - specifier: ^2.1.5 - version: 2.1.5 + specifier: ^2.1.8 + version: 2.1.8 '@wdio/electron-types': specifier: workspace:* version: link:../@wdio_electron-types @@ -510,8 +510,8 @@ importers: specifier: workspace:* version: link:../@wdio_electron-utils '@wdio/globals': - specifier: ^9.2.14 - version: 9.2.14(@wdio/logger@9.1.3) + specifier: ^9.4.1 + version: 9.4.1(@wdio/logger@9.1.3) '@wdio/logger': specifier: ^9.1.3 version: 9.1.3 @@ -519,11 +519,11 @@ importers: specifier: ^6.1.1 version: 6.1.1 debug: - specifier: ^4.3.7 - version: 4.3.7(supports-color@8.1.1) + specifier: ^4.4.0 + version: 4.4.0(supports-color@8.1.1) electron-to-chromium: - specifier: ^1.5.63 - version: 1.5.63 + specifier: ^1.5.72 + version: 1.5.72 fast-copy: specifier: ^3.0.1 version: 3.0.2 @@ -534,27 +534,27 @@ importers: specifier: ^3.0.2 version: 3.0.2 webdriverio: - specifier: ^9.2.14 - version: 9.2.14 + specifier: ^9.4.1 + version: 9.4.1 devDependencies: '@electron-forge/shared-types': - specifier: ^7.5.0 - version: 7.5.0 + specifier: ^7.6.0 + version: 7.6.0 '@rollup/plugin-node-resolve': specifier: ^15.3.0 - version: 15.3.0(rollup@4.27.3) + version: 15.3.0(rollup@4.28.1) '@testing-library/webdriverio': specifier: ^3.2.1 - version: 3.2.1(webdriverio@9.2.14) + version: 3.2.1(webdriverio@9.4.1) '@types/debug': specifier: ^4.1.12 version: 4.1.12 '@types/node': - specifier: ^22.9.1 - version: 22.9.1 + specifier: ^22.10.1 + version: 22.10.1 '@vitest/coverage-v8': - specifier: ^2.1.5 - version: 2.1.5(vitest@2.1.5(@types/node@22.9.1)(jsdom@25.0.1)(terser@5.36.0)) + specifier: ^2.1.8 + version: 2.1.8(vitest@2.1.8(@types/node@22.10.1)(jsdom@25.0.1)(terser@5.36.0)) '@wdio/types': specifier: ^9.2.2 version: 9.2.2 @@ -562,26 +562,26 @@ importers: specifier: ^25.1.7 version: 25.1.7 electron: - specifier: ^33.2.0 - version: 33.2.0 + specifier: ^33.2.1 + version: 33.2.1 nock: specifier: ^14.0.0-beta.16 version: 14.0.0-beta.16 release-it: specifier: ^17.10.0 - version: 17.10.0(typescript@5.6.3) + version: 17.10.0(typescript@5.7.2) rollup: - specifier: ^4.27.3 - version: 4.27.3 + specifier: ^4.28.1 + version: 4.28.1 shx: specifier: ^0.3.4 version: 0.3.4 typescript: - specifier: ^5.6.3 - version: 5.6.3 + specifier: ^5.7.2 + version: 5.7.2 vitest: - specifier: ^2.1.5 - version: 2.1.5(@types/node@22.9.1)(jsdom@25.0.1)(terser@5.36.0) + specifier: ^2.1.8 + version: 2.1.8(@types/node@22.10.1)(jsdom@25.0.1)(terser@5.36.0) packages: @@ -612,8 +612,8 @@ packages: resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.26.2': - resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} + '@babel/parser@7.26.3': + resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} engines: {node: '>=6.0.0'} hasBin: true @@ -621,8 +621,8 @@ packages: resolution: {integrity: sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w==} engines: {node: '>=6.9.0'} - '@babel/types@7.26.0': - resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} + '@babel/types@7.26.3': + resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': @@ -632,57 +632,57 @@ packages: resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==} engines: {node: '>= 8.9.0'} - '@electron-forge/cli@7.5.0': - resolution: {integrity: sha512-dlxr4ac5ONWs1Wmbgh18rclxcp9Fe5SzCF9ookp08Z1w4YP9FbQd1SHs0oLKWLF6qH9qdX8H2EWB9Nt6tOzC5g==} + '@electron-forge/cli@7.6.0': + resolution: {integrity: sha512-5G7rBbvTb4HJDiCuhncBzNaRj1e1dEmrk6jExpziqv4Y8p9b+nxfdOjsjWu0hvAl4k2V65Rnm1uEkAA7MmlZOQ==} engines: {node: '>= 16.4.0'} hasBin: true - '@electron-forge/core-utils@7.5.0': - resolution: {integrity: sha512-PtyQT6qeOEJsi4ltoB7Jb6YUUCwK3gDt5gVyAF2aJ8eZi9rJ0hasHc5vjcmBaz9FwDMjYZrBD8oRBhNgbhEakQ==} + '@electron-forge/core-utils@7.6.0': + resolution: {integrity: sha512-7XVKHPI87p558kVen280yB1UC2cVGHvrMfnPFv4zm3TQHEVaKWKW+5y+UZsKUnGAukNlahHWuHF/1S8dRCJNEg==} engines: {node: '>= 16.4.0'} - '@electron-forge/core@7.5.0': - resolution: {integrity: sha512-Hg/fXabRZtMbyrtnpzpb3i49qNai+juCg+6bgyjYfWgJGr5VGH947lWd7skujH5qJ+Y7FgvANDGnenZuQwxZNw==} + '@electron-forge/core@7.6.0': + resolution: {integrity: sha512-DgkjpoK+SPExNTLZL1v81zl0RswQWvMXkMnMqZYf0/S/KHKTXWsoE9KTzr8fDGpiG3nUJXWMqHyny9zLoUdKXQ==} engines: {node: '>= 16.4.0'} - '@electron-forge/maker-base@7.5.0': - resolution: {integrity: sha512-+jluKW2UPxaI1+qQQ8fqaUVVbZohRjOSF0Iti7STRFbgJKJitzPB24Cjji9qJCKIx5klMeEiwp0YPAE/d9Xt8g==} + '@electron-forge/maker-base@7.6.0': + resolution: {integrity: sha512-GrVYhiA/g0NXrI13LcXrT+JKLlq8kkYyO6w0jQORqDFeRSLRoLhrru5w0msg0wINGugBe+/NwyAyFZ2KaQ6o4g==} engines: {node: '>= 16.4.0'} - '@electron-forge/plugin-base@7.5.0': - resolution: {integrity: sha512-44AbXSb5lDY8uHIo0mJ91atOSWgxv3iuECk07/gDBiuMPX62dwHnLteEjQF4GBXJZTpnV7SxhD+d2AUBQmoojw==} + '@electron-forge/plugin-base@7.6.0': + resolution: {integrity: sha512-9llu4algWZJAJFVVZtd/Xa71c0QVxRmoMrpHX2SB+XJ+ZlFVdXrlnhn2hc/CnM0by9cBElyAL3cx3533OKS7lA==} engines: {node: '>= 16.4.0'} - '@electron-forge/publisher-base@7.5.0': - resolution: {integrity: sha512-PcF3jWA+oXRwNVWjKW6GxHJywJ62QXpYF/8SMs7kgKzBDzLqrbUnWuaXoCP5kCP+AxM495ZU5L2dyJek1eM+VA==} + '@electron-forge/publisher-base@7.6.0': + resolution: {integrity: sha512-IL9bbIb/4J4I1bfW53RAmE/Al835XJsOwFXTLUnxnaGtbWg5jz7eiyw9Vl8XvvfHN1Dpoa9f94to8keU2MXgDg==} engines: {node: '>= 16.4.0'} - '@electron-forge/shared-types@7.5.0': - resolution: {integrity: sha512-VXuLVGYa3ZulBlmjA40ZEpk+iPH5ebN0v7t27wDt3rm23bph2aQrL7uSTLXhobenXYBVKggXnQt6rJ9A7FCDNQ==} + '@electron-forge/shared-types@7.6.0': + resolution: {integrity: sha512-qpJRaPo/tx/+t3iFdUWnK4Tk/elo+Izk3yS+BhzfaF0XOK8wS+NNYW4vycK6eVMxN3Yu7/924MQFtPlCKlWHvA==} engines: {node: '>= 16.4.0'} - '@electron-forge/template-base@7.5.0': - resolution: {integrity: sha512-wEz4FI90jje4FdwJ4FzqUejodfioNcJjlgG2Ci1FiRn4Qv0jX4MP8SEgKmnD44181/44HgMa429zxRv/fDYzOw==} + '@electron-forge/template-base@7.6.0': + resolution: {integrity: sha512-lhvab8a/knuGnpzep8BMOEkgnkHGr11QELGBzslEnA6rwZi9DDyEgmMCk6VWOVQNHMeuEqh5XlgjVqJmjW6nIQ==} engines: {node: '>= 16.4.0'} - '@electron-forge/template-vite-typescript@7.5.0': - resolution: {integrity: sha512-bD9QQ6uEsDHp6/V7odCkoK53egy0A4LEh++F1VYFt7SWJ5+InkcSLww7ELz2hrNmpmXb+euRrNagL1gorPToSA==} + '@electron-forge/template-vite-typescript@7.6.0': + resolution: {integrity: sha512-i2Bt5Hehoq2CNNrUQjl8DQX7VatBMQ6mv+CCa+m+EV92nUYxXsoFva62/5ITpc3gFAGd1upw/S7dTbHV6GOwsA==} engines: {node: '>= 16.4.0'} - '@electron-forge/template-vite@7.5.0': - resolution: {integrity: sha512-AkMO5nW5jC8ijCYeoAK7hu+K5o7NMoHNsn71eepJ/kjOnSxXjJeBVGmP4DgzF2zc6AgeRz2TCKx6P8GUtFG5cw==} + '@electron-forge/template-vite@7.6.0': + resolution: {integrity: sha512-C0V0dGDO1hLXnAM9lGnZU0esNOTbxwcgILWJXv0mYErBkmputAIi3HM1Is3h3JdSijXgVbRWcIQxFxJlOCpB/A==} engines: {node: '>= 16.4.0'} - '@electron-forge/template-webpack-typescript@7.5.0': - resolution: {integrity: sha512-Q11xAzFxWtES0bwykMd8MAzrVRtmSruXQxQIvqM7Qf3VmU8joq8v5njmn13LeCDkcRGjALiJqO8EsgsW3bttNw==} + '@electron-forge/template-webpack-typescript@7.6.0': + resolution: {integrity: sha512-fDj4DkGxJJjGL8lpowFnkX7PvV9koLHKJuyusK8p8ayVMGoHpHrIcVCrV06tKYOvhFrL/ahW+CKKvjlxF8niEg==} engines: {node: '>= 16.4.0'} - '@electron-forge/template-webpack@7.5.0': - resolution: {integrity: sha512-Il9dO4VMhxibsYTsKRkccWUN3WFg55PEQFL93oarFcEtAT3sjMx/1bZDj/2AIHqbwIf7IrCylPKiPP2uUNOM9Q==} + '@electron-forge/template-webpack@7.6.0': + resolution: {integrity: sha512-+HEf0ryUfLpHvl27TXSdP2Ob69+ktNtr5EnmroZGGIxhSAtEs4HloPtDF9PSfBzm38pZhQBZn78kY9LbITTGjg==} engines: {node: '>= 16.4.0'} - '@electron-forge/tracer@7.5.0': - resolution: {integrity: sha512-1dE0wKCmv/K3BXCH70o2jp/y2kXgZQm73gIvzyadySXYwu2L4BWxhAO+Q+JsnbUk+nclHEup5ph4D0JoPIWLcQ==} + '@electron-forge/tracer@7.6.0': + resolution: {integrity: sha512-Rn76RHqNhLyZDnu+xY/X73+bv+Q09XKaZBL/WvlYBbvrrHe26NOHJ3IHXxkWRokSWd4B7lOGLGKm3j1Il8dVbQ==} engines: {node: '>= 14.17.5'} '@electron/asar@3.2.13': @@ -709,10 +709,6 @@ packages: engines: {node: '>=12.13.0'} hasBin: true - '@electron/notarize@2.4.0': - resolution: {integrity: sha512-ArHnRPIJJGrmV+uWNQSINAht+cM4gAo3uA3WFI54bYF93mzmD15gzhPQ0Dd+v/fkMhnRiiIO8NNkGdn87Vsy0g==} - engines: {node: '>= 10.0.0'} - '@electron/notarize@2.5.0': resolution: {integrity: sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A==} engines: {node: '>= 10.0.0'} @@ -722,11 +718,6 @@ packages: engines: {node: '>=12.0.0'} hasBin: true - '@electron/packager@18.3.5': - resolution: {integrity: sha512-ClgTxXTt3MesWAcjIxIkgxELjTcllw1FRoVsihP7uT48kpDMqI71p4XvnMWbq8PvU57TcrKICAaLkxRhbc+/wQ==} - engines: {node: '>= 16.13.0'} - hasBin: true - '@electron/packager@18.3.6': resolution: {integrity: sha512-1eXHB5t+SQKvUiDpWGpvr90ZSSbXj+isrh3YbjCTjKT4bE4SQrKSBfukEAaBvp67+GXHFtCHjQgN9qSTFIge+Q==} engines: {node: '>= 16.13.0'} @@ -737,8 +728,8 @@ packages: engines: {node: '>=12.13.0'} hasBin: true - '@electron/rebuild@3.7.0': - resolution: {integrity: sha512-VW++CNSlZwMYP7MyXEbrKjpzEwhB5kDNbzGtiPEjwYysqyTCF+YbNJ210Dj3AjWsGSV4iEEwNkmJN9yGZmVvmw==} + '@electron/rebuild@3.7.1': + resolution: {integrity: sha512-sKGD+xav4Gh25+LcLY0rjIwcCFTw+f/HU1pB48UVbwxXXRGaXEqIH0AaYKN46dgd/7+6kuiDXzoyAEvx1zCsdw==} engines: {node: '>=12.13.0'} hasBin: true @@ -746,11 +737,6 @@ packages: resolution: {integrity: sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA==} engines: {node: '>=16.4'} - '@electron/windows-sign@1.1.3': - resolution: {integrity: sha512-OqVSdAe+/88fIjvTDWiy+5Ho1nXsiBhE5RTsIQ6M/zcxcDAEP2TlQCkOyusItnmzXRN+XTFaK9gKhiZ6KGyXQw==} - engines: {node: '>=14.14'} - hasBin: true - '@electron/windows-sign@1.2.0': resolution: {integrity: sha512-5zfLHfD6kGgsXzuYlKwlWWO8w6dboKy4dhd7rGnR4rQYumuDgPAF2TYjEa8LUi89KdHxtDy2btq02KvbjhK9Iw==} engines: {node: '>=14.14'} @@ -1048,28 +1034,28 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.19.0': - resolution: {integrity: sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==} + '@eslint/config-array@0.19.1': + resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.9.0': - resolution: {integrity: sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==} + '@eslint/core@0.9.1': + resolution: {integrity: sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@3.2.0': resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.15.0': - resolution: {integrity: sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==} + '@eslint/js@9.16.0': + resolution: {integrity: sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@2.1.4': - resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + '@eslint/object-schema@2.1.5': + resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.3': - resolution: {integrity: sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==} + '@eslint/plugin-kit@0.2.4': + resolution: {integrity: sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@gar/promisify@1.1.3': @@ -1361,93 +1347,98 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.27.3': - resolution: {integrity: sha512-EzxVSkIvCFxUd4Mgm4xR9YXrcp976qVaHnqom/Tgm+vU79k4vV4eYTjmRvGfeoW8m9LVcsAy/lGjcgVegKEhLQ==} + '@rollup/rollup-android-arm-eabi@4.28.1': + resolution: {integrity: sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.27.3': - resolution: {integrity: sha512-LJc5pDf1wjlt9o/Giaw9Ofl+k/vLUaYsE2zeQGH85giX2F+wn/Cg8b3c5CDP3qmVmeO5NzwVUzQQxwZvC2eQKw==} + '@rollup/rollup-android-arm64@4.28.1': + resolution: {integrity: sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.27.3': - resolution: {integrity: sha512-OuRysZ1Mt7wpWJ+aYKblVbJWtVn3Cy52h8nLuNSzTqSesYw1EuN6wKp5NW/4eSre3mp12gqFRXOKTcN3AI3LqA==} + '@rollup/rollup-darwin-arm64@4.28.1': + resolution: {integrity: sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.27.3': - resolution: {integrity: sha512-xW//zjJMlJs2sOrCmXdB4d0uiilZsOdlGQIC/jjmMWT47lkLLoB1nsNhPUcnoqyi5YR6I4h+FjBpILxbEy8JRg==} + '@rollup/rollup-darwin-x64@4.28.1': + resolution: {integrity: sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.27.3': - resolution: {integrity: sha512-58E0tIcwZ+12nK1WiLzHOD8I0d0kdrY/+o7yFVPRHuVGY3twBwzwDdTIBGRxLmyjciMYl1B/U515GJy+yn46qw==} + '@rollup/rollup-freebsd-arm64@4.28.1': + resolution: {integrity: sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.27.3': - resolution: {integrity: sha512-78fohrpcVwTLxg1ZzBMlwEimoAJmY6B+5TsyAZ3Vok7YabRBUvjYTsRXPTjGEvv/mfgVBepbW28OlMEz4w8wGA==} + '@rollup/rollup-freebsd-x64@4.28.1': + resolution: {integrity: sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.27.3': - resolution: {integrity: sha512-h2Ay79YFXyQi+QZKo3ISZDyKaVD7uUvukEHTOft7kh00WF9mxAaxZsNs3o/eukbeKuH35jBvQqrT61fzKfAB/Q==} + '@rollup/rollup-linux-arm-gnueabihf@4.28.1': + resolution: {integrity: sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.27.3': - resolution: {integrity: sha512-Sv2GWmrJfRY57urktVLQ0VKZjNZGogVtASAgosDZ1aUB+ykPxSi3X1nWORL5Jk0sTIIwQiPH7iE3BMi9zGWfkg==} + '@rollup/rollup-linux-arm-musleabihf@4.28.1': + resolution: {integrity: sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.27.3': - resolution: {integrity: sha512-FPoJBLsPW2bDNWjSrwNuTPUt30VnfM8GPGRoLCYKZpPx0xiIEdFip3dH6CqgoT0RnoGXptaNziM0WlKgBc+OWQ==} + '@rollup/rollup-linux-arm64-gnu@4.28.1': + resolution: {integrity: sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.27.3': - resolution: {integrity: sha512-TKxiOvBorYq4sUpA0JT+Fkh+l+G9DScnG5Dqx7wiiqVMiRSkzTclP35pE6eQQYjP4Gc8yEkJGea6rz4qyWhp3g==} + '@rollup/rollup-linux-arm64-musl@4.28.1': + resolution: {integrity: sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.27.3': - resolution: {integrity: sha512-v2M/mPvVUKVOKITa0oCFksnQQ/TqGrT+yD0184/cWHIu0LoIuYHwox0Pm3ccXEz8cEQDLk6FPKd1CCm+PlsISw==} + '@rollup/rollup-linux-loongarch64-gnu@4.28.1': + resolution: {integrity: sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.28.1': + resolution: {integrity: sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.27.3': - resolution: {integrity: sha512-LdrI4Yocb1a/tFVkzmOE5WyYRgEBOyEhWYJe4gsDWDiwnjYKjNs7PS6SGlTDB7maOHF4kxevsuNBl2iOcj3b4A==} + '@rollup/rollup-linux-riscv64-gnu@4.28.1': + resolution: {integrity: sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.27.3': - resolution: {integrity: sha512-d4wVu6SXij/jyiwPvI6C4KxdGzuZOvJ6y9VfrcleHTwo68fl8vZC5ZYHsCVPUi4tndCfMlFniWgwonQ5CUpQcA==} + '@rollup/rollup-linux-s390x-gnu@4.28.1': + resolution: {integrity: sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.27.3': - resolution: {integrity: sha512-/6bn6pp1fsCGEY5n3yajmzZQAh+mW4QPItbiWxs69zskBzJuheb3tNynEjL+mKOsUSFK11X4LYF2BwwXnzWleA==} + '@rollup/rollup-linux-x64-gnu@4.28.1': + resolution: {integrity: sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.27.3': - resolution: {integrity: sha512-nBXOfJds8OzUT1qUreT/en3eyOXd2EH5b0wr2bVB5999qHdGKkzGzIyKYaKj02lXk6wpN71ltLIaQpu58YFBoQ==} + '@rollup/rollup-linux-x64-musl@4.28.1': + resolution: {integrity: sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.27.3': - resolution: {integrity: sha512-ogfbEVQgIZOz5WPWXF2HVb6En+kWzScuxJo/WdQTqEgeyGkaa2ui5sQav9Zkr7bnNCLK48uxmmK0TySm22eiuw==} + '@rollup/rollup-win32-arm64-msvc@4.28.1': + resolution: {integrity: sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.27.3': - resolution: {integrity: sha512-ecE36ZBMLINqiTtSNQ1vzWc5pXLQHlf/oqGp/bSbi7iedcjcNb6QbCBNG73Euyy2C+l/fn8qKWEwxr+0SSfs3w==} + '@rollup/rollup-win32-ia32-msvc@4.28.1': + resolution: {integrity: sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.27.3': - resolution: {integrity: sha512-vliZLrDmYKyaUoMzEbMTg2JkerfBjn03KmAw9CykO0Zzkzoyd7o3iZNam/TpyWNjNT+Cz2iO3P9Smv2wgrR+Eg==} + '@rollup/rollup-win32-x64-msvc@4.28.1': + resolution: {integrity: sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA==} cpu: [x64] os: [win32] @@ -1531,6 +1522,9 @@ packages: '@types/minimatch@5.1.2': resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + '@types/mocha@10.0.10': + resolution: {integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==} + '@types/mocha@10.0.9': resolution: {integrity: sha512-sicdRoWtYevwxjOHNMPTl3vSfJM6oyW8o1wXeI7uww6b6xHg8eBznQDNSGBCDJmsE8UMxP05JgZRtsKbTqt//Q==} @@ -1540,11 +1534,11 @@ packages: '@types/mute-stream@0.0.4': resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} - '@types/node@20.17.6': - resolution: {integrity: sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==} + '@types/node@20.17.9': + resolution: {integrity: sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==} - '@types/node@22.9.1': - resolution: {integrity: sha512-p8Yy/8sw1caA8CdRIQBG5tiLHmxtQKObCijiAa9Ez+d4+PRffM4054xbju0msf+cvhJpnFEeNjxmVT/0ipktrg==} + '@types/node@22.10.1': + resolution: {integrity: sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1588,79 +1582,64 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.15.0': - resolution: {integrity: sha512-+zkm9AR1Ds9uLWN3fkoeXgFppaQ+uEVtfOV62dDmsy9QCNqlRHWNEck4yarvRNrvRcHQLGfqBNui3cimoz8XAg==} + '@typescript-eslint/eslint-plugin@8.18.0': + resolution: {integrity: sha512-NR2yS7qUqCL7AIxdJUQf2MKKNDVNaig/dEB0GBLU7D+ZdHgK1NoH/3wsgO3OnPVipn51tG3MAwaODEGil70WEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/parser@8.15.0': - resolution: {integrity: sha512-7n59qFpghG4uazrF9qtGKBZXn7Oz4sOMm8dwNWDQY96Xlm2oX67eipqcblDj+oY1lLCbf1oltMZFpUso66Kl1A==} + '@typescript-eslint/parser@8.18.0': + resolution: {integrity: sha512-hgUZ3kTEpVzKaK3uNibExUYm6SKKOmTU2BOxBSvOYwtJEPdVQ70kZJpPjstlnhCHcuc2WGfSbpKlb/69ttyN5Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/scope-manager@8.15.0': - resolution: {integrity: sha512-QRGy8ADi4J7ii95xz4UoiymmmMd/zuy9azCaamnZ3FM8T5fZcex8UfJcjkiEZjJSztKfEBe3dZ5T/5RHAmw2mA==} + '@typescript-eslint/scope-manager@8.18.0': + resolution: {integrity: sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.15.0': - resolution: {integrity: sha512-UU6uwXDoI3JGSXmcdnP5d8Fffa2KayOhUUqr/AiBnG1Gl7+7ut/oyagVeSkh7bxQ0zSXV9ptRh/4N15nkCqnpw==} + '@typescript-eslint/type-utils@8.18.0': + resolution: {integrity: sha512-er224jRepVAVLnMF2Q7MZJCq5CsdH2oqjP4dT7K6ij09Kyd+R21r7UVJrF0buMVdZS5QRhDzpvzAxHxabQadow==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/types@8.15.0': - resolution: {integrity: sha512-n3Gt8Y/KyJNe0S3yDCD2RVKrHBC4gTUcLTebVBXacPy091E6tNspFLKRXlk3hwT4G55nfr1n2AdFqi/XMxzmPQ==} + '@typescript-eslint/types@8.18.0': + resolution: {integrity: sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.15.0': - resolution: {integrity: sha512-1eMp2JgNec/niZsR7ioFBlsh/Fk0oJbhaqO0jRyQBMgkz7RrFfkqF9lYYmBoGBaSiLnu8TAPQTwoTUiSTUW9dg==} + '@typescript-eslint/typescript-estree@8.18.0': + resolution: {integrity: sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.15.0': - resolution: {integrity: sha512-k82RI9yGhr0QM3Dnq+egEpz9qB6Un+WLYhmoNcvl8ltMEededhh7otBVVIDDsEEttauwdY/hQoSsOv13lxrFzQ==} + '@typescript-eslint/utils@8.18.0': + resolution: {integrity: sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@8.15.0': - resolution: {integrity: sha512-h8vYOulWec9LhpwfAdZf2bjr8xIp0KNKnpgqSz0qqYYKAW/QZKw3ktRndbiAtUz4acH4QLQavwZBYCc0wulA/Q==} + '@typescript-eslint/visitor-keys@8.18.0': + resolution: {integrity: sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@vitest/coverage-v8@2.1.5': - resolution: {integrity: sha512-/RoopB7XGW7UEkUndRXF87A9CwkoZAJW01pj8/3pgmDVsjMH2IKy6H1A38po9tmUlwhSyYs0az82rbKd9Yaynw==} + '@vitest/coverage-v8@2.1.8': + resolution: {integrity: sha512-2Y7BPlKH18mAZYAW1tYByudlCYrQyl5RGvnnDYJKW5tCiO5qg3KSAy3XAxcxKz900a0ZXxWtKrMuZLe3lKBpJw==} peerDependencies: - '@vitest/browser': 2.1.5 - vitest: 2.1.5 + '@vitest/browser': 2.1.8 + vitest: 2.1.8 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/eslint-plugin@1.1.10': - resolution: {integrity: sha512-uScH5Kz5v32vvtQYB2iodpoPg2mGASK+VKpjlc2IUgE0+16uZKqVKi2vQxjxJ6sMCQLBs4xhBFZlmZBszsmfKQ==} + '@vitest/eslint-plugin@1.1.15': + resolution: {integrity: sha512-vvi8UPNrDiqC/IrtV2QZn43WoO/Da9q4rYiyfhcyd3hT4rDE/wuvGxCzUEtVejocwAwKDvKk7CzWOKXGkQo50A==} peerDependencies: '@typescript-eslint/utils': '>= 8.0' eslint: '>= 8.57.0' @@ -1672,11 +1651,11 @@ packages: vitest: optional: true - '@vitest/expect@2.1.5': - resolution: {integrity: sha512-nZSBTW1XIdpZvEJyoP/Sy8fUg0b8od7ZpGDkTUcfJ7wz/VoZAFzFfLyxVxGFhUjJzhYqSbIpfMtl/+k/dpWa3Q==} + '@vitest/expect@2.1.8': + resolution: {integrity: sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==} - '@vitest/mocker@2.1.5': - resolution: {integrity: sha512-XYW6l3UuBmitWqSUXTNXcVBUCRytDogBsWuNXQijc00dtnU/9OqpXWp4OJroVrad/gLIomAq9aW8yWDBtMthhQ==} + '@vitest/mocker@2.1.8': + resolution: {integrity: sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==} peerDependencies: msw: ^2.4.9 vite: ^5.0.0 @@ -1686,23 +1665,23 @@ packages: vite: optional: true - '@vitest/pretty-format@2.1.5': - resolution: {integrity: sha512-4ZOwtk2bqG5Y6xRGHcveZVr+6txkH7M2e+nPFd6guSoN638v/1XQ0K06eOpi0ptVU/2tW/pIU4IoPotY/GZ9fw==} + '@vitest/pretty-format@2.1.8': + resolution: {integrity: sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==} - '@vitest/runner@2.1.5': - resolution: {integrity: sha512-pKHKy3uaUdh7X6p1pxOkgkVAFW7r2I818vHDthYLvUyjRfkKOU6P45PztOch4DZarWQne+VOaIMwA/erSSpB9g==} + '@vitest/runner@2.1.8': + resolution: {integrity: sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==} - '@vitest/snapshot@2.1.5': - resolution: {integrity: sha512-zmYw47mhfdfnYbuhkQvkkzYroXUumrwWDGlMjpdUr4jBd3HZiV2w7CQHj+z7AAS4VOtWxI4Zt4bWt4/sKcoIjg==} + '@vitest/snapshot@2.1.8': + resolution: {integrity: sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==} - '@vitest/spy@2.1.5': - resolution: {integrity: sha512-aWZF3P0r3w6DiYTVskOYuhBc7EMc3jvn1TkBg8ttylFFRqNN2XGD7V5a4aQdk6QiUzZQ4klNBSpCLJgWNdIiNw==} + '@vitest/spy@2.1.8': + resolution: {integrity: sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==} - '@vitest/utils@2.1.5': - resolution: {integrity: sha512-yfj6Yrp0Vesw2cwJbP+cl04OC+IHFsuQsrsJBL9pyGeQXE56v1UAOQco+SR55Vf1nQzfV0QJg1Qum7AaWUwwYg==} + '@vitest/utils@2.1.8': + resolution: {integrity: sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==} - '@wdio/cli@9.2.14': - resolution: {integrity: sha512-nYNAuF5HPW8b+B21t83N6NGEUpszZZygTDMy+xemBQFrkp7qpDsaeaxv60rFf6AR1mapcnK4ghHJUqod0qL7cg==} + '@wdio/cli@9.4.1': + resolution: {integrity: sha512-GDyAer63WDsr2ckXmrpUyAcIZFd3pCRIpi85rL1ZjnWthRy/UtwY0EHPMDuSeUEJ28iYwW3esKgq2ZKlsdbMeA==} engines: {node: '>=18.20.0'} hasBin: true @@ -1710,12 +1689,12 @@ packages: resolution: {integrity: sha512-EGMmBPGJbz6RmgMjebRWkWu3fGyeTIRcusF4UA4f2tiUEKY8nbzUO/ZyDjVQNR+YVB40q0jcqAqpszYRrIzzeg==} engines: {node: '>=18.20.0'} - '@wdio/globals@9.2.14': - resolution: {integrity: sha512-Hgi85bp5vpckK+k5iJ6zz8wUUL6IhCzywIG6uXzSgH/zkUOp5Til/NYyJmzSv6hRsfGaFia9WSaoqol93bfEIA==} + '@wdio/globals@9.4.1': + resolution: {integrity: sha512-CTVAVJ7iFyT54XF9iRmNvsDB+WSHoztJPG9XPL/mHzQ2LYfSyUR8E/j+3iHbTx3v/qRNucgPcGwhxiuY2RcaDg==} engines: {node: '>=18.20.0'} - '@wdio/local-runner@9.2.15': - resolution: {integrity: sha512-+qh/fkA362r+Wnu58BsC/O8xJ0TKPxdzdyHNsz5qgBdmromQIniWCC4xoKg7rBLv4aA5nkyJjXhC7lXcuWYkLQ==} + '@wdio/local-runner@9.4.1': + resolution: {integrity: sha512-MM5VM0V7zvajICr6eNROjkppRhGNpdV4nU5hrgSap92nou8G+zBgLxJ45P5BzLw67KQTOEa1E32b/zCBEkO+0g==} engines: {node: '>=18.20.0'} '@wdio/logger@8.38.0': @@ -1737,8 +1716,8 @@ packages: resolution: {integrity: sha512-3iubjl4JX5zD21aFxZwQghqC3lgu+mSs8c3NaiYYNCC+IT5cI/8QuKlgh9s59bu+N3gG988jqMJeCYlKuUv/iw==} engines: {node: '>=18.20.0'} - '@wdio/runner@9.2.15': - resolution: {integrity: sha512-kVQ+YqVijkD2rJPgbJ7yEzzjOUoJ/HKqvBa3Y/kTJPLcSKQCn47GxqzXlOO6wPWLGWkf22Xn7CiTxFN1t+Zz0w==} + '@wdio/runner@9.4.1': + resolution: {integrity: sha512-WUpYamLafv+GUofGqvA2HO1kSVnwLyPO5ujq3TS/YaJLnUDOj4bjHiRo5+KDbKw1xhqjW0GjbfDupVU5LeL9iw==} engines: {node: '>=18.20.0'} '@wdio/types@9.2.2': @@ -1782,6 +1761,10 @@ packages: resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} + agent-base@7.1.3: + resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} + engines: {node: '>= 14'} + agentkeepalive@4.5.0: resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} engines: {node: '>= 8.0.0'} @@ -2303,8 +2286,8 @@ packages: engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} hasBin: true - cross-spawn@6.0.5: - resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + cross-spawn@6.0.6: + resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==} engines: {node: '>=4.8'} cross-spawn@7.0.3: @@ -2369,6 +2352,15 @@ packages: supports-color: optional: true + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize@4.0.0: resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} engines: {node: '>=10'} @@ -2507,6 +2499,10 @@ packages: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} + engines: {node: '>=12'} + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -2534,11 +2530,11 @@ packages: electron-publish@25.1.7: resolution: {integrity: sha512-+jbTkR9m39eDBMP4gfbqglDd6UvBC7RLh5Y0MhFSsc6UkGHj9Vj9TWobxevHYMMqmoujL11ZLjfPpMX+Pt6YEg==} - electron-to-chromium@1.5.63: - resolution: {integrity: sha512-ddeXKuY9BHo/mw145axlyWjlJ1UBt4WK3AlvkT7W2AbqfRQoacVoRUCF6wL3uIx/8wT9oLKXzI+rFqHHscByaA==} + electron-to-chromium@1.5.72: + resolution: {integrity: sha512-ZpSAUOZ2Izby7qnZluSrAlGgGQzucmFbN0n64dYzocYxnxV5ufurpj3VgEe4cUp7ir9LmeLxNYo8bVnlM8bQHw==} - electron@33.2.0: - resolution: {integrity: sha512-PVw1ICAQDPsnnsmpNFX/b1i/49h67pbSPxuIENd9K9WpGO1tsRaQt+K2bmXqTuoMJsbzIc75Ce8zqtuwBPqawA==} + electron@33.2.1: + resolution: {integrity: sha512-SG/nmSsK9Qg1p6wAW+ZfqU+AV8cmXMTIklUL18NnOKfZLlum4ZsDoVdmmmlL39ZmeCaq27dr7CgslRPahfoVJg==} engines: {node: '>= 12.20.55'} hasBin: true @@ -2643,8 +2639,8 @@ packages: eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-import-resolver-typescript@3.6.3: - resolution: {integrity: sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==} + eslint-import-resolver-typescript@3.7.0: + resolution: {integrity: sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -2656,29 +2652,8 @@ packages: eslint-plugin-import-x: optional: true - eslint-module-utils@2.11.0: - resolution: {integrity: sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - - eslint-plugin-import-x@4.4.3: - resolution: {integrity: sha512-QBprHvhLsfDhP++2T1NnjsOUt6bLDX3NMHaYwAB1FD3xmYTkdFH+HS1OamGhz28jLkRyIZa6UNAzTxbHnJwz5w==} + eslint-plugin-import-x@4.5.0: + resolution: {integrity: sha512-l0OTfnPF8RwmSXfjT75N8d6ZYLVrVYWpaGlgvVkVqFERCI5SyBfDP7QEMr3kt0zWi2sOa9EQ47clbdFsHkF83Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -2699,8 +2674,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.15.0: - resolution: {integrity: sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==} + eslint@9.16.0: + resolution: {integrity: sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -2767,8 +2742,8 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - execa@9.5.1: - resolution: {integrity: sha512-QY5PPtSonnGwhhHDNI7+3RvY285c7iuJFFB+lU+oEzMY/gEGJ808owqJsrr8Otd1E/x07po1LkUBmdAc5duPAg==} + execa@9.5.2: + resolution: {integrity: sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==} engines: {node: ^18.19.0 || >=20.5.0} expand-tilde@2.0.2: @@ -2779,8 +2754,8 @@ packages: resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} engines: {node: '>=12.0.0'} - expect-webdriverio@5.0.4: - resolution: {integrity: sha512-ctaY0cbpd5VQnlYMfOU31RC0CyWrdDaemGojVXvl+/xYxvOVeIyeVVzGqaMH3zMh/Q+DFIg58iCgwNwuxLWRIQ==} + expect-webdriverio@5.0.5: + resolution: {integrity: sha512-h04OGd7ZksVj8bgv3bYdjFpmJuKeCnyRrBmpMxYpMDmYSspxg9vsSr0kD5p9oOM16bX0ZXEVXr42RbI2hoLpTw==} engines: {node: '>=18 || >=20 || >=22'} peerDependencies: '@wdio/globals': ^9.0.0 @@ -3026,9 +3001,6 @@ packages: resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} engines: {node: '>=18'} - get-tsconfig@4.8.0: - resolution: {integrity: sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw==} - get-tsconfig@4.8.1: resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} @@ -3083,8 +3055,8 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.12.0: - resolution: {integrity: sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==} + globals@15.13.0: + resolution: {integrity: sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==} engines: {node: '>=18'} globalthis@1.0.4: @@ -3202,6 +3174,10 @@ packages: resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -3327,8 +3303,8 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} - is-bun-module@1.2.1: - resolution: {integrity: sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==} + is-bun-module@1.3.0: + resolution: {integrity: sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==} is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} @@ -3653,8 +3629,8 @@ packages: lie@3.3.0: resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} - lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} lines-and-columns@1.2.4: @@ -3664,8 +3640,8 @@ packages: resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lint-staged@15.2.10: - resolution: {integrity: sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==} + lint-staged@15.2.11: + resolution: {integrity: sha512-Ev6ivCTYRTGs9ychvpVw35m/bcNDuBN+mnTeObCL5h+boS5WzBEC6LHI4I9F/++sZm1m+J2LEiy0gxL/R9TBqQ==} engines: {node: '>=18.12.0'} hasBin: true @@ -3673,8 +3649,8 @@ packages: resolution: {integrity: sha512-rJysbR9GKIalhTbVL2tYbF2hVyDnrf7pFUZBwjPaMIdadYHmeT+EVi/Bu3qd7ETQPahTotg2WRCatXwRBW554g==} engines: {node: '>=16.0.0'} - listr2@8.2.4: - resolution: {integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==} + listr2@8.2.5: + resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==} engines: {node: '>=18.0.0'} load-json-file@2.0.0: @@ -3815,8 +3791,8 @@ packages: magic-string@0.30.12: resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} - magic-string@0.30.13: - resolution: {integrity: sha512-8rYBO+MsWkgjDSOvLomYnzhdwEG51olQ4zL5KXnNJWV5MNmrb4rTZdrtkhxjnD/QyZUqR/Z/XDsUs/4ej2nx0g==} + magic-string@0.30.15: + resolution: {integrity: sha512-zXeaYRgZ6ldS1RJJUrMrYgNJ4fdwnyI6tVqoiIhyCyv5IVTK9BU8Ic2l253GGETQHxI4HNUwhJ3fjDhKqEoaAw==} magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} @@ -3959,8 +3935,8 @@ packages: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -4062,8 +4038,8 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nwsapi@2.2.13: - resolution: {integrity: sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==} + nwsapi@2.2.16: + resolution: {integrity: sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==} object-inspect@1.13.2: resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} @@ -4357,8 +4333,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@3.3.3: - resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + prettier@3.4.2: + resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} engines: {node: '>=14'} hasBin: true @@ -4545,10 +4521,6 @@ packages: resolution: {integrity: sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA==} engines: {node: '>=12', npm: '>=6'} - resedit@2.0.2: - resolution: {integrity: sha512-UKTnq602iVe+W5SyRAQx/WdWMnlDiONfXBLFg/ur4QE4EQQ8eP7Jgm5mNXdK12kKawk1vvXPja2iXKqZiGDW6Q==} - engines: {node: '>=14', npm: '>=7'} - resedit@2.0.3: resolution: {integrity: sha512-oTeemxwoMuxxTYxXUwjkrOPfngTQehlv0/HoYFNkB4uzsP1Un1A9nI8JQKGOFkxpqkC7qkMs0lUsGrvUlbLNUA==} engines: {node: '>=14', npm: '>=7'} @@ -4620,8 +4592,8 @@ packages: resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} engines: {node: '>=8.0'} - rollup@4.27.3: - resolution: {integrity: sha512-SLsCOnlmGt9VoZ9Ek8yBK8tAdmPHeppkw+Xa7yDlCEhDTvwYei03JlWo1fdc7YTfLZ4tD8riJCUyAgTbszk1fQ==} + rollup@4.28.1: + resolution: {integrity: sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -4862,8 +4834,8 @@ packages: resolution: {integrity: sha512-pqMqwQCso0PBJt2PQmDO0cFj0lyqmiwOMiMSkVtRokl7e+ZTRYgDHKnuZNbqjiJXgsg4nuqtD/zxuo9KqTp0Yw==} engines: {node: '>= 0.10.0'} - streamx@2.20.1: - resolution: {integrity: sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==} + streamx@2.21.0: + resolution: {integrity: sha512-Qz6MsDZXJ6ur9u+b+4xCG18TluU7PGlRfXVAAjNiGsFrBUt/ioyLkxbFaKJygoPs+/kW4VyBj0bSj89Qu0IGyg==} strict-event-emitter@0.5.1: resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} @@ -4996,8 +4968,8 @@ packages: resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} engines: {node: '>=18'} - text-decoder@1.2.1: - resolution: {integrity: sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==} + text-decoder@1.2.2: + resolution: {integrity: sha512-/MDslo7ZyWTA2vnk1j7XoDVfXsGk3tp+zFEJHJGm0UjIlQifonVFwlVbQDFh8KJzTBnT8ie115TYqir6bclddA==} through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} @@ -5024,11 +4996,11 @@ packages: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} - tldts-core@6.1.61: - resolution: {integrity: sha512-In7VffkDWUPgwa+c9picLUxvb0RltVwTkSgMNFgvlGSWveCzGBemBqTsgJCL4EDFWZ6WH0fKTsot6yNhzy3ZzQ==} + tldts-core@6.1.66: + resolution: {integrity: sha512-s07jJruSwndD2X8bVjwioPfqpIc1pDTzszPe9pL1Skbh4bjytL85KNQ3tolqLbCvpQHawIsGfFi9dgerWjqW4g==} - tldts@6.1.61: - resolution: {integrity: sha512-rv8LUyez4Ygkopqn+M6OLItAOT9FF3REpPQDkdMx5ix8w4qkuE7Vo2o/vw1nxKQYmJDV8JpAMJQr1b+lTKf0FA==} + tldts@6.1.66: + resolution: {integrity: sha512-l3ciXsYFel/jSRfESbyKYud1nOw7WfhrBEF9I3UiarYk/qEaOOwu3qXNECHw4fHGHGTEOuhf/VdKgoDX5M/dhQ==} hasBin: true tmp-promise@3.0.3: @@ -5064,8 +5036,8 @@ packages: truncate-utf8-bytes@1.0.2: resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} - ts-api-utils@1.4.0: - resolution: {integrity: sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==} + ts-api-utils@1.4.3: + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' @@ -5078,38 +5050,38 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - turbo-darwin-64@2.3.0: - resolution: {integrity: sha512-pji+D49PhFItyQjf2QVoLZw2d3oRGo8gJgKyOiRzvip78Rzie74quA8XNwSg/DuzM7xx6gJ3p2/LylTTlgZXxQ==} + turbo-darwin-64@2.3.3: + resolution: {integrity: sha512-bxX82xe6du/3rPmm4aCC5RdEilIN99VUld4HkFQuw+mvFg6darNBuQxyWSHZTtc25XgYjQrjsV05888w1grpaA==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.3.0: - resolution: {integrity: sha512-AJrGIL9BO41mwDF/IBHsNGwvtdyB911vp8f5mbNo1wG66gWTvOBg7WCtYQBvCo11XTenTfXPRSsAb7w3WAZb6w==} + turbo-darwin-arm64@2.3.3: + resolution: {integrity: sha512-DYbQwa3NsAuWkCUYVzfOUBbSUBVQzH5HWUFy2Kgi3fGjIWVZOFk86ss+xsWu//rlEAfYwEmopigsPYSmW4X15A==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.3.0: - resolution: {integrity: sha512-jZqW6vc2sPJT3M/3ZmV1Cg4ecQVPqsbHncG/RnogHpBu783KCSXIndgxvUQNm9qfgBYbZDBnP1md63O4UTElhw==} + turbo-linux-64@2.3.3: + resolution: {integrity: sha512-eHj9OIB0dFaP6BxB88jSuaCLsOQSYWBgmhy2ErCu6D2GG6xW3b6e2UWHl/1Ho9FsTg4uVgo4DB9wGsKa5erjUA==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.3.0: - resolution: {integrity: sha512-HUbDLJlvd/hxuyCNO0BmEWYQj0TugRMvSQeG8vHJH+Lq8qOgDAe7J0K73bFNbZejZQxW3C3XEiZFB3pnpO78+A==} + turbo-linux-arm64@2.3.3: + resolution: {integrity: sha512-NmDE/NjZoDj1UWBhMtOPmqFLEBKhzGS61KObfrDEbXvU3lekwHeoPvAMfcovzswzch+kN2DrtbNIlz+/rp8OCg==} cpu: [arm64] os: [linux] - turbo-windows-64@2.3.0: - resolution: {integrity: sha512-c5rxrGNTYDWX9QeMzWLFE9frOXnKjHGEvQMp1SfldDlbZYsloX9UKs31TzUThzfTgTiz8NYuShaXJ2UvTMnV/g==} + turbo-windows-64@2.3.3: + resolution: {integrity: sha512-O2+BS4QqjK3dOERscXqv7N2GXNcqHr9hXumkMxDj/oGx9oCatIwnnwx34UmzodloSnJpgSqjl8iRWiY65SmYoQ==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.3.0: - resolution: {integrity: sha512-7qfUuYhfIVb1AZgs89DxhXK+zZez6O2ocmixEQ4hXZK7ytnBt5vaz2zGNJJKFNYIL5HX1C3tuHolnpNgDNCUIg==} + turbo-windows-arm64@2.3.3: + resolution: {integrity: sha512-dW4ZK1r6XLPNYLIKjC4o87HxYidtRRcBeo/hZ9Wng2XM/MqqYkAyzJXJGgRMsc0MMEN9z4+ZIfnSNBrA0b08ag==} cpu: [arm64] os: [win32] - turbo@2.3.0: - resolution: {integrity: sha512-/uOq5o2jwRPyaUDnwBpOR5k9mQq4c3wziBgWNWttiYQPmbhDtrKYPRBxTvA2WpgQwRIbt8UM612RMN8n/TvmHA==} + turbo@2.3.3: + resolution: {integrity: sha512-DUHWQAcC8BTiUZDRzAYGvpSpGLiaOQPfYXlCieQbwUvmml/LRGIe3raKdrOPOoiX0DYlzxs2nH6BoWJoZrj8hA==} hasBin: true type-check@0.4.0: @@ -5148,12 +5120,12 @@ packages: resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} engines: {node: '>=16'} - type-fest@4.27.0: - resolution: {integrity: sha512-3IMSWgP7C5KSQqmo1wjhKrwsvXAtF33jO3QY+Uy++ia7hqvgSK6iXbbg5PbDBc1P2ZbNEDgejOrN4YooXvhwCw==} + type-fest@4.30.0: + resolution: {integrity: sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==} engines: {node: '>=16'} - typescript@5.6.3: - resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + typescript@5.7.2: + resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} engines: {node: '>=14.17'} hasBin: true @@ -5163,6 +5135,9 @@ packages: undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + undici@6.21.0: resolution: {integrity: sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==} engines: {node: '>=18.17'} @@ -5229,8 +5204,8 @@ packages: resolution: {integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==} engines: {node: '>=0.6.0'} - vite-node@2.1.5: - resolution: {integrity: sha512-rd0QIgx74q4S1Rd56XIiL2cYEdyWn13cunYBIuqh9mpmQr7gGS0IxXoP8R6OaZtNQQLyXSWbd4rXKYUbhFpK5w==} + vite-node@2.1.8: + resolution: {integrity: sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -5265,15 +5240,15 @@ packages: terser: optional: true - vitest@2.1.5: - resolution: {integrity: sha512-P4ljsdpuzRTPI/kbND2sDZ4VmieerR2c9szEZpjc+98Z9ebvnXmM5+0tHEKqYZumXqlvnmfWsjeFOjXVriDG7A==} + vitest@2.1.8: + resolution: {integrity: sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.1.5 - '@vitest/ui': 2.1.5 + '@vitest/browser': 2.1.8 + '@vitest/ui': 2.1.8 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -5306,12 +5281,12 @@ packages: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} - webdriver@9.2.8: - resolution: {integrity: sha512-40NtUC1zME9tPHNfZv6ETSE3+aE75qZuKjbVAA0gj02AkO1Nl3yJmf5RLdaLLfIQ2WlrbRP1g8KXlkiiVCmakg==} + webdriver@9.4.1: + resolution: {integrity: sha512-vFDdxMj/9W1+6jhpHSiRYfO8dix23HjAUtLx7aOv9ejEsntC0EzCIAftJ59YsF3Ppu184+FkdDVhnivpkZPTFw==} engines: {node: '>=18.20.0'} - webdriverio@9.2.14: - resolution: {integrity: sha512-85yEbwN3MwdrGzKZoGkLUf1J5cpfnc7knL4u/Y6XWd0gGwYjv60I5ZPsgSnXzNXAkq2kmtkammf1AM3ihqFM3A==} + webdriverio@9.4.1: + resolution: {integrity: sha512-XIPtRnxSES4CoxH2BfUY/6QzNgEgJEUjMYu7t7SJR8bVfbLRVXAA1ie9kM0MtdLs4oZ2Pr8rR8fqytsA1CjEWw==} engines: {node: '>=18.20.0'} peerDependencies: puppeteer-core: ^22.3.0 @@ -5334,8 +5309,8 @@ packages: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} engines: {node: '>=18'} - whatwg-url@14.0.0: - resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} + whatwg-url@14.1.0: + resolution: {integrity: sha512-jlf/foYIKywAt3x/XWKZ/3rz8OSJPiWktjmk891alJUEjiVxKX9LEO92qH3hv4aJ0mN3MWPvGMCy8jQi95xK4w==} engines: {node: '>=18'} whatwg-url@5.0.0: @@ -5452,11 +5427,6 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.5.1: - resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} - engines: {node: '>= 14'} - hasBin: true - yaml@2.6.1: resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} engines: {node: '>= 14'} @@ -5545,15 +5515,15 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/parser@7.26.2': + '@babel/parser@7.26.3': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 '@babel/runtime@7.25.4': dependencies: regenerator-runtime: 0.14.1 - '@babel/types@7.26.0': + '@babel/types@7.26.3': dependencies: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 @@ -5565,14 +5535,14 @@ snapshots: ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - '@electron-forge/cli@7.5.0(encoding@0.1.13)': + '@electron-forge/cli@7.6.0(encoding@0.1.13)': dependencies: - '@electron-forge/core': 7.5.0(encoding@0.1.13) - '@electron-forge/shared-types': 7.5.0 + '@electron-forge/core': 7.6.0(encoding@0.1.13) + '@electron-forge/shared-types': 7.6.0 '@electron/get': 3.1.0 chalk: 4.1.2 commander: 4.1.1 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) fs-extra: 10.1.0 listr2: 7.0.2 semver: 7.6.3 @@ -5581,13 +5551,13 @@ snapshots: - encoding - supports-color - '@electron-forge/core-utils@7.5.0': + '@electron-forge/core-utils@7.6.0': dependencies: - '@electron-forge/shared-types': 7.5.0 - '@electron/rebuild': 3.7.0 + '@electron-forge/shared-types': 7.6.0 + '@electron/rebuild': 3.7.1 '@malept/cross-spawn-promise': 2.0.0 chalk: 4.1.2 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) find-up: 5.0.0 fs-extra: 10.1.0 log-symbols: 4.1.0 @@ -5597,25 +5567,25 @@ snapshots: - bluebird - supports-color - '@electron-forge/core@7.5.0(encoding@0.1.13)': - dependencies: - '@electron-forge/core-utils': 7.5.0 - '@electron-forge/maker-base': 7.5.0 - '@electron-forge/plugin-base': 7.5.0 - '@electron-forge/publisher-base': 7.5.0 - '@electron-forge/shared-types': 7.5.0 - '@electron-forge/template-base': 7.5.0 - '@electron-forge/template-vite': 7.5.0 - '@electron-forge/template-vite-typescript': 7.5.0 - '@electron-forge/template-webpack': 7.5.0 - '@electron-forge/template-webpack-typescript': 7.5.0 - '@electron-forge/tracer': 7.5.0 + '@electron-forge/core@7.6.0(encoding@0.1.13)': + dependencies: + '@electron-forge/core-utils': 7.6.0 + '@electron-forge/maker-base': 7.6.0 + '@electron-forge/plugin-base': 7.6.0 + '@electron-forge/publisher-base': 7.6.0 + '@electron-forge/shared-types': 7.6.0 + '@electron-forge/template-base': 7.6.0 + '@electron-forge/template-vite': 7.6.0 + '@electron-forge/template-vite-typescript': 7.6.0 + '@electron-forge/template-webpack': 7.6.0 + '@electron-forge/template-webpack-typescript': 7.6.0 + '@electron-forge/tracer': 7.6.0 '@electron/get': 3.1.0 '@electron/packager': 18.3.6 - '@electron/rebuild': 3.7.0 + '@electron/rebuild': 3.7.1 '@malept/cross-spawn-promise': 2.0.0 chalk: 4.1.2 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) fast-glob: 3.3.2 filenamify: 4.3.0 find-up: 5.0.0 @@ -5639,87 +5609,87 @@ snapshots: - encoding - supports-color - '@electron-forge/maker-base@7.5.0': + '@electron-forge/maker-base@7.6.0': dependencies: - '@electron-forge/shared-types': 7.5.0 + '@electron-forge/shared-types': 7.6.0 fs-extra: 10.1.0 which: 2.0.2 transitivePeerDependencies: - bluebird - supports-color - '@electron-forge/plugin-base@7.5.0': + '@electron-forge/plugin-base@7.6.0': dependencies: - '@electron-forge/shared-types': 7.5.0 + '@electron-forge/shared-types': 7.6.0 transitivePeerDependencies: - bluebird - supports-color - '@electron-forge/publisher-base@7.5.0': + '@electron-forge/publisher-base@7.6.0': dependencies: - '@electron-forge/shared-types': 7.5.0 + '@electron-forge/shared-types': 7.6.0 transitivePeerDependencies: - bluebird - supports-color - '@electron-forge/shared-types@7.5.0': + '@electron-forge/shared-types@7.6.0': dependencies: - '@electron-forge/tracer': 7.5.0 - '@electron/packager': 18.3.5 - '@electron/rebuild': 3.7.0 + '@electron-forge/tracer': 7.6.0 + '@electron/packager': 18.3.6 + '@electron/rebuild': 3.7.1 listr2: 7.0.2 transitivePeerDependencies: - bluebird - supports-color - '@electron-forge/template-base@7.5.0': + '@electron-forge/template-base@7.6.0': dependencies: - '@electron-forge/shared-types': 7.5.0 + '@electron-forge/shared-types': 7.6.0 '@malept/cross-spawn-promise': 2.0.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) fs-extra: 10.1.0 username: 5.1.0 transitivePeerDependencies: - bluebird - supports-color - '@electron-forge/template-vite-typescript@7.5.0': + '@electron-forge/template-vite-typescript@7.6.0': dependencies: - '@electron-forge/shared-types': 7.5.0 - '@electron-forge/template-base': 7.5.0 + '@electron-forge/shared-types': 7.6.0 + '@electron-forge/template-base': 7.6.0 fs-extra: 10.1.0 transitivePeerDependencies: - bluebird - supports-color - '@electron-forge/template-vite@7.5.0': + '@electron-forge/template-vite@7.6.0': dependencies: - '@electron-forge/shared-types': 7.5.0 - '@electron-forge/template-base': 7.5.0 + '@electron-forge/shared-types': 7.6.0 + '@electron-forge/template-base': 7.6.0 fs-extra: 10.1.0 transitivePeerDependencies: - bluebird - supports-color - '@electron-forge/template-webpack-typescript@7.5.0': + '@electron-forge/template-webpack-typescript@7.6.0': dependencies: - '@electron-forge/shared-types': 7.5.0 - '@electron-forge/template-base': 7.5.0 + '@electron-forge/shared-types': 7.6.0 + '@electron-forge/template-base': 7.6.0 fs-extra: 10.1.0 transitivePeerDependencies: - bluebird - supports-color - '@electron-forge/template-webpack@7.5.0': + '@electron-forge/template-webpack@7.6.0': dependencies: - '@electron-forge/shared-types': 7.5.0 - '@electron-forge/template-base': 7.5.0 + '@electron-forge/shared-types': 7.6.0 + '@electron-forge/template-base': 7.6.0 fs-extra: 10.1.0 transitivePeerDependencies: - bluebird - supports-color - '@electron-forge/tracer@7.5.0': + '@electron-forge/tracer@7.6.0': dependencies: chrome-trace-event: 1.0.4 @@ -5738,7 +5708,7 @@ snapshots: '@electron/get@2.0.3': dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) env-paths: 2.2.1 fs-extra: 8.1.0 got: 11.8.6 @@ -5752,7 +5722,7 @@ snapshots: '@electron/get@3.1.0': dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7 env-paths: 2.2.1 fs-extra: 8.1.0 got: 11.8.6 @@ -5780,17 +5750,9 @@ snapshots: - bluebird - supports-color - '@electron/notarize@2.4.0': - dependencies: - debug: 4.3.7(supports-color@8.1.1) - fs-extra: 9.1.0 - promise-retry: 2.0.1 - transitivePeerDependencies: - - supports-color - '@electron/notarize@2.5.0': dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7 fs-extra: 9.1.0 promise-retry: 2.0.1 transitivePeerDependencies: @@ -5799,7 +5761,7 @@ snapshots: '@electron/osx-sign@1.3.1': dependencies: compare-version: 0.1.2 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7 fs-extra: 10.1.0 isbinaryfile: 4.0.10 minimist: 1.2.8 @@ -5807,30 +5769,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@electron/packager@18.3.5': - dependencies: - '@electron/asar': 3.2.13 - '@electron/get': 3.1.0 - '@electron/notarize': 2.4.0 - '@electron/osx-sign': 1.3.1 - '@electron/universal': 2.0.1 - '@electron/windows-sign': 1.1.3 - debug: 4.3.7(supports-color@8.1.1) - extract-zip: 2.0.1 - filenamify: 4.3.0 - fs-extra: 11.2.0 - galactus: 1.0.0 - get-package-info: 1.0.0 - junk: 3.1.0 - parse-author: 2.0.0 - plist: 3.1.0 - resedit: 2.0.2 - resolve: 1.22.8 - semver: 7.6.3 - yargs-parser: 21.1.1 - transitivePeerDependencies: - - supports-color - '@electron/packager@18.3.6': dependencies: '@electron/asar': 3.2.17 @@ -5839,7 +5777,7 @@ snapshots: '@electron/osx-sign': 1.3.1 '@electron/universal': 2.0.1 '@electron/windows-sign': 1.2.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7 extract-zip: 2.0.1 filenamify: 4.3.0 fs-extra: 11.2.0 @@ -5859,7 +5797,7 @@ snapshots: dependencies: '@malept/cross-spawn-promise': 2.0.0 chalk: 4.1.2 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) detect-libc: 2.0.3 fs-extra: 10.1.0 got: 11.8.6 @@ -5875,12 +5813,12 @@ snapshots: - bluebird - supports-color - '@electron/rebuild@3.7.0': + '@electron/rebuild@3.7.1': dependencies: '@electron/node-gyp': https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2 '@malept/cross-spawn-promise': 2.0.0 chalk: 4.1.2 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) detect-libc: 2.0.3 fs-extra: 10.1.0 got: 11.8.6 @@ -5899,7 +5837,7 @@ snapshots: dependencies: '@electron/asar': 3.2.13 '@malept/cross-spawn-promise': 2.0.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7 dir-compare: 4.2.0 fs-extra: 11.2.0 minimatch: 9.0.5 @@ -5907,20 +5845,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@electron/windows-sign@1.1.3': - dependencies: - cross-dirname: 0.1.0 - debug: 4.3.7(supports-color@8.1.1) - fs-extra: 11.2.0 - minimist: 1.2.8 - postject: 1.0.0-alpha.6 - transitivePeerDependencies: - - supports-color - '@electron/windows-sign@1.2.0': dependencies: cross-dirname: 0.1.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7 fs-extra: 11.2.0 minimist: 1.2.8 postject: 1.0.0-alpha.6 @@ -6068,27 +5996,29 @@ snapshots: '@esbuild/win32-x64@0.23.1': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.15.0)': + '@eslint-community/eslint-utils@4.4.1(eslint@9.16.0)': dependencies: - eslint: 9.15.0 + eslint: 9.16.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.19.0': + '@eslint/config-array@0.19.1': dependencies: - '@eslint/object-schema': 2.1.4 - debug: 4.3.7(supports-color@8.1.1) + '@eslint/object-schema': 2.1.5 + debug: 4.4.0(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/core@0.9.0': {} + '@eslint/core@0.9.1': + dependencies: + '@types/json-schema': 7.0.15 '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 @@ -6099,11 +6029,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.15.0': {} + '@eslint/js@9.16.0': {} - '@eslint/object-schema@2.1.4': {} + '@eslint/object-schema@2.1.5': {} - '@eslint/plugin-kit@0.2.3': + '@eslint/plugin-kit@0.2.4': dependencies: levn: 0.4.1 @@ -6142,7 +6072,7 @@ snapshots: '@inquirer/figures': 1.0.8 '@inquirer/type': 2.0.0 '@types/mute-stream': 0.0.4 - '@types/node': 22.9.1 + '@types/node': 22.10.1 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 cli-width: 4.1.0 @@ -6246,7 +6176,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.9.1 + '@types/node': 22.10.1 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -6279,7 +6209,7 @@ snapshots: '@malept/flatpak-bundler@0.4.0': dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) fs-extra: 9.1.0 lodash: 4.17.21 tmp-promise: 3.0.3 @@ -6412,7 +6342,7 @@ snapshots: '@puppeteer/browsers@2.4.1': dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) extract-zip: 2.0.1 progress: 2.0.3 proxy-agent: 6.4.0 @@ -6423,9 +6353,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@rollup/plugin-commonjs@28.0.1(rollup@4.27.3)': + '@rollup/plugin-commonjs@28.0.1(rollup@4.28.1)': dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.27.3) + '@rollup/pluginutils': 5.1.3(rollup@4.28.1) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.4.2(picomatch@4.0.2) @@ -6433,87 +6363,90 @@ snapshots: magic-string: 0.30.12 picomatch: 4.0.2 optionalDependencies: - rollup: 4.27.3 + rollup: 4.28.1 - '@rollup/plugin-node-resolve@15.3.0(rollup@4.27.3)': + '@rollup/plugin-node-resolve@15.3.0(rollup@4.28.1)': dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.27.3) + '@rollup/pluginutils': 5.1.3(rollup@4.28.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.8 optionalDependencies: - rollup: 4.27.3 + rollup: 4.28.1 - '@rollup/plugin-typescript@12.1.1(rollup@4.27.3)(tslib@2.8.1)(typescript@5.6.3)': + '@rollup/plugin-typescript@12.1.1(rollup@4.28.1)(tslib@2.8.1)(typescript@5.7.2)': dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.27.3) + '@rollup/pluginutils': 5.1.3(rollup@4.28.1) resolve: 1.22.8 - typescript: 5.6.3 + typescript: 5.7.2 optionalDependencies: - rollup: 4.27.3 + rollup: 4.28.1 tslib: 2.8.1 - '@rollup/pluginutils@5.1.3(rollup@4.27.3)': + '@rollup/pluginutils@5.1.3(rollup@4.28.1)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.27.3 + rollup: 4.28.1 + + '@rollup/rollup-android-arm-eabi@4.28.1': + optional: true - '@rollup/rollup-android-arm-eabi@4.27.3': + '@rollup/rollup-android-arm64@4.28.1': optional: true - '@rollup/rollup-android-arm64@4.27.3': + '@rollup/rollup-darwin-arm64@4.28.1': optional: true - '@rollup/rollup-darwin-arm64@4.27.3': + '@rollup/rollup-darwin-x64@4.28.1': optional: true - '@rollup/rollup-darwin-x64@4.27.3': + '@rollup/rollup-freebsd-arm64@4.28.1': optional: true - '@rollup/rollup-freebsd-arm64@4.27.3': + '@rollup/rollup-freebsd-x64@4.28.1': optional: true - '@rollup/rollup-freebsd-x64@4.27.3': + '@rollup/rollup-linux-arm-gnueabihf@4.28.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.27.3': + '@rollup/rollup-linux-arm-musleabihf@4.28.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.27.3': + '@rollup/rollup-linux-arm64-gnu@4.28.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.27.3': + '@rollup/rollup-linux-arm64-musl@4.28.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.27.3': + '@rollup/rollup-linux-loongarch64-gnu@4.28.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.27.3': + '@rollup/rollup-linux-powerpc64le-gnu@4.28.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.27.3': + '@rollup/rollup-linux-riscv64-gnu@4.28.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.27.3': + '@rollup/rollup-linux-s390x-gnu@4.28.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.27.3': + '@rollup/rollup-linux-x64-gnu@4.28.1': optional: true - '@rollup/rollup-linux-x64-musl@4.27.3': + '@rollup/rollup-linux-x64-musl@4.28.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.27.3': + '@rollup/rollup-win32-arm64-msvc@4.28.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.27.3': + '@rollup/rollup-win32-ia32-msvc@4.28.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.27.3': + '@rollup/rollup-win32-x64-msvc@4.28.1': optional: true '@sec-ant/readable-stream@0.4.1': {} @@ -6541,12 +6474,12 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/webdriverio@3.2.1(webdriverio@9.2.14)': + '@testing-library/webdriverio@3.2.1(webdriverio@9.4.1)': dependencies: '@babel/runtime': 7.25.4 '@testing-library/dom': 8.20.1 simmerjs: 0.5.6 - webdriverio: 9.2.14 + webdriverio: 9.4.1 '@tootallnate/once@2.0.0': {} @@ -6558,7 +6491,7 @@ snapshots: dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 22.9.1 + '@types/node': 22.10.1 '@types/responselike': 1.0.3 '@types/debug@4.1.12': @@ -6571,12 +6504,12 @@ snapshots: '@types/fs-extra@9.0.13': dependencies: - '@types/node': 22.9.1 + '@types/node': 22.10.1 '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.9.1 + '@types/node': 22.10.1 '@types/http-cache-semantics@4.0.4': {} @@ -6594,31 +6527,33 @@ snapshots: '@types/keyv@3.1.4': dependencies: - '@types/node': 22.9.1 + '@types/node': 22.10.1 '@types/minimatch@5.1.2': {} + '@types/mocha@10.0.10': {} + '@types/mocha@10.0.9': {} '@types/ms@0.7.34': {} '@types/mute-stream@0.0.4': dependencies: - '@types/node': 22.9.1 + '@types/node': 22.10.1 - '@types/node@20.17.6': + '@types/node@20.17.9': dependencies: undici-types: 6.19.8 - '@types/node@22.9.1': + '@types/node@22.10.1': dependencies: - undici-types: 6.19.8 + undici-types: 6.20.0 '@types/normalize-package-data@2.4.4': {} '@types/plist@3.0.5': dependencies: - '@types/node': 22.9.1 + '@types/node': 22.10.1 xmlbuilder: 15.1.1 optional: true @@ -6626,12 +6561,12 @@ snapshots: '@types/responselike@1.0.3': dependencies: - '@types/node': 22.9.1 + '@types/node': 22.10.1 '@types/shelljs@0.8.15': dependencies: '@types/glob': 7.2.0 - '@types/node': 22.9.1 + '@types/node': 22.10.1 '@types/sinonjs__fake-timers@8.1.5': {} @@ -6646,7 +6581,7 @@ snapshots: '@types/ws@8.5.13': dependencies: - '@types/node': 22.9.1 + '@types/node': 22.10.1 '@types/yargs-parser@21.0.3': {} @@ -6656,163 +6591,158 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.9.1 + '@types/node': 22.10.1 optional: true - '@typescript-eslint/eslint-plugin@8.15.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0)(typescript@5.6.3))(eslint@9.15.0)(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.18.0(@typescript-eslint/parser@8.18.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0)(typescript@5.7.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.15.0(eslint@9.15.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.15.0 - '@typescript-eslint/type-utils': 8.15.0(eslint@9.15.0)(typescript@5.6.3) - '@typescript-eslint/utils': 8.15.0(eslint@9.15.0)(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.15.0 - eslint: 9.15.0 + '@typescript-eslint/parser': 8.18.0(eslint@9.16.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.18.0 + '@typescript-eslint/type-utils': 8.18.0(eslint@9.16.0)(typescript@5.7.2) + '@typescript-eslint/utils': 8.18.0(eslint@9.16.0)(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 8.18.0 + eslint: 9.16.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.4.0(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 + ts-api-utils: 1.4.3(typescript@5.7.2) + typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.15.0(eslint@9.15.0)(typescript@5.6.3)': + '@typescript-eslint/parser@8.18.0(eslint@9.16.0)(typescript@5.7.2)': dependencies: - '@typescript-eslint/scope-manager': 8.15.0 - '@typescript-eslint/types': 8.15.0 - '@typescript-eslint/typescript-estree': 8.15.0(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.15.0 - debug: 4.3.7(supports-color@8.1.1) - eslint: 9.15.0 - optionalDependencies: - typescript: 5.6.3 + '@typescript-eslint/scope-manager': 8.18.0 + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 8.18.0 + debug: 4.4.0(supports-color@8.1.1) + eslint: 9.16.0 + typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.15.0': + '@typescript-eslint/scope-manager@8.18.0': dependencies: - '@typescript-eslint/types': 8.15.0 - '@typescript-eslint/visitor-keys': 8.15.0 + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/visitor-keys': 8.18.0 - '@typescript-eslint/type-utils@8.15.0(eslint@9.15.0)(typescript@5.6.3)': + '@typescript-eslint/type-utils@8.18.0(eslint@9.16.0)(typescript@5.7.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.15.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.15.0(eslint@9.15.0)(typescript@5.6.3) - debug: 4.3.7(supports-color@8.1.1) - eslint: 9.15.0 - ts-api-utils: 1.4.0(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 + '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.7.2) + '@typescript-eslint/utils': 8.18.0(eslint@9.16.0)(typescript@5.7.2) + debug: 4.4.0(supports-color@8.1.1) + eslint: 9.16.0 + ts-api-utils: 1.4.3(typescript@5.7.2) + typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.15.0': {} + '@typescript-eslint/types@8.18.0': {} - '@typescript-eslint/typescript-estree@8.15.0(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@8.18.0(typescript@5.7.2)': dependencies: - '@typescript-eslint/types': 8.15.0 - '@typescript-eslint/visitor-keys': 8.15.0 - debug: 4.3.7(supports-color@8.1.1) + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/visitor-keys': 8.18.0 + debug: 4.4.0(supports-color@8.1.1) fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.4.0(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 + ts-api-utils: 1.4.3(typescript@5.7.2) + typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.15.0(eslint@9.15.0)(typescript@5.6.3)': + '@typescript-eslint/utils@8.18.0(eslint@9.16.0)(typescript@5.7.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0) - '@typescript-eslint/scope-manager': 8.15.0 - '@typescript-eslint/types': 8.15.0 - '@typescript-eslint/typescript-estree': 8.15.0(typescript@5.6.3) - eslint: 9.15.0 - optionalDependencies: - typescript: 5.6.3 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0) + '@typescript-eslint/scope-manager': 8.18.0 + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.7.2) + eslint: 9.16.0 + typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.15.0': + '@typescript-eslint/visitor-keys@8.18.0': dependencies: - '@typescript-eslint/types': 8.15.0 + '@typescript-eslint/types': 8.18.0 eslint-visitor-keys: 4.2.0 - '@vitest/coverage-v8@2.1.5(vitest@2.1.5(@types/node@22.9.1)(jsdom@25.0.1)(terser@5.36.0))': + '@vitest/coverage-v8@2.1.8(vitest@2.1.8(@types/node@22.10.1)(jsdom@25.0.1)(terser@5.36.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.1.7 - magic-string: 0.30.12 + magic-string: 0.30.15 magicast: 0.3.5 std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.5(@types/node@22.9.1)(jsdom@25.0.1)(terser@5.36.0) + vitest: 2.1.8(@types/node@22.10.1)(jsdom@25.0.1)(terser@5.36.0) transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.1.10(@typescript-eslint/utils@8.15.0(eslint@9.15.0)(typescript@5.6.3))(eslint@9.15.0)(typescript@5.6.3)(vitest@2.1.5(@types/node@22.9.1)(jsdom@25.0.1)(terser@5.36.0))': + '@vitest/eslint-plugin@1.1.15(@typescript-eslint/utils@8.18.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0)(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.1)(jsdom@25.0.1)(terser@5.36.0))': dependencies: - '@typescript-eslint/utils': 8.15.0(eslint@9.15.0)(typescript@5.6.3) - eslint: 9.15.0 + '@typescript-eslint/utils': 8.18.0(eslint@9.16.0)(typescript@5.7.2) + eslint: 9.16.0 optionalDependencies: - typescript: 5.6.3 - vitest: 2.1.5(@types/node@22.9.1)(jsdom@25.0.1)(terser@5.36.0) + typescript: 5.7.2 + vitest: 2.1.8(@types/node@22.10.1)(jsdom@25.0.1)(terser@5.36.0) - '@vitest/expect@2.1.5': + '@vitest/expect@2.1.8': dependencies: - '@vitest/spy': 2.1.5 - '@vitest/utils': 2.1.5 + '@vitest/spy': 2.1.8 + '@vitest/utils': 2.1.8 chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.5(vite@5.4.11(@types/node@22.9.1)(terser@5.36.0))': + '@vitest/mocker@2.1.8(vite@5.4.11(@types/node@22.10.1)(terser@5.36.0))': dependencies: - '@vitest/spy': 2.1.5 + '@vitest/spy': 2.1.8 estree-walker: 3.0.3 - magic-string: 0.30.12 + magic-string: 0.30.15 optionalDependencies: - vite: 5.4.11(@types/node@22.9.1)(terser@5.36.0) + vite: 5.4.11(@types/node@22.10.1)(terser@5.36.0) - '@vitest/pretty-format@2.1.5': + '@vitest/pretty-format@2.1.8': dependencies: tinyrainbow: 1.2.0 - '@vitest/runner@2.1.5': + '@vitest/runner@2.1.8': dependencies: - '@vitest/utils': 2.1.5 + '@vitest/utils': 2.1.8 pathe: 1.1.2 - '@vitest/snapshot@2.1.5': + '@vitest/snapshot@2.1.8': dependencies: - '@vitest/pretty-format': 2.1.5 - magic-string: 0.30.13 + '@vitest/pretty-format': 2.1.8 + magic-string: 0.30.15 pathe: 1.1.2 - '@vitest/spy@2.1.5': + '@vitest/spy@2.1.8': dependencies: tinyspy: 3.0.2 - '@vitest/utils@2.1.5': + '@vitest/utils@2.1.8': dependencies: - '@vitest/pretty-format': 2.1.5 + '@vitest/pretty-format': 2.1.8 loupe: 3.1.2 tinyrainbow: 1.2.0 - '@wdio/cli@9.2.14': + '@wdio/cli@9.4.1': dependencies: - '@types/node': 20.17.6 - '@vitest/snapshot': 2.1.5 + '@types/node': 20.17.9 + '@vitest/snapshot': 2.1.8 '@wdio/config': 9.2.8 - '@wdio/globals': 9.2.14(@wdio/logger@9.1.3) + '@wdio/globals': 9.4.1(@wdio/logger@9.1.3) '@wdio/logger': 9.1.3 '@wdio/protocols': 9.2.2 '@wdio/types': 9.2.2 @@ -6821,9 +6751,9 @@ snapshots: chalk: 5.3.0 chokidar: 4.0.1 cli-spinners: 3.2.0 - dotenv: 16.4.5 + dotenv: 16.4.7 ejs: 3.1.10 - execa: 9.5.1 + execa: 9.5.2 import-meta-resolve: 4.1.0 inquirer: 11.1.0 lodash.flattendeep: 4.4.0 @@ -6832,7 +6762,7 @@ snapshots: read-pkg-up: 10.1.0 recursive-readdir: 2.2.3 tsx: 4.19.2 - webdriverio: 9.2.14 + webdriverio: 9.4.1 yargs: 17.7.2 transitivePeerDependencies: - bufferutil @@ -6852,10 +6782,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@wdio/globals@9.2.14(@wdio/logger@9.1.3)': + '@wdio/globals@9.4.1(@wdio/logger@9.1.3)': optionalDependencies: - expect-webdriverio: 5.0.4(@wdio/globals@9.2.14(@wdio/logger@9.1.3))(@wdio/logger@9.1.3)(webdriverio@9.2.14) - webdriverio: 9.2.14 + expect-webdriverio: 5.0.5(@wdio/globals@9.4.1(@wdio/logger@9.1.3))(@wdio/logger@9.1.3)(webdriverio@9.4.1) + webdriverio: 9.4.1 transitivePeerDependencies: - '@wdio/logger' - bufferutil @@ -6863,12 +6793,12 @@ snapshots: - supports-color - utf-8-validate - '@wdio/local-runner@9.2.15': + '@wdio/local-runner@9.4.1': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.9 '@wdio/logger': 9.1.3 '@wdio/repl': 9.0.8 - '@wdio/runner': 9.2.15 + '@wdio/runner': 9.4.1 '@wdio/types': 9.2.2 async-exit-hook: 2.0.1 split2: 4.2.0 @@ -6896,7 +6826,7 @@ snapshots: '@wdio/mocha-framework@9.2.8': dependencies: '@types/mocha': 10.0.9 - '@types/node': 20.17.6 + '@types/node': 20.17.9 '@wdio/logger': 9.1.3 '@wdio/types': 9.2.2 '@wdio/utils': 9.2.8 @@ -6908,20 +6838,20 @@ snapshots: '@wdio/repl@9.0.8': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.9 - '@wdio/runner@9.2.15': + '@wdio/runner@9.4.1': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.9 '@wdio/config': 9.2.8 - '@wdio/globals': 9.2.14(@wdio/logger@9.1.3) + '@wdio/globals': 9.4.1(@wdio/logger@9.1.3) '@wdio/logger': 9.1.3 '@wdio/types': 9.2.2 '@wdio/utils': 9.2.8 deepmerge-ts: 7.1.3 - expect-webdriverio: 5.0.4(@wdio/globals@9.2.14(@wdio/logger@9.1.3))(@wdio/logger@9.1.3)(webdriverio@9.2.14) - webdriver: 9.2.8 - webdriverio: 9.2.14 + expect-webdriverio: 5.0.5(@wdio/globals@9.4.1(@wdio/logger@9.1.3))(@wdio/logger@9.1.3)(webdriverio@9.4.1) + webdriver: 9.4.1 + webdriverio: 9.4.1 transitivePeerDependencies: - bufferutil - puppeteer-core @@ -6930,7 +6860,7 @@ snapshots: '@wdio/types@9.2.2': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.9 '@wdio/utils@9.2.8': dependencies: @@ -6968,16 +6898,19 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color agent-base@7.1.1: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color + agent-base@7.1.3: + optional: true + agentkeepalive@4.5.0: dependencies: humanize-ms: 1.2.1 @@ -7054,7 +6987,7 @@ snapshots: builder-util-runtime: 9.2.10 chromium-pickle-js: 0.2.0 config-file-ts: 0.2.8-rc1 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) dmg-builder: 25.1.8(electron-builder-squirrel-windows@25.1.8) dotenv: 16.4.5 dotenv-expand: 11.0.6 @@ -7214,7 +7147,7 @@ snapshots: bare-stream@2.3.2: dependencies: - streamx: 2.20.1 + streamx: 2.21.0 optional: true base64-js@1.5.1: {} @@ -7286,7 +7219,7 @@ snapshots: builder-util-runtime@9.2.10: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) sax: 1.4.1 transitivePeerDependencies: - supports-color @@ -7300,7 +7233,7 @@ snapshots: builder-util-runtime: 9.2.10 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7 fs-extra: 10.1.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 @@ -7559,7 +7492,7 @@ snapshots: config-file-ts@0.2.8-rc1: dependencies: glob: 10.4.5 - typescript: 5.6.3 + typescript: 5.7.2 configstore@7.0.0: dependencies: @@ -7577,14 +7510,14 @@ snapshots: core-util-is@1.0.3: {} - cosmiconfig@9.0.0(typescript@5.6.3): + cosmiconfig@9.0.0(typescript@5.7.2): dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: - typescript: 5.6.3 + typescript: 5.7.2 crc-32@1.2.2: {} @@ -7609,7 +7542,7 @@ snapshots: dependencies: cross-spawn: 7.0.3 - cross-spawn@6.0.5: + cross-spawn@6.0.6: dependencies: nice-try: 1.0.5 path-key: 2.0.1 @@ -7655,7 +7588,7 @@ snapshots: data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 - whatwg-url: 14.0.0 + whatwg-url: 14.1.0 optional: true debug@2.6.9: @@ -7666,7 +7599,11 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.7(supports-color@8.1.1): + debug@4.3.7: + dependencies: + ms: 2.1.3 + + debug@4.4.0(supports-color@8.1.1): dependencies: ms: 2.1.3 optionalDependencies: @@ -7828,6 +7765,8 @@ snapshots: dotenv@16.4.5: {} + dotenv@16.4.7: {} + eastasianwidth@0.2.0: {} edge-paths@3.0.5: @@ -7889,12 +7828,12 @@ snapshots: transitivePeerDependencies: - supports-color - electron-to-chromium@1.5.63: {} + electron-to-chromium@1.5.72: {} - electron@33.2.0: + electron@33.2.1: dependencies: '@electron/get': 2.0.3 - '@types/node': 20.17.6 + '@types/node': 20.17.9 extract-zip: 2.0.1 transitivePeerDependencies: - supports-color @@ -8030,9 +7969,9 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-prettier@9.1.0(eslint@9.15.0): + eslint-config-prettier@9.1.0(eslint@9.16.0): dependencies: - eslint: 9.15.0 + eslint: 9.16.0 eslint-import-resolver-node@0.3.9: dependencies: @@ -8042,41 +7981,29 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.15.0(eslint@9.15.0)(typescript@5.6.3))(eslint-plugin-import-x@4.4.3(eslint@9.15.0)(typescript@5.6.3))(eslint@9.15.0): + eslint-import-resolver-typescript@3.7.0(eslint-plugin-import-x@4.5.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0): dependencies: '@nolyfill/is-core-module': 1.0.39 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) enhanced-resolve: 5.17.1 - eslint: 9.15.0 - eslint-module-utils: 2.11.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.15.0(eslint@9.15.0)(typescript@5.6.3))(eslint-plugin-import-x@4.4.3(eslint@9.15.0)(typescript@5.6.3))(eslint@9.15.0))(eslint@9.15.0) + eslint: 9.16.0 fast-glob: 3.3.2 - get-tsconfig: 4.8.0 - is-bun-module: 1.2.1 + get-tsconfig: 4.8.1 + is-bun-module: 1.3.0 is-glob: 4.0.3 + stable-hash: 0.0.4 optionalDependencies: - eslint-plugin-import-x: 4.4.3(eslint@9.15.0)(typescript@5.6.3) - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-node - - eslint-import-resolver-webpack - - supports-color - - eslint-module-utils@2.11.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.15.0(eslint@9.15.0)(typescript@5.6.3))(eslint-plugin-import-x@4.4.3(eslint@9.15.0)(typescript@5.6.3))(eslint@9.15.0))(eslint@9.15.0): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 8.15.0(eslint@9.15.0)(typescript@5.6.3) - eslint: 9.15.0 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.15.0(eslint@9.15.0)(typescript@5.6.3))(eslint-plugin-import-x@4.4.3(eslint@9.15.0)(typescript@5.6.3))(eslint@9.15.0) + eslint-plugin-import-x: 4.5.0(eslint@9.16.0)(typescript@5.7.2) transitivePeerDependencies: - supports-color - eslint-plugin-import-x@4.4.3(eslint@9.15.0)(typescript@5.6.3): + eslint-plugin-import-x@4.5.0(eslint@9.16.0)(typescript@5.7.2): dependencies: - '@typescript-eslint/utils': 8.15.0(eslint@9.15.0)(typescript@5.6.3) - debug: 4.3.7(supports-color@8.1.1) + '@typescript-eslint/scope-manager': 8.18.0 + '@typescript-eslint/utils': 8.18.0(eslint@9.16.0)(typescript@5.7.2) + debug: 4.4.0(supports-color@8.1.1) doctrine: 3.0.0 - eslint: 9.15.0 + eslint: 9.16.0 eslint-import-resolver-node: 0.3.9 get-tsconfig: 4.8.1 is-glob: 4.0.3 @@ -8099,15 +8026,15 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.15.0: + eslint@9.16.0: dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.0 - '@eslint/core': 0.9.0 + '@eslint/config-array': 0.19.1 + '@eslint/core': 0.9.1 '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.15.0 - '@eslint/plugin-kit': 0.2.3 + '@eslint/js': 9.16.0 + '@eslint/plugin-kit': 0.2.4 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.1 @@ -8116,7 +8043,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) escape-string-regexp: 4.0.0 eslint-scope: 8.2.0 eslint-visitor-keys: 4.2.0 @@ -8172,7 +8099,7 @@ snapshots: execa@1.0.0: dependencies: - cross-spawn: 6.0.5 + cross-spawn: 6.0.6 get-stream: 4.1.0 is-stream: 1.1.0 npm-run-path: 2.0.2 @@ -8216,7 +8143,7 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - execa@9.5.1: + execa@9.5.2: dependencies: '@sindresorhus/merge-streams': 4.0.0 cross-spawn: 7.0.6 @@ -8237,15 +8164,15 @@ snapshots: expect-type@1.1.0: {} - expect-webdriverio@5.0.4(@wdio/globals@9.2.14(@wdio/logger@9.1.3))(@wdio/logger@9.1.3)(webdriverio@9.2.14): + expect-webdriverio@5.0.5(@wdio/globals@9.4.1(@wdio/logger@9.1.3))(@wdio/logger@9.1.3)(webdriverio@9.4.1): dependencies: - '@vitest/snapshot': 2.1.5 - '@wdio/globals': 9.2.14(@wdio/logger@9.1.3) + '@vitest/snapshot': 2.1.8 + '@wdio/globals': 9.4.1(@wdio/logger@9.1.3) '@wdio/logger': 9.1.3 expect: 29.7.0 jest-matcher-utils: 29.7.0 lodash.isequal: 4.5.0 - webdriverio: 9.2.14 + webdriverio: 9.4.1 expect@29.7.0: dependencies: @@ -8265,7 +8192,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -8378,7 +8305,7 @@ snapshots: flora-colossus@2.0.0: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) fs-extra: 10.1.0 transitivePeerDependencies: - supports-color @@ -8446,7 +8373,7 @@ snapshots: galactus@1.0.0: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7 flora-colossus: 2.0.0 fs-extra: 10.1.0 transitivePeerDependencies: @@ -8520,10 +8447,6 @@ snapshots: '@sec-ant/readable-stream': 0.4.1 is-stream: 4.0.1 - get-tsconfig@4.8.0: - dependencies: - resolve-pkg-maps: 1.0.0 - get-tsconfig@4.8.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -8532,7 +8455,7 @@ snapshots: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) fs-extra: 11.2.0 transitivePeerDependencies: - supports-color @@ -8610,7 +8533,7 @@ snapshots: globals@14.0.0: {} - globals@15.12.0: {} + globals@15.13.0: {} globalthis@1.0.4: dependencies: @@ -8715,14 +8638,14 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -8734,17 +8657,25 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7 transitivePeerDependencies: - supports-color + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.3 + debug: 4.4.0(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + optional: true + human-signals@2.1.0: {} human-signals@5.0.0: {} @@ -8869,7 +8800,7 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 - is-bun-module@1.2.1: + is-bun-module@1.3.0: dependencies: semver: 7.6.3 @@ -9028,7 +8959,7 @@ snapshots: istanbul-lib-source-maps@5.0.6: dependencies: '@jridgewell/trace-mapping': 0.3.25 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -9082,7 +9013,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.9.1 + '@types/node': 22.10.1 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -9104,9 +9035,9 @@ snapshots: form-data: 4.0.1 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 + https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.13 + nwsapi: 2.2.16 parse5: 7.2.1 rrweb-cssom: 0.7.1 saxes: 6.0.0 @@ -9116,7 +9047,7 @@ snapshots: webidl-conversions: 7.0.0 whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 - whatwg-url: 14.0.0 + whatwg-url: 14.1.0 ws: 8.18.0 xml-name-validator: 5.0.0 transitivePeerDependencies: @@ -9183,24 +9114,24 @@ snapshots: dependencies: immediate: 3.0.6 - lilconfig@3.1.2: {} + lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} lines-and-columns@2.0.4: {} - lint-staged@15.2.10: + lint-staged@15.2.11: dependencies: chalk: 5.3.0 commander: 12.1.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) execa: 8.0.1 - lilconfig: 3.1.2 - listr2: 8.2.4 + lilconfig: 3.1.3 + listr2: 8.2.5 micromatch: 4.0.8 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.5.1 + yaml: 2.6.1 transitivePeerDependencies: - supports-color @@ -9213,7 +9144,7 @@ snapshots: rfdc: 1.4.1 wrap-ansi: 8.1.0 - listr2@8.2.4: + listr2@8.2.5: dependencies: cli-truncate: 4.0.0 colorette: 2.0.20 @@ -9344,14 +9275,14 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 - magic-string@0.30.13: + magic-string@0.30.15: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 magicast@0.3.5: dependencies: - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 source-map-js: 1.2.1 make-dir@4.0.0: @@ -9484,7 +9415,7 @@ snapshots: ansi-colors: 4.1.3 browser-stdout: 1.3.1 chokidar: 3.6.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) diff: 5.2.0 escape-string-regexp: 4.0.0 find-up: 5.0.0 @@ -9508,7 +9439,7 @@ snapshots: mute-stream@1.0.0: {} - nanoid@3.3.7: {} + nanoid@3.3.8: {} natural-compare@1.4.0: {} @@ -9619,7 +9550,7 @@ snapshots: dependencies: boolbase: 1.0.0 - nwsapi@2.2.13: + nwsapi@2.2.16: optional: true object-inspect@1.13.2: {} @@ -9755,7 +9686,7 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.1 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) get-uri: 6.0.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 @@ -9901,7 +9832,7 @@ snapshots: postcss@8.4.49: dependencies: - nanoid: 3.3.7 + nanoid: 3.3.8 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -9911,7 +9842,7 @@ snapshots: prelude-ls@1.2.1: {} - prettier@3.3.3: {} + prettier@3.4.2: {} pretty-format@27.5.1: dependencies: @@ -9953,7 +9884,7 @@ snapshots: proxy-agent@6.4.0: dependencies: agent-base: 7.1.1 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 lru-cache: 7.18.3 @@ -10001,7 +9932,7 @@ snapshots: read-binary-file-arch@1.0.6: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -10015,7 +9946,7 @@ snapshots: dependencies: find-up: 6.3.0 read-pkg: 8.1.0 - type-fest: 4.27.0 + type-fest: 4.30.0 read-pkg-up@2.0.0: dependencies: @@ -10033,7 +9964,7 @@ snapshots: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.2 parse-json: 7.1.1 - type-fest: 4.27.0 + type-fest: 4.30.0 read-pkg@9.0.1: dependencies: @@ -10106,14 +10037,14 @@ snapshots: dependencies: rc: 1.2.8 - release-it@17.10.0(typescript@5.6.3): + release-it@17.10.0(typescript@5.7.2): dependencies: '@iarna/toml': 2.2.5 '@octokit/rest': 20.1.1 async-retry: 1.3.3 chalk: 5.3.0 ci-info: 4.0.0 - cosmiconfig: 9.0.0(typescript@5.6.3) + cosmiconfig: 9.0.0(typescript@5.7.2) execa: 8.0.0 git-url-parse: 14.0.0 globby: 14.0.2 @@ -10142,10 +10073,6 @@ snapshots: dependencies: pe-library: 0.4.1 - resedit@2.0.2: - dependencies: - pe-library: 1.0.1 - resedit@2.0.3: dependencies: pe-library: 1.0.1 @@ -10218,28 +10145,29 @@ snapshots: sprintf-js: 1.1.3 optional: true - rollup@4.27.3: + rollup@4.28.1: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.27.3 - '@rollup/rollup-android-arm64': 4.27.3 - '@rollup/rollup-darwin-arm64': 4.27.3 - '@rollup/rollup-darwin-x64': 4.27.3 - '@rollup/rollup-freebsd-arm64': 4.27.3 - '@rollup/rollup-freebsd-x64': 4.27.3 - '@rollup/rollup-linux-arm-gnueabihf': 4.27.3 - '@rollup/rollup-linux-arm-musleabihf': 4.27.3 - '@rollup/rollup-linux-arm64-gnu': 4.27.3 - '@rollup/rollup-linux-arm64-musl': 4.27.3 - '@rollup/rollup-linux-powerpc64le-gnu': 4.27.3 - '@rollup/rollup-linux-riscv64-gnu': 4.27.3 - '@rollup/rollup-linux-s390x-gnu': 4.27.3 - '@rollup/rollup-linux-x64-gnu': 4.27.3 - '@rollup/rollup-linux-x64-musl': 4.27.3 - '@rollup/rollup-win32-arm64-msvc': 4.27.3 - '@rollup/rollup-win32-ia32-msvc': 4.27.3 - '@rollup/rollup-win32-x64-msvc': 4.27.3 + '@rollup/rollup-android-arm-eabi': 4.28.1 + '@rollup/rollup-android-arm64': 4.28.1 + '@rollup/rollup-darwin-arm64': 4.28.1 + '@rollup/rollup-darwin-x64': 4.28.1 + '@rollup/rollup-freebsd-arm64': 4.28.1 + '@rollup/rollup-freebsd-x64': 4.28.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.28.1 + '@rollup/rollup-linux-arm-musleabihf': 4.28.1 + '@rollup/rollup-linux-arm64-gnu': 4.28.1 + '@rollup/rollup-linux-arm64-musl': 4.28.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.28.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.28.1 + '@rollup/rollup-linux-riscv64-gnu': 4.28.1 + '@rollup/rollup-linux-s390x-gnu': 4.28.1 + '@rollup/rollup-linux-x64-gnu': 4.28.1 + '@rollup/rollup-linux-x64-musl': 4.28.1 + '@rollup/rollup-win32-arm64-msvc': 4.28.1 + '@rollup/rollup-win32-ia32-msvc': 4.28.1 + '@rollup/rollup-win32-x64-msvc': 4.28.1 fsevents: 2.3.3 rrweb-cssom@0.7.1: @@ -10396,7 +10324,7 @@ snapshots: socks-proxy-agent@7.0.0: dependencies: agent-base: 6.0.2 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -10404,7 +10332,7 @@ snapshots: socks-proxy-agent@8.0.4: dependencies: agent-base: 7.1.1 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -10467,11 +10395,11 @@ snapshots: stream-buffers@3.0.3: {} - streamx@2.20.1: + streamx@2.21.0: dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 - text-decoder: 1.2.1 + text-decoder: 1.2.2 optionalDependencies: bare-events: 2.5.0 @@ -10539,7 +10467,7 @@ snapshots: sumchecker@3.0.1: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -10587,7 +10515,7 @@ snapshots: dependencies: b4a: 1.6.7 fast-fifo: 1.3.2 - streamx: 2.20.1 + streamx: 2.21.0 tar@6.2.1: dependencies: @@ -10617,7 +10545,9 @@ snapshots: glob: 10.4.5 minimatch: 9.0.5 - text-decoder@1.2.1: {} + text-decoder@1.2.2: + dependencies: + b4a: 1.6.7 through@2.3.8: {} @@ -10635,12 +10565,12 @@ snapshots: tinyspy@3.0.2: {} - tldts-core@6.1.61: + tldts-core@6.1.66: optional: true - tldts@6.1.61: + tldts@6.1.66: dependencies: - tldts-core: 6.1.61 + tldts-core: 6.1.66 optional: true tmp-promise@3.0.3: @@ -10659,7 +10589,7 @@ snapshots: tough-cookie@5.0.0: dependencies: - tldts: 6.1.61 + tldts: 6.1.66 optional: true tr46@0.0.3: {} @@ -10677,9 +10607,9 @@ snapshots: dependencies: utf8-byte-length: 1.0.5 - ts-api-utils@1.4.0(typescript@5.6.3): + ts-api-utils@1.4.3(typescript@5.7.2): dependencies: - typescript: 5.6.3 + typescript: 5.7.2 tslib@2.8.1: {} @@ -10690,32 +10620,32 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - turbo-darwin-64@2.3.0: + turbo-darwin-64@2.3.3: optional: true - turbo-darwin-arm64@2.3.0: + turbo-darwin-arm64@2.3.3: optional: true - turbo-linux-64@2.3.0: + turbo-linux-64@2.3.3: optional: true - turbo-linux-arm64@2.3.0: + turbo-linux-arm64@2.3.3: optional: true - turbo-windows-64@2.3.0: + turbo-windows-64@2.3.3: optional: true - turbo-windows-arm64@2.3.0: + turbo-windows-arm64@2.3.3: optional: true - turbo@2.3.0: + turbo@2.3.3: optionalDependencies: - turbo-darwin-64: 2.3.0 - turbo-darwin-arm64: 2.3.0 - turbo-linux-64: 2.3.0 - turbo-linux-arm64: 2.3.0 - turbo-windows-64: 2.3.0 - turbo-windows-arm64: 2.3.0 + turbo-darwin-64: 2.3.3 + turbo-darwin-arm64: 2.3.3 + turbo-linux-64: 2.3.3 + turbo-linux-arm64: 2.3.3 + turbo-windows-64: 2.3.3 + turbo-windows-arm64: 2.3.3 type-check@0.4.0: dependencies: @@ -10738,9 +10668,9 @@ snapshots: type-fest@4.26.1: {} - type-fest@4.27.0: {} + type-fest@4.30.0: {} - typescript@5.6.3: {} + typescript@5.7.2: {} unbzip2-stream@1.4.3: dependencies: @@ -10749,6 +10679,8 @@ snapshots: undici-types@6.19.8: {} + undici-types@6.20.0: {} + undici@6.21.0: {} unicorn-magic@0.1.0: {} @@ -10813,13 +10745,13 @@ snapshots: extsprintf: 1.4.1 optional: true - vite-node@2.1.5(@types/node@22.9.1)(terser@5.36.0): + vite-node@2.1.8(@types/node@22.10.1)(terser@5.36.0): dependencies: cac: 6.7.14 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: 5.4.11(@types/node@22.9.1)(terser@5.36.0) + vite: 5.4.11(@types/node@22.10.1)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - less @@ -10831,40 +10763,40 @@ snapshots: - supports-color - terser - vite@5.4.11(@types/node@22.9.1)(terser@5.36.0): + vite@5.4.11(@types/node@22.10.1)(terser@5.36.0): dependencies: esbuild: 0.21.5 postcss: 8.4.49 - rollup: 4.27.3 + rollup: 4.28.1 optionalDependencies: - '@types/node': 22.9.1 + '@types/node': 22.10.1 fsevents: 2.3.3 terser: 5.36.0 - vitest@2.1.5(@types/node@22.9.1)(jsdom@25.0.1)(terser@5.36.0): + vitest@2.1.8(@types/node@22.10.1)(jsdom@25.0.1)(terser@5.36.0): dependencies: - '@vitest/expect': 2.1.5 - '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@22.9.1)(terser@5.36.0)) - '@vitest/pretty-format': 2.1.5 - '@vitest/runner': 2.1.5 - '@vitest/snapshot': 2.1.5 - '@vitest/spy': 2.1.5 - '@vitest/utils': 2.1.5 + '@vitest/expect': 2.1.8 + '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.1)(terser@5.36.0)) + '@vitest/pretty-format': 2.1.8 + '@vitest/runner': 2.1.8 + '@vitest/snapshot': 2.1.8 + '@vitest/spy': 2.1.8 + '@vitest/utils': 2.1.8 chai: 5.1.2 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) expect-type: 1.1.0 - magic-string: 0.30.12 + magic-string: 0.30.15 pathe: 1.1.2 std-env: 3.8.0 tinybench: 2.9.0 tinyexec: 0.3.1 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.11(@types/node@22.9.1)(terser@5.36.0) - vite-node: 2.1.5(@types/node@22.9.1)(terser@5.36.0) + vite: 5.4.11(@types/node@22.10.1)(terser@5.36.0) + vite-node: 2.1.8(@types/node@22.10.1)(terser@5.36.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.9.1 + '@types/node': 22.10.1 jsdom: 25.0.1 transitivePeerDependencies: - less @@ -10886,7 +10818,7 @@ snapshots: dependencies: chalk: 4.1.2 commander: 9.5.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -10896,9 +10828,9 @@ snapshots: web-streams-polyfill@3.3.3: {} - webdriver@9.2.8: + webdriver@9.4.1: dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.9 '@types/ws': 8.5.13 '@wdio/config': 9.2.8 '@wdio/logger': 9.1.3 @@ -10906,15 +10838,16 @@ snapshots: '@wdio/types': 9.2.2 '@wdio/utils': 9.2.8 deepmerge-ts: 7.1.3 + undici: 6.21.0 ws: 8.18.0 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - webdriverio@9.2.14: + webdriverio@9.4.1: dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.9 '@types/sinonjs__fake-timers': 8.1.5 '@wdio/config': 9.2.8 '@wdio/logger': 9.1.3 @@ -10940,7 +10873,7 @@ snapshots: rgb2hex: 0.2.5 serialize-error: 11.0.3 urlpattern-polyfill: 10.0.0 - webdriver: 9.2.8 + webdriver: 9.4.1 transitivePeerDependencies: - bufferutil - supports-color @@ -10957,7 +10890,7 @@ snapshots: whatwg-mimetype@4.0.0: {} - whatwg-url@14.0.0: + whatwg-url@14.1.0: dependencies: tr46: 5.0.0 webidl-conversions: 7.0.0 @@ -11077,8 +11010,6 @@ snapshots: yallist@4.0.0: {} - yaml@2.5.1: {} - yaml@2.6.1: {} yargs-parser@20.2.9: {} @@ -11114,7 +11045,7 @@ snapshots: yarn-or-npm@3.0.1: dependencies: - cross-spawn: 6.0.5 + cross-spawn: 6.0.6 pkg-dir: 4.2.0 yauzl@2.10.0: From 807cbeb741d17b3427ddc2216518ccee28cbd7c4 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 06:08:37 +0000 Subject: [PATCH 26/41] debug: revert compileroptions --- packages/wdio-electron-service/tsconfig.cjs.json | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/packages/wdio-electron-service/tsconfig.cjs.json b/packages/wdio-electron-service/tsconfig.cjs.json index 5ce94f10..e0892d87 100644 --- a/packages/wdio-electron-service/tsconfig.cjs.json +++ b/packages/wdio-electron-service/tsconfig.cjs.json @@ -1,9 +1,5 @@ { "extends": "../../tsconfig.base.cjs.json", "include": ["src/cjs/**/*", "src/cjs/package.json"], - "exclude": ["src/*.ts", "src/commands/*.ts", "node_modules", "coverage", "dist", "test"], - "compilerOptions": { - "module": "Preserve", - "moduleResolution": "bundler" - } + "exclude": ["src/*.ts", "src/commands/*.ts", "node_modules", "coverage", "dist", "test"] } From 532ebc6a8e8238e0f1d45d6028d4ed9e3b2d8050 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 06:09:06 +0000 Subject: [PATCH 27/41] debug: no logging --- packages/wdio-electron-service/src/cjs/session.ts | 4 ++-- packages/wdio-electron-service/src/session.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/wdio-electron-service/src/cjs/session.ts b/packages/wdio-electron-service/src/cjs/session.ts index be6062ba..7bf7ebce 100644 --- a/packages/wdio-electron-service/src/cjs/session.ts +++ b/packages/wdio-electron-service/src/cjs/session.ts @@ -1,5 +1,5 @@ import { remote } from 'webdriverio'; -import log from '@wdio/electron-utils/log'; +// import log from '@wdio/electron-utils/log'; import type { Capabilities, Options } from '@wdio/types'; import type { ElectronServiceCapabilities, ElectronServiceGlobalOptions } from '@wdio/electron-types'; @@ -14,7 +14,7 @@ export async function init(capabilities: ElectronServiceCapabilities, globalOpti await launcher.onPrepare(testRunnerOpts, capabilities); - log.debug('Session capabilities:', capabilities); + // log.debug('Session capabilities:', capabilities); // initialise session const browser = await remote({ diff --git a/packages/wdio-electron-service/src/session.ts b/packages/wdio-electron-service/src/session.ts index cc6cc921..cce1b3b1 100644 --- a/packages/wdio-electron-service/src/session.ts +++ b/packages/wdio-electron-service/src/session.ts @@ -1,5 +1,5 @@ import { remote } from 'webdriverio'; -import log from '@wdio/electron-utils/log'; +// import log from '@wdio/electron-utils/log'; import type { Options, Capabilities } from '@wdio/types'; import type { ElectronServiceCapabilities, ElectronServiceGlobalOptions } from '@wdio/electron-types'; @@ -13,7 +13,7 @@ export async function init(capabilities: ElectronServiceCapabilities, globalOpti await launcher.onPrepare(testRunnerOpts, capabilities); - log.debug('Session capabilities:', capabilities); + // log.debug('Session capabilities:', capabilities); // initialise session const browser = await remote({ From e6fb5a433ed791438ee60f1af6d5ee49ff807d53 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 06:15:06 +0000 Subject: [PATCH 28/41] debug: revert service opts --- e2e/wdio.conf.js | 3 ++- e2e/wdio.conf.ts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/e2e/wdio.conf.js b/e2e/wdio.conf.js index fecddfd4..a853997b 100644 --- a/e2e/wdio.conf.js +++ b/e2e/wdio.conf.js @@ -17,13 +17,14 @@ globalThis.packageJson = packageJson; process.env.TEST = 'true'; export const config = { - services: [['electron', { restoreMocks: true }]], + services: ['electron'], capabilities: [ { 'browserName': 'electron', 'wdio:electronServiceOptions': { appBinaryPath, appArgs: ['foo', 'bar=baz'], + restoreMocks: true, }, }, ], diff --git a/e2e/wdio.conf.ts b/e2e/wdio.conf.ts index 4858e75a..66e3a4e9 100644 --- a/e2e/wdio.conf.ts +++ b/e2e/wdio.conf.ts @@ -20,13 +20,14 @@ globalThis.packageJson = packageJson; process.env.TEST = 'true'; export const config: WdioElectronConfig = { - services: [['electron', { restoreMocks: true }]], + services: ['electron'], capabilities: [ { 'browserName': 'electron', 'wdio:electronServiceOptions': { appBinaryPath, appArgs: ['foo', 'bar=baz'], + restoreMocks: true, }, }, ], From 14adec4b927511fb08e48961ed1a9ad73ca64ab8 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 06:32:51 +0000 Subject: [PATCH 29/41] debug: revert exports --- packages/@wdio_electron-utils/package.json | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/packages/@wdio_electron-utils/package.json b/packages/@wdio_electron-utils/package.json index 53a30759..de9beb78 100644 --- a/packages/@wdio_electron-utils/package.json +++ b/packages/@wdio_electron-utils/package.json @@ -10,27 +10,17 @@ "exports": { ".": [ { - "import": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - }, - "require": { - "types": "./dist/cjs/index.d.ts", - "default": "./dist/cjs/index.js" - } + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "require": "./dist/cjs/index.js" }, "./dist/cjs/index.js" ], "./log": [ { - "import": { - "types": "./dist/log.d.ts", - "default": "./dist/log.js" - }, - "require": { - "types": "./dist/cjs/log.d.ts", - "default": "./dist/cjs/log.js" - } + "import": "./dist/log.js", + "types": "./dist/log.d.ts", + "require": "./dist/cjs/log.js" }, "./dist/cjs/log.js" ] From 63441cd5a901b61b970a1516142467d3bb198c31 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 15:28:32 +0000 Subject: [PATCH 30/41] fix: remove util --- apps/builder-esm/src/preload.cts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/builder-esm/src/preload.cts b/apps/builder-esm/src/preload.cts index 7e7051be..03190ad4 100644 --- a/apps/builder-esm/src/preload.cts +++ b/apps/builder-esm/src/preload.cts @@ -1,5 +1,5 @@ const { contextBridge, ipcRenderer } = require('electron'); -const isTest = require('./util'); +const isTest = process.env.TEST === 'true'; if (isTest) { require('wdio-electron-service/preload'); From b2c9b1e15029fd823d03fcc6f138c2b6491bcde9 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 16:00:27 +0000 Subject: [PATCH 31/41] debug: comment out test --- e2e/api.spec.ts | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/e2e/api.spec.ts b/e2e/api.spec.ts index 82c5bd04..94eb843f 100644 --- a/e2e/api.spec.ts +++ b/e2e/api.spec.ts @@ -216,19 +216,19 @@ describe('browser.electron', () => { }); }); - it('should restore existing mocks', async () => { - const mockGetName = await browser.electron.mock('app', 'getName'); - const mockReadText = await browser.electron.mock('clipboard', 'readText'); - await mockGetName.mockReturnValue('mocked appName'); - await mockReadText.mockReturnValue('mocked clipboardText'); - - await browser.electron.restoreAllMocks(); - - const appName = await browser.electron.execute((electron) => electron.app.getName()); - const clipboardText = await browser.electron.execute((electron) => electron.clipboard.readText()); - expect(appName).toBe(pkgAppName); - expect(clipboardText).toBe('some real clipboard text'); - }); + // it('should restore existing mocks', async () => { + // const mockGetName = await browser.electron.mock('app', 'getName'); + // const mockReadText = await browser.electron.mock('clipboard', 'readText'); + // await mockGetName.mockReturnValue('mocked appName'); + // await mockReadText.mockReturnValue('mocked clipboardText'); + + // await browser.electron.restoreAllMocks(); + + // const appName = await browser.electron.execute((electron) => electron.app.getName()); + // const clipboardText = await browser.electron.execute((electron) => electron.clipboard.readText()); + // expect(appName).toBe(pkgAppName); + // expect(clipboardText).toBe('some real clipboard text'); + // }); it('should restore existing mocks on an API', async () => { const mockGetName = await browser.electron.mock('app', 'getName'); From 894f621025673b56b4d554b089a0c46a16e67380 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 16:36:25 +0000 Subject: [PATCH 32/41] fix: set `restoreMocks` correctly --- e2e/wdio.conf.js | 3 +-- e2e/wdio.conf.ts | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/e2e/wdio.conf.js b/e2e/wdio.conf.js index a853997b..fecddfd4 100644 --- a/e2e/wdio.conf.js +++ b/e2e/wdio.conf.js @@ -17,14 +17,13 @@ globalThis.packageJson = packageJson; process.env.TEST = 'true'; export const config = { - services: ['electron'], + services: [['electron', { restoreMocks: true }]], capabilities: [ { 'browserName': 'electron', 'wdio:electronServiceOptions': { appBinaryPath, appArgs: ['foo', 'bar=baz'], - restoreMocks: true, }, }, ], diff --git a/e2e/wdio.conf.ts b/e2e/wdio.conf.ts index 66e3a4e9..4858e75a 100644 --- a/e2e/wdio.conf.ts +++ b/e2e/wdio.conf.ts @@ -20,14 +20,13 @@ globalThis.packageJson = packageJson; process.env.TEST = 'true'; export const config: WdioElectronConfig = { - services: ['electron'], + services: [['electron', { restoreMocks: true }]], capabilities: [ { 'browserName': 'electron', 'wdio:electronServiceOptions': { appBinaryPath, appArgs: ['foo', 'bar=baz'], - restoreMocks: true, }, }, ], From e9fa0077d7e150b66bdc91ba39bb383d709f70f6 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 16:39:09 +0000 Subject: [PATCH 33/41] chore: reinstate test --- e2e/api.spec.ts | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/e2e/api.spec.ts b/e2e/api.spec.ts index 94eb843f..82c5bd04 100644 --- a/e2e/api.spec.ts +++ b/e2e/api.spec.ts @@ -216,19 +216,19 @@ describe('browser.electron', () => { }); }); - // it('should restore existing mocks', async () => { - // const mockGetName = await browser.electron.mock('app', 'getName'); - // const mockReadText = await browser.electron.mock('clipboard', 'readText'); - // await mockGetName.mockReturnValue('mocked appName'); - // await mockReadText.mockReturnValue('mocked clipboardText'); - - // await browser.electron.restoreAllMocks(); - - // const appName = await browser.electron.execute((electron) => electron.app.getName()); - // const clipboardText = await browser.electron.execute((electron) => electron.clipboard.readText()); - // expect(appName).toBe(pkgAppName); - // expect(clipboardText).toBe('some real clipboard text'); - // }); + it('should restore existing mocks', async () => { + const mockGetName = await browser.electron.mock('app', 'getName'); + const mockReadText = await browser.electron.mock('clipboard', 'readText'); + await mockGetName.mockReturnValue('mocked appName'); + await mockReadText.mockReturnValue('mocked clipboardText'); + + await browser.electron.restoreAllMocks(); + + const appName = await browser.electron.execute((electron) => electron.app.getName()); + const clipboardText = await browser.electron.execute((electron) => electron.clipboard.readText()); + expect(appName).toBe(pkgAppName); + expect(clipboardText).toBe('some real clipboard text'); + }); it('should restore existing mocks on an API', async () => { const mockGetName = await browser.electron.mock('app', 'getName'); From d38e1f1e4b23421a34c5b05cd61ee30cd8cbfbda Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 16:43:19 +0000 Subject: [PATCH 34/41] feat: support both options and capabilities --- packages/wdio-electron-service/src/service.ts | 4 +- .../test/service.spec.ts | 38 +++++++++++++++++++ 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/packages/wdio-electron-service/src/service.ts b/packages/wdio-electron-service/src/service.ts index b021dd14..459fb91b 100644 --- a/packages/wdio-electron-service/src/service.ts +++ b/packages/wdio-electron-service/src/service.ts @@ -71,12 +71,12 @@ export default class ElectronWorkerService implements Services.ServiceInstance { } async before( - _capabilities: WebdriverIO.Capabilities, + capabilities: WebdriverIO.Capabilities, _specs: string[], instance: WebdriverIO.Browser | WebdriverIO.MultiRemoteBrowser, ): Promise { const browser = instance as WebdriverIO.Browser; - const { clearMocks, resetMocks, restoreMocks } = this.#globalOptions; + const { clearMocks, resetMocks, restoreMocks } = this.#globalOptions || capabilities[CUSTOM_CAPABILITY_NAME]; this.#clearMocks = clearMocks ?? false; this.#resetMocks = resetMocks ?? false; diff --git a/packages/wdio-electron-service/test/service.spec.ts b/packages/wdio-electron-service/test/service.spec.ts index 102afb38..11338442 100644 --- a/packages/wdio-electron-service/test/service.spec.ts +++ b/packages/wdio-electron-service/test/service.spec.ts @@ -117,6 +117,44 @@ describe('beforeTest', () => { expect(restoreAllMocks).toHaveBeenCalled(); }); + + describe('when setting options in capabilities', () => { + it('should clear all mocks when `clearMocks` is set in capabilities', async () => { + instance = new WorkerService(); + const browser = { + waitUntil: vi.fn().mockResolvedValue(true), + execute: vi.fn().mockResolvedValue(true), + } as unknown as WebdriverIO.Browser; + await instance.before({ 'wdio:electronServiceOptions': { clearMocks: true } }, [], browser); + await instance.beforeTest(); + + expect(clearAllMocks).toHaveBeenCalled(); + }); + + it('should reset all mocks when `resetMocks` is set in capabilities', async () => { + instance = new WorkerService(); + const browser = { + waitUntil: vi.fn().mockResolvedValue(true), + execute: vi.fn().mockResolvedValue(true), + } as unknown as WebdriverIO.Browser; + await instance.before({ 'wdio:electronServiceOptions': { resetMocks: true } }, [], browser); + await instance.beforeTest(); + + expect(resetAllMocks).toHaveBeenCalled(); + }); + + it('should restore all mocks when `restoreMocks` is set in capabilities', async () => { + instance = new WorkerService(); + const browser = { + waitUntil: vi.fn().mockResolvedValue(true), + execute: vi.fn().mockResolvedValue(true), + } as unknown as WebdriverIO.Browser; + await instance.before({ 'wdio:electronServiceOptions': { restoreMocks: true } }, [], browser); + await instance.beforeTest(); + + expect(restoreAllMocks).toHaveBeenCalled(); + }); + }); }); describe('afterCommand', () => { From 4bd36a238fd098413410ace64d243dfa27603a21 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 16:48:13 +0000 Subject: [PATCH 35/41] chore: ignore e2e transpiled files --- .prettierignore | 2 ++ eslint.config.js | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 .prettierignore diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..c3256b57 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,2 @@ +# JS Test Files (these are transpiled from TS) +e2e/js/*.spec.js diff --git a/eslint.config.js b/eslint.config.js index 61129873..750be0fb 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -10,7 +10,7 @@ import importX from 'eslint-plugin-import-x'; export default [ // Ignored dirs { - ignores: ['**/dist/**/*', '@types/**/*'], + ignores: ['**/dist/**/*', '@types/**/*', 'e2e/js/*'], }, // All files { From b6cc3b75aff0822858824e40bc712735bf497723 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 16:53:18 +0000 Subject: [PATCH 36/41] chore: remove e2e preload imports --- apps/builder-cjs/src/preload.ts | 2 +- apps/builder-cjs/src/util.ts | 1 - apps/builder-esm/src/util.ts | 1 - apps/forge-cjs/src/main.ts | 2 +- apps/forge-cjs/src/preload.ts | 2 +- apps/forge-cjs/src/util.ts | 1 - apps/forge-esm/src/main.ts | 2 +- apps/forge-esm/src/preload.cts | 23 ++++++++++------------- apps/forge-esm/src/util.ts | 1 - apps/no-binary-cjs/src/main.ts | 2 +- apps/no-binary-cjs/src/preload.ts | 2 +- apps/no-binary-cjs/src/util.ts | 1 - apps/no-binary-esm/src/main.ts | 2 +- apps/no-binary-esm/src/preload.cts | 23 ++++++++++------------- apps/no-binary-esm/src/util.ts | 1 - 15 files changed, 27 insertions(+), 39 deletions(-) delete mode 100644 apps/builder-cjs/src/util.ts delete mode 100644 apps/builder-esm/src/util.ts delete mode 100644 apps/forge-cjs/src/util.ts delete mode 100644 apps/forge-esm/src/util.ts delete mode 100644 apps/no-binary-cjs/src/util.ts delete mode 100644 apps/no-binary-esm/src/util.ts diff --git a/apps/builder-cjs/src/preload.ts b/apps/builder-cjs/src/preload.ts index 7e7051be..03190ad4 100644 --- a/apps/builder-cjs/src/preload.ts +++ b/apps/builder-cjs/src/preload.ts @@ -1,5 +1,5 @@ const { contextBridge, ipcRenderer } = require('electron'); -const isTest = require('./util'); +const isTest = process.env.TEST === 'true'; if (isTest) { require('wdio-electron-service/preload'); diff --git a/apps/builder-cjs/src/util.ts b/apps/builder-cjs/src/util.ts deleted file mode 100644 index 3bffbcef..00000000 --- a/apps/builder-cjs/src/util.ts +++ /dev/null @@ -1 +0,0 @@ -export const isTest = process.env.TEST === 'true'; diff --git a/apps/builder-esm/src/util.ts b/apps/builder-esm/src/util.ts deleted file mode 100644 index 3bffbcef..00000000 --- a/apps/builder-esm/src/util.ts +++ /dev/null @@ -1 +0,0 @@ -export const isTest = process.env.TEST === 'true'; diff --git a/apps/forge-cjs/src/main.ts b/apps/forge-cjs/src/main.ts index e47f9dda..882c00cb 100644 --- a/apps/forge-cjs/src/main.ts +++ b/apps/forge-cjs/src/main.ts @@ -1,5 +1,5 @@ import { app, BrowserWindow, ipcMain } from 'electron'; -import { isTest } from './util.js'; +const isTest = process.env.TEST === 'true'; if (isTest) { require('wdio-electron-service/main'); diff --git a/apps/forge-cjs/src/preload.ts b/apps/forge-cjs/src/preload.ts index 5b7b4321..232f2c28 100644 --- a/apps/forge-cjs/src/preload.ts +++ b/apps/forge-cjs/src/preload.ts @@ -1,5 +1,5 @@ import { contextBridge, ipcRenderer } from 'electron'; -import { isTest } from './util.js'; +const isTest = process.env.TEST === 'true'; if (isTest) { require('wdio-electron-service/preload'); diff --git a/apps/forge-cjs/src/util.ts b/apps/forge-cjs/src/util.ts deleted file mode 100644 index 3bffbcef..00000000 --- a/apps/forge-cjs/src/util.ts +++ /dev/null @@ -1 +0,0 @@ -export const isTest = process.env.TEST === 'true'; diff --git a/apps/forge-esm/src/main.ts b/apps/forge-esm/src/main.ts index 25532c99..576d85cb 100644 --- a/apps/forge-esm/src/main.ts +++ b/apps/forge-esm/src/main.ts @@ -1,5 +1,5 @@ import { app, BrowserWindow, ipcMain } from 'electron'; -import { isTest } from './util.js'; +const isTest = process.env.TEST === 'true'; if (isTest) { await import('wdio-electron-service/main'); diff --git a/apps/forge-esm/src/preload.cts b/apps/forge-esm/src/preload.cts index b8a8be1d..e78d7645 100644 --- a/apps/forge-esm/src/preload.cts +++ b/apps/forge-esm/src/preload.cts @@ -1,19 +1,16 @@ import { contextBridge, ipcRenderer } from 'electron'; -(async () => { - // util.js is an ESM module so we need to use dynamic import - const { isTest } = await import('./util.js'); +const isTest = process.env.TEST === 'true'; - if (isTest) { - require('wdio-electron-service/preload'); - } +if (isTest) { + require('wdio-electron-service/preload'); +} - const validChannels = ['increase-window-size', 'decrease-window-size']; +const validChannels = ['increase-window-size', 'decrease-window-size']; - const invoke = (channel: string, ...data: unknown[]) => - validChannels.includes(channel) ? ipcRenderer.invoke(channel, data) : Promise.reject(); +const invoke = (channel: string, ...data: unknown[]) => + validChannels.includes(channel) ? ipcRenderer.invoke(channel, data) : Promise.reject(); - contextBridge.exposeInMainWorld('api', { - invoke, - }); -})(); +contextBridge.exposeInMainWorld('api', { + invoke, +}); diff --git a/apps/forge-esm/src/util.ts b/apps/forge-esm/src/util.ts deleted file mode 100644 index 3bffbcef..00000000 --- a/apps/forge-esm/src/util.ts +++ /dev/null @@ -1 +0,0 @@ -export const isTest = process.env.TEST === 'true'; diff --git a/apps/no-binary-cjs/src/main.ts b/apps/no-binary-cjs/src/main.ts index cc197637..bfa637fe 100644 --- a/apps/no-binary-cjs/src/main.ts +++ b/apps/no-binary-cjs/src/main.ts @@ -1,5 +1,5 @@ import { app, BrowserWindow, ipcMain } from 'electron'; -import { isTest } from './util.js'; +const isTest = process.env.TEST === 'true'; if (isTest) { require('wdio-electron-service/main'); diff --git a/apps/no-binary-cjs/src/preload.ts b/apps/no-binary-cjs/src/preload.ts index 5b7b4321..232f2c28 100644 --- a/apps/no-binary-cjs/src/preload.ts +++ b/apps/no-binary-cjs/src/preload.ts @@ -1,5 +1,5 @@ import { contextBridge, ipcRenderer } from 'electron'; -import { isTest } from './util.js'; +const isTest = process.env.TEST === 'true'; if (isTest) { require('wdio-electron-service/preload'); diff --git a/apps/no-binary-cjs/src/util.ts b/apps/no-binary-cjs/src/util.ts deleted file mode 100644 index 3bffbcef..00000000 --- a/apps/no-binary-cjs/src/util.ts +++ /dev/null @@ -1 +0,0 @@ -export const isTest = process.env.TEST === 'true'; diff --git a/apps/no-binary-esm/src/main.ts b/apps/no-binary-esm/src/main.ts index d041896f..84f4b809 100644 --- a/apps/no-binary-esm/src/main.ts +++ b/apps/no-binary-esm/src/main.ts @@ -1,5 +1,5 @@ import { app, BrowserWindow, ipcMain } from 'electron'; -import { isTest } from './util.js'; +const isTest = process.env.TEST === 'true'; if (isTest) { await import('wdio-electron-service/main'); diff --git a/apps/no-binary-esm/src/preload.cts b/apps/no-binary-esm/src/preload.cts index b8a8be1d..e78d7645 100644 --- a/apps/no-binary-esm/src/preload.cts +++ b/apps/no-binary-esm/src/preload.cts @@ -1,19 +1,16 @@ import { contextBridge, ipcRenderer } from 'electron'; -(async () => { - // util.js is an ESM module so we need to use dynamic import - const { isTest } = await import('./util.js'); +const isTest = process.env.TEST === 'true'; - if (isTest) { - require('wdio-electron-service/preload'); - } +if (isTest) { + require('wdio-electron-service/preload'); +} - const validChannels = ['increase-window-size', 'decrease-window-size']; +const validChannels = ['increase-window-size', 'decrease-window-size']; - const invoke = (channel: string, ...data: unknown[]) => - validChannels.includes(channel) ? ipcRenderer.invoke(channel, data) : Promise.reject(); +const invoke = (channel: string, ...data: unknown[]) => + validChannels.includes(channel) ? ipcRenderer.invoke(channel, data) : Promise.reject(); - contextBridge.exposeInMainWorld('api', { - invoke, - }); -})(); +contextBridge.exposeInMainWorld('api', { + invoke, +}); diff --git a/apps/no-binary-esm/src/util.ts b/apps/no-binary-esm/src/util.ts deleted file mode 100644 index 3bffbcef..00000000 --- a/apps/no-binary-esm/src/util.ts +++ /dev/null @@ -1 +0,0 @@ -export const isTest = process.env.TEST === 'true'; From bfb4b97dbf8f823b1cbb6ba9f86cfdf276285688 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 17:28:16 +0000 Subject: [PATCH 37/41] chore: add back session logging --- packages/@wdio_electron-utils/package.json | 22 ++++++++++++++----- .../wdio-electron-service/src/cjs/session.ts | 1 + packages/wdio-electron-service/src/session.ts | 4 ++-- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/packages/@wdio_electron-utils/package.json b/packages/@wdio_electron-utils/package.json index de9beb78..53a30759 100644 --- a/packages/@wdio_electron-utils/package.json +++ b/packages/@wdio_electron-utils/package.json @@ -10,17 +10,27 @@ "exports": { ".": [ { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "require": "./dist/cjs/index.js" + "import": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "require": { + "types": "./dist/cjs/index.d.ts", + "default": "./dist/cjs/index.js" + } }, "./dist/cjs/index.js" ], "./log": [ { - "import": "./dist/log.js", - "types": "./dist/log.d.ts", - "require": "./dist/cjs/log.js" + "import": { + "types": "./dist/log.d.ts", + "default": "./dist/log.js" + }, + "require": { + "types": "./dist/cjs/log.d.ts", + "default": "./dist/cjs/log.js" + } }, "./dist/cjs/log.js" ] diff --git a/packages/wdio-electron-service/src/cjs/session.ts b/packages/wdio-electron-service/src/cjs/session.ts index 7bf7ebce..1bca6de2 100644 --- a/packages/wdio-electron-service/src/cjs/session.ts +++ b/packages/wdio-electron-service/src/cjs/session.ts @@ -1,4 +1,5 @@ import { remote } from 'webdriverio'; +// TODO: Fix CJS import of `log` from '@wdio/electron-utils/log' // import log from '@wdio/electron-utils/log'; import type { Capabilities, Options } from '@wdio/types'; import type { ElectronServiceCapabilities, ElectronServiceGlobalOptions } from '@wdio/electron-types'; diff --git a/packages/wdio-electron-service/src/session.ts b/packages/wdio-electron-service/src/session.ts index cce1b3b1..cc6cc921 100644 --- a/packages/wdio-electron-service/src/session.ts +++ b/packages/wdio-electron-service/src/session.ts @@ -1,5 +1,5 @@ import { remote } from 'webdriverio'; -// import log from '@wdio/electron-utils/log'; +import log from '@wdio/electron-utils/log'; import type { Options, Capabilities } from '@wdio/types'; import type { ElectronServiceCapabilities, ElectronServiceGlobalOptions } from '@wdio/electron-types'; @@ -13,7 +13,7 @@ export async function init(capabilities: ElectronServiceCapabilities, globalOpti await launcher.onPrepare(testRunnerOpts, capabilities); - // log.debug('Session capabilities:', capabilities); + log.debug('Session capabilities:', capabilities); // initialise session const browser = await remote({ From db1fc728f8afe25a071b527259f8099391b8e55b Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 17:42:37 +0000 Subject: [PATCH 38/41] refactor: move e2e specs into `test` --- .prettierignore | 2 +- e2e/.gitignore | 2 +- e2e/package.json | 4 ++-- e2e/{ => test}/api.spec.ts | 0 e2e/{ => test}/application.spec.ts | 0 e2e/{ => test}/dom.spec.ts | 0 e2e/{ => test}/interaction.spec.ts | 0 e2e/{ => test}/multiremote/api.spec.ts | 0 e2e/{ => test}/standalone/api.no-binary.spec.ts | 0 e2e/{ => test}/standalone/api.spec.ts | 0 e2e/wdio.conf.js | 2 +- e2e/wdio.conf.ts | 2 +- e2e/wdio.multiremote.conf.ts | 2 +- e2e/wdio.no-binary.conf.js | 2 +- e2e/wdio.no-binary.conf.ts | 2 +- e2e/wdio.no-binary.multiremote.conf.ts | 2 +- e2e/wdio.no-binary.standalone.ts | 2 +- e2e/wdio.standalone.conf.ts | 2 +- eslint.config.js | 2 +- 19 files changed, 13 insertions(+), 13 deletions(-) rename e2e/{ => test}/api.spec.ts (100%) rename e2e/{ => test}/application.spec.ts (100%) rename e2e/{ => test}/dom.spec.ts (100%) rename e2e/{ => test}/interaction.spec.ts (100%) rename e2e/{ => test}/multiremote/api.spec.ts (100%) rename e2e/{ => test}/standalone/api.no-binary.spec.ts (100%) rename e2e/{ => test}/standalone/api.spec.ts (100%) diff --git a/.prettierignore b/.prettierignore index c3256b57..e4467d3f 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,2 +1,2 @@ # JS Test Files (these are transpiled from TS) -e2e/js/*.spec.js +e2e/test/js/*.spec.js diff --git a/e2e/.gitignore b/e2e/.gitignore index 5db70c4e..2139d041 100644 --- a/e2e/.gitignore +++ b/e2e/.gitignore @@ -1,5 +1,5 @@ # JS Test Files (these are transpiled from TS) -js +test/js # Logs wdio-logs* diff --git a/e2e/package.json b/e2e/package.json index 1128897c..9445d2c8 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -5,8 +5,8 @@ "private": "true", "scripts": { "ci": "pnpm i && pnpm test", - "clean": "pnpm dlx shx rm -rf ./js ./node_modules pnpm-lock.yaml ./wdio-logs* ./out", - "init-e2es": "pnpm dlx shx mkdir -p ./js && rollup -c rollup.config.js", + "clean": "pnpm dlx shx rm -rf ./test/js ./node_modules pnpm-lock.yaml ./wdio-logs* ./out", + "init-e2es": "pnpm dlx shx mkdir -p ./test/js && rollup -c rollup.config.js", "logs": "pnpm dlx shx cat ./wdio-logs*/*.log", "test:e2e:forge-cjs": "cross-env EXAMPLE_DIR=forge-cjs pnpm run exec", "test:e2e:forge-esm": "cross-env EXAMPLE_DIR=forge-esm pnpm run exec", diff --git a/e2e/api.spec.ts b/e2e/test/api.spec.ts similarity index 100% rename from e2e/api.spec.ts rename to e2e/test/api.spec.ts diff --git a/e2e/application.spec.ts b/e2e/test/application.spec.ts similarity index 100% rename from e2e/application.spec.ts rename to e2e/test/application.spec.ts diff --git a/e2e/dom.spec.ts b/e2e/test/dom.spec.ts similarity index 100% rename from e2e/dom.spec.ts rename to e2e/test/dom.spec.ts diff --git a/e2e/interaction.spec.ts b/e2e/test/interaction.spec.ts similarity index 100% rename from e2e/interaction.spec.ts rename to e2e/test/interaction.spec.ts diff --git a/e2e/multiremote/api.spec.ts b/e2e/test/multiremote/api.spec.ts similarity index 100% rename from e2e/multiremote/api.spec.ts rename to e2e/test/multiremote/api.spec.ts diff --git a/e2e/standalone/api.no-binary.spec.ts b/e2e/test/standalone/api.no-binary.spec.ts similarity index 100% rename from e2e/standalone/api.no-binary.spec.ts rename to e2e/test/standalone/api.no-binary.spec.ts diff --git a/e2e/standalone/api.spec.ts b/e2e/test/standalone/api.spec.ts similarity index 100% rename from e2e/standalone/api.spec.ts rename to e2e/test/standalone/api.spec.ts diff --git a/e2e/wdio.conf.js b/e2e/wdio.conf.js index fecddfd4..bcf4f6d1 100644 --- a/e2e/wdio.conf.js +++ b/e2e/wdio.conf.js @@ -33,7 +33,7 @@ export const config = { logLevel: 'debug', runner: 'local', outputDir: `wdio-logs-${exampleDir}`, - specs: ['./js/*.spec.js'], + specs: ['./test/js/*.spec.js'], framework: 'mocha', mochaOpts: { ui: 'bdd', diff --git a/e2e/wdio.conf.ts b/e2e/wdio.conf.ts index 4858e75a..3382b962 100644 --- a/e2e/wdio.conf.ts +++ b/e2e/wdio.conf.ts @@ -36,7 +36,7 @@ export const config: WdioElectronConfig = { logLevel: 'debug', runner: 'local', outputDir: `wdio-logs-${exampleDir}`, - specs: ['./*.spec.ts'], + specs: ['./test/*.spec.ts'], tsConfigPath: path.join(__dirname, 'tsconfig.json'), framework: 'mocha', mochaOpts: { diff --git a/e2e/wdio.multiremote.conf.ts b/e2e/wdio.multiremote.conf.ts index bca98aab..810439fb 100644 --- a/e2e/wdio.multiremote.conf.ts +++ b/e2e/wdio.multiremote.conf.ts @@ -8,7 +8,7 @@ const baseServiceOptions = baseConfig.capabilities[0]['wdio:electronServiceOptio export const config: WdioElectronConfig = { ...baseConfig, outputDir: `wdio-logs-multiremote-${exampleDir}`, - specs: ['./multiremote/*.spec.ts'], + specs: ['./test/multiremote/*.spec.ts'], capabilities: { browserA: { capabilities: { diff --git a/e2e/wdio.no-binary.conf.js b/e2e/wdio.no-binary.conf.js index f39b8717..3e619e34 100644 --- a/e2e/wdio.no-binary.conf.js +++ b/e2e/wdio.no-binary.conf.js @@ -33,7 +33,7 @@ export const config = { logLevel: 'debug', runner: 'local', outputDir: `wdio-logs-${exampleDir}`, - specs: ['./js/*.spec.js'], + specs: ['./test/js/*.spec.js'], framework: 'mocha', mochaOpts: { ui: 'bdd', diff --git a/e2e/wdio.no-binary.conf.ts b/e2e/wdio.no-binary.conf.ts index b9182d34..56e6cd01 100644 --- a/e2e/wdio.no-binary.conf.ts +++ b/e2e/wdio.no-binary.conf.ts @@ -36,7 +36,7 @@ export const config: WdioElectronConfig = { logLevel: 'debug', runner: 'local', outputDir: `wdio-logs-${exampleDir}`, - specs: ['./*.spec.ts'], + specs: ['./test/*.spec.ts'], tsConfigPath: path.join(__dirname, 'tsconfig.json'), framework: 'mocha', mochaOpts: { diff --git a/e2e/wdio.no-binary.multiremote.conf.ts b/e2e/wdio.no-binary.multiremote.conf.ts index 942106bb..a08db50a 100644 --- a/e2e/wdio.no-binary.multiremote.conf.ts +++ b/e2e/wdio.no-binary.multiremote.conf.ts @@ -8,7 +8,7 @@ const baseServiceOptions = baseConfig.capabilities[0]['wdio:electronServiceOptio export const config: WdioElectronConfig = { ...baseConfig, outputDir: `wdio-logs-multiremote-${exampleDir}`, - specs: ['./multiremote/*.spec.ts'], + specs: ['./test/multiremote/*.spec.ts'], capabilities: { browserA: { capabilities: { diff --git a/e2e/wdio.no-binary.standalone.ts b/e2e/wdio.no-binary.standalone.ts index 3d6aa3e7..ecff3026 100644 --- a/e2e/wdio.no-binary.standalone.ts +++ b/e2e/wdio.no-binary.standalone.ts @@ -5,5 +5,5 @@ import { config as baseConfig } from './wdio.no-binary.conf.js'; export const config: WdioElectronConfig = { ...baseConfig, outputDir: 'wdio-standalone-logs', - specs: ['./standalone/*.spec.ts'], + specs: ['./test/standalone/*.spec.ts'], }; diff --git a/e2e/wdio.standalone.conf.ts b/e2e/wdio.standalone.conf.ts index d129552b..9d011824 100644 --- a/e2e/wdio.standalone.conf.ts +++ b/e2e/wdio.standalone.conf.ts @@ -5,5 +5,5 @@ import { config as baseConfig } from './wdio.conf.js'; export const config: WdioElectronConfig = { ...baseConfig, outputDir: 'wdio-standalone-logs', - specs: ['./standalone/*.spec.ts'], + specs: ['./test/standalone/*.spec.ts'], }; diff --git a/eslint.config.js b/eslint.config.js index 750be0fb..72005758 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -10,7 +10,7 @@ import importX from 'eslint-plugin-import-x'; export default [ // Ignored dirs { - ignores: ['**/dist/**/*', '@types/**/*', 'e2e/js/*'], + ignores: ['**/dist/**/*', '@types/**/*', 'e2e/test/js/*'], }, // All files { From fa3cae4e7043e48b7046f75e861be0e4ff684398 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 18:45:08 +0000 Subject: [PATCH 39/41] fix: update rollup / ts config --- e2e/rollup.config.js | 16 ++++++++-------- e2e/tsconfig.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/e2e/rollup.config.js b/e2e/rollup.config.js index b7974b8e..83abd06b 100644 --- a/e2e/rollup.config.js +++ b/e2e/rollup.config.js @@ -6,36 +6,36 @@ const tsPlugin = rollupTS({ tsconfig: 'tsconfig.json', module: 'nodeNext' }); export default defineConfig([ { - input: 'api.spec.ts', + input: 'test/api.spec.ts', output: { - dir: 'js', + dir: 'test/js', format: 'esm', }, plugins: [tsPlugin], external: ['@wdio/globals', '@vitest/spy', 'wdio-electron-service'], }, { - input: 'application.spec.ts', + input: 'test/application.spec.ts', output: { - dir: 'js', + dir: 'test/js', format: 'esm', }, plugins: [tsPlugin], external: ['@wdio/globals', 'wdio-electron-service'], }, { - input: 'dom.spec.ts', + input: 'test/dom.spec.ts', output: { - dir: 'js', + dir: 'test/js', format: 'esm', }, plugins: [tsPlugin], external: ['@testing-library/webdriverio', '@wdio/globals', 'wdio-electron-service'], }, { - input: 'interaction.spec.ts', + input: 'test/interaction.spec.ts', output: { - dir: 'js', + dir: 'test/js', format: 'esm', }, plugins: [tsPlugin], diff --git a/e2e/tsconfig.json b/e2e/tsconfig.json index c85c2eb9..ea85c437 100755 --- a/e2e/tsconfig.json +++ b/e2e/tsconfig.json @@ -9,6 +9,6 @@ "types": ["node", "@wdio/globals/types", "mocha"], "typeRoots": ["./node_modules", "./node_modules/@types"] }, - "include": ["./**/*.spec.ts"], + "include": ["./test/**/*.spec.ts"], "exclude": [] } From 3010d39d8184b11bc3d4d0eb0cd5c1119c3bb5dc Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 19:00:52 +0000 Subject: [PATCH 40/41] chore: fix paths --- e2e/package.json | 4 ++-- e2e/test/standalone/api.no-binary.spec.ts | 4 ++-- e2e/test/standalone/api.spec.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/e2e/package.json b/e2e/package.json index 9445d2c8..2449fd18 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -23,11 +23,11 @@ "exec-no-binary:js": "xvfb-maybe wdio run ./wdio.no-binary.conf.js", "exec-no-binary:main": "xvfb-maybe wdio run ./wdio.no-binary.conf.ts", "exec-no-binary:multiremote": "xvfb-maybe wdio run ./wdio.no-binary.multiremote.conf.ts", - "exec-no-binary:standalone": "xvfb-maybe tsx ./standalone/api.no-binary.spec.ts", + "exec-no-binary:standalone": "xvfb-maybe tsx ./test/standalone/api.no-binary.spec.ts", "exec:js": "xvfb-maybe wdio run ./wdio.conf.js", "exec:main": "xvfb-maybe wdio run ./wdio.conf.ts", "exec:multiremote": "xvfb-maybe wdio run ./wdio.multiremote.conf.ts", - "exec:standalone": "xvfb-maybe tsx ./standalone/api.spec.ts", + "exec:standalone": "xvfb-maybe tsx ./test/standalone/api.spec.ts", "exec:standalone:local": "cd .. && pnpm build && cd - && shx rm -rf ./node_modules && pnpm i && pnpm test:standalone" }, "dependencies": { diff --git a/e2e/test/standalone/api.no-binary.spec.ts b/e2e/test/standalone/api.no-binary.spec.ts index e7c80e0b..dcf1956f 100644 --- a/e2e/test/standalone/api.no-binary.spec.ts +++ b/e2e/test/standalone/api.no-binary.spec.ts @@ -12,10 +12,10 @@ process.env.TEST = 'true'; const exampleDir = process.env.EXAMPLE_DIR || 'forge-esm'; const __dirname = path.dirname(url.fileURLToPath(import.meta.url)); -const packageJsonPath = path.join(__dirname, '..', '..', 'apps', exampleDir, 'package.json'); +const packageJsonPath = path.join(__dirname, '..', '..', '..', 'apps', exampleDir, 'package.json'); const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, { encoding: 'utf-8' })) as NormalizedPackageJson; const pkg = { packageJson, path: packageJsonPath }; -const appEntryPoint = path.join(__dirname, '..', '..', 'apps', exampleDir, 'dist', 'main.bundle.js'); +const appEntryPoint = path.join(__dirname, '..', '..', '..', 'apps', exampleDir, 'dist', 'main.bundle.js'); const electronVersion = getElectronVersion(pkg); const browser = await startWdioSession([ diff --git a/e2e/test/standalone/api.spec.ts b/e2e/test/standalone/api.spec.ts index 1a708f35..c7bc1cf7 100644 --- a/e2e/test/standalone/api.spec.ts +++ b/e2e/test/standalone/api.spec.ts @@ -12,7 +12,7 @@ process.env.TEST = 'true'; const exampleDir = process.env.EXAMPLE_DIR || 'forge-esm'; const __dirname = path.dirname(url.fileURLToPath(import.meta.url)); -const packageJsonPath = path.join(__dirname, '..', '..', 'apps', exampleDir, 'package.json'); +const packageJsonPath = path.join(__dirname, '..', '..', '..', 'apps', exampleDir, 'package.json'); const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, { encoding: 'utf-8' })) as NormalizedPackageJson; const pkg = { packageJson, path: packageJsonPath }; const electronVersion = getElectronVersion(pkg); From f68a0e6d48bee0c8ebcbbff3c0ade0a5ee6a7e02 Mon Sep 17 00:00:00 2001 From: goosewobbler Date: Wed, 11 Dec 2024 19:05:38 +0000 Subject: [PATCH 41/41] fix: revert to Object.assign --- packages/wdio-electron-service/src/service.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/wdio-electron-service/src/service.ts b/packages/wdio-electron-service/src/service.ts index 459fb91b..69c84cb0 100644 --- a/packages/wdio-electron-service/src/service.ts +++ b/packages/wdio-electron-service/src/service.ts @@ -76,7 +76,11 @@ export default class ElectronWorkerService implements Services.ServiceInstance { instance: WebdriverIO.Browser | WebdriverIO.MultiRemoteBrowser, ): Promise { const browser = instance as WebdriverIO.Browser; - const { clearMocks, resetMocks, restoreMocks } = this.#globalOptions || capabilities[CUSTOM_CAPABILITY_NAME]; + const { clearMocks, resetMocks, restoreMocks } = Object.assign( + {}, + this.#globalOptions, + capabilities[CUSTOM_CAPABILITY_NAME], + ); this.#clearMocks = clearMocks ?? false; this.#resetMocks = resetMocks ?? false;