зеркало из https://github.com/electron/electron.git
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
This commit is contained in:
Родитель
bf8de29f9b
Коммит
27c38bdead
|
@ -19,7 +19,40 @@
|
||||||
"prefer-const": ["error", {
|
"prefer-const": ["error", {
|
||||||
"destructuring": "all"
|
"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": {
|
"parserOptions": {
|
||||||
"ecmaVersion": 6,
|
"ecmaVersion": 6,
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
|
const TerserPlugin = require('terser-webpack-plugin');
|
||||||
|
const webpack = require('webpack');
|
||||||
|
const WrapperPlugin = require('wrapper-webpack-plugin');
|
||||||
|
|
||||||
const fs = require('node:fs');
|
const fs = require('node:fs');
|
||||||
const path = require('node:path');
|
const path = require('node:path');
|
||||||
const webpack = require('webpack');
|
|
||||||
const TerserPlugin = require('terser-webpack-plugin');
|
|
||||||
const WrapperPlugin = require('wrapper-webpack-plugin');
|
|
||||||
|
|
||||||
const electronRoot = path.resolve(__dirname, '../..');
|
const electronRoot = path.resolve(__dirname, '../..');
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import { shell } from 'electron/common';
|
import { shell } from 'electron/common';
|
||||||
import { app, dialog, BrowserWindow, ipcMain } from 'electron/main';
|
import { app, dialog, BrowserWindow, ipcMain } from 'electron/main';
|
||||||
|
|
||||||
import * as path from 'node:path';
|
import * as path from 'node:path';
|
||||||
import * as url from 'node:url';
|
import * as url from 'node:url';
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ import * as fs from 'node:fs';
|
||||||
import { Module } from 'node:module';
|
import { Module } from 'node:module';
|
||||||
import * as path from 'node:path';
|
import * as path from 'node:path';
|
||||||
import * as url from 'node:url';
|
import * as url from 'node:url';
|
||||||
|
|
||||||
const { app, dialog } = electron;
|
const { app, dialog } = electron;
|
||||||
|
|
||||||
type DefaultAppOptions = {
|
type DefaultAppOptions = {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import * as fs from 'fs';
|
|
||||||
|
|
||||||
import { Menu } from 'electron/main';
|
import { Menu } from 'electron/main';
|
||||||
|
|
||||||
|
import * as fs from 'fs';
|
||||||
|
|
||||||
const bindings = process._linkedBinding('electron_browser_app');
|
const bindings = process._linkedBinding('electron_browser_app');
|
||||||
const commandLine = process._linkedBinding('electron_common_command_line');
|
const commandLine = process._linkedBinding('electron_common_command_line');
|
||||||
const { app } = bindings;
|
const { app } = bindings;
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
import { app } from 'electron/main';
|
|
||||||
import { EventEmitter } from 'events';
|
|
||||||
import * as squirrelUpdate from '@electron/internal/browser/api/auto-updater/squirrel-update-win';
|
import * as squirrelUpdate from '@electron/internal/browser/api/auto-updater/squirrel-update-win';
|
||||||
|
|
||||||
|
import { app } from 'electron/main';
|
||||||
|
|
||||||
|
import { EventEmitter } from 'events';
|
||||||
|
|
||||||
class AutoUpdater extends EventEmitter implements Electron.AutoUpdater {
|
class AutoUpdater extends EventEmitter implements Electron.AutoUpdater {
|
||||||
updateAvailable: boolean = false;
|
updateAvailable: boolean = false;
|
||||||
updateURL: string | null = null;
|
updateURL: string | null = null;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
|
import { spawn, ChildProcessWithoutNullStreams } from 'child_process';
|
||||||
import * as fs from 'fs';
|
import * as fs from 'fs';
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import { spawn, ChildProcessWithoutNullStreams } from 'child_process';
|
|
||||||
|
|
||||||
// i.e. my-app/app-0.1.13/
|
// i.e. my-app/app-0.1.13/
|
||||||
const appFolder = path.dirname(process.execPath);
|
const appFolder = path.dirname(process.execPath);
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { EventEmitter } from 'events';
|
|
||||||
import type { BaseWindow as TLWT } from 'electron/main';
|
|
||||||
import { TouchBar } 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 };
|
const { BaseWindow } = process._linkedBinding('electron_browser_base_window') as { BaseWindow: typeof TLWT };
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import { BaseWindow, WebContents, BrowserView } from 'electron/main';
|
import { BaseWindow, WebContents, BrowserView } from 'electron/main';
|
||||||
import type { BrowserWindow as BWT } from 'electron/main';
|
import type { BrowserWindow as BWT } from 'electron/main';
|
||||||
|
|
||||||
const { BrowserWindow } = process._linkedBinding('electron_browser_window') as { BrowserWindow: typeof BWT };
|
const { BrowserWindow } = process._linkedBinding('electron_browser_window') as { BrowserWindow: typeof BWT };
|
||||||
|
|
||||||
Object.setPrototypeOf(BrowserWindow.prototype, BaseWindow.prototype);
|
Object.setPrototypeOf(BrowserWindow.prototype, BaseWindow.prototype);
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { app } from 'electron/main';
|
|
||||||
import * as deprecate from '@electron/internal/common/deprecate';
|
import * as deprecate from '@electron/internal/common/deprecate';
|
||||||
|
|
||||||
|
import { app } from 'electron/main';
|
||||||
|
|
||||||
const binding = process._linkedBinding('electron_browser_crash_reporter');
|
const binding = process._linkedBinding('electron_browser_crash_reporter');
|
||||||
|
|
||||||
class CrashReporter implements Electron.CrashReporter {
|
class CrashReporter implements Electron.CrashReporter {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import { BrowserWindow } from 'electron/main';
|
import { BrowserWindow } from 'electron/main';
|
||||||
|
|
||||||
const { createDesktopCapturer, isDisplayMediaSystemPickerAvailable } = process._linkedBinding('electron_browser_desktop_capturer');
|
const { createDesktopCapturer, isDisplayMediaSystemPickerAvailable } = process._linkedBinding('electron_browser_desktop_capturer');
|
||||||
|
|
||||||
const deepEqual = (a: ElectronInternal.GetSourcesOptions, b: ElectronInternal.GetSourcesOptions) => JSON.stringify(a) === JSON.stringify(b);
|
const deepEqual = (a: ElectronInternal.GetSourcesOptions, b: ElectronInternal.GetSourcesOptions) => JSON.stringify(a) === JSON.stringify(b);
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import { app, BaseWindow } from 'electron/main';
|
import { app, BaseWindow } from 'electron/main';
|
||||||
import type { OpenDialogOptions, OpenDialogReturnValue, MessageBoxOptions, SaveDialogOptions, SaveDialogReturnValue, MessageBoxReturnValue, CertificateTrustDialogOptions } from 'electron/main';
|
import type { OpenDialogOptions, OpenDialogReturnValue, MessageBoxOptions, SaveDialogOptions, SaveDialogReturnValue, MessageBoxReturnValue, CertificateTrustDialogOptions } from 'electron/main';
|
||||||
|
|
||||||
const dialogBinding = process._linkedBinding('electron_browser_dialog');
|
const dialogBinding = process._linkedBinding('electron_browser_dialog');
|
||||||
|
|
||||||
enum SaveFileDialogProperties {
|
enum SaveFileDialogProperties {
|
||||||
|
|
|
@ -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 { 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 = {};
|
module.exports = {};
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import * as roles from '@electron/internal/browser/api/menu-item-roles';
|
import * as roles from '@electron/internal/browser/api/menu-item-roles';
|
||||||
|
|
||||||
import { Menu, BaseWindow, WebContents, KeyboardEvent } from 'electron/main';
|
import { Menu, BaseWindow, WebContents, KeyboardEvent } from 'electron/main';
|
||||||
|
|
||||||
let nextCommandId = 0;
|
let nextCommandId = 0;
|
||||||
|
|
|
@ -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 { sortMenuItems } from '@electron/internal/browser/api/menu-utils';
|
||||||
import { setApplicationMenuWasSet } from '@electron/internal/browser/default-menu';
|
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 bindings = process._linkedBinding('electron_browser_menu');
|
||||||
|
|
||||||
const { Menu } = bindings as { Menu: typeof MenuType };
|
const { Menu } = bindings as { Menu: typeof MenuType };
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
import { MessagePortMain } from '@electron/internal/browser/message-port-main';
|
import { MessagePortMain } from '@electron/internal/browser/message-port-main';
|
||||||
|
|
||||||
import { EventEmitter } from 'events';
|
import { EventEmitter } from 'events';
|
||||||
|
|
||||||
const { createPair } = process._linkedBinding('electron_browser_message_port');
|
const { createPair } = process._linkedBinding('electron_browser_message_port');
|
||||||
|
|
||||||
export default class MessageChannelMain extends EventEmitter implements Electron.MessageChannelMain {
|
export default class MessageChannelMain extends EventEmitter implements Electron.MessageChannelMain {
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
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';
|
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';
|
||||||
|
|
||||||
function createDeferredPromise<T, E extends Error = Error> (): { promise: Promise<T>; resolve: (x: T) => void; reject: (e: E) => void; } {
|
function createDeferredPromise<T, E extends Error = Error> (): { promise: Promise<T>; resolve: (x: T) => void; reject: (e: E) => void; } {
|
||||||
let res: (x: T) => void;
|
let res: (x: T) => void;
|
||||||
let rej: (e: E) => void;
|
let rej: (e: E) => void;
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
|
import { ClientRequest } from '@electron/internal/common/api/net-client-request';
|
||||||
|
|
||||||
import { app, IncomingMessage, session } from 'electron/main';
|
import { app, IncomingMessage, session } from 'electron/main';
|
||||||
import type { ClientRequestConstructorOptions } 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');
|
const { isOnline } = process._linkedBinding('electron_common_net');
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import { ProtocolRequest, session } from 'electron/main';
|
import { ProtocolRequest, session } from 'electron/main';
|
||||||
|
|
||||||
import { createReadStream } from 'fs';
|
import { createReadStream } from 'fs';
|
||||||
import { Readable } from 'stream';
|
import { Readable } from 'stream';
|
||||||
import { ReadableStream } from 'stream/web';
|
import { ReadableStream } from 'stream/web';
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
import { fetchWithSession } from '@electron/internal/browser/api/net-fetch';
|
import { fetchWithSession } from '@electron/internal/browser/api/net-fetch';
|
||||||
|
|
||||||
import { net } from 'electron/main';
|
import { net } from 'electron/main';
|
||||||
|
|
||||||
const { fromPartition, fromPath, Session } = process._linkedBinding('electron_browser_session');
|
const { fromPartition, fromPath, Session } = process._linkedBinding('electron_browser_session');
|
||||||
const { isDisplayMediaSystemPickerAvailable } = process._linkedBinding('electron_browser_desktop_capturer');
|
const { isDisplayMediaSystemPickerAvailable } = process._linkedBinding('electron_browser_desktop_capturer');
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import { BrowserWindow, Menu, SharingItem, PopupOptions } from 'electron/main';
|
import { BrowserWindow, Menu, SharingItem, PopupOptions } from 'electron/main';
|
||||||
|
|
||||||
import { EventEmitter } from 'events';
|
import { EventEmitter } from 'events';
|
||||||
|
|
||||||
class ShareMenu extends EventEmitter implements Electron.ShareMenu {
|
class ShareMenu extends EventEmitter implements Electron.ShareMenu {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import * as deprecate from '@electron/internal/common/deprecate';
|
import * as deprecate from '@electron/internal/common/deprecate';
|
||||||
|
|
||||||
const { systemPreferences } = process._linkedBinding('electron_browser_system_preferences');
|
const { systemPreferences } = process._linkedBinding('electron_browser_system_preferences');
|
||||||
|
|
||||||
if ('getEffectiveAppearance' in systemPreferences) {
|
if ('getEffectiveAppearance' in systemPreferences) {
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
import { EventEmitter } from 'events';
|
|
||||||
import { Duplex, PassThrough } from 'stream';
|
|
||||||
import { Socket } from 'net';
|
|
||||||
import { MessagePortMain } from '@electron/internal/browser/message-port-main';
|
import { MessagePortMain } from '@electron/internal/browser/message-port-main';
|
||||||
|
|
||||||
|
import { EventEmitter } from 'events';
|
||||||
|
import { Socket } from 'net';
|
||||||
|
import { Duplex, PassThrough } from 'stream';
|
||||||
|
|
||||||
const { _fork } = process._linkedBinding('electron_browser_utility_process');
|
const { _fork } = process._linkedBinding('electron_browser_utility_process');
|
||||||
|
|
||||||
class ForkUtilityProcess extends EventEmitter implements Electron.UtilityProcess {
|
class ForkUtilityProcess extends EventEmitter implements Electron.UtilityProcess {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import { EventEmitter } from 'events';
|
import { EventEmitter } from 'events';
|
||||||
|
|
||||||
const { View } = process._linkedBinding('electron_browser_view');
|
const { View } = process._linkedBinding('electron_browser_view');
|
||||||
|
|
||||||
Object.setPrototypeOf((View as any).prototype, EventEmitter.prototype);
|
Object.setPrototypeOf((View as any).prototype, EventEmitter.prototype);
|
||||||
|
|
|
@ -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 { 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 { ipcMainInternal } from '@electron/internal/browser/ipc-main-internal';
|
||||||
import * as ipcMainUtils from '@electron/internal/browser/ipc-main-internal-utils';
|
import * as ipcMainUtils from '@electron/internal/browser/ipc-main-internal-utils';
|
||||||
import { MessagePortMain } from '@electron/internal/browser/message-port-main';
|
import { MessagePortMain } from '@electron/internal/browser/message-port-main';
|
||||||
import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
|
import { parseFeatures } from '@electron/internal/browser/parse-features-string';
|
||||||
import { IpcMainImpl } from '@electron/internal/browser/ipc-main-impl';
|
|
||||||
import * as deprecate from '@electron/internal/common/deprecate';
|
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
|
// session is not used here, the purpose is to make sure session is initialized
|
||||||
// before the webContents module.
|
// before the webContents module.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { MessagePortMain } from '@electron/internal/browser/message-port-main';
|
|
||||||
import { IpcMainImpl } from '@electron/internal/browser/ipc-main-impl';
|
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');
|
const { WebFrameMain, fromId } = process._linkedBinding('electron_browser_web_frame_main');
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { app, Menu } from 'electron/main';
|
|
||||||
import { shell } from 'electron/common';
|
import { shell } from 'electron/common';
|
||||||
|
import { app, Menu } from 'electron/main';
|
||||||
|
|
||||||
const isMac = process.platform === 'darwin';
|
const isMac = process.platform === 'darwin';
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
import { dialog, Menu } from 'electron/main';
|
import { IPC_MESSAGES } from '@electron/internal//common/ipc-messages';
|
||||||
import * as fs from 'fs';
|
|
||||||
|
|
||||||
import { ipcMainInternal } from '@electron/internal/browser/ipc-main-internal';
|
import { ipcMainInternal } from '@electron/internal/browser/ipc-main-internal';
|
||||||
import * as ipcMainUtils from '@electron/internal/browser/ipc-main-internal-utils';
|
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) {
|
const convertToMenuTemplate = function (items: ContextMenuItem[], handler: (id: number) => void) {
|
||||||
return items.map(function (item) {
|
return items.map(function (item) {
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
import { webContents } from 'electron/main';
|
|
||||||
import { ipcMainInternal } from '@electron/internal/browser/ipc-main-internal';
|
import { ipcMainInternal } from '@electron/internal/browser/ipc-main-internal';
|
||||||
import * as ipcMainUtils from '@electron/internal/browser/ipc-main-internal-utils';
|
import * as ipcMainUtils from '@electron/internal/browser/ipc-main-internal-utils';
|
||||||
import { parseWebViewWebPreferences } from '@electron/internal/browser/parse-features-string';
|
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 { webViewEvents } from '@electron/internal/browser/web-view-events';
|
||||||
import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
|
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 {
|
interface GuestInstance {
|
||||||
elementInstanceId: number;
|
elementInstanceId: number;
|
||||||
|
|
|
@ -5,9 +5,10 @@
|
||||||
* out-of-process (cross-origin) are created here. "Embedder" roughly means
|
* out-of-process (cross-origin) are created here. "Embedder" roughly means
|
||||||
* "parent."
|
* "parent."
|
||||||
*/
|
*/
|
||||||
|
import { parseFeatures } from '@electron/internal/browser/parse-features-string';
|
||||||
|
|
||||||
import { BrowserWindow } from 'electron/main';
|
import { BrowserWindow } from 'electron/main';
|
||||||
import type { BrowserWindowConstructorOptions, Referrer, WebContents, LoadURLOptions } 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']
|
type PostData = LoadURLOptions['postData']
|
||||||
export type WindowOpenArgs = {
|
export type WindowOpenArgs = {
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
|
import type * as defaultMenuModule from '@electron/internal/browser/default-menu';
|
||||||
|
|
||||||
import { EventEmitter } from 'events';
|
import { EventEmitter } from 'events';
|
||||||
import * as fs from 'fs';
|
import * as fs from 'fs';
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
|
|
||||||
import type * as defaultMenuModule from '@electron/internal/browser/default-menu';
|
|
||||||
import type * as url from 'url';
|
import type * as url from 'url';
|
||||||
import type * as v8 from 'v8';
|
import type * as v8 from 'v8';
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { EventEmitter } from 'events';
|
|
||||||
import { IpcMainInvokeEvent } from 'electron/main';
|
import { IpcMainInvokeEvent } from 'electron/main';
|
||||||
|
|
||||||
|
import { EventEmitter } from 'events';
|
||||||
|
|
||||||
export class IpcMainImpl extends EventEmitter implements Electron.IpcMain {
|
export class IpcMainImpl extends EventEmitter implements Electron.IpcMain {
|
||||||
private _invokeHandlers: Map<string, (e: IpcMainInvokeEvent, ...args: any[]) => void> = new Map();
|
private _invokeHandlers: Map<string, (e: IpcMainInvokeEvent, ...args: any[]) => void> = new Map();
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
import { clipboard } from 'electron/common';
|
|
||||||
import * as fs from 'fs';
|
|
||||||
import { ipcMainInternal } from '@electron/internal/browser/ipc-main-internal';
|
import { ipcMainInternal } from '@electron/internal/browser/ipc-main-internal';
|
||||||
import * as ipcMainUtils from '@electron/internal/browser/ipc-main-internal-utils';
|
import * as ipcMainUtils from '@electron/internal/browser/ipc-main-internal-utils';
|
||||||
import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
|
import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
|
||||||
|
|
||||||
|
import { clipboard } from 'electron/common';
|
||||||
|
|
||||||
|
import * as fs from 'fs';
|
||||||
|
|
||||||
// Implements window.close()
|
// Implements window.close()
|
||||||
ipcMainInternal.on(IPC_MESSAGES.BROWSER_WINDOW_CLOSE, function (event) {
|
ipcMainInternal.on(IPC_MESSAGES.BROWSER_WINDOW_CLOSE, function (event) {
|
||||||
const window = event.sender.getOwnerBrowserWindow();
|
const window = event.sender.getOwnerBrowserWindow();
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
import * as url from 'url';
|
|
||||||
import { Readable, Writable } from 'stream';
|
|
||||||
import type {
|
import type {
|
||||||
ClientRequestConstructorOptions,
|
ClientRequestConstructorOptions,
|
||||||
UploadProgress
|
UploadProgress
|
||||||
} from 'electron/common';
|
} from 'electron/common';
|
||||||
|
|
||||||
|
import { Readable, Writable } from 'stream';
|
||||||
|
import * as url from 'url';
|
||||||
|
|
||||||
const {
|
const {
|
||||||
isValidHeaderName,
|
isValidHeaderName,
|
||||||
isValidHeaderValue,
|
isValidHeaderValue,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import * as util from 'util';
|
|
||||||
import type * as stream from 'stream';
|
|
||||||
|
|
||||||
import timers = require('timers');
|
import timers = require('timers');
|
||||||
|
import * as util from 'util';
|
||||||
|
|
||||||
|
import type * as stream from 'stream';
|
||||||
|
|
||||||
type AnyFn = (...args: any[]) => any
|
type AnyFn = (...args: any[]) => any
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
/* eslint-disable import/newline-after-import */
|
||||||
|
/* eslint-disable import/order */
|
||||||
// Initialize ASAR support in fs module.
|
// Initialize ASAR support in fs module.
|
||||||
import { wrapFsWithAsar } from './asar-fs-wrapper';
|
import { wrapFsWithAsar } from './asar-fs-wrapper';
|
||||||
wrapFsWithAsar(require('fs'));
|
wrapFsWithAsar(require('fs'));
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { defineProperties } from '@electron/internal/common/define-properties';
|
|
||||||
import { commonModuleList } from '@electron/internal/common/api/module-list';
|
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';
|
import { rendererModuleList } from '@electron/internal/renderer/api/module-list';
|
||||||
|
|
||||||
module.exports = {};
|
module.exports = {};
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import { ipcRenderer } from 'electron/renderer';
|
|
||||||
import { ipcRendererInternal } from '@electron/internal/renderer/ipc-renderer-internal';
|
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 webViewInitModule from '@electron/internal/renderer/web-view/web-view-init';
|
||||||
import type * as windowSetupModule from '@electron/internal/renderer/window-setup';
|
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 { mainFrame } = process._linkedBinding('electron_renderer_web_frame');
|
||||||
const v8Util = process._linkedBinding('electron_common_v8_util');
|
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;
|
const { webFrameInit } = require('@electron/internal/renderer/web-frame-init') as typeof webFrameInitModule;
|
||||||
|
|
||||||
webFrameInit();
|
webFrameInit();
|
||||||
|
|
||||||
// Warn about security issues
|
// Warn about security issues
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import * as path from 'path';
|
|
||||||
import { pathToFileURL } from 'url';
|
|
||||||
import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
|
import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
|
||||||
|
|
||||||
import type * as ipcRendererInternalModule from '@electron/internal/renderer/ipc-renderer-internal';
|
import type * as ipcRendererInternalModule from '@electron/internal/renderer/ipc-renderer-internal';
|
||||||
import type * as ipcRendererUtilsModule from '@electron/internal/renderer/ipc-renderer-internal-utils';
|
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;
|
const Module = require('module') as NodeJS.ModuleInternal;
|
||||||
|
|
||||||
// We do not want to allow use of the VM module in the renderer process as
|
// We do not want to allow use of the VM module in the renderer process as
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
|
import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
|
||||||
import { internalContextBridge } from '@electron/internal/renderer/api/context-bridge';
|
import { internalContextBridge } from '@electron/internal/renderer/api/context-bridge';
|
||||||
import { ipcRendererInternal } from '@electron/internal/renderer/ipc-renderer-internal';
|
import { ipcRendererInternal } from '@electron/internal/renderer/ipc-renderer-internal';
|
||||||
import * as ipcRendererUtils from '@electron/internal/renderer/ipc-renderer-internal-utils';
|
import * as ipcRendererUtils from '@electron/internal/renderer/ipc-renderer-internal-utils';
|
||||||
|
|
||||||
import { webFrame } from 'electron/renderer';
|
import { webFrame } from 'electron/renderer';
|
||||||
import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
|
|
||||||
|
|
||||||
const { contextIsolationEnabled } = internalContextBridge;
|
const { contextIsolationEnabled } = internalContextBridge;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { ipcRendererInternal } from '@electron/internal/renderer/ipc-renderer-internal';
|
|
||||||
import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
|
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');
|
const { mainFrame: webFrame } = process._linkedBinding('electron_renderer_web_frame');
|
||||||
|
|
||||||
|
|
|
@ -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 { 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
|
// All keys of WebFrame that extend Function
|
||||||
type WebFrameMethod = {
|
type WebFrameMethod = {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
|
import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
|
||||||
import { ipcRendererInternal } from '@electron/internal/renderer/ipc-renderer-internal';
|
import { ipcRendererInternal } from '@electron/internal/renderer/ipc-renderer-internal';
|
||||||
import * as ipcRendererUtils from '@electron/internal/renderer/ipc-renderer-internal-utils';
|
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');
|
const { mainFrame: webFrame } = process._linkedBinding('electron_renderer_web_frame');
|
||||||
|
|
||||||
|
|
|
@ -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 { 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) {
|
const resolveURL = function (url?: string | null) {
|
||||||
return url ? new URL(url, location.href).href : '';
|
return url ? new URL(url, location.href).href : '';
|
||||||
|
|
|
@ -8,9 +8,9 @@
|
||||||
// which runs in browserify environment instead of Node environment, all native
|
// which runs in browserify environment instead of Node environment, all native
|
||||||
// modules must be passed from outside, all included files must be plain JS.
|
// 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 { 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 { 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>();
|
const internals = new WeakMap<HTMLElement, WebViewImpl>();
|
||||||
|
|
||||||
|
|
|
@ -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 { 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 type { WebViewAttribute, PartitionAttribute } from '@electron/internal/renderer/web-view/web-view-attributes';
|
||||||
import { setupWebViewAttributes } 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.
|
// ID generator.
|
||||||
let nextId = 0;
|
let nextId = 0;
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
import { ipcRendererInternal } from '@electron/internal/renderer/ipc-renderer-internal';
|
|
||||||
import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
|
import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
|
||||||
|
import { ipcRendererInternal } from '@electron/internal/renderer/ipc-renderer-internal';
|
||||||
import type * as webViewElementModule from '@electron/internal/renderer/web-view/web-view-element';
|
|
||||||
import type * as guestViewInternalModule from '@electron/internal/renderer/web-view/guest-view-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 v8Util = process._linkedBinding('electron_common_v8_util');
|
||||||
const { mainFrame: webFrame } = process._linkedBinding('electron_renderer_web_frame');
|
const { mainFrame: webFrame } = process._linkedBinding('electron_renderer_web_frame');
|
||||||
|
|
|
@ -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 { 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;
|
const { contextIsolationEnabled } = internalContextBridge;
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
|
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 events from 'events';
|
import * as events from 'events';
|
||||||
import { setImmediate, clearImmediate } from 'timers';
|
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';
|
|
||||||
|
|
||||||
declare const binding: {
|
declare const binding: {
|
||||||
get: (name: string) => any;
|
get: (name: string) => any;
|
||||||
|
|
|
@ -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 { IncomingMessage } from 'electron/utility';
|
||||||
import type { ClientRequestConstructorOptions } 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');
|
const { isOnline, resolveHost } = process._linkedBinding('electron_common_net');
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
import { ParentPort } from '@electron/internal/utility/parent-port';
|
||||||
|
|
||||||
import { EventEmitter } from 'events';
|
import { EventEmitter } from 'events';
|
||||||
import { pathToFileURL } from 'url';
|
import { pathToFileURL } from 'url';
|
||||||
|
|
||||||
import { ParentPort } from '@electron/internal/utility/parent-port';
|
|
||||||
|
|
||||||
const v8Util = process._linkedBinding('electron_common_v8_util');
|
const v8Util = process._linkedBinding('electron_common_v8_util');
|
||||||
|
|
||||||
const entryScript: string = v8Util.getHiddenValue(process, '_serviceStartupScript');
|
const entryScript: string = v8Util.getHiddenValue(process, '_serviceStartupScript');
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
import { EventEmitter } from 'events';
|
|
||||||
import { MessagePortMain } from '@electron/internal/browser/message-port-main';
|
import { MessagePortMain } from '@electron/internal/browser/message-port-main';
|
||||||
|
|
||||||
|
import { EventEmitter } from 'events';
|
||||||
|
|
||||||
const { createParentPort } = process._linkedBinding('electron_utility_parent_port');
|
const { createParentPort } = process._linkedBinding('electron_utility_parent_port');
|
||||||
|
|
||||||
export class ParentPort extends EventEmitter implements Electron.ParentPort {
|
export class ParentPort extends EventEmitter implements Electron.ParentPort {
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
const electron = require('./');
|
|
||||||
|
|
||||||
const proc = require('child_process');
|
const proc = require('child_process');
|
||||||
|
|
||||||
|
const electron = require('./');
|
||||||
|
|
||||||
const child = proc.spawn(electron, process.argv.slice(2), { stdio: 'inherit', windowsHide: false });
|
const child = proc.spawn(electron, process.argv.slice(2), { stdio: 'inherit', windowsHide: false });
|
||||||
child.on('close', function (code, signal) {
|
child.on('close', function (code, signal) {
|
||||||
if (code === null) {
|
if (code === null) {
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
const { version } = require('./package');
|
const { downloadArtifact } = require('@electron/get');
|
||||||
|
|
||||||
|
const extract = require('extract-zip');
|
||||||
|
|
||||||
const childProcess = require('child_process');
|
const childProcess = require('child_process');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const os = require('os');
|
const os = require('os');
|
||||||
const path = require('path');
|
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) {
|
if (process.env.ELECTRON_SKIP_BINARY_DOWNLOAD) {
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
const { parseDocs } = require('@electron/docs-parser');
|
const { parseDocs } = require('@electron/docs-parser');
|
||||||
|
|
||||||
const fs = require('node:fs');
|
const fs = require('node:fs');
|
||||||
const path = require('node:path');
|
const path = require('node:path');
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
const args = require('minimist')(process.argv.slice(2));
|
|
||||||
const { Octokit } = require('@octokit/rest');
|
const { Octokit } = require('@octokit/rest');
|
||||||
|
const minimist = require('minimist');
|
||||||
|
|
||||||
|
const args = minimist(process.argv.slice(2));
|
||||||
|
|
||||||
const octokit = new Octokit();
|
const octokit = new Octokit();
|
||||||
|
|
||||||
async function checkIfDocOnlyChange () {
|
async function checkIfDocOnlyChange () {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
const fs = require('node:fs');
|
|
||||||
const semver = require('semver');
|
const semver = require('semver');
|
||||||
|
|
||||||
|
const fs = require('node:fs');
|
||||||
|
|
||||||
const outputPath = process.argv[2];
|
const outputPath = process.argv[2];
|
||||||
const currentVersion = process.argv[3];
|
const currentVersion = process.argv[3];
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
const asar = require('@electron/asar');
|
const asar = require('@electron/asar');
|
||||||
|
|
||||||
const crypto = require('node:crypto');
|
const crypto = require('node:crypto');
|
||||||
const fs = require('node:fs');
|
const fs = require('node:fs');
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
const asar = require('@electron/asar');
|
const asar = require('@electron/asar');
|
||||||
|
|
||||||
const assert = require('node:assert');
|
const assert = require('node:assert');
|
||||||
const fs = require('node:fs');
|
const fs = require('node:fs');
|
||||||
const os = require('node:os');
|
const os = require('node:os');
|
||||||
|
|
|
@ -4,9 +4,12 @@ Usage:
|
||||||
$ node ./script/gn-check.js [--outDir=dirName]
|
$ node ./script/gn-check.js [--outDir=dirName]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
const minimist = require('minimist');
|
||||||
|
|
||||||
const cp = require('node:child_process');
|
const cp = require('node:child_process');
|
||||||
const path = require('node:path');
|
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');
|
const { getOutDir } = require('./lib/utils');
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
/* eslint-disable camelcase */
|
/* eslint-disable camelcase */
|
||||||
|
|
||||||
const { BlobServiceClient } = require('@azure/storage-blob');
|
const { BlobServiceClient } = require('@azure/storage-blob');
|
||||||
|
const minimist = require('minimist');
|
||||||
|
|
||||||
const path = require('node:path');
|
const path = require('node:path');
|
||||||
|
|
||||||
const { ELECTRON_ARTIFACTS_BLOB_STORAGE } = process.env;
|
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 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;
|
let { prefix = '/', key_prefix = '', _: files } = args;
|
||||||
if (prefix && !prefix.endsWith(path.sep)) prefix = path.resolve(prefix) + path.sep;
|
if (prefix && !prefix.endsWith(path.sep)) prefix = path.resolve(prefix) + path.sep;
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
const chalk = require('chalk');
|
const chalk = require('chalk');
|
||||||
const { GitProcess } = require('dugite');
|
const { GitProcess } = require('dugite');
|
||||||
|
|
||||||
const fs = require('node:fs');
|
const fs = require('node:fs');
|
||||||
const os = require('node:os');
|
const os = require('node:os');
|
||||||
const path = require('node:path');
|
const path = require('node:path');
|
||||||
|
|
|
@ -1,14 +1,16 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
const crypto = require('node:crypto');
|
|
||||||
const { GitProcess } = require('dugite');
|
|
||||||
const childProcess = require('node:child_process');
|
|
||||||
const { ESLint } = require('eslint');
|
|
||||||
const fs = require('node:fs');
|
|
||||||
const minimist = require('minimist');
|
|
||||||
const path = require('node:path');
|
|
||||||
const { getCodeBlocks } = require('@electron/lint-roller/dist/lib/markdown');
|
const { getCodeBlocks } = require('@electron/lint-roller/dist/lib/markdown');
|
||||||
|
|
||||||
|
const { GitProcess } = require('dugite');
|
||||||
|
const { ESLint } = require('eslint');
|
||||||
|
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 { chunkFilenames, findMatchingFiles } = require('./lib/utils');
|
const { chunkFilenames, findMatchingFiles } = require('./lib/utils');
|
||||||
|
|
||||||
const ELECTRON_ROOT = path.normalize(path.dirname(__dirname));
|
const ELECTRON_ROOT = path.normalize(path.dirname(__dirname));
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
const minimist = require('minimist');
|
||||||
|
|
||||||
const cp = require('node:child_process');
|
const cp = require('node:child_process');
|
||||||
const fs = require('node:fs');
|
const fs = require('node:fs');
|
||||||
const path = require('node:path');
|
const path = require('node:path');
|
||||||
|
@ -13,7 +15,7 @@ if (!require.main) {
|
||||||
throw new Error('Must call the nan spec runner directly');
|
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']
|
string: ['only']
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1,20 +1,23 @@
|
||||||
|
const minimist = require('minimist');
|
||||||
|
|
||||||
const cp = require('node:child_process');
|
const cp = require('node:child_process');
|
||||||
const fs = require('node:fs');
|
const fs = require('node:fs');
|
||||||
const path = require('node:path');
|
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'],
|
boolean: ['default', 'validateDisabled'],
|
||||||
string: ['jUnitDir']
|
string: ['jUnitDir']
|
||||||
});
|
});
|
||||||
|
|
||||||
const BASE = path.resolve(__dirname, '../..');
|
const BASE = path.resolve(__dirname, '../..');
|
||||||
const DISABLED_TESTS = require('./node-disabled-tests.json');
|
|
||||||
const NODE_DIR = path.resolve(BASE, 'third_party', 'electron_node');
|
const NODE_DIR = path.resolve(BASE, 'third_party', 'electron_node');
|
||||||
const JUNIT_DIR = args.jUnitDir ? path.resolve(args.jUnitDir) : null;
|
const JUNIT_DIR = args.jUnitDir ? path.resolve(args.jUnitDir) : null;
|
||||||
const TAP_FILE_NAME = 'test.tap';
|
const TAP_FILE_NAME = 'test.tap';
|
||||||
|
|
||||||
const utils = require('./lib/utils');
|
|
||||||
|
|
||||||
if (!require.main) {
|
if (!require.main) {
|
||||||
throw new Error('Must call the node spec runner directly');
|
throw new Error('Must call the node spec runner directly');
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
|
const { Octokit } = require('@octokit/rest');
|
||||||
|
const got = require('got');
|
||||||
|
|
||||||
const assert = require('node:assert');
|
const assert = require('node:assert');
|
||||||
const fs = require('node:fs');
|
const fs = require('node:fs');
|
||||||
const got = require('got');
|
|
||||||
const path = require('node:path');
|
const path = require('node:path');
|
||||||
|
|
||||||
const { handleGitCall, ELECTRON_DIR } = require('./lib/utils.js');
|
const { handleGitCall, ELECTRON_DIR } = require('./lib/utils.js');
|
||||||
const { Octokit } = require('@octokit/rest');
|
|
||||||
const octokit = new Octokit();
|
const octokit = new Octokit();
|
||||||
|
|
||||||
const APPVEYOR_IMAGES_URL = 'https://ci.appveyor.com/api/build-clouds';
|
const APPVEYOR_IMAGES_URL = 'https://ci.appveyor.com/api/build-clouds';
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
const { appCredentialsFromString, getTokenForRepo } = require('@electron/github-app-auth');
|
const { appCredentialsFromString, getTokenForRepo } = require('@electron/github-app-auth');
|
||||||
|
|
||||||
const cp = require('node:child_process');
|
const cp = require('node:child_process');
|
||||||
|
|
||||||
async function main () {
|
async function main () {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import { parseArgs } from 'node:util';
|
import { parseArgs } from 'node:util';
|
||||||
|
|
||||||
import { cleanReleaseArtifacts } from '../release-artifact-cleanup';
|
import { cleanReleaseArtifacts } from '../release-artifact-cleanup';
|
||||||
|
|
||||||
const { values: { tag: _tag, releaseID } } = parseArgs({
|
const { values: { tag: _tag, releaseID } } = parseArgs({
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
import { Octokit } from '@octokit/rest';
|
import { Octokit } from '@octokit/rest';
|
||||||
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 semver from 'semver';
|
||||||
import * as temp from 'temp';
|
import * as temp from 'temp';
|
||||||
|
|
||||||
import { getCurrentBranch, ELECTRON_DIR } from '../../lib/utils';
|
import * as childProcess from 'node:child_process';
|
||||||
import { getElectronVersion } from '../../lib/get-version';
|
import * as fs from 'node:fs';
|
||||||
|
import * as path from 'node:path';
|
||||||
|
|
||||||
|
import { getElectronVersion } from '../../lib/get-version';
|
||||||
|
import { getCurrentBranch, ELECTRON_DIR } from '../../lib/utils';
|
||||||
import { getAssetContents } from '../get-asset';
|
import { getAssetContents } from '../get-asset';
|
||||||
import { createGitHubTokenStrategy } from '../github-token';
|
import { createGitHubTokenStrategy } from '../github-token';
|
||||||
import { ELECTRON_ORG, ELECTRON_REPO, ElectronReleaseRepo, NIGHTLY_REPO } from '../types';
|
import { ELECTRON_ORG, ELECTRON_REPO, ElectronReleaseRepo, NIGHTLY_REPO } from '../types';
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import { Octokit } from '@octokit/rest';
|
import { Octokit } from '@octokit/rest';
|
||||||
|
|
||||||
import { createGitHubTokenStrategy } from './github-token';
|
import { createGitHubTokenStrategy } from './github-token';
|
||||||
import { ELECTRON_ORG, ELECTRON_REPO, ElectronReleaseRepo, NIGHTLY_REPO } from './types';
|
import { ELECTRON_ORG, ELECTRON_REPO, ElectronReleaseRepo, NIGHTLY_REPO } from './types';
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import { Octokit } from '@octokit/rest';
|
import { Octokit } from '@octokit/rest';
|
||||||
import got from 'got';
|
import got from 'got';
|
||||||
|
|
||||||
import { createGitHubTokenStrategy } from './github-token';
|
import { createGitHubTokenStrategy } from './github-token';
|
||||||
import { ELECTRON_ORG, ElectronReleaseRepo } from './types';
|
import { ELECTRON_ORG, ElectronReleaseRepo } from './types';
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import got from 'got';
|
import got from 'got';
|
||||||
|
|
||||||
import * as url from 'node:url';
|
import * as url from 'node:url';
|
||||||
|
|
||||||
const HASHER_FUNCTION_HOST = 'electron-artifact-hasher.azurewebsites.net';
|
const HASHER_FUNCTION_HOST = 'electron-artifact-hasher.azurewebsites.net';
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
import { Octokit } from '@octokit/rest';
|
||||||
import { GitProcess } from 'dugite';
|
import { GitProcess } from 'dugite';
|
||||||
import { basename } from 'node:path';
|
|
||||||
import { valid, compare, gte, lte } from 'semver';
|
import { valid, compare, gte, lte } from 'semver';
|
||||||
|
|
||||||
import { ELECTRON_DIR } from '../../lib/utils';
|
import { basename } from 'node:path';
|
||||||
import { get, render } from './notes';
|
|
||||||
|
|
||||||
import { Octokit } from '@octokit/rest';
|
|
||||||
import { createGitHubTokenStrategy } from '../github-token';
|
|
||||||
import { parseArgs } from 'node:util';
|
import { parseArgs } from 'node:util';
|
||||||
|
|
||||||
|
import { get, render } from './notes';
|
||||||
|
import { ELECTRON_DIR } from '../../lib/utils';
|
||||||
|
import { createGitHubTokenStrategy } from '../github-token';
|
||||||
import { ELECTRON_ORG, ELECTRON_REPO } from '../types';
|
import { ELECTRON_ORG, ELECTRON_REPO } from '../types';
|
||||||
|
|
||||||
const octokit = new Octokit({
|
const octokit = new Octokit({
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
#!/usr/bin/env node
|
#!/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 { Octokit } from '@octokit/rest';
|
||||||
import { GitProcess } from 'dugite';
|
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 { ELECTRON_DIR } from '../../lib/utils';
|
||||||
import { createGitHubTokenStrategy } from '../github-token';
|
import { createGitHubTokenStrategy } from '../github-token';
|
||||||
import { ELECTRON_ORG, ELECTRON_REPO } from '../types';
|
import { ELECTRON_ORG, ELECTRON_REPO } from '../types';
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
import { Octokit } from '@octokit/rest';
|
import { Octokit } from '@octokit/rest';
|
||||||
import * as chalk from 'chalk';
|
import * as chalk from 'chalk';
|
||||||
import { GitProcess } from 'dugite';
|
import { GitProcess } from 'dugite';
|
||||||
|
|
||||||
import { execSync } from 'node:child_process';
|
import { execSync } from 'node:child_process';
|
||||||
import { join } from 'node:path';
|
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 { createGitHubTokenStrategy } from './github-token';
|
||||||
|
import releaseNotesGenerator from './notes';
|
||||||
|
import { runReleaseCIJobs } from './run-release-ci-jobs';
|
||||||
import { ELECTRON_ORG, ElectronReleaseRepo, VersionBumpType } from './types';
|
import { ELECTRON_ORG, ElectronReleaseRepo, VersionBumpType } from './types';
|
||||||
|
import { getCurrentBranch, ELECTRON_DIR } from '../lib/utils.js';
|
||||||
|
|
||||||
const pass = chalk.green('✓');
|
const pass = chalk.green('✓');
|
||||||
const fail = chalk.red('✗');
|
const fail = chalk.red('✗');
|
||||||
|
|
|
@ -4,17 +4,18 @@ import { BlobServiceClient } from '@azure/storage-blob';
|
||||||
import { Octokit } from '@octokit/rest';
|
import { Octokit } from '@octokit/rest';
|
||||||
import * as chalk from 'chalk';
|
import * as chalk from 'chalk';
|
||||||
import got from 'got';
|
import got from 'got';
|
||||||
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 { gte } from 'semver';
|
||||||
import { track as trackTemp } from 'temp';
|
import { track as trackTemp } from 'temp';
|
||||||
|
|
||||||
import { ELECTRON_DIR } from '../lib/utils';
|
import { execSync, ExecSyncOptions } from 'node:child_process';
|
||||||
import { getElectronVersion } from '../lib/get-version';
|
import { statSync, createReadStream, writeFileSync, close } from 'node:fs';
|
||||||
|
import { join } from 'node:path';
|
||||||
|
|
||||||
import { getUrlHash } from './get-url-hash';
|
import { getUrlHash } from './get-url-hash';
|
||||||
import { createGitHubTokenStrategy } from './github-token';
|
import { createGitHubTokenStrategy } from './github-token';
|
||||||
import { ELECTRON_ORG, ELECTRON_REPO, ElectronReleaseRepo, NIGHTLY_REPO } from './types';
|
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();
|
const temp = trackTemp();
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import { Octokit } from '@octokit/rest';
|
import { Octokit } from '@octokit/rest';
|
||||||
import got, { OptionsOfTextResponseBody } from 'got';
|
import got, { OptionsOfTextResponseBody } from 'got';
|
||||||
|
|
||||||
import * as assert from 'node:assert';
|
import * as assert from 'node:assert';
|
||||||
|
|
||||||
import { createGitHubTokenStrategy } from './github-token';
|
import { createGitHubTokenStrategy } from './github-token';
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
import { Octokit } from '@octokit/rest';
|
import { Octokit } from '@octokit/rest';
|
||||||
|
|
||||||
import * as fs from 'node:fs';
|
import * as fs from 'node:fs';
|
||||||
|
|
||||||
import { createGitHubTokenStrategy } from '../github-token';
|
import { createGitHubTokenStrategy } from '../github-token';
|
||||||
import { ELECTRON_ORG, ELECTRON_REPO, ElectronReleaseRepo, NIGHTLY_REPO } from '../types';
|
import { ELECTRON_ORG, ELECTRON_REPO, ElectronReleaseRepo, NIGHTLY_REPO } from '../types';
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,9 @@
|
||||||
|
|
||||||
import { valid, coerce, inc } from 'semver';
|
import { valid, coerce, inc } from 'semver';
|
||||||
|
|
||||||
import { getElectronVersion } from '../lib/get-version';
|
import { parseArgs } from 'node:util';
|
||||||
|
|
||||||
|
import { VersionBumpType } from './types';
|
||||||
import {
|
import {
|
||||||
isNightly,
|
isNightly,
|
||||||
isAlpha,
|
isAlpha,
|
||||||
|
@ -12,8 +14,7 @@ import {
|
||||||
nextBeta,
|
nextBeta,
|
||||||
isStable
|
isStable
|
||||||
} from './version-utils';
|
} from './version-utils';
|
||||||
import { VersionBumpType } from './types';
|
import { getElectronVersion } from '../lib/get-version';
|
||||||
import { parseArgs } from 'node:util';
|
|
||||||
|
|
||||||
// run the script
|
// run the script
|
||||||
async function main () {
|
async function main () {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import * as semver from 'semver';
|
|
||||||
import { GitProcess } from 'dugite';
|
import { GitProcess } from 'dugite';
|
||||||
|
import * as semver from 'semver';
|
||||||
|
|
||||||
import { ELECTRON_DIR } from '../lib/utils';
|
import { ELECTRON_DIR } from '../lib/utils';
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,14 @@
|
||||||
import * as childProcess from 'node:child_process';
|
|
||||||
import * as fs from 'node:fs';
|
|
||||||
import * as minimist from 'minimist';
|
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 streamChain from 'stream-chain';
|
||||||
import * as streamJson from 'stream-json';
|
import * as streamJson from 'stream-json';
|
||||||
import { ignore as streamJsonIgnore } from 'stream-json/filters/Ignore';
|
import { ignore as streamJsonIgnore } from 'stream-json/filters/Ignore';
|
||||||
import { streamArray as streamJsonStreamArray } from 'stream-json/streamers/StreamArray';
|
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';
|
import { chunkFilenames, findMatchingFiles } from './lib/utils';
|
||||||
|
|
||||||
const SOURCE_ROOT = path.normalize(path.dirname(__dirname));
|
const SOURCE_ROOT = path.normalize(path.dirname(__dirname));
|
||||||
|
|
|
@ -1,19 +1,23 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
const { ElectronVersions, Installer } = require('@electron/fiddle-core');
|
const { ElectronVersions, Installer } = require('@electron/fiddle-core');
|
||||||
|
|
||||||
const chalk = require('chalk');
|
const chalk = require('chalk');
|
||||||
|
const { hashElement } = require('folder-hash');
|
||||||
|
const minimist = require('minimist');
|
||||||
|
|
||||||
const childProcess = require('node:child_process');
|
const childProcess = require('node:child_process');
|
||||||
const crypto = require('node:crypto');
|
const crypto = require('node:crypto');
|
||||||
const fs = require('node:fs');
|
const fs = require('node:fs');
|
||||||
const { hashElement } = require('folder-hash');
|
|
||||||
const os = require('node:os');
|
const os = require('node:os');
|
||||||
const path = require('node:path');
|
const path = require('node:path');
|
||||||
|
|
||||||
const unknownFlags = [];
|
const unknownFlags = [];
|
||||||
|
|
||||||
const pass = chalk.green('✓');
|
const pass = chalk.green('✓');
|
||||||
const fail = chalk.red('✗');
|
const fail = chalk.red('✗');
|
||||||
|
|
||||||
const args = require('minimist')(process.argv, {
|
const args = minimist(process.argv, {
|
||||||
string: ['runners', 'target', 'electronVersion'],
|
string: ['runners', 'target', 'electronVersion'],
|
||||||
unknown: arg => unknownFlags.push(arg)
|
unknown: arg => unknownFlags.push(arg)
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
const fs = require('node:fs');
|
|
||||||
const glob = require('glob');
|
const glob = require('glob');
|
||||||
|
|
||||||
|
const fs = require('node:fs');
|
||||||
|
|
||||||
const currentShard = parseInt(process.argv[2], 10);
|
const currentShard = parseInt(process.argv[2], 10);
|
||||||
const shardCount = parseInt(process.argv[3], 10);
|
const shardCount = parseInt(process.argv[3], 10);
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
const cp = require('node:child_process');
|
const cp = require('node:child_process');
|
||||||
|
|
||||||
const utils = require('./lib/utils');
|
const utils = require('./lib/utils');
|
||||||
|
|
||||||
const electronPath = utils.getAbsoluteElectronExec();
|
const electronPath = utils.getAbsoluteElectronExec();
|
||||||
|
|
||||||
const child = cp.spawn(electronPath, process.argv.slice(2), { stdio: 'inherit' });
|
const child = cp.spawn(electronPath, process.argv.slice(2), { stdio: 'inherit' });
|
||||||
|
|
|
@ -1,18 +1,21 @@
|
||||||
|
import { app, BrowserWindow, Menu, session, net as electronNet, WebContents, utilityProcess } from 'electron/main';
|
||||||
|
|
||||||
import { assert, expect } from 'chai';
|
import { assert, expect } from 'chai';
|
||||||
|
import * as semver from 'semver';
|
||||||
|
import split = require('split')
|
||||||
|
|
||||||
import * as cp from 'node:child_process';
|
import * as cp from 'node:child_process';
|
||||||
import * as https from 'node:https';
|
import { once } from 'node:events';
|
||||||
import * as http from 'node:http';
|
|
||||||
import * as net from 'node:net';
|
|
||||||
import * as fs from 'node:fs';
|
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 path from 'node:path';
|
import * as path from 'node:path';
|
||||||
import { promisify } from 'node:util';
|
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 { collectStreamBody, getResponse } from './lib/net-helpers';
|
||||||
import { once } from 'node:events';
|
import { ifdescribe, ifit, listen, waitUntil } from './lib/spec-helpers';
|
||||||
import split = require('split')
|
import { closeWindow, closeAllWindows } from './lib/window-helpers';
|
||||||
import * as semver from 'semver';
|
|
||||||
|
|
||||||
const fixturesPath = path.resolve(__dirname, 'fixtures');
|
const fixturesPath = path.resolve(__dirname, 'fixtures');
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
import { autoUpdater } from 'electron/main';
|
import { autoUpdater } from 'electron/main';
|
||||||
|
|
||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
import { ifit, ifdescribe } from './lib/spec-helpers';
|
|
||||||
import { once } from 'node:events';
|
import { once } from 'node:events';
|
||||||
|
|
||||||
|
import { ifit, ifdescribe } from './lib/spec-helpers';
|
||||||
|
|
||||||
ifdescribe(!process.mas)('autoUpdater module', function () {
|
ifdescribe(!process.mas)('autoUpdater module', function () {
|
||||||
describe('checkForUpdates', function () {
|
describe('checkForUpdates', function () {
|
||||||
ifit(process.platform === 'win32')('emits an error on Windows if the feed URL is not set', async function () {
|
ifit(process.platform === 'win32')('emits an error on Windows if the feed URL is not set', async function () {
|
||||||
|
|
|
@ -1,16 +1,19 @@
|
||||||
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 { AddressInfo } from 'node:net';
|
|
||||||
import { ifdescribe, ifit } from './lib/spec-helpers';
|
|
||||||
import { copyMacOSFixtureApp, getCodesignIdentity, shouldRunCodesignTests, signApp, spawn } from './lib/codesign-helpers';
|
|
||||||
import * as uuid from 'uuid';
|
|
||||||
import { autoUpdater, systemPreferences } from 'electron';
|
import { autoUpdater, systemPreferences } from 'electron';
|
||||||
|
|
||||||
|
import { expect } from 'chai';
|
||||||
|
import * as express from 'express';
|
||||||
|
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 * as path from 'node:path';
|
||||||
|
|
||||||
|
import { copyMacOSFixtureApp, getCodesignIdentity, shouldRunCodesignTests, signApp, spawn } from './lib/codesign-helpers';
|
||||||
import { withTempDirectory } from './lib/fs-helpers';
|
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
|
// We can only test the auto updater on darwin non-component builds
|
||||||
ifdescribe(shouldRunCodesignTests)('autoUpdater behavior', function () {
|
ifdescribe(shouldRunCodesignTests)('autoUpdater behavior', function () {
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
import { expect } from 'chai';
|
|
||||||
import * as path from 'node:path';
|
|
||||||
import { BrowserView, BrowserWindow, screen, webContents } from 'electron/main';
|
import { BrowserView, BrowserWindow, screen, webContents } from 'electron/main';
|
||||||
import { closeWindow } from './lib/window-helpers';
|
|
||||||
import { defer, ifit, startRemoteControlApp } from './lib/spec-helpers';
|
import { expect } from 'chai';
|
||||||
import { ScreenCapture } from './lib/screen-helpers';
|
|
||||||
import { once } from 'node:events';
|
import { once } from 'node:events';
|
||||||
|
import * as path from 'node:path';
|
||||||
|
|
||||||
|
import { ScreenCapture } from './lib/screen-helpers';
|
||||||
|
import { defer, ifit, startRemoteControlApp } from './lib/spec-helpers';
|
||||||
|
import { closeWindow } from './lib/window-helpers';
|
||||||
|
|
||||||
describe('BrowserView module', () => {
|
describe('BrowserView module', () => {
|
||||||
const fixtures = path.resolve(__dirname, 'fixtures');
|
const fixtures = path.resolve(__dirname, 'fixtures');
|
||||||
|
|
|
@ -1,20 +1,22 @@
|
||||||
import { expect } from 'chai';
|
|
||||||
import * as childProcess from 'node:child_process';
|
|
||||||
import * as path from 'node:path';
|
|
||||||
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 { 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 { once } from 'node:events';
|
||||||
|
import * as fs from 'node:fs';
|
||||||
|
import * as http from 'node:http';
|
||||||
|
import { AddressInfo } from 'node:net';
|
||||||
|
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 { emittedUntil, emittedNTimes } from './lib/events-helpers';
|
||||||
|
import { HexColors, hasCapturableScreen, ScreenCapture } from './lib/screen-helpers';
|
||||||
import { ifit, ifdescribe, defer, listen } from './lib/spec-helpers';
|
import { ifit, ifdescribe, defer, listen } from './lib/spec-helpers';
|
||||||
import { closeWindow, closeAllWindows } from './lib/window-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 fixtures = path.resolve(__dirname, 'fixtures');
|
||||||
const mainFixtures = path.resolve(__dirname, 'fixtures');
|
const mainFixtures = path.resolve(__dirname, 'fixtures');
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
import { expect } from 'chai';
|
|
||||||
import * as path from 'node:path';
|
|
||||||
import { Buffer } from 'node:buffer';
|
|
||||||
import { ifdescribe, ifit } from './lib/spec-helpers';
|
|
||||||
import { clipboard, nativeImage } from 'electron/common';
|
import { clipboard, nativeImage } from 'electron/common';
|
||||||
|
|
||||||
|
import { expect } from 'chai';
|
||||||
|
|
||||||
|
import { Buffer } from 'node:buffer';
|
||||||
|
import * as path from 'node:path';
|
||||||
|
|
||||||
|
import { ifdescribe, ifit } from './lib/spec-helpers';
|
||||||
|
|
||||||
// FIXME(zcbenz): Clipboard tests are failing on WOA.
|
// FIXME(zcbenz): Clipboard tests are failing on WOA.
|
||||||
ifdescribe(process.platform !== 'win32' || process.arch !== 'arm64')('clipboard module', () => {
|
ifdescribe(process.platform !== 'win32' || process.arch !== 'arm64')('clipboard module', () => {
|
||||||
const fixtures = path.resolve(__dirname, 'fixtures');
|
const fixtures = path.resolve(__dirname, 'fixtures');
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
import { expect } from 'chai';
|
|
||||||
import { app, contentTracing, TraceConfig, TraceCategoriesAndOptions } from 'electron/main';
|
import { app, contentTracing, TraceConfig, TraceCategoriesAndOptions } from 'electron/main';
|
||||||
|
|
||||||
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import * as fs from 'node:fs';
|
import * as fs from 'node:fs';
|
||||||
import * as path from 'node:path';
|
import * as path from 'node:path';
|
||||||
import { setTimeout } from 'node:timers/promises';
|
import { setTimeout } from 'node:timers/promises';
|
||||||
|
|
||||||
import { ifdescribe } from './lib/spec-helpers';
|
import { ifdescribe } from './lib/spec-helpers';
|
||||||
|
|
||||||
// FIXME: The tests are skipped on linux arm/arm64
|
// FIXME: The tests are skipped on linux arm/arm64
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
import { BrowserWindow, ipcMain } from 'electron/main';
|
import { BrowserWindow, ipcMain } from 'electron/main';
|
||||||
import { contextBridge } from 'electron/renderer';
|
import { contextBridge } from 'electron/renderer';
|
||||||
|
|
||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
|
import * as cp from 'node:child_process';
|
||||||
|
import { once } from 'node:events';
|
||||||
import * as fs from 'node:fs';
|
import * as fs from 'node:fs';
|
||||||
import * as http from 'node:http';
|
import * as http from 'node:http';
|
||||||
import * as os from 'node:os';
|
import * as os from 'node:os';
|
||||||
import * as path from 'node:path';
|
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 { 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');
|
const fixturesPath = path.resolve(__dirname, 'fixtures', 'api', 'context-bridge');
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,18 @@
|
||||||
import { expect } from 'chai';
|
|
||||||
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 { 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 { EventEmitter } from 'node:events';
|
import { EventEmitter } from 'node:events';
|
||||||
import * as fs from 'node:fs';
|
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 { 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 isWindowsOnArm = process.platform === 'win32' && process.arch === 'arm64';
|
||||||
const isLinuxOnArm = process.platform === 'linux' && process.arch.includes('arm');
|
const isLinuxOnArm = process.platform === 'linux' && process.arch.includes('arm');
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
|
import { BrowserWindow } from 'electron/main';
|
||||||
|
|
||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
|
import { once } from 'node:events';
|
||||||
import * as http from 'node:http';
|
import * as http from 'node:http';
|
||||||
import * as path from 'node:path';
|
import * as path from 'node:path';
|
||||||
import { BrowserWindow } from 'electron/main';
|
|
||||||
import { closeAllWindows } from './lib/window-helpers';
|
|
||||||
import { emittedUntil } from './lib/events-helpers';
|
import { emittedUntil } from './lib/events-helpers';
|
||||||
import { listen } from './lib/spec-helpers';
|
import { listen } from './lib/spec-helpers';
|
||||||
import { once } from 'node:events';
|
import { closeAllWindows } from './lib/window-helpers';
|
||||||
|
|
||||||
describe('debugger module', () => {
|
describe('debugger module', () => {
|
||||||
const fixtures = path.resolve(__dirname, 'fixtures');
|
const fixtures = path.resolve(__dirname, 'fixtures');
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
import { expect } from 'chai';
|
|
||||||
import { screen, desktopCapturer, BrowserWindow } from 'electron/main';
|
import { screen, desktopCapturer, BrowserWindow } from 'electron/main';
|
||||||
|
|
||||||
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import { once } from 'node:events';
|
import { once } from 'node:events';
|
||||||
import { setTimeout } from 'node:timers/promises';
|
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';
|
import { closeAllWindows } from './lib/window-helpers';
|
||||||
|
|
||||||
ifdescribe(!process.arch.includes('arm') && process.platform !== 'win32')('desktopCapturer', () => {
|
ifdescribe(!process.arch.includes('arm') && process.platform !== 'win32')('desktopCapturer', () => {
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
import { expect } from 'chai';
|
|
||||||
import { dialog, BaseWindow, BrowserWindow } from 'electron/main';
|
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 { setTimeout } from 'node:timers/promises';
|
||||||
|
|
||||||
|
import { ifit } from './lib/spec-helpers';
|
||||||
|
import { closeAllWindows } from './lib/window-helpers';
|
||||||
|
|
||||||
describe('dialog module', () => {
|
describe('dialog module', () => {
|
||||||
describe('showOpenDialog', () => {
|
describe('showOpenDialog', () => {
|
||||||
afterEach(closeAllWindows);
|
afterEach(closeAllWindows);
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
import { expect } from 'chai';
|
|
||||||
import { globalShortcut } from 'electron/main';
|
import { globalShortcut } from 'electron/main';
|
||||||
|
|
||||||
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import { ifdescribe } from './lib/spec-helpers';
|
import { ifdescribe } from './lib/spec-helpers';
|
||||||
|
|
||||||
ifdescribe(process.platform !== 'win32')('globalShortcut module', () => {
|
ifdescribe(process.platform !== 'win32')('globalShortcut module', () => {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
import { expect } from 'chai';
|
|
||||||
import { inAppPurchase } from 'electron/main';
|
import { inAppPurchase } from 'electron/main';
|
||||||
|
|
||||||
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import { ifdescribe } from './lib/spec-helpers';
|
import { ifdescribe } from './lib/spec-helpers';
|
||||||
|
|
||||||
describe('inAppPurchase module', function () {
|
describe('inAppPurchase module', function () {
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
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 { ipcMain, BrowserWindow } from 'electron/main';
|
||||||
|
|
||||||
|
import { expect } from 'chai';
|
||||||
|
|
||||||
|
import * as cp from 'node:child_process';
|
||||||
import { once } from 'node:events';
|
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', () => {
|
describe('ipc main module', () => {
|
||||||
const fixtures = path.join(__dirname, 'fixtures');
|
const fixtures = path.join(__dirname, 'fixtures');
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
import { expect } from 'chai';
|
|
||||||
import { ipcMain, BrowserWindow } from 'electron/main';
|
import { ipcMain, BrowserWindow } from 'electron/main';
|
||||||
import { closeWindow } from './lib/window-helpers';
|
|
||||||
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import { once } from 'node:events';
|
import { once } from 'node:events';
|
||||||
|
|
||||||
|
import { closeWindow } from './lib/window-helpers';
|
||||||
|
|
||||||
describe('ipcRenderer module', () => {
|
describe('ipcRenderer module', () => {
|
||||||
let w: BrowserWindow;
|
let w: BrowserWindow;
|
||||||
before(async () => {
|
before(async () => {
|
||||||
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче