Browse Source

build: add import/order eslint rule (#44107)

build: add import/order eslint rule (#44085)

* build: add import/order eslint rule

* chore: run lint:js --fix
Samuel Attard 6 months ago
parent
commit
27c38bdead
100 changed files with 342 additions and 180 deletions
  1. 34 1
      .eslintrc.json
  2. 4 3
      build/webpack/webpack.config.base.js
  3. 1 0
      default_app/default_app.ts
  4. 1 0
      default_app/main.ts
  5. 2 2
      lib/browser/api/app.ts
  6. 3 1
      lib/browser/api/auto-updater/auto-updater-win.ts
  7. 1 1
      lib/browser/api/auto-updater/squirrel-update-win.ts
  8. 3 2
      lib/browser/api/base-window.ts
  9. 1 0
      lib/browser/api/browser-window.ts
  10. 2 1
      lib/browser/api/crash-reporter.ts
  11. 1 0
      lib/browser/api/desktop-capturer.ts
  12. 1 0
      lib/browser/api/dialog.ts
  13. 2 2
      lib/browser/api/exports/electron.ts
  14. 1 0
      lib/browser/api/menu-item.ts
  15. 2 1
      lib/browser/api/menu.ts
  16. 2 0
      lib/browser/api/message-channel.ts
  17. 3 1
      lib/browser/api/net-fetch.ts
  18. 2 1
      lib/browser/api/net.ts
  19. 1 0
      lib/browser/api/protocol.ts
  20. 2 0
      lib/browser/api/session.ts
  21. 1 0
      lib/browser/api/share-menu.ts
  22. 1 0
      lib/browser/api/system-preferences.ts
  23. 4 2
      lib/browser/api/utility-process.ts
  24. 1 0
      lib/browser/api/view.ts
  25. 9 8
      lib/browser/api/web-contents.ts
  26. 1 1
      lib/browser/api/web-frame-main.ts
  27. 1 1
      lib/browser/default-menu.ts
  28. 5 4
      lib/browser/devtools.ts
  29. 3 2
      lib/browser/guest-view-manager.ts
  30. 2 1
      lib/browser/guest-window-manager.ts
  31. 2 1
      lib/browser/init.ts
  32. 2 1
      lib/browser/ipc-main-impl.ts
  33. 4 2
      lib/browser/rpc-server.ts
  34. 3 2
      lib/common/api/net-client-request.ts
  35. 2 2
      lib/common/init.ts
  36. 2 0
      lib/node/init.ts
  37. 1 1
      lib/renderer/api/exports/electron.ts
  38. 5 4
      lib/renderer/common-init.ts
  39. 3 3
      lib/renderer/init.ts
  40. 2 1
      lib/renderer/inspector.ts
  41. 1 1
      lib/renderer/security-warnings.ts
  42. 3 2
      lib/renderer/web-frame-init.ts
  43. 1 1
      lib/renderer/web-view/guest-view-internal.ts
  44. 1 1
      lib/renderer/web-view/web-view-attributes.ts
  45. 1 1
      lib/renderer/web-view/web-view-element.ts
  46. 2 2
      lib/renderer/web-view/web-view-impl.ts
  47. 2 3
      lib/renderer/web-view/web-view-init.ts
  48. 2 2
      lib/renderer/window-setup.ts
  49. 4 4
      lib/sandboxed_renderer/init.ts
  50. 3 2
      lib/utility/api/net.ts
  51. 2 2
      lib/utility/init.ts
  52. 3 1
      lib/utility/parent-port.ts
  53. 2 2
      npm/cli.js
  54. 5 3
      npm/install.js
  55. 1 0
      script/create-api-json.js
  56. 4 1
      script/doc-only-change.js
  57. 2 1
      script/generate-version-json.js
  58. 1 0
      script/gn-asar-hash.js
  59. 1 0
      script/gn-asar.js
  60. 4 1
      script/gn-check.js
  61. 4 1
      script/lib/azput.js
  62. 1 0
      script/lib/utils.js
  63. 6 4
      script/lint.js
  64. 3 1
      script/nan-spec-runner.js
  65. 7 4
      script/node-spec-runner.js
  66. 5 2
      script/prepare-appveyor.js
  67. 1 0
      script/push-patch.js
  68. 1 0
      script/release/bin/cleanup-release.ts
  69. 4 4
      script/release/bin/publish-to-npm.ts
  70. 1 0
      script/release/find-github-release.ts
  71. 1 0
      script/release/get-asset.ts
  72. 1 0
      script/release/get-url-hash.ts
  73. 5 5
      script/release/notes/index.ts
  74. 3 3
      script/release/notes/notes.ts
  75. 4 3
      script/release/prepare-release.ts
  76. 5 4
      script/release/release.ts
  77. 1 0
      script/release/run-release-ci-jobs.ts
  78. 2 0
      script/release/uploaders/upload-to-github.ts
  79. 4 3
      script/release/version-bumper.ts
  80. 1 1
      script/release/version-utils.ts
  81. 5 4
      script/run-clang-tidy.ts
  82. 6 2
      script/spec-runner.js
  83. 2 1
      script/split-tests.js
  84. 2 0
      script/start.js
  85. 11 8
      spec/api-app-spec.ts
  86. 4 1
      spec/api-auto-updater-spec.ts
  87. 10 7
      spec/api-autoupdater-darwin-spec.ts
  88. 7 4
      spec/api-browser-view-spec.ts
  89. 10 8
      spec/api-browser-window-spec.ts
  90. 5 2
      spec/api-clipboard-spec.ts
  91. 4 1
      spec/api-content-tracing-spec.ts
  92. 5 3
      spec/api-context-bridge-spec.ts
  93. 9 6
      spec/api-crash-reporter-spec.ts
  94. 6 3
      spec/api-debugger-spec.ts
  95. 4 2
      spec/api-desktop-capturer-spec.ts
  96. 6 3
      spec/api-dialog-spec.ts
  97. 3 1
      spec/api-global-shortcut-spec.ts
  98. 3 1
      spec/api-in-app-purchase-spec.ts
  99. 7 4
      spec/api-ipc-main-spec.ts
  100. 5 2
      spec/api-ipc-renderer-spec.ts

+ 34 - 1
.eslintrc.json

@@ -19,7 +19,40 @@
     "prefer-const": ["error", {
       "destructuring": "all"
     }],
-    "n/no-callback-literal": "off"
+    "n/no-callback-literal": "off",
+    "import/newline-after-import": "error",
+    "import/order": ["error", {
+      "alphabetize": {
+        "order": "asc"
+      },
+      "newlines-between": "always",
+      "pathGroups": [
+        {
+          "pattern": "@electron/internal/**",
+          "group": "external",
+          "position": "before"
+        },
+        {
+          "pattern": "@electron/**",
+          "group": "external",
+          "position": "before"
+        },
+        {
+          "pattern": "{electron,electron/**}",
+          "group": "external",
+          "position": "before"
+        }
+      ],
+      "pathGroupsExcludedImportTypes": [],
+      "distinctGroup": true,
+      "groups": [
+        "external",
+        "builtin",
+        ["sibling", "parent"],
+        "index",
+        "type"
+      ]
+    }]
   },
   "parserOptions": {
     "ecmaVersion": 6,

+ 4 - 3
build/webpack/webpack.config.base.js

@@ -1,9 +1,10 @@
-const fs = require('node:fs');
-const path = require('node:path');
-const webpack = require('webpack');
 const TerserPlugin = require('terser-webpack-plugin');
+const webpack = require('webpack');
 const WrapperPlugin = require('wrapper-webpack-plugin');
 
+const fs = require('node:fs');
+const path = require('node:path');
+
 const electronRoot = path.resolve(__dirname, '../..');
 
 class AccessDependenciesPlugin {

+ 1 - 0
default_app/default_app.ts

@@ -1,5 +1,6 @@
 import { shell } from 'electron/common';
 import { app, dialog, BrowserWindow, ipcMain } from 'electron/main';
+
 import * as path from 'node:path';
 import * as url from 'node:url';
 

+ 1 - 0
default_app/main.ts

@@ -4,6 +4,7 @@ import * as fs from 'node:fs';
 import { Module } from 'node:module';
 import * as path from 'node:path';
 import * as url from 'node:url';
+
 const { app, dialog } = electron;
 
 type DefaultAppOptions = {

+ 2 - 2
lib/browser/api/app.ts

@@ -1,7 +1,7 @@
-import * as fs from 'fs';
-
 import { Menu } from 'electron/main';
 
+import * as fs from 'fs';
+
 const bindings = process._linkedBinding('electron_browser_app');
 const commandLine = process._linkedBinding('electron_common_command_line');
 const { app } = bindings;

+ 3 - 1
lib/browser/api/auto-updater/auto-updater-win.ts

@@ -1,6 +1,8 @@
+import * as squirrelUpdate from '@electron/internal/browser/api/auto-updater/squirrel-update-win';
+
 import { app } from 'electron/main';
+
 import { EventEmitter } from 'events';
-import * as squirrelUpdate from '@electron/internal/browser/api/auto-updater/squirrel-update-win';
 
 class AutoUpdater extends EventEmitter implements Electron.AutoUpdater {
   updateAvailable: boolean = false;

+ 1 - 1
lib/browser/api/auto-updater/squirrel-update-win.ts

@@ -1,6 +1,6 @@
+import { spawn, ChildProcessWithoutNullStreams } from 'child_process';
 import * as fs from 'fs';
 import * as path from 'path';
-import { spawn, ChildProcessWithoutNullStreams } from 'child_process';
 
 // i.e. my-app/app-0.1.13/
 const appFolder = path.dirname(process.execPath);

+ 3 - 2
lib/browser/api/base-window.ts

@@ -1,6 +1,7 @@
-import { EventEmitter } from 'events';
-import type { BaseWindow as TLWT } from 'electron/main';
 import { TouchBar } from 'electron/main';
+import type { BaseWindow as TLWT } from 'electron/main';
+
+import { EventEmitter } from 'events';
 
 const { BaseWindow } = process._linkedBinding('electron_browser_base_window') as { BaseWindow: typeof TLWT };
 

+ 1 - 0
lib/browser/api/browser-window.ts

@@ -1,5 +1,6 @@
 import { BaseWindow, WebContents, BrowserView } from 'electron/main';
 import type { BrowserWindow as BWT } from 'electron/main';
+
 const { BrowserWindow } = process._linkedBinding('electron_browser_window') as { BrowserWindow: typeof BWT };
 
 Object.setPrototypeOf(BrowserWindow.prototype, BaseWindow.prototype);

+ 2 - 1
lib/browser/api/crash-reporter.ts

@@ -1,6 +1,7 @@
-import { app } from 'electron/main';
 import * as deprecate from '@electron/internal/common/deprecate';
 
+import { app } from 'electron/main';
+
 const binding = process._linkedBinding('electron_browser_crash_reporter');
 
 class CrashReporter implements Electron.CrashReporter {

+ 1 - 0
lib/browser/api/desktop-capturer.ts

@@ -1,4 +1,5 @@
 import { BrowserWindow } from 'electron/main';
+
 const { createDesktopCapturer, isDisplayMediaSystemPickerAvailable } = process._linkedBinding('electron_browser_desktop_capturer');
 
 const deepEqual = (a: ElectronInternal.GetSourcesOptions, b: ElectronInternal.GetSourcesOptions) => JSON.stringify(a) === JSON.stringify(b);

+ 1 - 0
lib/browser/api/dialog.ts

@@ -1,5 +1,6 @@
 import { app, BaseWindow } from 'electron/main';
 import type { OpenDialogOptions, OpenDialogReturnValue, MessageBoxOptions, SaveDialogOptions, SaveDialogReturnValue, MessageBoxReturnValue, CertificateTrustDialogOptions } from 'electron/main';
+
 const dialogBinding = process._linkedBinding('electron_browser_dialog');
 
 enum SaveFileDialogProperties {

+ 2 - 2
lib/browser/api/exports/electron.ts

@@ -1,6 +1,6 @@
-import { defineProperties } from '@electron/internal/common/define-properties';
-import { commonModuleList } from '@electron/internal/common/api/module-list';
 import { browserModuleList } from '@electron/internal/browser/api/module-list';
+import { commonModuleList } from '@electron/internal/common/api/module-list';
+import { defineProperties } from '@electron/internal/common/define-properties';
 
 module.exports = {};
 

+ 1 - 0
lib/browser/api/menu-item.ts

@@ -1,4 +1,5 @@
 import * as roles from '@electron/internal/browser/api/menu-item-roles';
+
 import { Menu, BaseWindow, WebContents, KeyboardEvent } from 'electron/main';
 
 let nextCommandId = 0;

+ 2 - 1
lib/browser/api/menu.ts

@@ -1,7 +1,8 @@
-import { BaseWindow, MenuItem, webContents, Menu as MenuType, MenuItemConstructorOptions } from 'electron/main';
 import { sortMenuItems } from '@electron/internal/browser/api/menu-utils';
 import { setApplicationMenuWasSet } from '@electron/internal/browser/default-menu';
 
+import { BaseWindow, MenuItem, webContents, Menu as MenuType, MenuItemConstructorOptions } from 'electron/main';
+
 const bindings = process._linkedBinding('electron_browser_menu');
 
 const { Menu } = bindings as { Menu: typeof MenuType };

+ 2 - 0
lib/browser/api/message-channel.ts

@@ -1,5 +1,7 @@
 import { MessagePortMain } from '@electron/internal/browser/message-port-main';
+
 import { EventEmitter } from 'events';
+
 const { createPair } = process._linkedBinding('electron_browser_message_port');
 
 export default class MessageChannelMain extends EventEmitter implements Electron.MessageChannelMain {

+ 3 - 1
lib/browser/api/net-fetch.ts

@@ -1,6 +1,8 @@
+import { allowAnyProtocol } from '@electron/internal/common/api/net-client-request';
+
 import { ClientRequestConstructorOptions, ClientRequest, IncomingMessage, Session as SessionT } from 'electron/main';
+
 import { Readable, Writable, isReadable } from 'stream';
-import { allowAnyProtocol } from '@electron/internal/common/api/net-client-request';
 
 function createDeferredPromise<T, E extends Error = Error> (): { promise: Promise<T>; resolve: (x: T) => void; reject: (e: E) => void; } {
   let res: (x: T) => void;

+ 2 - 1
lib/browser/api/net.ts

@@ -1,6 +1,7 @@
+import { ClientRequest } from '@electron/internal/common/api/net-client-request';
+
 import { app, IncomingMessage, session } from 'electron/main';
 import type { ClientRequestConstructorOptions } from 'electron/main';
-import { ClientRequest } from '@electron/internal/common/api/net-client-request';
 
 const { isOnline } = process._linkedBinding('electron_common_net');
 

+ 1 - 0
lib/browser/api/protocol.ts

@@ -1,4 +1,5 @@
 import { ProtocolRequest, session } from 'electron/main';
+
 import { createReadStream } from 'fs';
 import { Readable } from 'stream';
 import { ReadableStream } from 'stream/web';

+ 2 - 0
lib/browser/api/session.ts

@@ -1,5 +1,7 @@
 import { fetchWithSession } from '@electron/internal/browser/api/net-fetch';
+
 import { net } from 'electron/main';
+
 const { fromPartition, fromPath, Session } = process._linkedBinding('electron_browser_session');
 const { isDisplayMediaSystemPickerAvailable } = process._linkedBinding('electron_browser_desktop_capturer');
 

+ 1 - 0
lib/browser/api/share-menu.ts

@@ -1,4 +1,5 @@
 import { BrowserWindow, Menu, SharingItem, PopupOptions } from 'electron/main';
+
 import { EventEmitter } from 'events';
 
 class ShareMenu extends EventEmitter implements Electron.ShareMenu {

+ 1 - 0
lib/browser/api/system-preferences.ts

@@ -1,4 +1,5 @@
 import * as deprecate from '@electron/internal/common/deprecate';
+
 const { systemPreferences } = process._linkedBinding('electron_browser_system_preferences');
 
 if ('getEffectiveAppearance' in systemPreferences) {

+ 4 - 2
lib/browser/api/utility-process.ts

@@ -1,7 +1,9 @@
+import { MessagePortMain } from '@electron/internal/browser/message-port-main';
+
 import { EventEmitter } from 'events';
-import { Duplex, PassThrough } from 'stream';
 import { Socket } from 'net';
-import { MessagePortMain } from '@electron/internal/browser/message-port-main';
+import { Duplex, PassThrough } from 'stream';
+
 const { _fork } = process._linkedBinding('electron_browser_utility_process');
 
 class ForkUtilityProcess extends EventEmitter implements Electron.UtilityProcess {

+ 1 - 0
lib/browser/api/view.ts

@@ -1,4 +1,5 @@
 import { EventEmitter } from 'events';
+
 const { View } = process._linkedBinding('electron_browser_view');
 
 Object.setPrototypeOf((View as any).prototype, EventEmitter.prototype);

+ 9 - 8
lib/browser/api/web-contents.ts

@@ -1,16 +1,17 @@
-import { app, ipcMain, session, webFrameMain, dialog } from 'electron/main';
-import type { BrowserWindowConstructorOptions, MessageBoxOptions } from 'electron/main';
-
-import * as url from 'url';
-import * as path from 'path';
 import { openGuestWindow, makeWebPreferences, parseContentTypeFormat } from '@electron/internal/browser/guest-window-manager';
-import { parseFeatures } from '@electron/internal/browser/parse-features-string';
+import { IpcMainImpl } from '@electron/internal/browser/ipc-main-impl';
 import { ipcMainInternal } from '@electron/internal/browser/ipc-main-internal';
 import * as ipcMainUtils from '@electron/internal/browser/ipc-main-internal-utils';
 import { MessagePortMain } from '@electron/internal/browser/message-port-main';
-import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
-import { IpcMainImpl } from '@electron/internal/browser/ipc-main-impl';
+import { parseFeatures } from '@electron/internal/browser/parse-features-string';
 import * as deprecate from '@electron/internal/common/deprecate';
+import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
+
+import { app, ipcMain, session, webFrameMain, dialog } from 'electron/main';
+import type { BrowserWindowConstructorOptions, MessageBoxOptions } from 'electron/main';
+
+import * as path from 'path';
+import * as url from 'url';
 
 // session is not used here, the purpose is to make sure session is initialized
 // before the webContents module.

+ 1 - 1
lib/browser/api/web-frame-main.ts

@@ -1,5 +1,5 @@
-import { MessagePortMain } from '@electron/internal/browser/message-port-main';
 import { IpcMainImpl } from '@electron/internal/browser/ipc-main-impl';
+import { MessagePortMain } from '@electron/internal/browser/message-port-main';
 
 const { WebFrameMain, fromId } = process._linkedBinding('electron_browser_web_frame_main');
 

+ 1 - 1
lib/browser/default-menu.ts

@@ -1,5 +1,5 @@
-import { app, Menu } from 'electron/main';
 import { shell } from 'electron/common';
+import { app, Menu } from 'electron/main';
 
 const isMac = process.platform === 'darwin';
 

+ 5 - 4
lib/browser/devtools.ts

@@ -1,9 +1,10 @@
-import { dialog, Menu } from 'electron/main';
-import * as fs from 'fs';
-
+import { IPC_MESSAGES } from '@electron/internal//common/ipc-messages';
 import { ipcMainInternal } from '@electron/internal/browser/ipc-main-internal';
 import * as ipcMainUtils from '@electron/internal/browser/ipc-main-internal-utils';
-import { IPC_MESSAGES } from '@electron/internal//common/ipc-messages';
+
+import { dialog, Menu } from 'electron/main';
+
+import * as fs from 'fs';
 
 const convertToMenuTemplate = function (items: ContextMenuItem[], handler: (id: number) => void) {
   return items.map(function (item) {

+ 3 - 2
lib/browser/guest-view-manager.ts

@@ -1,10 +1,11 @@
-import { webContents } from 'electron/main';
 import { ipcMainInternal } from '@electron/internal/browser/ipc-main-internal';
 import * as ipcMainUtils from '@electron/internal/browser/ipc-main-internal-utils';
 import { parseWebViewWebPreferences } from '@electron/internal/browser/parse-features-string';
-import { syncMethods, asyncMethods, properties, navigationHistorySyncMethods } from '@electron/internal/common/web-view-methods';
 import { webViewEvents } from '@electron/internal/browser/web-view-events';
 import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
+import { syncMethods, asyncMethods, properties, navigationHistorySyncMethods } from '@electron/internal/common/web-view-methods';
+
+import { webContents } from 'electron/main';
 
 interface GuestInstance {
   elementInstanceId: number;

+ 2 - 1
lib/browser/guest-window-manager.ts

@@ -5,9 +5,10 @@
  * out-of-process (cross-origin) are created here. "Embedder" roughly means
  * "parent."
  */
+import { parseFeatures } from '@electron/internal/browser/parse-features-string';
+
 import { BrowserWindow } from 'electron/main';
 import type { BrowserWindowConstructorOptions, Referrer, WebContents, LoadURLOptions } from 'electron/main';
-import { parseFeatures } from '@electron/internal/browser/parse-features-string';
 
 type PostData = LoadURLOptions['postData']
 export type WindowOpenArgs = {

+ 2 - 1
lib/browser/init.ts

@@ -1,8 +1,9 @@
+import type * as defaultMenuModule from '@electron/internal/browser/default-menu';
+
 import { EventEmitter } from 'events';
 import * as fs from 'fs';
 import * as path from 'path';
 
-import type * as defaultMenuModule from '@electron/internal/browser/default-menu';
 import type * as url from 'url';
 import type * as v8 from 'v8';
 

+ 2 - 1
lib/browser/ipc-main-impl.ts

@@ -1,6 +1,7 @@
-import { EventEmitter } from 'events';
 import { IpcMainInvokeEvent } from 'electron/main';
 
+import { EventEmitter } from 'events';
+
 export class IpcMainImpl extends EventEmitter implements Electron.IpcMain {
   private _invokeHandlers: Map<string, (e: IpcMainInvokeEvent, ...args: any[]) => void> = new Map();
 

+ 4 - 2
lib/browser/rpc-server.ts

@@ -1,9 +1,11 @@
-import { clipboard } from 'electron/common';
-import * as fs from 'fs';
 import { ipcMainInternal } from '@electron/internal/browser/ipc-main-internal';
 import * as ipcMainUtils from '@electron/internal/browser/ipc-main-internal-utils';
 import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
 
+import { clipboard } from 'electron/common';
+
+import * as fs from 'fs';
+
 // Implements window.close()
 ipcMainInternal.on(IPC_MESSAGES.BROWSER_WINDOW_CLOSE, function (event) {
   const window = event.sender.getOwnerBrowserWindow();

+ 3 - 2
lib/common/api/net-client-request.ts

@@ -1,10 +1,11 @@
-import * as url from 'url';
-import { Readable, Writable } from 'stream';
 import type {
   ClientRequestConstructorOptions,
   UploadProgress
 } from 'electron/common';
 
+import { Readable, Writable } from 'stream';
+import * as url from 'url';
+
 const {
   isValidHeaderName,
   isValidHeaderValue,

+ 2 - 2
lib/common/init.ts

@@ -1,7 +1,7 @@
+import timers = require('timers');
 import * as util from 'util';
-import type * as stream from 'stream';
 
-import timers = require('timers');
+import type * as stream from 'stream';
 
 type AnyFn = (...args: any[]) => any
 

+ 2 - 0
lib/node/init.ts

@@ -1,3 +1,5 @@
+/* eslint-disable import/newline-after-import */
+/* eslint-disable import/order */
 // Initialize ASAR support in fs module.
 import { wrapFsWithAsar } from './asar-fs-wrapper';
 wrapFsWithAsar(require('fs'));

+ 1 - 1
lib/renderer/api/exports/electron.ts

@@ -1,5 +1,5 @@
-import { defineProperties } from '@electron/internal/common/define-properties';
 import { commonModuleList } from '@electron/internal/common/api/module-list';
+import { defineProperties } from '@electron/internal/common/define-properties';
 import { rendererModuleList } from '@electron/internal/renderer/api/module-list';
 
 module.exports = {};

+ 5 - 4
lib/renderer/common-init.ts

@@ -1,10 +1,10 @@
-import { ipcRenderer } from 'electron/renderer';
 import { ipcRendererInternal } from '@electron/internal/renderer/ipc-renderer-internal';
-
+import type * as securityWarningsModule from '@electron/internal/renderer/security-warnings';
+import type * as webFrameInitModule from '@electron/internal/renderer/web-frame-init';
 import type * as webViewInitModule from '@electron/internal/renderer/web-view/web-view-init';
 import type * as windowSetupModule from '@electron/internal/renderer/window-setup';
-import type * as webFrameInitModule from '@electron/internal/renderer/web-frame-init';
-import type * as securityWarningsModule from '@electron/internal/renderer/security-warnings';
+
+import { ipcRenderer } from 'electron/renderer';
 
 const { mainFrame } = process._linkedBinding('electron_renderer_web_frame');
 const v8Util = process._linkedBinding('electron_common_v8_util');
@@ -49,6 +49,7 @@ if (process.isMainFrame) {
 }
 
 const { webFrameInit } = require('@electron/internal/renderer/web-frame-init') as typeof webFrameInitModule;
+
 webFrameInit();
 
 // Warn about security issues

+ 3 - 3
lib/renderer/init.ts

@@ -1,10 +1,10 @@
-import * as path from 'path';
-import { pathToFileURL } from 'url';
 import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
-
 import type * as ipcRendererInternalModule from '@electron/internal/renderer/ipc-renderer-internal';
 import type * as ipcRendererUtilsModule from '@electron/internal/renderer/ipc-renderer-internal-utils';
 
+import * as path from 'path';
+import { pathToFileURL } from 'url';
+
 const Module = require('module') as NodeJS.ModuleInternal;
 
 // We do not want to allow use of the VM module in the renderer process as

+ 2 - 1
lib/renderer/inspector.ts

@@ -1,8 +1,9 @@
+import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
 import { internalContextBridge } from '@electron/internal/renderer/api/context-bridge';
 import { ipcRendererInternal } from '@electron/internal/renderer/ipc-renderer-internal';
 import * as ipcRendererUtils from '@electron/internal/renderer/ipc-renderer-internal-utils';
+
 import { webFrame } from 'electron/renderer';
-import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
 
 const { contextIsolationEnabled } = internalContextBridge;
 

+ 1 - 1
lib/renderer/security-warnings.ts

@@ -1,5 +1,5 @@
-import { ipcRendererInternal } from '@electron/internal/renderer/ipc-renderer-internal';
 import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
+import { ipcRendererInternal } from '@electron/internal/renderer/ipc-renderer-internal';
 
 const { mainFrame: webFrame } = process._linkedBinding('electron_renderer_web_frame');
 

+ 3 - 2
lib/renderer/web-frame-init.ts

@@ -1,6 +1,7 @@
-import { webFrame, WebFrame } from 'electron/renderer';
-import * as ipcRendererUtils from '@electron/internal/renderer/ipc-renderer-internal-utils';
 import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
+import * as ipcRendererUtils from '@electron/internal/renderer/ipc-renderer-internal-utils';
+
+import { webFrame, WebFrame } from 'electron/renderer';
 
 // All keys of WebFrame that extend Function
 type WebFrameMethod = {

+ 1 - 1
lib/renderer/web-view/guest-view-internal.ts

@@ -1,6 +1,6 @@
+import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
 import { ipcRendererInternal } from '@electron/internal/renderer/ipc-renderer-internal';
 import * as ipcRendererUtils from '@electron/internal/renderer/ipc-renderer-internal-utils';
-import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
 
 const { mainFrame: webFrame } = process._linkedBinding('electron_renderer_web_frame');
 

+ 1 - 1
lib/renderer/web-view/web-view-attributes.ts

@@ -1,5 +1,5 @@
-import type { WebViewImpl } from '@electron/internal/renderer/web-view/web-view-impl';
 import { WEB_VIEW_ATTRIBUTES, WEB_VIEW_ERROR_MESSAGES } from '@electron/internal/renderer/web-view/web-view-constants';
+import type { WebViewImpl } from '@electron/internal/renderer/web-view/web-view-impl';
 
 const resolveURL = function (url?: string | null) {
   return url ? new URL(url, location.href).href : '';

+ 1 - 1
lib/renderer/web-view/web-view-element.ts

@@ -8,9 +8,9 @@
 // which runs in browserify environment instead of Node environment, all native
 // modules must be passed from outside, all included files must be plain JS.
 
+import type { SrcAttribute } from '@electron/internal/renderer/web-view/web-view-attributes';
 import { WEB_VIEW_ATTRIBUTES, WEB_VIEW_ERROR_MESSAGES } from '@electron/internal/renderer/web-view/web-view-constants';
 import { WebViewImpl, WebViewImplHooks, setupMethods } from '@electron/internal/renderer/web-view/web-view-impl';
-import type { SrcAttribute } from '@electron/internal/renderer/web-view/web-view-attributes';
 
 const internals = new WeakMap<HTMLElement, WebViewImpl>();
 

+ 2 - 2
lib/renderer/web-view/web-view-impl.ts

@@ -1,8 +1,8 @@
-import type * as guestViewInternalModule from '@electron/internal/renderer/web-view/guest-view-internal';
-import { WEB_VIEW_ATTRIBUTES } from '@electron/internal/renderer/web-view/web-view-constants';
 import { syncMethods, asyncMethods, properties } from '@electron/internal/common/web-view-methods';
+import type * as guestViewInternalModule from '@electron/internal/renderer/web-view/guest-view-internal';
 import type { WebViewAttribute, PartitionAttribute } from '@electron/internal/renderer/web-view/web-view-attributes';
 import { setupWebViewAttributes } from '@electron/internal/renderer/web-view/web-view-attributes';
+import { WEB_VIEW_ATTRIBUTES } from '@electron/internal/renderer/web-view/web-view-constants';
 
 // ID generator.
 let nextId = 0;

+ 2 - 3
lib/renderer/web-view/web-view-init.ts

@@ -1,8 +1,7 @@
-import { ipcRendererInternal } from '@electron/internal/renderer/ipc-renderer-internal';
 import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
-
-import type * as webViewElementModule from '@electron/internal/renderer/web-view/web-view-element';
+import { ipcRendererInternal } from '@electron/internal/renderer/ipc-renderer-internal';
 import type * as guestViewInternalModule from '@electron/internal/renderer/web-view/guest-view-internal';
+import type * as webViewElementModule from '@electron/internal/renderer/web-view/web-view-element';
 
 const v8Util = process._linkedBinding('electron_common_v8_util');
 const { mainFrame: webFrame } = process._linkedBinding('electron_renderer_web_frame');

+ 2 - 2
lib/renderer/window-setup.ts

@@ -1,6 +1,6 @@
-import { ipcRendererInternal } from '@electron/internal/renderer/ipc-renderer-internal';
-import { internalContextBridge } from '@electron/internal/renderer/api/context-bridge';
 import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
+import { internalContextBridge } from '@electron/internal/renderer/api/context-bridge';
+import { ipcRendererInternal } from '@electron/internal/renderer/ipc-renderer-internal';
 
 const { contextIsolationEnabled } = internalContextBridge;
 

+ 4 - 4
lib/sandboxed_renderer/init.ts

@@ -1,9 +1,9 @@
-import * as events from 'events';
-import { setImmediate, clearImmediate } from 'timers';
 import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
-
-import type * as ipcRendererUtilsModule from '@electron/internal/renderer/ipc-renderer-internal-utils';
 import type * as ipcRendererInternalModule from '@electron/internal/renderer/ipc-renderer-internal';
+import type * as ipcRendererUtilsModule from '@electron/internal/renderer/ipc-renderer-internal-utils';
+
+import * as events from 'events';
+import { setImmediate, clearImmediate } from 'timers';
 
 declare const binding: {
   get: (name: string) => any;

+ 3 - 2
lib/utility/api/net.ts

@@ -1,7 +1,8 @@
+import { fetchWithSession } from '@electron/internal/browser/api/net-fetch';
+import { ClientRequest } from '@electron/internal/common/api/net-client-request';
+
 import { IncomingMessage } from 'electron/utility';
 import type { ClientRequestConstructorOptions } from 'electron/utility';
-import { ClientRequest } from '@electron/internal/common/api/net-client-request';
-import { fetchWithSession } from '@electron/internal/browser/api/net-fetch';
 
 const { isOnline, resolveHost } = process._linkedBinding('electron_common_net');
 

+ 2 - 2
lib/utility/init.ts

@@ -1,8 +1,8 @@
+import { ParentPort } from '@electron/internal/utility/parent-port';
+
 import { EventEmitter } from 'events';
 import { pathToFileURL } from 'url';
 
-import { ParentPort } from '@electron/internal/utility/parent-port';
-
 const v8Util = process._linkedBinding('electron_common_v8_util');
 
 const entryScript: string = v8Util.getHiddenValue(process, '_serviceStartupScript');

+ 3 - 1
lib/utility/parent-port.ts

@@ -1,5 +1,7 @@
-import { EventEmitter } from 'events';
 import { MessagePortMain } from '@electron/internal/browser/message-port-main';
+
+import { EventEmitter } from 'events';
+
 const { createParentPort } = process._linkedBinding('electron_utility_parent_port');
 
 export class ParentPort extends EventEmitter implements Electron.ParentPort {

+ 2 - 2
npm/cli.js

@@ -1,9 +1,9 @@
 #!/usr/bin/env node
 
-const electron = require('./');
-
 const proc = require('child_process');
 
+const electron = require('./');
+
 const child = proc.spawn(electron, process.argv.slice(2), { stdio: 'inherit', windowsHide: false });
 child.on('close', function (code, signal) {
   if (code === null) {

+ 5 - 3
npm/install.js

@@ -1,13 +1,15 @@
 #!/usr/bin/env node
 
-const { version } = require('./package');
+const { downloadArtifact } = require('@electron/get');
+
+const extract = require('extract-zip');
 
 const childProcess = require('child_process');
 const fs = require('fs');
 const os = require('os');
 const path = require('path');
-const extract = require('extract-zip');
-const { downloadArtifact } = require('@electron/get');
+
+const { version } = require('./package');
 
 if (process.env.ELECTRON_SKIP_BINARY_DOWNLOAD) {
   process.exit(0);

+ 1 - 0
script/create-api-json.js

@@ -1,4 +1,5 @@
 const { parseDocs } = require('@electron/docs-parser');
+
 const fs = require('node:fs');
 const path = require('node:path');
 

+ 4 - 1
script/doc-only-change.js

@@ -1,5 +1,8 @@
-const args = require('minimist')(process.argv.slice(2));
 const { Octokit } = require('@octokit/rest');
+const minimist = require('minimist');
+
+const args = minimist(process.argv.slice(2));
+
 const octokit = new Octokit();
 
 async function checkIfDocOnlyChange () {

+ 2 - 1
script/generate-version-json.js

@@ -1,6 +1,7 @@
-const fs = require('node:fs');
 const semver = require('semver');
 
+const fs = require('node:fs');
+
 const outputPath = process.argv[2];
 const currentVersion = process.argv[3];
 

+ 1 - 0
script/gn-asar-hash.js

@@ -1,4 +1,5 @@
 const asar = require('@electron/asar');
+
 const crypto = require('node:crypto');
 const fs = require('node:fs');
 

+ 1 - 0
script/gn-asar.js

@@ -1,4 +1,5 @@
 const asar = require('@electron/asar');
+
 const assert = require('node:assert');
 const fs = require('node:fs');
 const os = require('node:os');

+ 4 - 1
script/gn-check.js

@@ -4,9 +4,12 @@ Usage:
 $ node ./script/gn-check.js [--outDir=dirName]
 */
 
+const minimist = require('minimist');
+
 const cp = require('node:child_process');
 const path = require('node:path');
-const args = require('minimist')(process.argv.slice(2), { string: ['outDir'] });
+
+const args = minimist(process.argv.slice(2), { string: ['outDir'] });
 
 const { getOutDir } = require('./lib/utils');
 

+ 4 - 1
script/lib/azput.js

@@ -1,5 +1,8 @@
 /* eslint-disable camelcase */
+
 const { BlobServiceClient } = require('@azure/storage-blob');
+const minimist = require('minimist');
+
 const path = require('node:path');
 
 const { ELECTRON_ARTIFACTS_BLOB_STORAGE } = process.env;
@@ -10,7 +13,7 @@ if (!ELECTRON_ARTIFACTS_BLOB_STORAGE) {
 
 const blobServiceClient = BlobServiceClient.fromConnectionString(ELECTRON_ARTIFACTS_BLOB_STORAGE);
 
-const args = require('minimist')(process.argv.slice(2));
+const args = minimist(process.argv.slice(2));
 
 let { prefix = '/', key_prefix = '', _: files } = args;
 if (prefix && !prefix.endsWith(path.sep)) prefix = path.resolve(prefix) + path.sep;

+ 1 - 0
script/lib/utils.js

@@ -1,5 +1,6 @@
 const chalk = require('chalk');
 const { GitProcess } = require('dugite');
+
 const fs = require('node:fs');
 const os = require('node:os');
 const path = require('node:path');

+ 6 - 4
script/lint.js

@@ -1,13 +1,15 @@
 #!/usr/bin/env node
 
-const crypto = require('node:crypto');
+const { getCodeBlocks } = require('@electron/lint-roller/dist/lib/markdown');
+
 const { GitProcess } = require('dugite');
-const childProcess = require('node:child_process');
 const { ESLint } = require('eslint');
-const fs = require('node:fs');
 const minimist = require('minimist');
+
+const childProcess = require('node:child_process');
+const crypto = require('node:crypto');
+const fs = require('node:fs');
 const path = require('node:path');
-const { getCodeBlocks } = require('@electron/lint-roller/dist/lib/markdown');
 
 const { chunkFilenames, findMatchingFiles } = require('./lib/utils');
 

+ 3 - 1
script/nan-spec-runner.js

@@ -1,3 +1,5 @@
+const minimist = require('minimist');
+
 const cp = require('node:child_process');
 const fs = require('node:fs');
 const path = require('node:path');
@@ -13,7 +15,7 @@ if (!require.main) {
   throw new Error('Must call the nan spec runner directly');
 }
 
-const args = require('minimist')(process.argv.slice(2), {
+const args = minimist(process.argv.slice(2), {
   string: ['only']
 });
 

+ 7 - 4
script/node-spec-runner.js

@@ -1,20 +1,23 @@
+const minimist = require('minimist');
+
 const cp = require('node:child_process');
 const fs = require('node:fs');
 const path = require('node:path');
 
-const args = require('minimist')(process.argv.slice(2), {
+const utils = require('./lib/utils');
+const DISABLED_TESTS = require('./node-disabled-tests.json');
+
+const args = minimist(process.argv.slice(2), {
   boolean: ['default', 'validateDisabled'],
   string: ['jUnitDir']
 });
 
 const BASE = path.resolve(__dirname, '../..');
-const DISABLED_TESTS = require('./node-disabled-tests.json');
+
 const NODE_DIR = path.resolve(BASE, 'third_party', 'electron_node');
 const JUNIT_DIR = args.jUnitDir ? path.resolve(args.jUnitDir) : null;
 const TAP_FILE_NAME = 'test.tap';
 
-const utils = require('./lib/utils');
-
 if (!require.main) {
   throw new Error('Must call the node spec runner directly');
 }

+ 5 - 2
script/prepare-appveyor.js

@@ -1,9 +1,12 @@
+const { Octokit } = require('@octokit/rest');
+const got = require('got');
+
 const assert = require('node:assert');
 const fs = require('node:fs');
-const got = require('got');
 const path = require('node:path');
+
 const { handleGitCall, ELECTRON_DIR } = require('./lib/utils.js');
-const { Octokit } = require('@octokit/rest');
+
 const octokit = new Octokit();
 
 const APPVEYOR_IMAGES_URL = 'https://ci.appveyor.com/api/build-clouds';

+ 1 - 0
script/push-patch.js

@@ -1,4 +1,5 @@
 const { appCredentialsFromString, getTokenForRepo } = require('@electron/github-app-auth');
+
 const cp = require('node:child_process');
 
 async function main () {

+ 1 - 0
script/release/bin/cleanup-release.ts

@@ -1,4 +1,5 @@
 import { parseArgs } from 'node:util';
+
 import { cleanReleaseArtifacts } from '../release-artifact-cleanup';
 
 const { values: { tag: _tag, releaseID } } = parseArgs({

+ 4 - 4
script/release/bin/publish-to-npm.ts

@@ -1,13 +1,13 @@
 import { Octokit } from '@octokit/rest';
+import * as semver from 'semver';
+import * as temp from 'temp';
+
 import * as childProcess from 'node:child_process';
 import * as fs from 'node:fs';
 import * as path from 'node:path';
-import * as semver from 'semver';
-import * as temp from 'temp';
 
-import { getCurrentBranch, ELECTRON_DIR } from '../../lib/utils';
 import { getElectronVersion } from '../../lib/get-version';
-
+import { getCurrentBranch, ELECTRON_DIR } from '../../lib/utils';
 import { getAssetContents } from '../get-asset';
 import { createGitHubTokenStrategy } from '../github-token';
 import { ELECTRON_ORG, ELECTRON_REPO, ElectronReleaseRepo, NIGHTLY_REPO } from '../types';

+ 1 - 0
script/release/find-github-release.ts

@@ -1,4 +1,5 @@
 import { Octokit } from '@octokit/rest';
+
 import { createGitHubTokenStrategy } from './github-token';
 import { ELECTRON_ORG, ELECTRON_REPO, ElectronReleaseRepo, NIGHTLY_REPO } from './types';
 

+ 1 - 0
script/release/get-asset.ts

@@ -1,5 +1,6 @@
 import { Octokit } from '@octokit/rest';
 import got from 'got';
+
 import { createGitHubTokenStrategy } from './github-token';
 import { ELECTRON_ORG, ElectronReleaseRepo } from './types';
 

+ 1 - 0
script/release/get-url-hash.ts

@@ -1,4 +1,5 @@
 import got from 'got';
+
 import * as url from 'node:url';
 
 const HASHER_FUNCTION_HOST = 'electron-artifact-hasher.azurewebsites.net';

+ 5 - 5
script/release/notes/index.ts

@@ -1,15 +1,15 @@
 #!/usr/bin/env node
 
+import { Octokit } from '@octokit/rest';
 import { GitProcess } from 'dugite';
-import { basename } from 'node:path';
 import { valid, compare, gte, lte } from 'semver';
 
-import { ELECTRON_DIR } from '../../lib/utils';
-import { get, render } from './notes';
+import { basename } from 'node:path';
+import { parseArgs } from 'node:util';
 
-import { Octokit } from '@octokit/rest';
+import { get, render } from './notes';
+import { ELECTRON_DIR } from '../../lib/utils';
 import { createGitHubTokenStrategy } from '../github-token';
-import { parseArgs } from 'node:util';
 import { ELECTRON_ORG, ELECTRON_REPO } from '../types';
 
 const octokit = new Octokit({

+ 3 - 3
script/release/notes/notes.ts

@@ -1,11 +1,11 @@
 #!/usr/bin/env node
 
-import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
-import { resolve as _resolve } from 'node:path';
-
 import { Octokit } from '@octokit/rest';
 import { GitProcess } from 'dugite';
 
+import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
+import { resolve as _resolve } from 'node:path';
+
 import { ELECTRON_DIR } from '../../lib/utils';
 import { createGitHubTokenStrategy } from '../github-token';
 import { ELECTRON_ORG, ELECTRON_REPO } from '../types';

+ 4 - 3
script/release/prepare-release.ts

@@ -1,14 +1,15 @@
 import { Octokit } from '@octokit/rest';
 import * as chalk from 'chalk';
 import { GitProcess } from 'dugite';
+
 import { execSync } from 'node:child_process';
 import { join } from 'node:path';
 
-import { runReleaseCIJobs } from './run-release-ci-jobs';
-import releaseNotesGenerator from './notes';
-import { getCurrentBranch, ELECTRON_DIR } from '../lib/utils.js';
 import { createGitHubTokenStrategy } from './github-token';
+import releaseNotesGenerator from './notes';
+import { runReleaseCIJobs } from './run-release-ci-jobs';
 import { ELECTRON_ORG, ElectronReleaseRepo, VersionBumpType } from './types';
+import { getCurrentBranch, ELECTRON_DIR } from '../lib/utils.js';
 
 const pass = chalk.green('✓');
 const fail = chalk.red('✗');

+ 5 - 4
script/release/release.ts

@@ -4,17 +4,18 @@ import { BlobServiceClient } from '@azure/storage-blob';
 import { Octokit } from '@octokit/rest';
 import * as chalk from 'chalk';
 import got from 'got';
+import { gte } from 'semver';
+import { track as trackTemp } from 'temp';
+
 import { execSync, ExecSyncOptions } from 'node:child_process';
 import { statSync, createReadStream, writeFileSync, close } from 'node:fs';
 import { join } from 'node:path';
-import { gte } from 'semver';
-import { track as trackTemp } from 'temp';
 
-import { ELECTRON_DIR } from '../lib/utils';
-import { getElectronVersion } from '../lib/get-version';
 import { getUrlHash } from './get-url-hash';
 import { createGitHubTokenStrategy } from './github-token';
 import { ELECTRON_ORG, ELECTRON_REPO, ElectronReleaseRepo, NIGHTLY_REPO } from './types';
+import { getElectronVersion } from '../lib/get-version';
+import { ELECTRON_DIR } from '../lib/utils';
 
 const temp = trackTemp();
 

+ 1 - 0
script/release/run-release-ci-jobs.ts

@@ -1,5 +1,6 @@
 import { Octokit } from '@octokit/rest';
 import got, { OptionsOfTextResponseBody } from 'got';
+
 import * as assert from 'node:assert';
 
 import { createGitHubTokenStrategy } from './github-token';

+ 2 - 0
script/release/uploaders/upload-to-github.ts

@@ -1,5 +1,7 @@
 import { Octokit } from '@octokit/rest';
+
 import * as fs from 'node:fs';
+
 import { createGitHubTokenStrategy } from '../github-token';
 import { ELECTRON_ORG, ELECTRON_REPO, ElectronReleaseRepo, NIGHTLY_REPO } from '../types';
 

+ 4 - 3
script/release/version-bumper.ts

@@ -2,7 +2,9 @@
 
 import { valid, coerce, inc } from 'semver';
 
-import { getElectronVersion } from '../lib/get-version';
+import { parseArgs } from 'node:util';
+
+import { VersionBumpType } from './types';
 import {
   isNightly,
   isAlpha,
@@ -12,8 +14,7 @@ import {
   nextBeta,
   isStable
 } from './version-utils';
-import { VersionBumpType } from './types';
-import { parseArgs } from 'node:util';
+import { getElectronVersion } from '../lib/get-version';
 
 // run the script
 async function main () {

+ 1 - 1
script/release/version-utils.ts

@@ -1,5 +1,5 @@
-import * as semver from 'semver';
 import { GitProcess } from 'dugite';
+import * as semver from 'semver';
 
 import { ELECTRON_DIR } from '../lib/utils';
 

+ 5 - 4
script/run-clang-tidy.ts

@@ -1,13 +1,14 @@
-import * as childProcess from 'node:child_process';
-import * as fs from 'node:fs';
 import * as minimist from 'minimist';
-import * as os from 'node:os';
-import * as path from 'node:path';
 import * as streamChain from 'stream-chain';
 import * as streamJson from 'stream-json';
 import { ignore as streamJsonIgnore } from 'stream-json/filters/Ignore';
 import { streamArray as streamJsonStreamArray } from 'stream-json/streamers/StreamArray';
 
+import * as childProcess from 'node:child_process';
+import * as fs from 'node:fs';
+import * as os from 'node:os';
+import * as path from 'node:path';
+
 import { chunkFilenames, findMatchingFiles } from './lib/utils';
 
 const SOURCE_ROOT = path.normalize(path.dirname(__dirname));

+ 6 - 2
script/spec-runner.js

@@ -1,19 +1,23 @@
 #!/usr/bin/env node
 
 const { ElectronVersions, Installer } = require('@electron/fiddle-core');
+
 const chalk = require('chalk');
+const { hashElement } = require('folder-hash');
+const minimist = require('minimist');
+
 const childProcess = require('node:child_process');
 const crypto = require('node:crypto');
 const fs = require('node:fs');
-const { hashElement } = require('folder-hash');
 const os = require('node:os');
 const path = require('node:path');
+
 const unknownFlags = [];
 
 const pass = chalk.green('✓');
 const fail = chalk.red('✗');
 
-const args = require('minimist')(process.argv, {
+const args = minimist(process.argv, {
   string: ['runners', 'target', 'electronVersion'],
   unknown: arg => unknownFlags.push(arg)
 });

+ 2 - 1
script/split-tests.js

@@ -1,6 +1,7 @@
-const fs = require('node:fs');
 const glob = require('glob');
 
+const fs = require('node:fs');
+
 const currentShard = parseInt(process.argv[2], 10);
 const shardCount = parseInt(process.argv[3], 10);
 

+ 2 - 0
script/start.js

@@ -1,5 +1,7 @@
 const cp = require('node:child_process');
+
 const utils = require('./lib/utils');
+
 const electronPath = utils.getAbsoluteElectronExec();
 
 const child = cp.spawn(electronPath, process.argv.slice(2), { stdio: 'inherit' });

+ 11 - 8
spec/api-app-spec.ts

@@ -1,18 +1,21 @@
+import { app, BrowserWindow, Menu, session, net as electronNet, WebContents, utilityProcess } from 'electron/main';
+
 import { assert, expect } from 'chai';
+import * as semver from 'semver';
+import split = require('split')
+
 import * as cp from 'node:child_process';
-import * as https from 'node:https';
+import { once } from 'node:events';
+import * as fs from 'node:fs';
 import * as http from 'node:http';
+import * as https from 'node:https';
 import * as net from 'node:net';
-import * as fs from 'node:fs';
 import * as path from 'node:path';
 import { promisify } from 'node:util';
-import { app, BrowserWindow, Menu, session, net as electronNet, WebContents, utilityProcess } from 'electron/main';
-import { closeWindow, closeAllWindows } from './lib/window-helpers';
-import { ifdescribe, ifit, listen, waitUntil } from './lib/spec-helpers';
+
 import { collectStreamBody, getResponse } from './lib/net-helpers';
-import { once } from 'node:events';
-import split = require('split')
-import * as semver from 'semver';
+import { ifdescribe, ifit, listen, waitUntil } from './lib/spec-helpers';
+import { closeWindow, closeAllWindows } from './lib/window-helpers';
 
 const fixturesPath = path.resolve(__dirname, 'fixtures');
 

+ 4 - 1
spec/api-auto-updater-spec.ts

@@ -1,8 +1,11 @@
 import { autoUpdater } from 'electron/main';
+
 import { expect } from 'chai';
-import { ifit, ifdescribe } from './lib/spec-helpers';
+
 import { once } from 'node:events';
 
+import { ifit, ifdescribe } from './lib/spec-helpers';
+
 ifdescribe(!process.mas)('autoUpdater module', function () {
   describe('checkForUpdates', function () {
     ifit(process.platform === 'win32')('emits an error on Windows if the feed URL is not set', async function () {

+ 10 - 7
spec/api-autoupdater-darwin-spec.ts

@@ -1,16 +1,19 @@
+import { autoUpdater, systemPreferences } from 'electron';
+
 import { expect } from 'chai';
-import * as cp from 'node:child_process';
-import * as http from 'node:http';
 import * as express from 'express';
-import * as fs from 'node:fs';
-import * as path from 'node:path';
 import * as psList from 'ps-list';
+import * as uuid from 'uuid';
+
+import * as cp from 'node:child_process';
+import * as fs from 'node:fs';
+import * as http from 'node:http';
 import { AddressInfo } from 'node:net';
-import { ifdescribe, ifit } from './lib/spec-helpers';
+import * as path from 'node:path';
+
 import { copyMacOSFixtureApp, getCodesignIdentity, shouldRunCodesignTests, signApp, spawn } from './lib/codesign-helpers';
-import * as uuid from 'uuid';
-import { autoUpdater, systemPreferences } from 'electron';
 import { withTempDirectory } from './lib/fs-helpers';
+import { ifdescribe, ifit } from './lib/spec-helpers';
 
 // We can only test the auto updater on darwin non-component builds
 ifdescribe(shouldRunCodesignTests)('autoUpdater behavior', function () {

+ 7 - 4
spec/api-browser-view-spec.ts

@@ -1,10 +1,13 @@
+import { BrowserView, BrowserWindow, screen, webContents } from 'electron/main';
+
 import { expect } from 'chai';
+
+import { once } from 'node:events';
 import * as path from 'node:path';
-import { BrowserView, BrowserWindow, screen, webContents } from 'electron/main';
-import { closeWindow } from './lib/window-helpers';
-import { defer, ifit, startRemoteControlApp } from './lib/spec-helpers';
+
 import { ScreenCapture } from './lib/screen-helpers';
-import { once } from 'node:events';
+import { defer, ifit, startRemoteControlApp } from './lib/spec-helpers';
+import { closeWindow } from './lib/window-helpers';
 
 describe('BrowserView module', () => {
   const fixtures = path.resolve(__dirname, 'fixtures');

+ 10 - 8
spec/api-browser-window-spec.ts

@@ -1,20 +1,22 @@
+import { app, BrowserWindow, BrowserView, dialog, ipcMain, OnBeforeSendHeadersListenerDetails, protocol, screen, webContents, webFrameMain, session, WebContents, WebFrameMain } from 'electron/main';
+
 import { expect } from 'chai';
+
 import * as childProcess from 'node:child_process';
-import * as path from 'node:path';
+import { once } from 'node:events';
 import * as fs from 'node:fs';
-import * as qs from 'node:querystring';
 import * as http from 'node:http';
-import * as os from 'node:os';
 import { AddressInfo } from 'node:net';
-import { app, BrowserWindow, BrowserView, dialog, ipcMain, OnBeforeSendHeadersListenerDetails, protocol, screen, webContents, webFrameMain, session, WebContents, WebFrameMain } from 'electron/main';
+import * as os from 'node:os';
+import * as path from 'node:path';
+import * as qs from 'node:querystring';
+import { setTimeout as syncSetTimeout } from 'node:timers';
+import { setTimeout } from 'node:timers/promises';
 
 import { emittedUntil, emittedNTimes } from './lib/events-helpers';
+import { HexColors, hasCapturableScreen, ScreenCapture } from './lib/screen-helpers';
 import { ifit, ifdescribe, defer, listen } from './lib/spec-helpers';
 import { closeWindow, closeAllWindows } from './lib/window-helpers';
-import { HexColors, hasCapturableScreen, ScreenCapture } from './lib/screen-helpers';
-import { once } from 'node:events';
-import { setTimeout } from 'node:timers/promises';
-import { setTimeout as syncSetTimeout } from 'node:timers';
 
 const fixtures = path.resolve(__dirname, 'fixtures');
 const mainFixtures = path.resolve(__dirname, 'fixtures');

+ 5 - 2
spec/api-clipboard-spec.ts

@@ -1,8 +1,11 @@
+import { clipboard, nativeImage } from 'electron/common';
+
 import { expect } from 'chai';
-import * as path from 'node:path';
+
 import { Buffer } from 'node:buffer';
+import * as path from 'node:path';
+
 import { ifdescribe, ifit } from './lib/spec-helpers';
-import { clipboard, nativeImage } from 'electron/common';
 
 // FIXME(zcbenz): Clipboard tests are failing on WOA.
 ifdescribe(process.platform !== 'win32' || process.arch !== 'arm64')('clipboard module', () => {

+ 4 - 1
spec/api-content-tracing-spec.ts

@@ -1,8 +1,11 @@
-import { expect } from 'chai';
 import { app, contentTracing, TraceConfig, TraceCategoriesAndOptions } from 'electron/main';
+
+import { expect } from 'chai';
+
 import * as fs from 'node:fs';
 import * as path from 'node:path';
 import { setTimeout } from 'node:timers/promises';
+
 import { ifdescribe } from './lib/spec-helpers';
 
 // FIXME: The tests are skipped on linux arm/arm64

+ 5 - 3
spec/api-context-bridge-spec.ts

@@ -1,15 +1,17 @@
 import { BrowserWindow, ipcMain } from 'electron/main';
 import { contextBridge } from 'electron/renderer';
+
 import { expect } from 'chai';
+
+import * as cp from 'node:child_process';
+import { once } from 'node:events';
 import * as fs from 'node:fs';
 import * as http from 'node:http';
 import * as os from 'node:os';
 import * as path from 'node:path';
-import * as cp from 'node:child_process';
 
-import { closeWindow } from './lib/window-helpers';
 import { listen } from './lib/spec-helpers';
-import { once } from 'node:events';
+import { closeWindow } from './lib/window-helpers';
 
 const fixturesPath = path.resolve(__dirname, 'fixtures', 'api', 'context-bridge');
 

+ 9 - 6
spec/api-crash-reporter-spec.ts

@@ -1,15 +1,18 @@
+import { app } from 'electron/main';
+
+import * as Busboy from 'busboy';
 import { expect } from 'chai';
+import * as uuid from 'uuid';
+
 import * as childProcess from 'node:child_process';
-import * as http from 'node:http';
-import * as Busboy from 'busboy';
-import * as path from 'node:path';
-import { ifdescribe, ifit, defer, startRemoteControlApp, repeatedly, listen } from './lib/spec-helpers';
-import { app } from 'electron/main';
 import { EventEmitter } from 'node:events';
 import * as fs from 'node:fs';
-import * as uuid from 'uuid';
+import * as http from 'node:http';
+import * as path from 'node:path';
 import { setTimeout } from 'node:timers/promises';
 
+import { ifdescribe, ifit, defer, startRemoteControlApp, repeatedly, listen } from './lib/spec-helpers';
+
 const isWindowsOnArm = process.platform === 'win32' && process.arch === 'arm64';
 const isLinuxOnArm = process.platform === 'linux' && process.arch.includes('arm');
 

+ 6 - 3
spec/api-debugger-spec.ts

@@ -1,11 +1,14 @@
+import { BrowserWindow } from 'electron/main';
+
 import { expect } from 'chai';
+
+import { once } from 'node:events';
 import * as http from 'node:http';
 import * as path from 'node:path';
-import { BrowserWindow } from 'electron/main';
-import { closeAllWindows } from './lib/window-helpers';
+
 import { emittedUntil } from './lib/events-helpers';
 import { listen } from './lib/spec-helpers';
-import { once } from 'node:events';
+import { closeAllWindows } from './lib/window-helpers';
 
 describe('debugger module', () => {
   const fixtures = path.resolve(__dirname, 'fixtures');

+ 4 - 2
spec/api-desktop-capturer-spec.ts

@@ -1,9 +1,11 @@
-import { expect } from 'chai';
 import { screen, desktopCapturer, BrowserWindow } from 'electron/main';
+
+import { expect } from 'chai';
+
 import { once } from 'node:events';
 import { setTimeout } from 'node:timers/promises';
-import { ifdescribe, ifit } from './lib/spec-helpers';
 
+import { ifdescribe, ifit } from './lib/spec-helpers';
 import { closeAllWindows } from './lib/window-helpers';
 
 ifdescribe(!process.arch.includes('arm') && process.platform !== 'win32')('desktopCapturer', () => {

+ 6 - 3
spec/api-dialog-spec.ts

@@ -1,9 +1,12 @@
-import { expect } from 'chai';
 import { dialog, BaseWindow, BrowserWindow } from 'electron/main';
-import { closeAllWindows } from './lib/window-helpers';
-import { ifit } from './lib/spec-helpers';
+
+import { expect } from 'chai';
+
 import { setTimeout } from 'node:timers/promises';
 
+import { ifit } from './lib/spec-helpers';
+import { closeAllWindows } from './lib/window-helpers';
+
 describe('dialog module', () => {
   describe('showOpenDialog', () => {
     afterEach(closeAllWindows);

+ 3 - 1
spec/api-global-shortcut-spec.ts

@@ -1,5 +1,7 @@
-import { expect } from 'chai';
 import { globalShortcut } from 'electron/main';
+
+import { expect } from 'chai';
+
 import { ifdescribe } from './lib/spec-helpers';
 
 ifdescribe(process.platform !== 'win32')('globalShortcut module', () => {

+ 3 - 1
spec/api-in-app-purchase-spec.ts

@@ -1,5 +1,7 @@
-import { expect } from 'chai';
 import { inAppPurchase } from 'electron/main';
+
+import { expect } from 'chai';
+
 import { ifdescribe } from './lib/spec-helpers';
 
 describe('inAppPurchase module', function () {

+ 7 - 4
spec/api-ipc-main-spec.ts

@@ -1,10 +1,13 @@
+import { ipcMain, BrowserWindow } from 'electron/main';
+
 import { expect } from 'chai';
-import * as path from 'node:path';
+
 import * as cp from 'node:child_process';
-import { closeAllWindows } from './lib/window-helpers';
-import { defer } from './lib/spec-helpers';
-import { ipcMain, BrowserWindow } from 'electron/main';
 import { once } from 'node:events';
+import * as path from 'node:path';
+
+import { defer } from './lib/spec-helpers';
+import { closeAllWindows } from './lib/window-helpers';
 
 describe('ipc main module', () => {
   const fixtures = path.join(__dirname, 'fixtures');

+ 5 - 2
spec/api-ipc-renderer-spec.ts

@@ -1,8 +1,11 @@
-import { expect } from 'chai';
 import { ipcMain, BrowserWindow } from 'electron/main';
-import { closeWindow } from './lib/window-helpers';
+
+import { expect } from 'chai';
+
 import { once } from 'node:events';
 
+import { closeWindow } from './lib/window-helpers';
+
 describe('ipcRenderer module', () => {
   let w: BrowserWindow;
   before(async () => {

Some files were not shown because too many files changed in this diff