зеркало из https://github.com/electron/electron.git
build: update some build dependencies (#43882)
* build: update some build dependencies * build: fix eslint issues after updating * build: disable ts check on busted js example * build: update internal types for stricter event handling * restore url.parse behavior * fix typing issues * sigh * build: update easy deps * build: skip woa engines check
This commit is contained in:
Родитель
15db63e26d
Коммит
74af96da16
|
@ -19,7 +19,7 @@
|
||||||
"prefer-const": ["error", {
|
"prefer-const": ["error", {
|
||||||
"destructuring": "all"
|
"destructuring": "all"
|
||||||
}],
|
}],
|
||||||
"standard/no-callback-literal": "off"
|
"n/no-callback-literal": "off"
|
||||||
},
|
},
|
||||||
"parserOptions": {
|
"parserOptions": {
|
||||||
"ecmaVersion": 6,
|
"ecmaVersion": 6,
|
||||||
|
|
|
@ -70,8 +70,9 @@ for:
|
||||||
- job_name: Build Arm on X64 Windows
|
- job_name: Build Arm on X64 Windows
|
||||||
|
|
||||||
build_script:
|
build_script:
|
||||||
|
# TODO: Remove --ignore-engines once WOA image is up to node 20
|
||||||
- ps: |
|
- ps: |
|
||||||
node script/yarn.js install --frozen-lockfile
|
node script/yarn.js install --frozen-lockfile --ignore-engines
|
||||||
node script/doc-only-change.js --prNumber=$env:APPVEYOR_PULL_REQUEST_NUMBER
|
node script/doc-only-change.js --prNumber=$env:APPVEYOR_PULL_REQUEST_NUMBER
|
||||||
$env:SHOULD_SKIP_ARTIFACT_VALIDATION = "false"
|
$env:SHOULD_SKIP_ARTIFACT_VALIDATION = "false"
|
||||||
if ($LASTEXITCODE -eq 0) {
|
if ($LASTEXITCODE -eq 0) {
|
||||||
|
@ -264,7 +265,7 @@ for:
|
||||||
|
|
||||||
build_script:
|
build_script:
|
||||||
- ps: |
|
- ps: |
|
||||||
node script/yarn.js install --frozen-lockfile
|
node script/yarn.js install --frozen-lockfile --ignore-engines
|
||||||
node script/doc-only-change.js --prNumber=$env:APPVEYOR_PULL_REQUEST_NUMBER
|
node script/doc-only-change.js --prNumber=$env:APPVEYOR_PULL_REQUEST_NUMBER
|
||||||
if ($LASTEXITCODE -eq 0) {
|
if ($LASTEXITCODE -eq 0) {
|
||||||
Write-warning "Skipping build for doc only change"
|
Write-warning "Skipping build for doc only change"
|
||||||
|
|
|
@ -255,6 +255,7 @@ async function startRepl () {
|
||||||
// start the default app.
|
// start the default app.
|
||||||
if (option.file && !option.webdriver) {
|
if (option.file && !option.webdriver) {
|
||||||
const file = option.file;
|
const file = option.file;
|
||||||
|
// eslint-disable-next-line n/no-deprecated-api
|
||||||
const protocol = url.parse(file).protocol;
|
const protocol = url.parse(file).protocol;
|
||||||
const extension = path.extname(file);
|
const extension = path.extname(file);
|
||||||
if (protocol === 'http:' || protocol === 'https:' || protocol === 'file:' || protocol === 'chrome:') {
|
if (protocol === 'http:' || protocol === 'https:' || protocol === 'file:' || protocol === 'chrome:') {
|
||||||
|
|
|
@ -126,10 +126,18 @@ or session log off.
|
||||||
|
|
||||||
#### Event: 'blur'
|
#### Event: 'blur'
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
* `event` Event
|
||||||
|
|
||||||
Emitted when the window loses focus.
|
Emitted when the window loses focus.
|
||||||
|
|
||||||
#### Event: 'focus'
|
#### Event: 'focus'
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
* `event` Event
|
||||||
|
|
||||||
Emitted when the window gains focus.
|
Emitted when the window gains focus.
|
||||||
|
|
||||||
#### Event: 'show'
|
#### Event: 'show'
|
||||||
|
|
|
@ -53,7 +53,7 @@ following properties:
|
||||||
[`request.followRedirect`](#requestfollowredirect) is invoked synchronously
|
[`request.followRedirect`](#requestfollowredirect) is invoked synchronously
|
||||||
during the [`redirect`](#event-redirect) event. Defaults to `follow`.
|
during the [`redirect`](#event-redirect) event. Defaults to `follow`.
|
||||||
* `origin` string (optional) - The origin URL of the request.
|
* `origin` string (optional) - The origin URL of the request.
|
||||||
* `referrerPolicy` string (optional) - can be `""`, `no-referrer`,
|
* `referrerPolicy` string (optional) - can be "", `no-referrer`,
|
||||||
`no-referrer-when-downgrade`, `origin`, `origin-when-cross-origin`,
|
`no-referrer-when-downgrade`, `origin`, `origin-when-cross-origin`,
|
||||||
`unsafe-url`, `same-origin`, `strict-origin`, or
|
`unsafe-url`, `same-origin`, `strict-origin`, or
|
||||||
`strict-origin-when-cross-origin`. Defaults to
|
`strict-origin-when-cross-origin`. Defaults to
|
||||||
|
|
|
@ -31,7 +31,7 @@ Emitted when a request has been canceled during an ongoing HTTP transaction.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
`error` Error - Typically holds an error string identifying failure root cause.
|
* `error` Error - Typically holds an error string identifying failure root cause.
|
||||||
|
|
||||||
Emitted when an error was encountered while streaming response data events. For
|
Emitted when an error was encountered while streaming response data events. For
|
||||||
instance, if the server closes the underlying while the response is still
|
instance, if the server closes the underlying while the response is still
|
||||||
|
|
|
@ -495,7 +495,7 @@ app.whenReady().then(() => {
|
||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
```js
|
```js @ts-nocheck
|
||||||
// Renderer Process
|
// Renderer Process
|
||||||
|
|
||||||
const portConnect = async () => {
|
const portConnect = async () => {
|
||||||
|
|
|
@ -251,33 +251,35 @@ export const roleList: Record<RoleId, Role> = {
|
||||||
{ role: 'cut' },
|
{ role: 'cut' },
|
||||||
{ role: 'copy' },
|
{ role: 'copy' },
|
||||||
{ role: 'paste' },
|
{ role: 'paste' },
|
||||||
...(isMac ? [
|
...(isMac
|
||||||
{ role: 'pasteAndMatchStyle' },
|
? [
|
||||||
{ role: 'delete' },
|
{ role: 'pasteAndMatchStyle' },
|
||||||
{ role: 'selectAll' },
|
{ role: 'delete' },
|
||||||
{ type: 'separator' },
|
{ role: 'selectAll' },
|
||||||
{
|
{ type: 'separator' },
|
||||||
label: 'Substitutions',
|
{
|
||||||
submenu: [
|
label: 'Substitutions',
|
||||||
{ role: 'showSubstitutions' },
|
submenu: [
|
||||||
{ type: 'separator' },
|
{ role: 'showSubstitutions' },
|
||||||
{ role: 'toggleSmartQuotes' },
|
{ type: 'separator' },
|
||||||
{ role: 'toggleSmartDashes' },
|
{ role: 'toggleSmartQuotes' },
|
||||||
{ role: 'toggleTextReplacement' }
|
{ role: 'toggleSmartDashes' },
|
||||||
]
|
{ role: 'toggleTextReplacement' }
|
||||||
},
|
]
|
||||||
{
|
},
|
||||||
label: 'Speech',
|
{
|
||||||
submenu: [
|
label: 'Speech',
|
||||||
{ role: 'startSpeaking' },
|
submenu: [
|
||||||
{ role: 'stopSpeaking' }
|
{ role: 'startSpeaking' },
|
||||||
]
|
{ role: 'stopSpeaking' }
|
||||||
}
|
]
|
||||||
] as MenuItemConstructorOptions[] : [
|
}
|
||||||
{ role: 'delete' },
|
] as MenuItemConstructorOptions[]
|
||||||
{ type: 'separator' },
|
: [
|
||||||
{ role: 'selectAll' }
|
{ role: 'delete' },
|
||||||
] as MenuItemConstructorOptions[])
|
{ type: 'separator' },
|
||||||
|
{ role: 'selectAll' }
|
||||||
|
] as MenuItemConstructorOptions[])
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
// View submenu
|
// View submenu
|
||||||
|
@ -301,12 +303,14 @@ export const roleList: Record<RoleId, Role> = {
|
||||||
submenu: [
|
submenu: [
|
||||||
{ role: 'minimize' },
|
{ role: 'minimize' },
|
||||||
{ role: 'zoom' },
|
{ role: 'zoom' },
|
||||||
...(isMac ? [
|
...(isMac
|
||||||
{ type: 'separator' },
|
? [
|
||||||
{ role: 'front' }
|
{ type: 'separator' },
|
||||||
] as MenuItemConstructorOptions[] : [
|
{ role: 'front' }
|
||||||
{ role: 'close' }
|
] as MenuItemConstructorOptions[]
|
||||||
] as MenuItemConstructorOptions[])
|
: [
|
||||||
|
{ role: 'close' }
|
||||||
|
] as MenuItemConstructorOptions[])
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
// Share submenu
|
// Share submenu
|
||||||
|
|
|
@ -117,10 +117,12 @@ class TouchBarColorPicker extends TouchBarItem<Electron.TouchBarColorPickerConst
|
||||||
@LiveProperty<TouchBarColorPicker>(config => config.selectedColor)
|
@LiveProperty<TouchBarColorPicker>(config => config.selectedColor)
|
||||||
selectedColor!: string;
|
selectedColor!: string;
|
||||||
|
|
||||||
@ImmutableProperty<TouchBarColorPicker>(({ change: onChange }, setInternalProp) => typeof onChange === 'function' ? (details: { color: string }) => {
|
@ImmutableProperty<TouchBarColorPicker>(({ change: onChange }, setInternalProp) => typeof onChange === 'function'
|
||||||
setInternalProp('selectedColor', details.color);
|
? (details: { color: string }) => {
|
||||||
onChange(details.color);
|
setInternalProp('selectedColor', details.color);
|
||||||
} : null)
|
onChange(details.color);
|
||||||
|
}
|
||||||
|
: null)
|
||||||
onInteraction!: Function | null;
|
onInteraction!: Function | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -203,10 +205,12 @@ class TouchBarSlider extends TouchBarItem<Electron.TouchBarSliderConstructorOpti
|
||||||
@LiveProperty<TouchBarSlider>(config => config.value)
|
@LiveProperty<TouchBarSlider>(config => config.value)
|
||||||
value!: number;
|
value!: number;
|
||||||
|
|
||||||
@ImmutableProperty<TouchBarSlider>(({ change: onChange }, setInternalProp) => typeof onChange === 'function' ? (details: { value: number }) => {
|
@ImmutableProperty<TouchBarSlider>(({ change: onChange }, setInternalProp) => typeof onChange === 'function'
|
||||||
setInternalProp('value', details.value);
|
? (details: { value: number }) => {
|
||||||
onChange(details.value);
|
setInternalProp('value', details.value);
|
||||||
} : null)
|
onChange(details.value);
|
||||||
|
}
|
||||||
|
: null)
|
||||||
onInteraction!: Function | null;
|
onInteraction!: Function | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -236,10 +240,12 @@ class TouchBarSegmentedControl extends TouchBarItem<Electron.TouchBarSegmentedCo
|
||||||
@LiveProperty<TouchBarSegmentedControl>(config => config.mode)
|
@LiveProperty<TouchBarSegmentedControl>(config => config.mode)
|
||||||
mode!: Electron.TouchBarSegmentedControl['mode'];
|
mode!: Electron.TouchBarSegmentedControl['mode'];
|
||||||
|
|
||||||
@ImmutableProperty<TouchBarSegmentedControl>(({ change: onChange }, setInternalProp) => typeof onChange === 'function' ? (details: { selectedIndex: number, isSelected: boolean }) => {
|
@ImmutableProperty<TouchBarSegmentedControl>(({ change: onChange }, setInternalProp) => typeof onChange === 'function'
|
||||||
setInternalProp('selectedIndex', details.selectedIndex);
|
? (details: { selectedIndex: number, isSelected: boolean }) => {
|
||||||
onChange(details.selectedIndex, details.isSelected);
|
setInternalProp('selectedIndex', details.selectedIndex);
|
||||||
} : null)
|
onChange(details.selectedIndex, details.isSelected);
|
||||||
|
}
|
||||||
|
: null)
|
||||||
onInteraction!: Function | null;
|
onInteraction!: Function | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -265,13 +271,15 @@ class TouchBarScrubber extends TouchBarItem<Electron.TouchBarScrubberConstructor
|
||||||
@LiveProperty<TouchBarScrubber>(config => typeof config.continuous === 'undefined' ? true : config.continuous)
|
@LiveProperty<TouchBarScrubber>(config => typeof config.continuous === 'undefined' ? true : config.continuous)
|
||||||
continuous!: boolean;
|
continuous!: boolean;
|
||||||
|
|
||||||
@ImmutableProperty<TouchBarScrubber>(({ select: onSelect, highlight: onHighlight }) => typeof onSelect === 'function' || typeof onHighlight === 'function' ? (details: { type: 'select'; selectedIndex: number } | { type: 'highlight'; highlightedIndex: number }) => {
|
@ImmutableProperty<TouchBarScrubber>(({ select: onSelect, highlight: onHighlight }) => typeof onSelect === 'function' || typeof onHighlight === 'function'
|
||||||
if (details.type === 'select') {
|
? (details: { type: 'select'; selectedIndex: number } | { type: 'highlight'; highlightedIndex: number }) => {
|
||||||
if (onSelect) onSelect(details.selectedIndex);
|
if (details.type === 'select') {
|
||||||
} else {
|
if (onSelect) onSelect(details.selectedIndex);
|
||||||
if (onHighlight) onHighlight(details.highlightedIndex);
|
} else {
|
||||||
}
|
if (onHighlight) onHighlight(details.highlightedIndex);
|
||||||
} : null)
|
}
|
||||||
|
}
|
||||||
|
: null)
|
||||||
onInteraction!: Function | null;
|
onInteraction!: Function | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { app, ipcMain, session, webFrameMain, dialog } from 'electron/main';
|
import { app, ipcMain, session, webFrameMain, dialog } from 'electron/main';
|
||||||
import type { BrowserWindowConstructorOptions, LoadURLOptions, MessageBoxOptions, WebFrameMain } from 'electron/main';
|
import type { BrowserWindowConstructorOptions, MessageBoxOptions } from 'electron/main';
|
||||||
|
|
||||||
import * as url from 'url';
|
import * as url from 'url';
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
|
@ -24,8 +24,6 @@ const getNextId = function () {
|
||||||
return ++nextId;
|
return ++nextId;
|
||||||
};
|
};
|
||||||
|
|
||||||
type PostData = LoadURLOptions['postData']
|
|
||||||
|
|
||||||
// Stock page sizes
|
// Stock page sizes
|
||||||
const PDFPageSizes: Record<string, ElectronInternal.MediaSize> = {
|
const PDFPageSizes: Record<string, ElectronInternal.MediaSize> = {
|
||||||
Letter: {
|
Letter: {
|
||||||
|
@ -403,7 +401,7 @@ WebContents.prototype.loadURL = function (url, options) {
|
||||||
// the only one is with a bad scheme, perhaps ERR_INVALID_ARGUMENT
|
// the only one is with a bad scheme, perhaps ERR_INVALID_ARGUMENT
|
||||||
// would be more appropriate.
|
// would be more appropriate.
|
||||||
if (!error) {
|
if (!error) {
|
||||||
error = { errorCode: -2, errorDescription: 'ERR_FAILED', url: url };
|
error = { errorCode: -2, errorDescription: 'ERR_FAILED', url };
|
||||||
}
|
}
|
||||||
finishListener();
|
finishListener();
|
||||||
};
|
};
|
||||||
|
@ -604,7 +602,7 @@ WebContents.prototype._init = function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Dispatch IPC messages to the ipc module.
|
// Dispatch IPC messages to the ipc module.
|
||||||
this.on('-ipc-message' as any, function (this: Electron.WebContents, event: Electron.IpcMainEvent, internal: boolean, channel: string, args: any[]) {
|
this.on('-ipc-message', function (this: Electron.WebContents, event, internal, channel, args) {
|
||||||
addSenderToEvent(event, this);
|
addSenderToEvent(event, this);
|
||||||
if (internal) {
|
if (internal) {
|
||||||
ipcMainInternal.emit(channel, event, ...args);
|
ipcMainInternal.emit(channel, event, ...args);
|
||||||
|
@ -618,7 +616,7 @@ WebContents.prototype._init = function () {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
this.on('-ipc-invoke' as any, async function (this: Electron.WebContents, event: Electron.IpcMainInvokeEvent, internal: boolean, channel: string, args: any[]) {
|
this.on('-ipc-invoke', async function (this: Electron.WebContents, event, internal, channel, args) {
|
||||||
addSenderToEvent(event, this);
|
addSenderToEvent(event, this);
|
||||||
const replyWithResult = (result: any) => event._replyChannel.sendReply({ result });
|
const replyWithResult = (result: any) => event._replyChannel.sendReply({ result });
|
||||||
const replyWithError = (error: Error) => {
|
const replyWithError = (error: Error) => {
|
||||||
|
@ -640,7 +638,7 @@ WebContents.prototype._init = function () {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
this.on('-ipc-message-sync' as any, function (this: Electron.WebContents, event: Electron.IpcMainEvent, internal: boolean, channel: string, args: any[]) {
|
this.on('-ipc-message-sync', function (this: Electron.WebContents, event, internal, channel, args) {
|
||||||
addSenderToEvent(event, this);
|
addSenderToEvent(event, this);
|
||||||
addReturnValueToEvent(event);
|
addReturnValueToEvent(event);
|
||||||
if (internal) {
|
if (internal) {
|
||||||
|
@ -658,7 +656,7 @@ WebContents.prototype._init = function () {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
this.on('-ipc-ports' as any, function (this: Electron.WebContents, event: Electron.IpcMainEvent, internal: boolean, channel: string, message: any, ports: any[]) {
|
this.on('-ipc-ports', function (this: Electron.WebContents, event: Electron.IpcMainEvent, internal: boolean, channel: string, message: any, ports: any[]) {
|
||||||
addSenderToEvent(event, this);
|
addSenderToEvent(event, this);
|
||||||
event.ports = ports.map(p => new MessagePortMain(p));
|
event.ports = ports.map(p => new MessagePortMain(p));
|
||||||
const maybeWebFrame = getWebFrameForEvent(event);
|
const maybeWebFrame = getWebFrameForEvent(event);
|
||||||
|
@ -676,7 +674,7 @@ WebContents.prototype._init = function () {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
this.on('-before-unload-fired' as any, function (this: Electron.WebContents, event: Electron.Event, proceed: boolean) {
|
this.on('-before-unload-fired', function (this: Electron.WebContents, event, proceed) {
|
||||||
const type = this.getType();
|
const type = this.getType();
|
||||||
// These are the "interactive" types, i.e. ones a user might be looking at.
|
// These are the "interactive" types, i.e. ones a user might be looking at.
|
||||||
// All other types should ignore the "proceed" signal and unload
|
// All other types should ignore the "proceed" signal and unload
|
||||||
|
@ -693,12 +691,13 @@ WebContents.prototype._init = function () {
|
||||||
|
|
||||||
if (this.getType() !== 'remote') {
|
if (this.getType() !== 'remote') {
|
||||||
// Make new windows requested by links behave like "window.open".
|
// Make new windows requested by links behave like "window.open".
|
||||||
this.on('-new-window' as any, (event: Electron.Event, url: string, frameName: string, disposition: Electron.HandlerDetails['disposition'],
|
this.on('-new-window', (event, url, frameName, disposition, rawFeatures, referrer, postData) => {
|
||||||
rawFeatures: string, referrer: Electron.Referrer, postData: PostData) => {
|
const postBody = postData
|
||||||
const postBody = postData ? {
|
? {
|
||||||
data: postData,
|
data: postData,
|
||||||
...parseContentTypeFormat(postData)
|
...parseContentTypeFormat(postData)
|
||||||
} : undefined;
|
}
|
||||||
|
: undefined;
|
||||||
const details: Electron.HandlerDetails = {
|
const details: Electron.HandlerDetails = {
|
||||||
url,
|
url,
|
||||||
frameName,
|
frameName,
|
||||||
|
@ -735,11 +734,13 @@ WebContents.prototype._init = function () {
|
||||||
let windowOpenOutlivesOpenerOption: boolean = false;
|
let windowOpenOutlivesOpenerOption: boolean = false;
|
||||||
let createWindow: Electron.CreateWindowFunction | undefined;
|
let createWindow: Electron.CreateWindowFunction | undefined;
|
||||||
|
|
||||||
this.on('-will-add-new-contents' as any, (event: Electron.Event, url: string, frameName: string, rawFeatures: string, disposition: Electron.HandlerDetails['disposition'], referrer: Electron.Referrer, postData: PostData) => {
|
this.on('-will-add-new-contents', (event, url, frameName, rawFeatures, disposition, referrer, postData) => {
|
||||||
const postBody = postData ? {
|
const postBody = postData
|
||||||
data: postData,
|
? {
|
||||||
...parseContentTypeFormat(postData)
|
data: postData,
|
||||||
} : undefined;
|
...parseContentTypeFormat(postData)
|
||||||
|
}
|
||||||
|
: undefined;
|
||||||
const details: Electron.HandlerDetails = {
|
const details: Electron.HandlerDetails = {
|
||||||
url,
|
url,
|
||||||
frameName,
|
frameName,
|
||||||
|
@ -761,14 +762,16 @@ WebContents.prototype._init = function () {
|
||||||
windowOpenOverriddenOptions = result.browserWindowConstructorOptions;
|
windowOpenOverriddenOptions = result.browserWindowConstructorOptions;
|
||||||
createWindow = result.createWindow;
|
createWindow = result.createWindow;
|
||||||
if (!event.defaultPrevented) {
|
if (!event.defaultPrevented) {
|
||||||
const secureOverrideWebPreferences = windowOpenOverriddenOptions ? {
|
const secureOverrideWebPreferences = windowOpenOverriddenOptions
|
||||||
// Allow setting of backgroundColor as a webPreference even though
|
? {
|
||||||
// it's technically a BrowserWindowConstructorOptions option because
|
// Allow setting of backgroundColor as a webPreference even though
|
||||||
// we need to access it in the renderer at init time.
|
// it's technically a BrowserWindowConstructorOptions option because
|
||||||
backgroundColor: windowOpenOverriddenOptions.backgroundColor,
|
// we need to access it in the renderer at init time.
|
||||||
transparent: windowOpenOverriddenOptions.transparent,
|
backgroundColor: windowOpenOverriddenOptions.backgroundColor,
|
||||||
...windowOpenOverriddenOptions.webPreferences
|
transparent: windowOpenOverriddenOptions.transparent,
|
||||||
} : undefined;
|
...windowOpenOverriddenOptions.webPreferences
|
||||||
|
}
|
||||||
|
: undefined;
|
||||||
const { webPreferences: parsedWebPreferences } = parseFeatures(rawFeatures);
|
const { webPreferences: parsedWebPreferences } = parseFeatures(rawFeatures);
|
||||||
const webPreferences = makeWebPreferences({
|
const webPreferences = makeWebPreferences({
|
||||||
embedder: this,
|
embedder: this,
|
||||||
|
@ -784,9 +787,7 @@ WebContents.prototype._init = function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Create a new browser window for "window.open"
|
// Create a new browser window for "window.open"
|
||||||
this.on('-add-new-contents' as any, (event: Electron.Event, webContents: Electron.WebContents, disposition: string,
|
this.on('-add-new-contents', (event, webContents, disposition, _userGesture, _left, _top, _width, _height, url, frameName, referrer, rawFeatures, postData) => {
|
||||||
_userGesture: boolean, _left: number, _top: number, _width: number, _height: number, url: string, frameName: string,
|
|
||||||
referrer: Electron.Referrer, rawFeatures: string, postData: PostData) => {
|
|
||||||
const overriddenOptions = windowOpenOverriddenOptions || undefined;
|
const overriddenOptions = windowOpenOverriddenOptions || undefined;
|
||||||
const outlivesOpener = windowOpenOutlivesOpenerOption;
|
const outlivesOpener = windowOpenOutlivesOpenerOption;
|
||||||
const windowOpenFunction = createWindow;
|
const windowOpenFunction = createWindow;
|
||||||
|
@ -824,7 +825,7 @@ WebContents.prototype._init = function () {
|
||||||
app.emit('login', event, this, ...args);
|
app.emit('login', event, this, ...args);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.on('ready-to-show' as any, () => {
|
this.on('ready-to-show', () => {
|
||||||
const owner = this.getOwnerBrowserWindow();
|
const owner = this.getOwnerBrowserWindow();
|
||||||
if (owner && !owner.isDestroyed()) {
|
if (owner && !owner.isDestroyed()) {
|
||||||
process.nextTick(() => {
|
process.nextTick(() => {
|
||||||
|
@ -843,7 +844,7 @@ WebContents.prototype._init = function () {
|
||||||
|
|
||||||
const originCounts = new Map<string, number>();
|
const originCounts = new Map<string, number>();
|
||||||
const openDialogs = new Set<AbortController>();
|
const openDialogs = new Set<AbortController>();
|
||||||
this.on('-run-dialog' as any, async (info: {frame: WebFrameMain, dialogType: 'prompt' | 'confirm' | 'alert', messageText: string, defaultPromptText: string}, callback: (success: boolean, user_input: string) => void) => {
|
this.on('-run-dialog', async (info, callback) => {
|
||||||
const originUrl = new URL(info.frame.url);
|
const originUrl = new URL(info.frame.url);
|
||||||
const origin = originUrl.protocol === 'file:' ? originUrl.href : originUrl.origin;
|
const origin = originUrl.protocol === 'file:' ? originUrl.href : originUrl.origin;
|
||||||
if ((originCounts.get(origin) ?? 0) < 0) return callback(false, '');
|
if ((originCounts.get(origin) ?? 0) < 0) return callback(false, '');
|
||||||
|
@ -864,15 +865,17 @@ WebContents.prototype._init = function () {
|
||||||
message: info.messageText,
|
message: info.messageText,
|
||||||
checkboxLabel: checkbox,
|
checkboxLabel: checkbox,
|
||||||
signal: abortController.signal,
|
signal: abortController.signal,
|
||||||
...(info.dialogType === 'confirm') ? {
|
...(info.dialogType === 'confirm')
|
||||||
buttons: ['OK', 'Cancel'],
|
? {
|
||||||
defaultId: 0,
|
buttons: ['OK', 'Cancel'],
|
||||||
cancelId: 1
|
defaultId: 0,
|
||||||
} : {
|
cancelId: 1
|
||||||
buttons: ['OK'],
|
}
|
||||||
defaultId: -1, // No default button
|
: {
|
||||||
cancelId: 0
|
buttons: ['OK'],
|
||||||
}
|
defaultId: -1, // No default button
|
||||||
|
cancelId: 0
|
||||||
|
}
|
||||||
};
|
};
|
||||||
openDialogs.add(abortController);
|
openDialogs.add(abortController);
|
||||||
const promise = parent && !prefs.offscreen ? dialog.showMessageBox(parent, options) : dialog.showMessageBox(options);
|
const promise = parent && !prefs.offscreen ? dialog.showMessageBox(parent, options) : dialog.showMessageBox(options);
|
||||||
|
@ -886,7 +889,7 @@ WebContents.prototype._init = function () {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
this.on('-cancel-dialogs' as any, () => {
|
this.on('-cancel-dialogs', () => {
|
||||||
for (const controller of openDialogs) { controller.abort(); }
|
for (const controller of openDialogs) { controller.abort(); }
|
||||||
openDialogs.clear();
|
openDialogs.clear();
|
||||||
});
|
});
|
||||||
|
|
|
@ -14,33 +14,35 @@ export const setDefaultApplicationMenu = () => {
|
||||||
|
|
||||||
const helpMenu: Electron.MenuItemConstructorOptions = {
|
const helpMenu: Electron.MenuItemConstructorOptions = {
|
||||||
role: 'help',
|
role: 'help',
|
||||||
submenu: app.isPackaged ? [] : [
|
submenu: app.isPackaged
|
||||||
{
|
? []
|
||||||
label: 'Learn More',
|
: [
|
||||||
click: async () => {
|
{
|
||||||
await shell.openExternal('https://electronjs.org');
|
label: 'Learn More',
|
||||||
}
|
click: async () => {
|
||||||
},
|
await shell.openExternal('https://electronjs.org');
|
||||||
{
|
}
|
||||||
label: 'Documentation',
|
},
|
||||||
click: async () => {
|
{
|
||||||
const version = process.versions.electron;
|
label: 'Documentation',
|
||||||
await shell.openExternal(`https://github.com/electron/electron/tree/v${version}/docs#readme`);
|
click: async () => {
|
||||||
}
|
const version = process.versions.electron;
|
||||||
},
|
await shell.openExternal(`https://github.com/electron/electron/tree/v${version}/docs#readme`);
|
||||||
{
|
}
|
||||||
label: 'Community Discussions',
|
},
|
||||||
click: async () => {
|
{
|
||||||
await shell.openExternal('https://discord.gg/electronjs');
|
label: 'Community Discussions',
|
||||||
}
|
click: async () => {
|
||||||
},
|
await shell.openExternal('https://discord.gg/electronjs');
|
||||||
{
|
}
|
||||||
label: 'Search Issues',
|
},
|
||||||
click: async () => {
|
{
|
||||||
await shell.openExternal('https://github.com/electron/electron/issues');
|
label: 'Search Issues',
|
||||||
}
|
click: async () => {
|
||||||
}
|
await shell.openExternal('https://github.com/electron/electron/issues');
|
||||||
]
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
const macAppMenu: Electron.MenuItemConstructorOptions = { role: 'appMenu' };
|
const macAppMenu: Electron.MenuItemConstructorOptions = { role: 'appMenu' };
|
||||||
|
|
|
@ -7,23 +7,29 @@ import { IPC_MESSAGES } from '@electron/internal//common/ipc-messages';
|
||||||
|
|
||||||
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) {
|
||||||
const transformed: Electron.MenuItemConstructorOptions = item.type === 'subMenu' ? {
|
const transformed: Electron.MenuItemConstructorOptions = item.type === 'subMenu'
|
||||||
type: 'submenu',
|
? {
|
||||||
label: item.label,
|
type: 'submenu',
|
||||||
enabled: item.enabled,
|
label: item.label,
|
||||||
submenu: convertToMenuTemplate(item.subItems, handler)
|
enabled: item.enabled,
|
||||||
} : item.type === 'separator' ? {
|
submenu: convertToMenuTemplate(item.subItems, handler)
|
||||||
type: 'separator'
|
}
|
||||||
} : item.type === 'checkbox' ? {
|
: item.type === 'separator'
|
||||||
type: 'checkbox',
|
? {
|
||||||
label: item.label,
|
type: 'separator'
|
||||||
enabled: item.enabled,
|
}
|
||||||
checked: item.checked
|
: item.type === 'checkbox'
|
||||||
} : {
|
? {
|
||||||
type: 'normal',
|
type: 'checkbox',
|
||||||
label: item.label,
|
label: item.label,
|
||||||
enabled: item.enabled
|
enabled: item.enabled,
|
||||||
};
|
checked: item.checked
|
||||||
|
}
|
||||||
|
: {
|
||||||
|
type: 'normal',
|
||||||
|
label: item.label,
|
||||||
|
enabled: item.enabled
|
||||||
|
};
|
||||||
|
|
||||||
if (item.id != null) {
|
if (item.id != null) {
|
||||||
transformed.click = () => handler(item.id);
|
transformed.click = () => handler(item.id);
|
||||||
|
|
|
@ -237,7 +237,7 @@ const watchEmbedder = function (embedder: Electron.WebContents) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
embedder.on('-window-visibility-change' as any, onVisibilityChange);
|
embedder.on('-window-visibility-change', onVisibilityChange);
|
||||||
|
|
||||||
embedder.once('will-destroy' as any, () => {
|
embedder.once('will-destroy' as any, () => {
|
||||||
// Usually the guestInstances is cleared when guest is destroyed, but it
|
// Usually the guestInstances is cleared when guest is destroyed, but it
|
||||||
|
@ -249,7 +249,7 @@ const watchEmbedder = function (embedder: Electron.WebContents) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Clear the listeners.
|
// Clear the listeners.
|
||||||
embedder.removeListener('-window-visibility-change' as any, onVisibilityChange);
|
embedder.removeListener('-window-visibility-change', onVisibilityChange);
|
||||||
watchedEmbedders.delete(embedder);
|
watchedEmbedders.delete(embedder);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -226,7 +226,7 @@ function validateHeader (name: any, value: any): void {
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseOptions (optionsIn: ClientRequestConstructorOptions | string): NodeJS.CreateURLLoaderOptions & ExtraURLLoaderOptions {
|
function parseOptions (optionsIn: ClientRequestConstructorOptions | string): NodeJS.CreateURLLoaderOptions & ExtraURLLoaderOptions {
|
||||||
// eslint-disable-next-line node/no-deprecated-api
|
// eslint-disable-next-line n/no-deprecated-api
|
||||||
const options: any = typeof optionsIn === 'string' ? url.parse(optionsIn) : { ...optionsIn };
|
const options: any = typeof optionsIn === 'string' ? url.parse(optionsIn) : { ...optionsIn };
|
||||||
|
|
||||||
let urlStr: string = options.url;
|
let urlStr: string = options.url;
|
||||||
|
@ -259,7 +259,7 @@ function parseOptions (optionsIn: ClientRequestConstructorOptions | string): Nod
|
||||||
// an invalid request.
|
// an invalid request.
|
||||||
throw new TypeError('Request path contains unescaped characters');
|
throw new TypeError('Request path contains unescaped characters');
|
||||||
}
|
}
|
||||||
// eslint-disable-next-line node/no-deprecated-api
|
// eslint-disable-next-line n/no-deprecated-api
|
||||||
const pathObj = url.parse(options.path || '/');
|
const pathObj = url.parse(options.path || '/');
|
||||||
urlObj.pathname = pathObj.pathname;
|
urlObj.pathname = pathObj.pathname;
|
||||||
urlObj.search = pathObj.search;
|
urlObj.search = pathObj.search;
|
||||||
|
|
|
@ -59,7 +59,7 @@ function isInstalled () {
|
||||||
if (fs.readFileSync(path.join(__dirname, 'path.txt'), 'utf-8') !== platformPath) {
|
if (fs.readFileSync(path.join(__dirname, 'path.txt'), 'utf-8') !== platformPath) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} catch (ignored) {
|
} catch {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
75
package.json
75
package.json
|
@ -4,72 +4,61 @@
|
||||||
"repository": "https://github.com/electron/electron",
|
"repository": "https://github.com/electron/electron",
|
||||||
"description": "Build cross platform desktop apps with JavaScript, HTML, and CSS",
|
"description": "Build cross platform desktop apps with JavaScript, HTML, and CSS",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@azure/storage-blob": "^12.9.0",
|
"@azure/storage-blob": "^12.25.0",
|
||||||
"@electron/asar": "^3.2.1",
|
"@electron/asar": "^3.2.13",
|
||||||
"@electron/docs-parser": "^1.2.1",
|
"@electron/docs-parser": "^1.2.3",
|
||||||
"@electron/fiddle-core": "^1.0.4",
|
"@electron/fiddle-core": "^1.3.4",
|
||||||
"@electron/github-app-auth": "^2.0.0",
|
"@electron/github-app-auth": "^2.2.1",
|
||||||
"@electron/lint-roller": "^2.3.0",
|
"@electron/lint-roller": "^2.4.0",
|
||||||
"@electron/typescript-definitions": "^8.15.2",
|
"@electron/typescript-definitions": "^8.15.8",
|
||||||
"@octokit/rest": "^19.0.7",
|
"@octokit/rest": "^20.0.2",
|
||||||
"@primer/octicons": "^10.0.0",
|
"@primer/octicons": "^10.0.0",
|
||||||
"@types/basic-auth": "^1.1.3",
|
"@types/minimist": "^1.2.5",
|
||||||
"@types/busboy": "^1.5.0",
|
|
||||||
"@types/chai": "^4.2.12",
|
|
||||||
"@types/chai-as-promised": "^8.0.1",
|
|
||||||
"@types/dirty-chai": "^2.0.2",
|
|
||||||
"@types/express": "^4.17.13",
|
|
||||||
"@types/minimist": "^1.2.0",
|
|
||||||
"@types/mocha": "^7.0.2",
|
|
||||||
"@types/node": "^20.9.0",
|
"@types/node": "^20.9.0",
|
||||||
"@types/semver": "^7.3.3",
|
"@types/semver": "^7.5.8",
|
||||||
"@types/send": "^0.14.5",
|
"@types/stream-json": "^1.7.7",
|
||||||
"@types/split": "^1.0.0",
|
"@types/temp": "^0.9.4",
|
||||||
"@types/stream-json": "^1.5.1",
|
"@types/webpack": "^5.28.5",
|
||||||
"@types/temp": "^0.8.34",
|
"@types/webpack-env": "^1.18.5",
|
||||||
"@types/uuid": "^3.4.6",
|
"@typescript-eslint/eslint-plugin": "^8.7.0",
|
||||||
"@types/w3c-web-serial": "^1.0.7",
|
"@typescript-eslint/parser": "^8.7.0",
|
||||||
"@types/webpack": "^5.28.0",
|
|
||||||
"@types/webpack-env": "^1.17.0",
|
|
||||||
"@typescript-eslint/eslint-plugin": "^5.59.7",
|
|
||||||
"@typescript-eslint/parser": "^5.59.7",
|
|
||||||
"buffer": "^6.0.3",
|
"buffer": "^6.0.3",
|
||||||
|
"chalk": "^4.1.0",
|
||||||
"check-for-leaks": "^1.2.1",
|
"check-for-leaks": "^1.2.1",
|
||||||
"colors": "1.4.0",
|
|
||||||
"dotenv-safe": "^4.0.4",
|
"dotenv-safe": "^4.0.4",
|
||||||
"dugite": "^2.3.0",
|
"dugite": "^2.7.1",
|
||||||
"eslint": "^8.57.1",
|
"eslint": "^8.57.1",
|
||||||
"eslint-config-standard": "^14.1.1",
|
"eslint-config-standard": "^17.1.0",
|
||||||
"eslint-plugin-import": "^2.26.0",
|
"eslint-plugin-import": "^2.30.0",
|
||||||
"eslint-plugin-mocha": "^7.0.1",
|
"eslint-plugin-mocha": "^10.5.0",
|
||||||
|
"eslint-plugin-n": "^16.6.2",
|
||||||
"eslint-plugin-node": "^11.1.0",
|
"eslint-plugin-node": "^11.1.0",
|
||||||
"eslint-plugin-promise": "^7.1.0",
|
"eslint-plugin-promise": "^6.6.0",
|
||||||
"eslint-plugin-standard": "^4.0.1",
|
"eslint-plugin-standard": "^5.0.0",
|
||||||
"eslint-plugin-unicorn": "^46.0.1",
|
"eslint-plugin-unicorn": "^55.0.0",
|
||||||
"events": "^3.2.0",
|
"events": "^3.2.0",
|
||||||
"express": "^4.20.0",
|
|
||||||
"folder-hash": "^2.1.1",
|
"folder-hash": "^2.1.1",
|
||||||
"got": "^11.8.5",
|
"got": "^11.8.5",
|
||||||
"husky": "^8.0.1",
|
"husky": "^8.0.1",
|
||||||
"lint": "^1.1.2",
|
"lint": "^1.1.2",
|
||||||
"lint-staged": "^10.2.11",
|
"lint-staged": "^10.2.11",
|
||||||
"markdownlint-cli2": "^0.13.0",
|
"markdownlint-cli2": "^0.13.0",
|
||||||
"minimist": "^1.2.6",
|
"minimist": "^1.2.8",
|
||||||
"null-loader": "^4.0.1",
|
"null-loader": "^4.0.1",
|
||||||
"pre-flight": "^1.1.0",
|
"pre-flight": "^2.0.0",
|
||||||
"process": "^0.11.10",
|
"process": "^0.11.10",
|
||||||
"remark-cli": "^10.0.0",
|
"remark-cli": "^10.0.0",
|
||||||
"remark-preset-lint-markdown-style-guide": "^4.0.0",
|
"remark-preset-lint-markdown-style-guide": "^4.0.0",
|
||||||
"semver": "^7.5.2",
|
"semver": "^7.6.3",
|
||||||
"shx": "^0.3.2",
|
"shx": "^0.3.4",
|
||||||
"stream-json": "^1.7.1",
|
"stream-json": "^1.8.0",
|
||||||
"tap-xunit": "^2.4.1",
|
"tap-xunit": "^2.4.1",
|
||||||
"temp": "^0.8.3",
|
"temp": "^0.9.4",
|
||||||
"timers-browserify": "1.4.2",
|
"timers-browserify": "1.4.2",
|
||||||
"ts-loader": "^8.0.2",
|
"ts-loader": "^8.0.2",
|
||||||
"ts-node": "6.2.0",
|
"ts-node": "6.2.0",
|
||||||
"typescript": "^5.1.2",
|
"typescript": "^5.1.2",
|
||||||
"url": "^0.11.0",
|
"url": "^0.11.4",
|
||||||
"webpack": "^5.94.0",
|
"webpack": "^5.94.0",
|
||||||
"webpack-cli": "^5.1.4",
|
"webpack-cli": "^5.1.4",
|
||||||
"wrapper-webpack-plugin": "^2.2.0"
|
"wrapper-webpack-plugin": "^2.2.0"
|
||||||
|
|
|
@ -26,6 +26,7 @@ async function checkIfDocOnlyChange () {
|
||||||
const nonDocChange = filesChanged.length === 0 || filesChanged.find(({ filename }) => {
|
const nonDocChange = filesChanged.length === 0 || filesChanged.find(({ filename }) => {
|
||||||
const fileDirs = filename.split('/');
|
const fileDirs = filename.split('/');
|
||||||
if (fileDirs[0] !== 'docs') return true;
|
if (fileDirs[0] !== 'docs') return true;
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
process.exit(nonDocChange ? 1 : 0);
|
process.exit(nonDocChange ? 1 : 0);
|
||||||
|
|
|
@ -15,7 +15,7 @@ module.exports.getElectronVersion = () => {
|
||||||
if (match) {
|
if (match) {
|
||||||
return match[1];
|
return match[1];
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch {
|
||||||
// Error may happen when trying to get version before running gn, which is a
|
// Error may happen when trying to get version before running gn, which is a
|
||||||
// valid case and error will be ignored.
|
// valid case and error will be ignored.
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
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');
|
||||||
|
@ -6,10 +7,9 @@ const path = require('node:path');
|
||||||
const ELECTRON_DIR = path.resolve(__dirname, '..', '..');
|
const ELECTRON_DIR = path.resolve(__dirname, '..', '..');
|
||||||
const SRC_DIR = path.resolve(ELECTRON_DIR, '..');
|
const SRC_DIR = path.resolve(ELECTRON_DIR, '..');
|
||||||
|
|
||||||
require('colors');
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||||
const pass = '✓'.green;
|
const pass = chalk.green('✓');
|
||||||
const fail = '✗'.red;
|
const fail = chalk.red('✗');
|
||||||
|
|
||||||
function getElectronExec () {
|
function getElectronExec () {
|
||||||
const OUT_DIR = getOutDir();
|
const OUT_DIR = getOutDir();
|
||||||
|
|
|
@ -144,7 +144,6 @@ const LINTERS = [{
|
||||||
cacheLocation: `node_modules/.eslintcache.${crypto.createHash('md5').update(fs.readFileSync(__filename)).digest('hex')}`,
|
cacheLocation: `node_modules/.eslintcache.${crypto.createHash('md5').update(fs.readFileSync(__filename)).digest('hex')}`,
|
||||||
extensions: ['.js', '.ts'],
|
extensions: ['.js', '.ts'],
|
||||||
fix: opts.fix,
|
fix: opts.fix,
|
||||||
overrideConfigFile: path.join(ELECTRON_ROOT, '.eslintrc.json'),
|
|
||||||
resolvePluginsRelativeTo: ELECTRON_ROOT
|
resolvePluginsRelativeTo: ELECTRON_ROOT
|
||||||
});
|
});
|
||||||
const formatter = await eslint.loadFormatter();
|
const formatter = await eslint.loadFormatter();
|
||||||
|
|
|
@ -8,6 +8,7 @@ const ciReleaseBuild = require('./ci-release-build');
|
||||||
const { Octokit } = require('@octokit/rest');
|
const { Octokit } = require('@octokit/rest');
|
||||||
const { execSync } = require('node:child_process');
|
const { execSync } = require('node:child_process');
|
||||||
const { GitProcess } = require('dugite');
|
const { GitProcess } = require('dugite');
|
||||||
|
const chalk = require('chalk');
|
||||||
|
|
||||||
const path = require('node:path');
|
const path = require('node:path');
|
||||||
const readline = require('node:readline');
|
const readline = require('node:readline');
|
||||||
|
@ -25,9 +26,8 @@ const octokit = new Octokit({
|
||||||
authStrategy: createGitHubTokenStrategy(getRepo())
|
authStrategy: createGitHubTokenStrategy(getRepo())
|
||||||
});
|
});
|
||||||
|
|
||||||
require('colors');
|
const pass = chalk.green('✓');
|
||||||
const pass = '✓'.green;
|
const fail = chalk.red('✗');
|
||||||
const fail = '✗'.red;
|
|
||||||
|
|
||||||
if (!bumpType && !args.notesOnly) {
|
if (!bumpType && !args.notesOnly) {
|
||||||
console.log('Usage: prepare-release [stable | minor | beta | alpha | nightly]' +
|
console.log('Usage: prepare-release [stable | minor | beta | alpha | nightly]' +
|
||||||
|
|
|
@ -6,11 +6,12 @@ const args = require('minimist')(process.argv.slice(2), {
|
||||||
default: { releaseID: '' }
|
default: { releaseID: '' }
|
||||||
});
|
});
|
||||||
const { Octokit } = require('@octokit/rest');
|
const { Octokit } = require('@octokit/rest');
|
||||||
|
const chalk = require('chalk');
|
||||||
|
|
||||||
const { createGitHubTokenStrategy } = require('./github-token');
|
const { createGitHubTokenStrategy } = require('./github-token');
|
||||||
|
|
||||||
require('colors');
|
const pass = chalk.green('✓');
|
||||||
const pass = '✓'.green;
|
const fail = chalk.red('✗');
|
||||||
const fail = '✗'.red;
|
|
||||||
|
|
||||||
async function deleteDraft (releaseId, targetRepo) {
|
async function deleteDraft (releaseId, targetRepo) {
|
||||||
const octokit = new Octokit({
|
const octokit = new Octokit({
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
if (!process.env.CI) require('dotenv-safe').load();
|
if (!process.env.CI) require('dotenv-safe').load();
|
||||||
|
|
||||||
|
const chalk = require('chalk');
|
||||||
const args = require('minimist')(process.argv.slice(2), {
|
const args = require('minimist')(process.argv.slice(2), {
|
||||||
boolean: [
|
boolean: [
|
||||||
'validateRelease',
|
'validateRelease',
|
||||||
|
@ -18,9 +19,8 @@ const temp = require('temp').track();
|
||||||
const { BlobServiceClient } = require('@azure/storage-blob');
|
const { BlobServiceClient } = require('@azure/storage-blob');
|
||||||
const { Octokit } = require('@octokit/rest');
|
const { Octokit } = require('@octokit/rest');
|
||||||
|
|
||||||
require('colors');
|
const pass = chalk.green('✓');
|
||||||
const pass = '✓'.green;
|
const fail = chalk.red('✗');
|
||||||
const fail = '✗'.red;
|
|
||||||
|
|
||||||
const { ELECTRON_DIR } = require('../lib/utils');
|
const { ELECTRON_DIR } = require('../lib/utils');
|
||||||
const { getElectronVersion } = require('../lib/get-version');
|
const { getElectronVersion } = require('../lib/get-version');
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#!/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 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');
|
||||||
|
@ -9,9 +10,8 @@ const os = require('node:os');
|
||||||
const path = require('node:path');
|
const path = require('node:path');
|
||||||
const unknownFlags = [];
|
const unknownFlags = [];
|
||||||
|
|
||||||
require('colors');
|
const pass = chalk.green('✓');
|
||||||
const pass = '✓'.green;
|
const fail = chalk.red('✗');
|
||||||
const fail = '✗'.red;
|
|
||||||
|
|
||||||
const args = require('minimist')(process.argv, {
|
const args = require('minimist')(process.argv, {
|
||||||
string: ['runners', 'target', 'electronVersion'],
|
string: ['runners', 'target', 'electronVersion'],
|
||||||
|
|
|
@ -327,7 +327,7 @@ describe('BrowserWindow module', () => {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'file',
|
type: 'file',
|
||||||
filePath: filePath,
|
filePath,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
length: fileStats.size,
|
length: fileStats.size,
|
||||||
modificationTime: fileStats.mtime.getTime() / 1000
|
modificationTime: fileStats.mtime.getTime() / 1000
|
||||||
|
@ -1677,7 +1677,7 @@ describe('BrowserWindow module', () => {
|
||||||
const backgroundColor = '#BBAAFF';
|
const backgroundColor = '#BBAAFF';
|
||||||
w.destroy();
|
w.destroy();
|
||||||
w = new BrowserWindow({
|
w = new BrowserWindow({
|
||||||
backgroundColor: backgroundColor
|
backgroundColor
|
||||||
});
|
});
|
||||||
expect(w.getBackgroundColor()).to.equal(backgroundColor);
|
expect(w.getBackgroundColor()).to.equal(backgroundColor);
|
||||||
});
|
});
|
||||||
|
|
|
@ -67,7 +67,9 @@ describe('contextBridge', () => {
|
||||||
describe(`with sandbox=${useSandbox}`, () => {
|
describe(`with sandbox=${useSandbox}`, () => {
|
||||||
const makeBindingWindow = async (bindingCreator: Function, worldId: number = 0) => {
|
const makeBindingWindow = async (bindingCreator: Function, worldId: number = 0) => {
|
||||||
const preloadContentForMainWorld = `const renderer_1 = require('electron');
|
const preloadContentForMainWorld = `const renderer_1 = require('electron');
|
||||||
${useSandbox ? '' : `require('node:v8').setFlagsFromString('--expose_gc');
|
${useSandbox
|
||||||
|
? ''
|
||||||
|
: `require('node:v8').setFlagsFromString('--expose_gc');
|
||||||
const gc=require('node:vm').runInNewContext('gc');
|
const gc=require('node:vm').runInNewContext('gc');
|
||||||
renderer_1.contextBridge.exposeInMainWorld('GCRunner', {
|
renderer_1.contextBridge.exposeInMainWorld('GCRunner', {
|
||||||
run: () => gc()
|
run: () => gc()
|
||||||
|
@ -75,7 +77,9 @@ describe('contextBridge', () => {
|
||||||
(${bindingCreator.toString()})();`;
|
(${bindingCreator.toString()})();`;
|
||||||
|
|
||||||
const preloadContentForIsolatedWorld = `const renderer_1 = require('electron');
|
const preloadContentForIsolatedWorld = `const renderer_1 = require('electron');
|
||||||
${useSandbox ? '' : `require('node:v8').setFlagsFromString('--expose_gc');
|
${useSandbox
|
||||||
|
? ''
|
||||||
|
: `require('node:v8').setFlagsFromString('--expose_gc');
|
||||||
const gc=require('node:vm').runInNewContext('gc');
|
const gc=require('node:vm').runInNewContext('gc');
|
||||||
renderer_1.webFrame.setIsolatedWorldInfo(${worldId}, {
|
renderer_1.webFrame.setIsolatedWorldInfo(${worldId}, {
|
||||||
name: "Isolated World"
|
name: "Isolated World"
|
||||||
|
|
|
@ -530,7 +530,8 @@ ifdescribe(!isLinuxOnArm && !process.mas && !process.env.DISABLE_CRASH_REPORTER_
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const processList = process.platform === 'linux' ? ['main', 'renderer', 'sandboxed-renderer']
|
const processList = process.platform === 'linux'
|
||||||
|
? ['main', 'renderer', 'sandboxed-renderer']
|
||||||
: ['main', 'renderer', 'sandboxed-renderer', 'node'];
|
: ['main', 'renderer', 'sandboxed-renderer', 'node'];
|
||||||
for (const crashingProcess of processList) {
|
for (const crashingProcess of processList) {
|
||||||
describe(`when ${crashingProcess} crashes`, () => {
|
describe(`when ${crashingProcess} crashes`, () => {
|
||||||
|
|
|
@ -88,8 +88,8 @@ describe('ipcRenderer module', () => {
|
||||||
}`);
|
}`);
|
||||||
|
|
||||||
const child = { hello: 'world' };
|
const child = { hello: 'world' };
|
||||||
const foo = { name: 'foo', child: child };
|
const foo = { name: 'foo', child };
|
||||||
const bar = { name: 'bar', child: child };
|
const bar = { name: 'bar', child };
|
||||||
const array = [foo, bar];
|
const array = [foo, bar];
|
||||||
|
|
||||||
const [, arrayValue, fooValue, barValue, childValue] = await once(ipcMain, 'message');
|
const [, arrayValue, fooValue, barValue, childValue] = await once(ipcMain, 'message');
|
||||||
|
|
|
@ -2,7 +2,6 @@ import { expect } from 'chai';
|
||||||
import { net, ClientRequest, ClientRequestConstructorOptions, utilityProcess } from 'electron/main';
|
import { net, ClientRequest, ClientRequestConstructorOptions, utilityProcess } from 'electron/main';
|
||||||
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 * as url from 'node:url';
|
|
||||||
import { once } from 'node:events';
|
import { once } from 'node:events';
|
||||||
import { setTimeout } from 'node:timers/promises';
|
import { setTimeout } from 'node:timers/promises';
|
||||||
import { collectStreamBody, collectStreamBodyBuffer, getResponse, kOneKiloByte, kOneMegaByte, randomBuffer, randomString, respondNTimes, respondOnce } from './lib/net-helpers';
|
import { collectStreamBody, collectStreamBodyBuffer, getResponse, kOneKiloByte, kOneMegaByte, randomBuffer, randomString, respondNTimes, respondOnce } from './lib/net-helpers';
|
||||||
|
@ -934,7 +933,7 @@ describe('net module', () => {
|
||||||
response.statusMessage = 'OK';
|
response.statusMessage = 'OK';
|
||||||
response.end();
|
response.end();
|
||||||
});
|
});
|
||||||
const serverUrl = url.parse(serverUrlUnparsed);
|
const serverUrl = new URL(serverUrlUnparsed);
|
||||||
const urlRequest = net.request({
|
const urlRequest = net.request({
|
||||||
port: serverUrl.port ? parseInt(serverUrl.port, 10) : undefined,
|
port: serverUrl.port ? parseInt(serverUrl.port, 10) : undefined,
|
||||||
hostname: '127.0.0.1',
|
hostname: '127.0.0.1',
|
||||||
|
@ -1307,10 +1306,10 @@ describe('net module', () => {
|
||||||
]);
|
]);
|
||||||
const netRequest = net.request(netServerUrl);
|
const netRequest = net.request(netServerUrl);
|
||||||
const netResponse = await getResponse(netRequest);
|
const netResponse = await getResponse(netRequest);
|
||||||
const serverUrl = url.parse(nodeServerUrl);
|
const serverUrl = new URL(nodeServerUrl);
|
||||||
const nodeOptions = {
|
const nodeOptions = {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
path: serverUrl.path,
|
path: serverUrl.pathname,
|
||||||
port: serverUrl.port
|
port: serverUrl.port
|
||||||
};
|
};
|
||||||
const nodeRequest = http.request(nodeOptions);
|
const nodeRequest = http.request(nodeOptions);
|
||||||
|
|
|
@ -649,7 +649,7 @@ describe('protocol module', () => {
|
||||||
const { url } = await listen(server);
|
const { url } = await listen(server);
|
||||||
interceptHttpProtocol('http', (request, callback) => {
|
interceptHttpProtocol('http', (request, callback) => {
|
||||||
const data: Electron.ProtocolResponse = {
|
const data: Electron.ProtocolResponse = {
|
||||||
url: url,
|
url,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
uploadData: {
|
uploadData: {
|
||||||
contentType: 'application/x-www-form-urlencoded',
|
contentType: 'application/x-www-form-urlencoded',
|
||||||
|
@ -910,7 +910,7 @@ describe('protocol module', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('allows CORS requests by default', async () => {
|
it('allows CORS requests by default', async () => {
|
||||||
await allowsCORSRequests('cors', 200, new RegExp(''), () => {
|
await allowsCORSRequests('cors', 200, /(?:)/, () => {
|
||||||
const { ipcRenderer } = require('electron');
|
const { ipcRenderer } = require('electron');
|
||||||
fetch('cors://myhost').then(function (response) {
|
fetch('cors://myhost').then(function (response) {
|
||||||
ipcRenderer.send('response', response.status);
|
ipcRenderer.send('response', response.status);
|
||||||
|
@ -1695,7 +1695,7 @@ describe('protocol module', () => {
|
||||||
const filePath = path.join(fixturesPath, 'pages', 'form-with-data.html');
|
const filePath = path.join(fixturesPath, 'pages', 'form-with-data.html');
|
||||||
await contents.loadFile(filePath);
|
await contents.loadFile(filePath);
|
||||||
|
|
||||||
const loadPromise = new Promise((resolve, reject) => {
|
const loadPromise = new Promise<void>((resolve, reject) => {
|
||||||
contents.once('did-finish-load', resolve);
|
contents.once('did-finish-load', resolve);
|
||||||
contents.once('did-fail-load', (_, errorCode, errorDescription) =>
|
contents.once('did-fail-load', (_, errorCode, errorDescription) =>
|
||||||
reject(new Error(`did-fail-load: ${errorCode} ${errorDescription}. See AssertionError for details.`))
|
reject(new Error(`did-fail-load: ${errorCode} ${errorDescription}. See AssertionError for details.`))
|
||||||
|
|
|
@ -2804,15 +2804,17 @@ describe('webContents module', () => {
|
||||||
expect({
|
expect({
|
||||||
width: w.getBounds().width,
|
width: w.getBounds().width,
|
||||||
height: w.getBounds().height
|
height: w.getBounds().height
|
||||||
}).to.deep.equal(process.platform === 'win32' ? {
|
}).to.deep.equal(process.platform === 'win32'
|
||||||
// The width is reported as being larger on Windows? I'm not sure why
|
? {
|
||||||
// this is.
|
// The width is reported as being larger on Windows? I'm not sure why
|
||||||
width: 136,
|
// this is.
|
||||||
height: 100
|
width: 136,
|
||||||
} : {
|
height: 100
|
||||||
width: 100,
|
}
|
||||||
height: 100
|
: {
|
||||||
});
|
width: 100,
|
||||||
|
height: 100
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does not change window bounds if cancelled', async () => {
|
it('does not change window bounds if cancelled', async () => {
|
||||||
|
|
|
@ -20,7 +20,7 @@ describe('webFrameMain module', () => {
|
||||||
/** Creates an HTTP server whose handler embeds the given iframe src. */
|
/** Creates an HTTP server whose handler embeds the given iframe src. */
|
||||||
const createServer = async () => {
|
const createServer = async () => {
|
||||||
const server = http.createServer((req, res) => {
|
const server = http.createServer((req, res) => {
|
||||||
const params = new URLSearchParams(url.parse(req.url || '').search || '');
|
const params = new URLSearchParams(new URL(req.url || '', `http://${req.headers.host}`).search || '');
|
||||||
if (params.has('frameSrc')) {
|
if (params.has('frameSrc')) {
|
||||||
res.end(`<iframe src="${params.get('frameSrc')}"></iframe>`);
|
res.end(`<iframe src="${params.get('frameSrc')}"></iframe>`);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -295,7 +295,7 @@ describe('webRequest module', () => {
|
||||||
ses.webRequest.onBeforeSendHeaders((details, callback) => {
|
ses.webRequest.onBeforeSendHeaders((details, callback) => {
|
||||||
const requestHeaders = details.requestHeaders;
|
const requestHeaders = details.requestHeaders;
|
||||||
requestHeaders.Accept = '*/*;test/header';
|
requestHeaders.Accept = '*/*;test/header';
|
||||||
callback({ requestHeaders: requestHeaders });
|
callback({ requestHeaders });
|
||||||
});
|
});
|
||||||
const { data } = await ajax(defaultURL);
|
const { data } = await ajax(defaultURL);
|
||||||
expect(data).to.equal('/header/received');
|
expect(data).to.equal('/header/received');
|
||||||
|
@ -362,7 +362,7 @@ describe('webRequest module', () => {
|
||||||
Test: 'header'
|
Test: 'header'
|
||||||
};
|
};
|
||||||
ses.webRequest.onBeforeSendHeaders((details, callback) => {
|
ses.webRequest.onBeforeSendHeaders((details, callback) => {
|
||||||
callback({ requestHeaders: requestHeaders });
|
callback({ requestHeaders });
|
||||||
});
|
});
|
||||||
ses.webRequest.onSendHeaders((details) => {
|
ses.webRequest.onSendHeaders((details) => {
|
||||||
expect(details.requestHeaders).to.deep.equal(requestHeaders);
|
expect(details.requestHeaders).to.deep.equal(requestHeaders);
|
||||||
|
@ -388,7 +388,7 @@ describe('webRequest module', () => {
|
||||||
};
|
};
|
||||||
let onSendHeadersCalled = false;
|
let onSendHeadersCalled = false;
|
||||||
ses.webRequest.onBeforeSendHeaders((details, callback) => {
|
ses.webRequest.onBeforeSendHeaders((details, callback) => {
|
||||||
callback({ requestHeaders: requestHeaders });
|
callback({ requestHeaders });
|
||||||
});
|
});
|
||||||
ses.webRequest.onSendHeaders((details) => {
|
ses.webRequest.onSendHeaders((details) => {
|
||||||
expect(details.requestHeaders).to.deep.equal(requestHeaders);
|
expect(details.requestHeaders).to.deep.equal(requestHeaders);
|
||||||
|
@ -437,7 +437,7 @@ describe('webRequest module', () => {
|
||||||
ses.webRequest.onHeadersReceived((details, callback) => {
|
ses.webRequest.onHeadersReceived((details, callback) => {
|
||||||
const responseHeaders = details.responseHeaders!;
|
const responseHeaders = details.responseHeaders!;
|
||||||
responseHeaders.Custom = ['Changed'] as any;
|
responseHeaders.Custom = ['Changed'] as any;
|
||||||
callback({ responseHeaders: responseHeaders });
|
callback({ responseHeaders });
|
||||||
});
|
});
|
||||||
const { headers } = await ajax(defaultURL);
|
const { headers } = await ajax(defaultURL);
|
||||||
expect(headers).to.to.have.property('custom', 'Changed');
|
expect(headers).to.to.have.property('custom', 'Changed');
|
||||||
|
@ -447,7 +447,7 @@ describe('webRequest module', () => {
|
||||||
ses.webRequest.onHeadersReceived((details, callback) => {
|
ses.webRequest.onHeadersReceived((details, callback) => {
|
||||||
const responseHeaders = details.responseHeaders!;
|
const responseHeaders = details.responseHeaders!;
|
||||||
responseHeaders['access-control-allow-origin'] = ['http://new-origin'] as any;
|
responseHeaders['access-control-allow-origin'] = ['http://new-origin'] as any;
|
||||||
callback({ responseHeaders: responseHeaders });
|
callback({ responseHeaders });
|
||||||
});
|
});
|
||||||
const { headers } = await ajax(defaultURL);
|
const { headers } = await ajax(defaultURL);
|
||||||
expect(headers).to.to.have.property('access-control-allow-origin', 'http://new-origin');
|
expect(headers).to.to.have.property('access-control-allow-origin', 'http://new-origin');
|
||||||
|
@ -457,7 +457,7 @@ describe('webRequest module', () => {
|
||||||
ses.webRequest.onHeadersReceived((details, callback) => {
|
ses.webRequest.onHeadersReceived((details, callback) => {
|
||||||
const responseHeaders = details.responseHeaders!;
|
const responseHeaders = details.responseHeaders!;
|
||||||
responseHeaders.Custom = ['Changed'] as any;
|
responseHeaders.Custom = ['Changed'] as any;
|
||||||
callback({ responseHeaders: responseHeaders });
|
callback({ responseHeaders });
|
||||||
});
|
});
|
||||||
const { headers } = await ajax('cors://host');
|
const { headers } = await ajax('cors://host');
|
||||||
expect(headers).to.to.have.property('custom', 'Changed');
|
expect(headers).to.to.have.property('custom', 'Changed');
|
||||||
|
@ -486,7 +486,7 @@ describe('webRequest module', () => {
|
||||||
it('follows server redirect', async () => {
|
it('follows server redirect', async () => {
|
||||||
ses.webRequest.onHeadersReceived((details, callback) => {
|
ses.webRequest.onHeadersReceived((details, callback) => {
|
||||||
const responseHeaders = details.responseHeaders;
|
const responseHeaders = details.responseHeaders;
|
||||||
callback({ responseHeaders: responseHeaders });
|
callback({ responseHeaders });
|
||||||
});
|
});
|
||||||
const { headers } = await ajax(defaultURL + 'serverRedirect');
|
const { headers } = await ajax(defaultURL + 'serverRedirect');
|
||||||
expect(headers).to.to.have.property('custom', 'Header');
|
expect(headers).to.to.have.property('custom', 'Header');
|
||||||
|
@ -496,7 +496,7 @@ describe('webRequest module', () => {
|
||||||
ses.webRequest.onHeadersReceived((details, callback) => {
|
ses.webRequest.onHeadersReceived((details, callback) => {
|
||||||
const responseHeaders = details.responseHeaders;
|
const responseHeaders = details.responseHeaders;
|
||||||
callback({
|
callback({
|
||||||
responseHeaders: responseHeaders,
|
responseHeaders,
|
||||||
statusLine: 'HTTP/1.1 404 Not Found'
|
statusLine: 'HTTP/1.1 404 Not Found'
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -533,7 +533,7 @@ describe('webRequest module', () => {
|
||||||
const redirectURL = defaultURL + 'redirect';
|
const redirectURL = defaultURL + 'redirect';
|
||||||
ses.webRequest.onBeforeRequest((details, callback) => {
|
ses.webRequest.onBeforeRequest((details, callback) => {
|
||||||
if (details.url === defaultURL) {
|
if (details.url === defaultURL) {
|
||||||
callback({ redirectURL: redirectURL });
|
callback({ redirectURL });
|
||||||
} else {
|
} else {
|
||||||
callback({});
|
callback({});
|
||||||
}
|
}
|
||||||
|
@ -600,7 +600,7 @@ describe('webRequest module', () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
server.on('upgrade', function upgrade (request, socket, head) {
|
server.on('upgrade', function upgrade (request, socket, head) {
|
||||||
const pathname = require('node:url').parse(request.url).pathname;
|
const pathname = new URL(request.url!, `http://${request.headers.host}`).pathname;
|
||||||
if (pathname === '/websocket') {
|
if (pathname === '/websocket') {
|
||||||
reqHeaders[request.url!] = request.headers;
|
reqHeaders[request.url!] = request.headers;
|
||||||
wss.handleUpgrade(request, socket as Socket, head, function done (ws) {
|
wss.handleUpgrade(request, socket as Socket, head, function done (ws) {
|
||||||
|
@ -622,7 +622,7 @@ describe('webRequest module', () => {
|
||||||
callback({ requestHeaders: details.requestHeaders });
|
callback({ requestHeaders: details.requestHeaders });
|
||||||
});
|
});
|
||||||
ses.webRequest.onHeadersReceived((details, callback) => {
|
ses.webRequest.onHeadersReceived((details, callback) => {
|
||||||
const pathname = require('node:url').parse(details.url).pathname;
|
const pathname = new URL(details.url).pathname;
|
||||||
receivedHeaders[pathname] = details.responseHeaders;
|
receivedHeaders[pathname] = details.responseHeaders;
|
||||||
callback({ cancel: false });
|
callback({ cancel: false });
|
||||||
});
|
});
|
||||||
|
|
|
@ -709,7 +709,7 @@ describe('chromium features', () => {
|
||||||
it('should register for intercepted file scheme', (done) => {
|
it('should register for intercepted file scheme', (done) => {
|
||||||
const customSession = session.fromPartition('intercept-file');
|
const customSession = session.fromPartition('intercept-file');
|
||||||
customSession.protocol.interceptBufferProtocol('file', (request, callback) => {
|
customSession.protocol.interceptBufferProtocol('file', (request, callback) => {
|
||||||
let file = url.parse(request.url).pathname!;
|
let file = new URL(request.url).pathname!;
|
||||||
if (file[0] === '/' && process.platform === 'win32') file = file.slice(1);
|
if (file[0] === '/' && process.platform === 'win32') file = file.slice(1);
|
||||||
|
|
||||||
const content = fs.readFileSync(path.normalize(file));
|
const content = fs.readFileSync(path.normalize(file));
|
||||||
|
@ -750,7 +750,7 @@ describe('chromium features', () => {
|
||||||
it('should register for custom scheme', (done) => {
|
it('should register for custom scheme', (done) => {
|
||||||
const customSession = session.fromPartition('custom-scheme');
|
const customSession = session.fromPartition('custom-scheme');
|
||||||
customSession.protocol.registerFileProtocol(serviceWorkerScheme, (request, callback) => {
|
customSession.protocol.registerFileProtocol(serviceWorkerScheme, (request, callback) => {
|
||||||
let file = url.parse(request.url).pathname!;
|
let file = new URL(request.url).pathname!;
|
||||||
if (file[0] === '/' && process.platform === 'win32') file = file.slice(1);
|
if (file[0] === '/' && process.platform === 'win32') file = file.slice(1);
|
||||||
|
|
||||||
callback({ path: path.normalize(file) } as any);
|
callback({ path: path.normalize(file) } as any);
|
||||||
|
@ -2004,7 +2004,7 @@ describe('chromium features', () => {
|
||||||
let contents: WebContents;
|
let contents: WebContents;
|
||||||
before(() => {
|
before(() => {
|
||||||
protocol.registerFileProtocol(protocolName, (request, callback) => {
|
protocol.registerFileProtocol(protocolName, (request, callback) => {
|
||||||
const parsedUrl = url.parse(request.url);
|
const parsedUrl = new URL(request.url);
|
||||||
let filename;
|
let filename;
|
||||||
switch (parsedUrl.pathname) {
|
switch (parsedUrl.pathname) {
|
||||||
case '/localStorage' : filename = 'local_storage.html'; break;
|
case '/localStorage' : filename = 'local_storage.html'; break;
|
||||||
|
@ -2459,7 +2459,7 @@ describe('chromium features', () => {
|
||||||
it('has user agent', async () => {
|
it('has user agent', async () => {
|
||||||
const server = http.createServer();
|
const server = http.createServer();
|
||||||
const { port } = await listen(server);
|
const { port } = await listen(server);
|
||||||
const wss = new ws.Server({ server: server });
|
const wss = new ws.Server({ server });
|
||||||
const finished = new Promise<string | undefined>((resolve, reject) => {
|
const finished = new Promise<string | undefined>((resolve, reject) => {
|
||||||
wss.on('error', reject);
|
wss.on('error', reject);
|
||||||
wss.on('connection', (ws, upgradeReq) => {
|
wss.on('connection', (ws, upgradeReq) => {
|
||||||
|
@ -3444,6 +3444,7 @@ describe('navigator.hid', () => {
|
||||||
haveDevices = true;
|
haveDevices = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
if (foundDevice) {
|
if (foundDevice) {
|
||||||
callback(foundDevice.deviceId);
|
callback(foundDevice.deviceId);
|
||||||
|
@ -3491,6 +3492,7 @@ describe('navigator.hid', () => {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
callback();
|
callback();
|
||||||
|
@ -3670,6 +3672,7 @@ describe('navigator.usb', () => {
|
||||||
haveDevices = true;
|
haveDevices = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
if (foundDevice) {
|
if (foundDevice) {
|
||||||
callback(foundDevice.deviceId);
|
callback(foundDevice.deviceId);
|
||||||
|
|
|
@ -597,7 +597,7 @@ describe('chrome extensions', () => {
|
||||||
|
|
||||||
const addExtension = (name: string) => session.defaultSession.loadExtension(path.resolve(extensionPath, name));
|
const addExtension = (name: string) => session.defaultSession.loadExtension(path.resolve(extensionPath, name));
|
||||||
const removeAllExtensions = () => {
|
const removeAllExtensions = () => {
|
||||||
Object.keys(session.defaultSession.getAllExtensions()).map(extName => {
|
Object.keys(session.defaultSession.getAllExtensions()).forEach(extName => {
|
||||||
session.defaultSession.removeExtension(extName);
|
session.defaultSession.removeExtension(extName);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -19,7 +19,7 @@ try {
|
||||||
['--require', path.join(fixtures, 'module', 'noop.js')],
|
['--require', path.join(fixtures, 'module', 'noop.js')],
|
||||||
{ env, stdio: 'inherit' });
|
{ env, stdio: 'inherit' });
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
} catch (error) {
|
} catch {
|
||||||
console.log('NODE_OPTIONS passed to child');
|
console.log('NODE_OPTIONS passed to child');
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,8 @@ if (app.commandLine.hasSwitch('data-content')) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const gotTheLock = sendAdditionalData
|
const gotTheLock = sendAdditionalData
|
||||||
? app.requestSingleInstanceLock(obj) : app.requestSingleInstanceLock();
|
? app.requestSingleInstanceLock(obj)
|
||||||
|
: app.requestSingleInstanceLock();
|
||||||
|
|
||||||
app.on('second-instance', (event, args, workingDirectory, data) => {
|
app.on('second-instance', (event, args, workingDirectory, data) => {
|
||||||
setImmediate(() => {
|
setImmediate(() => {
|
||||||
|
|
|
@ -19,9 +19,9 @@ if (configurableArg === '--omit-credentials') {
|
||||||
|
|
||||||
if (request) {
|
if (request) {
|
||||||
if (configurableArg === '--use-net-login-event') {
|
if (configurableArg === '--use-net-login-event') {
|
||||||
request.on('login', (authInfo, cb) => {
|
request.on('login', (authInfo, provideCredentials) => {
|
||||||
process.parentPort.postMessage(authInfo);
|
process.parentPort.postMessage(authInfo);
|
||||||
cb('user', 'pass');
|
provideCredentials('user', 'pass');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
request.on('response', (response) => {
|
request.on('response', (response) => {
|
||||||
|
|
|
@ -1,13 +1,14 @@
|
||||||
|
const path = require('node:path');
|
||||||
const testLoadLibrary = require('./build/Release/test_module');
|
const testLoadLibrary = require('./build/Release/test_module');
|
||||||
|
|
||||||
const lib = (() => {
|
const lib = (() => {
|
||||||
switch (process.platform) {
|
switch (process.platform) {
|
||||||
case 'linux':
|
case 'linux':
|
||||||
return `${__dirname}/build/Release/foo.so`;
|
return path.resolve(__dirname, 'build/Release/foo.so');
|
||||||
case 'darwin':
|
case 'darwin':
|
||||||
return `${__dirname}/build/Release/foo.dylib`;
|
return path.resolve(__dirname, 'build/Release/foo.dylib');
|
||||||
case 'win32':
|
case 'win32':
|
||||||
return `${__dirname}/build/Release/libfoo.dll`;
|
return path.resolve(__dirname, 'build/Release/libfoo.dll');
|
||||||
default:
|
default:
|
||||||
throw new Error('unsupported os');
|
throw new Error('unsupported os');
|
||||||
}
|
}
|
||||||
|
|
|
@ -259,9 +259,9 @@ function checkFrames (frames) {
|
||||||
duration += frames[i].duration;
|
duration += frames[i].duration;
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
duration: duration,
|
duration,
|
||||||
width: width,
|
width,
|
||||||
height: height
|
height
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -399,7 +399,7 @@ function parseWebP (riff) {
|
||||||
horizontalScale,
|
horizontalScale,
|
||||||
verticalScale,
|
verticalScale,
|
||||||
data: VP8,
|
data: VP8,
|
||||||
riff: riff
|
riff
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,18 @@
|
||||||
"node-gyp-install": "node-gyp install"
|
"node-gyp-install": "node-gyp install"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/basic-auth": "^1.1.8",
|
||||||
|
"@types/busboy": "^1.5.4",
|
||||||
|
"@types/chai": "^4.3.19",
|
||||||
|
"@types/chai-as-promised": "^7.1.3",
|
||||||
|
"@types/dirty-chai": "^2.0.5",
|
||||||
|
"@types/express": "^4.17.13",
|
||||||
|
"@types/mocha": "^7.0.2",
|
||||||
|
"@types/send": "^0.14.5",
|
||||||
|
"@types/split": "^1.0.5",
|
||||||
|
"@types/uuid": "^3.4.6",
|
||||||
|
"@types/w3c-web-serial": "^1.0.7",
|
||||||
|
"express": "^4.20.0",
|
||||||
"@electron-ci/echo": "file:./fixtures/native-addon/echo",
|
"@electron-ci/echo": "file:./fixtures/native-addon/echo",
|
||||||
"@electron-ci/is-valid-window": "file:./is-valid-window",
|
"@electron-ci/is-valid-window": "file:./is-valid-window",
|
||||||
"@electron-ci/uv-dlopen": "file:./fixtures/native-addon/uv-dlopen/",
|
"@electron-ci/uv-dlopen": "file:./fixtures/native-addon/uv-dlopen/",
|
||||||
|
@ -34,7 +46,6 @@
|
||||||
"send": "^0.19.0",
|
"send": "^0.19.0",
|
||||||
"sinon": "^9.0.1",
|
"sinon": "^9.0.1",
|
||||||
"split": "^1.0.1",
|
"split": "^1.0.1",
|
||||||
"temp": "^0.9.0",
|
|
||||||
"uuid": "^3.3.3",
|
"uuid": "^3.3.3",
|
||||||
"winreg": "1.2.4",
|
"winreg": "1.2.4",
|
||||||
"ws": "^7.5.10",
|
"ws": "^7.5.10",
|
||||||
|
|
|
@ -2,7 +2,6 @@ import { expect } from 'chai';
|
||||||
import * as http from 'node:http';
|
import * as http from 'node:http';
|
||||||
import * as fs from 'node:fs/promises';
|
import * as fs from 'node:fs/promises';
|
||||||
import * as path from 'node:path';
|
import * as path from 'node:path';
|
||||||
import * as url from 'node:url';
|
|
||||||
|
|
||||||
import { BrowserWindow, WebPreferences } from 'electron/main';
|
import { BrowserWindow, WebPreferences } from 'electron/main';
|
||||||
|
|
||||||
|
@ -28,7 +27,7 @@ describe('security warnings', () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
// Create HTTP Server
|
// Create HTTP Server
|
||||||
server = http.createServer(async (request, response) => {
|
server = http.createServer(async (request, response) => {
|
||||||
const uri = url.parse(request.url!).pathname!;
|
const uri = new URL(request.url!, `http://${request.headers.host}`).pathname!;
|
||||||
let filename = path.join(__dirname, 'fixtures', 'pages', uri);
|
let filename = path.join(__dirname, 'fixtures', 'pages', uri);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
/* eslint-disable */
|
||||||
|
|
||||||
import {
|
import {
|
||||||
app,
|
app,
|
||||||
autoUpdater,
|
autoUpdater,
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
/* eslint-disable */
|
||||||
|
|
||||||
import { ipcRenderer, webFrame } from 'electron/renderer';
|
import { ipcRenderer, webFrame } from 'electron/renderer';
|
||||||
import { clipboard, crashReporter, shell } from 'electron/common';
|
import { clipboard, crashReporter, shell } from 'electron/common';
|
||||||
|
|
|
@ -326,8 +326,8 @@ describe('<webview> tag', function () {
|
||||||
|
|
||||||
before(() => {
|
before(() => {
|
||||||
const protocol = webviewSession.protocol;
|
const protocol = webviewSession.protocol;
|
||||||
protocol.registerStringProtocol(zoomScheme, (request, callback) => {
|
protocol.registerStringProtocol(zoomScheme, (request, respond) => {
|
||||||
callback('hello');
|
respond('hello');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -838,13 +838,13 @@ describe('<webview> tag', function () {
|
||||||
|
|
||||||
function setUpRequestHandler (webContentsId: number, requestedPermission: string) {
|
function setUpRequestHandler (webContentsId: number, requestedPermission: string) {
|
||||||
return new Promise<void>((resolve, reject) => {
|
return new Promise<void>((resolve, reject) => {
|
||||||
session.fromPartition(partition).setPermissionRequestHandler(function (webContents, permission, callback) {
|
session.fromPartition(partition).setPermissionRequestHandler(function (webContents, permission, allow) {
|
||||||
if (webContents.id === webContentsId) {
|
if (webContents.id === webContentsId) {
|
||||||
// All midi permission requests are blocked or allowed as midiSysex permissions
|
// All midi permission requests are blocked or allowed as midiSysex permissions
|
||||||
// since https://chromium-review.googlesource.com/c/chromium/src/+/5154368
|
// since https://chromium-review.googlesource.com/c/chromium/src/+/5154368
|
||||||
if (permission === 'midiSysex') {
|
if (permission === 'midiSysex') {
|
||||||
const allowed = requestedPermission === 'midi' || requestedPermission === 'midiSysex';
|
const allowed = requestedPermission === 'midi' || requestedPermission === 'midiSysex';
|
||||||
return callback(!allowed);
|
return allow(!allowed);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -852,7 +852,7 @@ describe('<webview> tag', function () {
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return reject(e);
|
return reject(e);
|
||||||
}
|
}
|
||||||
callback(false);
|
allow(false);
|
||||||
resolve();
|
resolve();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
444
spec/yarn.lock
444
spec/yarn.lock
|
@ -193,6 +193,28 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
defer-to-connect "^2.0.0"
|
defer-to-connect "^2.0.0"
|
||||||
|
|
||||||
|
"@types/basic-auth@^1.1.8":
|
||||||
|
version "1.1.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/basic-auth/-/basic-auth-1.1.8.tgz#ea235203c89e233faae66b99e03665747576e9e9"
|
||||||
|
integrity sha512-dKcUeixGuZn8pBjcUrf1N7x5K6lWuKuwHHitM2IZ4vwZUDWEhhNtwCWiba8jTA9zn0GQQ+fTFkWpKx8pOU/enw==
|
||||||
|
dependencies:
|
||||||
|
"@types/node" "*"
|
||||||
|
|
||||||
|
"@types/body-parser@*":
|
||||||
|
version "1.19.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4"
|
||||||
|
integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==
|
||||||
|
dependencies:
|
||||||
|
"@types/connect" "*"
|
||||||
|
"@types/node" "*"
|
||||||
|
|
||||||
|
"@types/busboy@^1.5.4":
|
||||||
|
version "1.5.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/busboy/-/busboy-1.5.4.tgz#0038c31102ca90f2a7f0d8bc27ee5ebf1088e230"
|
||||||
|
integrity sha512-kG7WrUuAKK0NoyxfQHsVE6j1m01s6kMma64E+OZenQABMQyTJop1DumUWcLwAQ2JzpefU7PDYoRDKl8uZosFjw==
|
||||||
|
dependencies:
|
||||||
|
"@types/node" "*"
|
||||||
|
|
||||||
"@types/cacheable-request@^6.0.1":
|
"@types/cacheable-request@^6.0.1":
|
||||||
version "6.0.3"
|
version "6.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183"
|
resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183"
|
||||||
|
@ -203,11 +225,63 @@
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
"@types/responselike" "^1.0.0"
|
"@types/responselike" "^1.0.0"
|
||||||
|
|
||||||
|
"@types/chai-as-promised@^7", "@types/chai-as-promised@^7.1.3":
|
||||||
|
version "7.1.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz#f2b3d82d53c59626b5d6bbc087667ccb4b677fe9"
|
||||||
|
integrity sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==
|
||||||
|
dependencies:
|
||||||
|
"@types/chai" "*"
|
||||||
|
|
||||||
|
"@types/chai@*", "@types/chai@^4.3.19":
|
||||||
|
version "4.3.19"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.19.tgz#14519f437361d41e84102ed3fbc922ddace3e228"
|
||||||
|
integrity sha512-2hHHvQBVE2FiSK4eN0Br6snX9MtolHaTo/batnLjlGRhoQzlCL61iVpxoqO7SfFyOw+P/pwv+0zNHzKoGWz9Cw==
|
||||||
|
|
||||||
|
"@types/connect@*":
|
||||||
|
version "3.4.38"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858"
|
||||||
|
integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==
|
||||||
|
dependencies:
|
||||||
|
"@types/node" "*"
|
||||||
|
|
||||||
|
"@types/dirty-chai@^2.0.5":
|
||||||
|
version "2.0.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/dirty-chai/-/dirty-chai-2.0.5.tgz#f743c5735ba0453e2ec8036610356b1aee5f522b"
|
||||||
|
integrity sha512-7plNsOhNtFn/4eD47et+3CRFNX4tgUrbJRutGhBFqQrWWIyRAV1XP7BYZY0YTOr49t/ZwM/lOW6sxnEXqwVdKg==
|
||||||
|
dependencies:
|
||||||
|
"@types/chai" "*"
|
||||||
|
"@types/chai-as-promised" "^7"
|
||||||
|
|
||||||
|
"@types/express-serve-static-core@^4.17.33":
|
||||||
|
version "4.19.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz#218064e321126fcf9048d1ca25dd2465da55d9c6"
|
||||||
|
integrity sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==
|
||||||
|
dependencies:
|
||||||
|
"@types/node" "*"
|
||||||
|
"@types/qs" "*"
|
||||||
|
"@types/range-parser" "*"
|
||||||
|
"@types/send" "*"
|
||||||
|
|
||||||
|
"@types/express@^4.17.13":
|
||||||
|
version "4.17.21"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d"
|
||||||
|
integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==
|
||||||
|
dependencies:
|
||||||
|
"@types/body-parser" "*"
|
||||||
|
"@types/express-serve-static-core" "^4.17.33"
|
||||||
|
"@types/qs" "*"
|
||||||
|
"@types/serve-static" "*"
|
||||||
|
|
||||||
"@types/http-cache-semantics@*":
|
"@types/http-cache-semantics@*":
|
||||||
version "4.0.4"
|
version "4.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4"
|
resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4"
|
||||||
integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==
|
integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==
|
||||||
|
|
||||||
|
"@types/http-errors@*":
|
||||||
|
version "2.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f"
|
||||||
|
integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==
|
||||||
|
|
||||||
"@types/keyv@^3.1.4":
|
"@types/keyv@^3.1.4":
|
||||||
version "3.1.4"
|
version "3.1.4"
|
||||||
resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6"
|
resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6"
|
||||||
|
@ -215,6 +289,16 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
|
|
||||||
|
"@types/mime@^1":
|
||||||
|
version "1.3.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690"
|
||||||
|
integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==
|
||||||
|
|
||||||
|
"@types/mocha@^7.0.2":
|
||||||
|
version "7.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-7.0.2.tgz#b17f16cf933597e10d6d78eae3251e692ce8b0ce"
|
||||||
|
integrity sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==
|
||||||
|
|
||||||
"@types/node@*":
|
"@types/node@*":
|
||||||
version "20.12.7"
|
version "20.12.7"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.7.tgz#04080362fa3dd6c5822061aa3124f5c152cff384"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.7.tgz#04080362fa3dd6c5822061aa3124f5c152cff384"
|
||||||
|
@ -222,6 +306,16 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types "~5.26.4"
|
undici-types "~5.26.4"
|
||||||
|
|
||||||
|
"@types/qs@*":
|
||||||
|
version "6.9.16"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.16.tgz#52bba125a07c0482d26747d5d4947a64daf8f794"
|
||||||
|
integrity sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==
|
||||||
|
|
||||||
|
"@types/range-parser@*":
|
||||||
|
version "1.2.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb"
|
||||||
|
integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==
|
||||||
|
|
||||||
"@types/responselike@^1.0.0":
|
"@types/responselike@^1.0.0":
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50"
|
resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50"
|
||||||
|
@ -229,6 +323,31 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
|
|
||||||
|
"@types/send@*":
|
||||||
|
version "0.17.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a"
|
||||||
|
integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==
|
||||||
|
dependencies:
|
||||||
|
"@types/mime" "^1"
|
||||||
|
"@types/node" "*"
|
||||||
|
|
||||||
|
"@types/send@^0.14.5":
|
||||||
|
version "0.14.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/send/-/send-0.14.7.tgz#ee6224edd5a593d7f553235f350569accb56a4af"
|
||||||
|
integrity sha512-WCUMbzWW1sTEZX31cRMcBxflUXX/JmAYejhjxXtrLGn+vd/yyFjHh/F9FIigAEjE2LauhfH94BT7NJj9Ru2Wlg==
|
||||||
|
dependencies:
|
||||||
|
"@types/mime" "^1"
|
||||||
|
"@types/node" "*"
|
||||||
|
|
||||||
|
"@types/serve-static@*":
|
||||||
|
version "1.15.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714"
|
||||||
|
integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==
|
||||||
|
dependencies:
|
||||||
|
"@types/http-errors" "*"
|
||||||
|
"@types/node" "*"
|
||||||
|
"@types/send" "*"
|
||||||
|
|
||||||
"@types/sinon@^9.0.4":
|
"@types/sinon@^9.0.4":
|
||||||
version "9.0.11"
|
version "9.0.11"
|
||||||
resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-9.0.11.tgz#7af202dda5253a847b511c929d8b6dda170562eb"
|
resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-9.0.11.tgz#7af202dda5253a847b511c929d8b6dda170562eb"
|
||||||
|
@ -241,6 +360,31 @@
|
||||||
resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz#5fd3592ff10c1e9695d377020c033116cc2889f2"
|
resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz#5fd3592ff10c1e9695d377020c033116cc2889f2"
|
||||||
integrity sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==
|
integrity sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==
|
||||||
|
|
||||||
|
"@types/split@^1.0.5":
|
||||||
|
version "1.0.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/split/-/split-1.0.5.tgz#4bd47164b81d6381db37978d5344b374b6825f6c"
|
||||||
|
integrity sha512-gMiDr4vA6YofTpAkPQtP+5pvStIf3CMYphf32YAG/3RwogNL8ii1CQKDc+sxN62KuxPoRaJXcf2zDCDkEBH4FA==
|
||||||
|
dependencies:
|
||||||
|
"@types/node" "*"
|
||||||
|
"@types/through" "*"
|
||||||
|
|
||||||
|
"@types/through@*":
|
||||||
|
version "0.0.33"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.33.tgz#14ebf599320e1c7851e7d598149af183c6b9ea56"
|
||||||
|
integrity sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==
|
||||||
|
dependencies:
|
||||||
|
"@types/node" "*"
|
||||||
|
|
||||||
|
"@types/uuid@^3.4.6":
|
||||||
|
version "3.4.13"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-3.4.13.tgz#fe890e517fb840620be284ee213e81d702b1f76b"
|
||||||
|
integrity sha512-pAeZeUbLE4Z9Vi9wsWV2bYPTweEHeJJy0G4pEjOA/FSvy1Ad5U5Km8iDV6TKre1mjBiVNfAdVHKruP8bAh4Q5A==
|
||||||
|
|
||||||
|
"@types/w3c-web-serial@^1.0.7":
|
||||||
|
version "1.0.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/w3c-web-serial/-/w3c-web-serial-1.0.7.tgz#44416509af271e5196833ff5e1337c7c256991c6"
|
||||||
|
integrity sha512-jzcwm//EZ0Z306L1/O1GXC3GthRd//9eaNB4/Yagm98UjEQViTzDS8bYvL+y+rTk1r9OFt9Yhp5pprUQFzSiiQ==
|
||||||
|
|
||||||
"@types/ws@^7.2.0":
|
"@types/ws@^7.2.0":
|
||||||
version "7.4.7"
|
version "7.4.7"
|
||||||
resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702"
|
resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702"
|
||||||
|
@ -265,13 +409,21 @@ abbrev@1:
|
||||||
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
|
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
|
||||||
integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
|
integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
|
||||||
|
|
||||||
"abstract-socket@github:deepak1556/node-abstractsocket#928cc591decd12aff7dad96449da8afc29832c19", "abstract-socket@github:saghul/node-abstractsocket#35b1b1491fabc04899bde5be3428abf5cf9cd528":
|
abstract-socket@^2.0.0, "abstract-socket@github:deepak1556/node-abstractsocket#928cc591decd12aff7dad96449da8afc29832c19":
|
||||||
version "2.1.1"
|
version "2.1.1"
|
||||||
resolved "https://codeload.github.com/deepak1556/node-abstractsocket/tar.gz/928cc591decd12aff7dad96449da8afc29832c19"
|
resolved "https://codeload.github.com/deepak1556/node-abstractsocket/tar.gz/928cc591decd12aff7dad96449da8afc29832c19"
|
||||||
dependencies:
|
dependencies:
|
||||||
bindings "^1.2.1"
|
bindings "^1.2.1"
|
||||||
node-addon-api "8.0.0"
|
node-addon-api "8.0.0"
|
||||||
|
|
||||||
|
accepts@~1.3.8:
|
||||||
|
version "1.3.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
|
||||||
|
integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
|
||||||
|
dependencies:
|
||||||
|
mime-types "~2.1.34"
|
||||||
|
negotiator "0.6.3"
|
||||||
|
|
||||||
agent-base@6:
|
agent-base@6:
|
||||||
version "6.0.2"
|
version "6.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
|
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
|
||||||
|
@ -327,6 +479,11 @@ argparse@^2.0.1:
|
||||||
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
|
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
|
||||||
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
|
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
|
||||||
|
|
||||||
|
array-flatten@1.1.1:
|
||||||
|
version "1.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
|
||||||
|
integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
|
||||||
|
|
||||||
assertion-error@^1.1.0:
|
assertion-error@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
|
resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
|
||||||
|
@ -376,6 +533,24 @@ bluebird@^3.1.1:
|
||||||
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
|
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
|
||||||
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
|
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
|
||||||
|
|
||||||
|
body-parser@1.20.3:
|
||||||
|
version "1.20.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6"
|
||||||
|
integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==
|
||||||
|
dependencies:
|
||||||
|
bytes "3.1.2"
|
||||||
|
content-type "~1.0.5"
|
||||||
|
debug "2.6.9"
|
||||||
|
depd "2.0.0"
|
||||||
|
destroy "1.2.0"
|
||||||
|
http-errors "2.0.0"
|
||||||
|
iconv-lite "0.4.24"
|
||||||
|
on-finished "2.4.1"
|
||||||
|
qs "6.13.0"
|
||||||
|
raw-body "2.5.2"
|
||||||
|
type-is "~1.6.18"
|
||||||
|
unpipe "1.0.0"
|
||||||
|
|
||||||
boolean@^3.0.1:
|
boolean@^3.0.1:
|
||||||
version "3.2.0"
|
version "3.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.2.0.tgz#9e5294af4e98314494cbb17979fa54ca159f116b"
|
resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.2.0.tgz#9e5294af4e98314494cbb17979fa54ca159f116b"
|
||||||
|
@ -420,6 +595,11 @@ busboy@^1.6.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
streamsearch "^1.1.0"
|
streamsearch "^1.1.0"
|
||||||
|
|
||||||
|
bytes@3.1.2:
|
||||||
|
version "3.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
|
||||||
|
integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
|
||||||
|
|
||||||
cacheable-lookup@^5.0.3:
|
cacheable-lookup@^5.0.3:
|
||||||
version "5.0.4"
|
version "5.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005"
|
resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005"
|
||||||
|
@ -438,6 +618,17 @@ cacheable-request@^7.0.2:
|
||||||
normalize-url "^6.0.1"
|
normalize-url "^6.0.1"
|
||||||
responselike "^2.0.0"
|
responselike "^2.0.0"
|
||||||
|
|
||||||
|
call-bind@^1.0.7:
|
||||||
|
version "1.0.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9"
|
||||||
|
integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==
|
||||||
|
dependencies:
|
||||||
|
es-define-property "^1.0.0"
|
||||||
|
es-errors "^1.3.0"
|
||||||
|
function-bind "^1.1.2"
|
||||||
|
get-intrinsic "^1.2.4"
|
||||||
|
set-function-length "^1.2.1"
|
||||||
|
|
||||||
camelcase@^6.0.0:
|
camelcase@^6.0.0:
|
||||||
version "6.3.0"
|
version "6.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
|
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
|
||||||
|
@ -575,6 +766,28 @@ console-control-strings@^1.0.0, console-control-strings@^1.1.0:
|
||||||
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
|
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
|
||||||
integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==
|
integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==
|
||||||
|
|
||||||
|
content-disposition@0.5.4:
|
||||||
|
version "0.5.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
|
||||||
|
integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
|
||||||
|
dependencies:
|
||||||
|
safe-buffer "5.2.1"
|
||||||
|
|
||||||
|
content-type@~1.0.4, content-type@~1.0.5:
|
||||||
|
version "1.0.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
|
||||||
|
integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
|
||||||
|
|
||||||
|
cookie-signature@1.0.6:
|
||||||
|
version "1.0.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
|
||||||
|
integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
|
||||||
|
|
||||||
|
cookie@0.6.0:
|
||||||
|
version "0.6.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051"
|
||||||
|
integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==
|
||||||
|
|
||||||
cross-dirname@^0.1.0:
|
cross-dirname@^0.1.0:
|
||||||
version "0.1.0"
|
version "0.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/cross-dirname/-/cross-dirname-0.1.0.tgz#b899599f30a5389f59e78c150e19f957ad16a37c"
|
resolved "https://registry.yarnpkg.com/cross-dirname/-/cross-dirname-0.1.0.tgz#b899599f30a5389f59e78c150e19f957ad16a37c"
|
||||||
|
@ -606,7 +819,7 @@ crypt@0.0.2:
|
||||||
safe-buffer "^5.1.1"
|
safe-buffer "^5.1.1"
|
||||||
xml2js "^0.4.17"
|
xml2js "^0.4.17"
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
abstract-socket "github:saghul/node-abstractsocket#35b1b1491fabc04899bde5be3428abf5cf9cd528"
|
abstract-socket "^2.0.0"
|
||||||
|
|
||||||
debug@2.6.9, debug@^2.2.0:
|
debug@2.6.9, debug@^2.2.0:
|
||||||
version "2.6.9"
|
version "2.6.9"
|
||||||
|
@ -660,7 +873,7 @@ defer-to-connect@^2.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587"
|
resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587"
|
||||||
integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==
|
integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==
|
||||||
|
|
||||||
define-data-property@^1.0.1:
|
define-data-property@^1.0.1, define-data-property@^1.1.4:
|
||||||
version "1.1.4"
|
version "1.1.4"
|
||||||
resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e"
|
resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e"
|
||||||
integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
|
integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
|
||||||
|
@ -746,6 +959,11 @@ encodeurl@~1.0.2:
|
||||||
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
|
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
|
||||||
integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
|
integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
|
||||||
|
|
||||||
|
encodeurl@~2.0.0:
|
||||||
|
version "2.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58"
|
||||||
|
integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
|
||||||
|
|
||||||
end-of-stream@^1.1.0:
|
end-of-stream@^1.1.0:
|
||||||
version "1.4.4"
|
version "1.4.4"
|
||||||
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
|
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
|
||||||
|
@ -825,6 +1043,43 @@ event-stream@^4.0.0:
|
||||||
stream-combiner "^0.2.2"
|
stream-combiner "^0.2.2"
|
||||||
through "^2.3.8"
|
through "^2.3.8"
|
||||||
|
|
||||||
|
express@^4.20.0:
|
||||||
|
version "4.21.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/express/-/express-4.21.0.tgz#d57cb706d49623d4ac27833f1cbc466b668eb915"
|
||||||
|
integrity sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==
|
||||||
|
dependencies:
|
||||||
|
accepts "~1.3.8"
|
||||||
|
array-flatten "1.1.1"
|
||||||
|
body-parser "1.20.3"
|
||||||
|
content-disposition "0.5.4"
|
||||||
|
content-type "~1.0.4"
|
||||||
|
cookie "0.6.0"
|
||||||
|
cookie-signature "1.0.6"
|
||||||
|
debug "2.6.9"
|
||||||
|
depd "2.0.0"
|
||||||
|
encodeurl "~2.0.0"
|
||||||
|
escape-html "~1.0.3"
|
||||||
|
etag "~1.8.1"
|
||||||
|
finalhandler "1.3.1"
|
||||||
|
fresh "0.5.2"
|
||||||
|
http-errors "2.0.0"
|
||||||
|
merge-descriptors "1.0.3"
|
||||||
|
methods "~1.1.2"
|
||||||
|
on-finished "2.4.1"
|
||||||
|
parseurl "~1.3.3"
|
||||||
|
path-to-regexp "0.1.10"
|
||||||
|
proxy-addr "~2.0.7"
|
||||||
|
qs "6.13.0"
|
||||||
|
range-parser "~1.2.1"
|
||||||
|
safe-buffer "5.2.1"
|
||||||
|
send "0.19.0"
|
||||||
|
serve-static "1.16.2"
|
||||||
|
setprototypeof "1.2.0"
|
||||||
|
statuses "2.0.1"
|
||||||
|
type-is "~1.6.18"
|
||||||
|
utils-merge "1.0.1"
|
||||||
|
vary "~1.1.2"
|
||||||
|
|
||||||
extract-zip@^2.0.0:
|
extract-zip@^2.0.0:
|
||||||
version "2.0.1"
|
version "2.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"
|
resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"
|
||||||
|
@ -869,6 +1124,19 @@ fill-range@^7.1.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
to-regex-range "^5.0.1"
|
to-regex-range "^5.0.1"
|
||||||
|
|
||||||
|
finalhandler@1.3.1:
|
||||||
|
version "1.3.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019"
|
||||||
|
integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==
|
||||||
|
dependencies:
|
||||||
|
debug "2.6.9"
|
||||||
|
encodeurl "~2.0.0"
|
||||||
|
escape-html "~1.0.3"
|
||||||
|
on-finished "2.4.1"
|
||||||
|
parseurl "~1.3.3"
|
||||||
|
statuses "2.0.1"
|
||||||
|
unpipe "~1.0.0"
|
||||||
|
|
||||||
find-up@5.0.0:
|
find-up@5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
|
resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
|
||||||
|
@ -897,6 +1165,11 @@ flora-colossus@^2.0.0:
|
||||||
debug "^4.3.4"
|
debug "^4.3.4"
|
||||||
fs-extra "^10.1.0"
|
fs-extra "^10.1.0"
|
||||||
|
|
||||||
|
forwarded@0.2.0:
|
||||||
|
version "0.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
|
||||||
|
integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
|
||||||
|
|
||||||
fresh@0.5.2:
|
fresh@0.5.2:
|
||||||
version "0.5.2"
|
version "0.5.2"
|
||||||
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
|
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
|
||||||
|
@ -1112,7 +1385,7 @@ has-flag@^4.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
|
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
|
||||||
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
|
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
|
||||||
|
|
||||||
has-property-descriptors@^1.0.0:
|
has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854"
|
resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854"
|
||||||
integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
|
integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
|
||||||
|
@ -1188,6 +1461,13 @@ https-proxy-agent@^5.0.0:
|
||||||
agent-base "6"
|
agent-base "6"
|
||||||
debug "4"
|
debug "4"
|
||||||
|
|
||||||
|
iconv-lite@0.4.24:
|
||||||
|
version "0.4.24"
|
||||||
|
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
||||||
|
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
|
||||||
|
dependencies:
|
||||||
|
safer-buffer ">= 2.1.2 < 3"
|
||||||
|
|
||||||
inflight@^1.0.4:
|
inflight@^1.0.4:
|
||||||
version "1.0.6"
|
version "1.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
||||||
|
@ -1201,6 +1481,11 @@ inherits@2, inherits@2.0.4, inherits@^2.0.3:
|
||||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
||||||
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
||||||
|
|
||||||
|
ipaddr.js@1.9.1:
|
||||||
|
version "1.9.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
|
||||||
|
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
|
||||||
|
|
||||||
is-arrayish@^0.2.1:
|
is-arrayish@^0.2.1:
|
||||||
version "0.2.1"
|
version "0.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
|
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
|
||||||
|
@ -1410,6 +1695,33 @@ md5@^2.1.0:
|
||||||
crypt "0.0.2"
|
crypt "0.0.2"
|
||||||
is-buffer "~1.1.6"
|
is-buffer "~1.1.6"
|
||||||
|
|
||||||
|
media-typer@0.3.0:
|
||||||
|
version "0.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
|
||||||
|
integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
|
||||||
|
|
||||||
|
merge-descriptors@1.0.3:
|
||||||
|
version "1.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5"
|
||||||
|
integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==
|
||||||
|
|
||||||
|
methods@~1.1.2:
|
||||||
|
version "1.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
|
||||||
|
integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
|
||||||
|
|
||||||
|
mime-db@1.52.0:
|
||||||
|
version "1.52.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
|
||||||
|
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
|
||||||
|
|
||||||
|
mime-types@~2.1.24, mime-types@~2.1.34:
|
||||||
|
version "2.1.35"
|
||||||
|
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
|
||||||
|
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
|
||||||
|
dependencies:
|
||||||
|
mime-db "1.52.0"
|
||||||
|
|
||||||
mime@1.6.0:
|
mime@1.6.0:
|
||||||
version "1.6.0"
|
version "1.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
|
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
|
||||||
|
@ -1563,6 +1875,11 @@ ms@2.1.3:
|
||||||
nan@2.x, nan@^2.17.0, "nan@file:../../third_party/nan":
|
nan@2.x, nan@^2.17.0, "nan@file:../../third_party/nan":
|
||||||
version "2.18.0"
|
version "2.18.0"
|
||||||
|
|
||||||
|
negotiator@0.6.3:
|
||||||
|
version "0.6.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
|
||||||
|
integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
|
||||||
|
|
||||||
nise@^4.0.4:
|
nise@^4.0.4:
|
||||||
version "4.1.0"
|
version "4.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/nise/-/nise-4.1.0.tgz#8fb75a26e90b99202fa1e63f448f58efbcdedaf6"
|
resolved "https://registry.yarnpkg.com/nise/-/nise-4.1.0.tgz#8fb75a26e90b99202fa1e63f448f58efbcdedaf6"
|
||||||
|
@ -1628,6 +1945,11 @@ object-assign@^4.1.1:
|
||||||
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
||||||
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
|
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
|
||||||
|
|
||||||
|
object-inspect@^1.13.1:
|
||||||
|
version "1.13.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff"
|
||||||
|
integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==
|
||||||
|
|
||||||
object-keys@^1.1.1:
|
object-keys@^1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
|
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
|
||||||
|
@ -1707,6 +2029,11 @@ parse-json@^2.2.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
error-ex "^1.2.0"
|
error-ex "^1.2.0"
|
||||||
|
|
||||||
|
parseurl@~1.3.3:
|
||||||
|
version "1.3.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
|
||||||
|
integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
|
||||||
|
|
||||||
path-exists@^3.0.0:
|
path-exists@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
|
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
|
||||||
|
@ -1732,6 +2059,11 @@ path-parse@^1.0.7:
|
||||||
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
||||||
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
||||||
|
|
||||||
|
path-to-regexp@0.1.10:
|
||||||
|
version "0.1.10"
|
||||||
|
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.10.tgz#67e9108c5c0551b9e5326064387de4763c4d5f8b"
|
||||||
|
integrity sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==
|
||||||
|
|
||||||
path-to-regexp@^1.7.0:
|
path-to-regexp@^1.7.0:
|
||||||
version "1.9.0"
|
version "1.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.9.0.tgz#5dc0753acbf8521ca2e0f137b4578b917b10cf24"
|
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.9.0.tgz#5dc0753acbf8521ca2e0f137b4578b917b10cf24"
|
||||||
|
@ -1820,6 +2152,14 @@ promise-retry@^2.0.1:
|
||||||
err-code "^2.0.2"
|
err-code "^2.0.2"
|
||||||
retry "^0.12.0"
|
retry "^0.12.0"
|
||||||
|
|
||||||
|
proxy-addr@~2.0.7:
|
||||||
|
version "2.0.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
|
||||||
|
integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
|
||||||
|
dependencies:
|
||||||
|
forwarded "0.2.0"
|
||||||
|
ipaddr.js "1.9.1"
|
||||||
|
|
||||||
ps-list@^7.0.0:
|
ps-list@^7.0.0:
|
||||||
version "7.2.0"
|
version "7.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/ps-list/-/ps-list-7.2.0.tgz#3d110e1de8249a4b178c9b1cf2a215d1e4e42fc0"
|
resolved "https://registry.yarnpkg.com/ps-list/-/ps-list-7.2.0.tgz#3d110e1de8249a4b178c9b1cf2a215d1e4e42fc0"
|
||||||
|
@ -1838,6 +2178,13 @@ q@^1.5.1:
|
||||||
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
|
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
|
||||||
integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==
|
integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==
|
||||||
|
|
||||||
|
qs@6.13.0:
|
||||||
|
version "6.13.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906"
|
||||||
|
integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==
|
||||||
|
dependencies:
|
||||||
|
side-channel "^1.0.6"
|
||||||
|
|
||||||
quick-lru@^5.1.1:
|
quick-lru@^5.1.1:
|
||||||
version "5.1.1"
|
version "5.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
|
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
|
||||||
|
@ -1855,6 +2202,16 @@ range-parser@~1.2.1:
|
||||||
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
|
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
|
||||||
integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
|
integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
|
||||||
|
|
||||||
|
raw-body@2.5.2:
|
||||||
|
version "2.5.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a"
|
||||||
|
integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==
|
||||||
|
dependencies:
|
||||||
|
bytes "3.1.2"
|
||||||
|
http-errors "2.0.0"
|
||||||
|
iconv-lite "0.4.24"
|
||||||
|
unpipe "1.0.0"
|
||||||
|
|
||||||
read-pkg-up@^2.0.0:
|
read-pkg-up@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
|
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
|
||||||
|
@ -1933,13 +2290,6 @@ rimraf@^3.0.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
glob "^7.1.3"
|
glob "^7.1.3"
|
||||||
|
|
||||||
rimraf@~2.6.2:
|
|
||||||
version "2.6.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
|
|
||||||
integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
|
|
||||||
dependencies:
|
|
||||||
glob "^7.1.3"
|
|
||||||
|
|
||||||
roarr@^2.15.3:
|
roarr@^2.15.3:
|
||||||
version "2.15.4"
|
version "2.15.4"
|
||||||
resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd"
|
resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd"
|
||||||
|
@ -1957,11 +2307,16 @@ safe-buffer@5.1.2:
|
||||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
||||||
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
|
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
|
||||||
|
|
||||||
safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.2.0:
|
safe-buffer@5.2.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.2.0:
|
||||||
version "5.2.1"
|
version "5.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
||||||
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
||||||
|
|
||||||
|
"safer-buffer@>= 2.1.2 < 3":
|
||||||
|
version "2.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
||||||
|
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
||||||
|
|
||||||
sax@>=0.6.0:
|
sax@>=0.6.0:
|
||||||
version "1.3.0"
|
version "1.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0"
|
resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0"
|
||||||
|
@ -1992,7 +2347,7 @@ semver@^7.3.5:
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
|
||||||
integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
|
integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
|
||||||
|
|
||||||
send@^0.19.0:
|
send@0.19.0, send@^0.19.0:
|
||||||
version "0.19.0"
|
version "0.19.0"
|
||||||
resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8"
|
resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8"
|
||||||
integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==
|
integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==
|
||||||
|
@ -2025,11 +2380,33 @@ serialize-javascript@6.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
randombytes "^2.1.0"
|
randombytes "^2.1.0"
|
||||||
|
|
||||||
|
serve-static@1.16.2:
|
||||||
|
version "1.16.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296"
|
||||||
|
integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==
|
||||||
|
dependencies:
|
||||||
|
encodeurl "~2.0.0"
|
||||||
|
escape-html "~1.0.3"
|
||||||
|
parseurl "~1.3.3"
|
||||||
|
send "0.19.0"
|
||||||
|
|
||||||
set-blocking@^2.0.0:
|
set-blocking@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
|
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
|
||||||
integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
|
integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
|
||||||
|
|
||||||
|
set-function-length@^1.2.1:
|
||||||
|
version "1.2.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449"
|
||||||
|
integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==
|
||||||
|
dependencies:
|
||||||
|
define-data-property "^1.1.4"
|
||||||
|
es-errors "^1.3.0"
|
||||||
|
function-bind "^1.1.2"
|
||||||
|
get-intrinsic "^1.2.4"
|
||||||
|
gopd "^1.0.1"
|
||||||
|
has-property-descriptors "^1.0.2"
|
||||||
|
|
||||||
setprototypeof@1.2.0:
|
setprototypeof@1.2.0:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
|
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
|
||||||
|
@ -2047,6 +2424,16 @@ shebang-regex@^3.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
|
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
|
||||||
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
|
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
|
||||||
|
|
||||||
|
side-channel@^1.0.6:
|
||||||
|
version "1.0.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2"
|
||||||
|
integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==
|
||||||
|
dependencies:
|
||||||
|
call-bind "^1.0.7"
|
||||||
|
es-errors "^1.3.0"
|
||||||
|
get-intrinsic "^1.2.4"
|
||||||
|
object-inspect "^1.13.1"
|
||||||
|
|
||||||
signal-exit@^3.0.0:
|
signal-exit@^3.0.0:
|
||||||
version "3.0.7"
|
version "3.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
|
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
|
||||||
|
@ -2219,14 +2606,6 @@ tar@^6.1.11:
|
||||||
mkdirp "^1.0.3"
|
mkdirp "^1.0.3"
|
||||||
yallist "^4.0.0"
|
yallist "^4.0.0"
|
||||||
|
|
||||||
temp@^0.9.0:
|
|
||||||
version "0.9.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/temp/-/temp-0.9.4.tgz#cd20a8580cb63635d0e4e9d4bd989d44286e7620"
|
|
||||||
integrity sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==
|
|
||||||
dependencies:
|
|
||||||
mkdirp "^0.5.1"
|
|
||||||
rimraf "~2.6.2"
|
|
||||||
|
|
||||||
through@2, through@^2.3.8, through@~2.3, through@~2.3.4:
|
through@2, through@^2.3.8, through@~2.3, through@~2.3.4:
|
||||||
version "2.3.8"
|
version "2.3.8"
|
||||||
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
||||||
|
@ -2266,6 +2645,14 @@ type-fest@^0.13.1:
|
||||||
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934"
|
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934"
|
||||||
integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==
|
integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==
|
||||||
|
|
||||||
|
type-is@~1.6.18:
|
||||||
|
version "1.6.18"
|
||||||
|
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
|
||||||
|
integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
|
||||||
|
dependencies:
|
||||||
|
media-typer "0.3.0"
|
||||||
|
mime-types "~2.1.24"
|
||||||
|
|
||||||
undici-types@~5.26.4:
|
undici-types@~5.26.4:
|
||||||
version "5.26.5"
|
version "5.26.5"
|
||||||
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
|
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
|
||||||
|
@ -2281,11 +2668,21 @@ universalify@^2.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"
|
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"
|
||||||
integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
|
integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
|
||||||
|
|
||||||
|
unpipe@1.0.0, unpipe@~1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
|
||||||
|
integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
|
||||||
|
|
||||||
util-deprecate@^1.0.1:
|
util-deprecate@^1.0.1:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
||||||
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
|
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
|
||||||
|
|
||||||
|
utils-merge@1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
|
||||||
|
integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
|
||||||
|
|
||||||
uuid@^3.3.3:
|
uuid@^3.3.3:
|
||||||
version "3.4.0"
|
version "3.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
|
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
|
||||||
|
@ -2299,6 +2696,11 @@ validate-npm-package-license@^3.0.1:
|
||||||
spdx-correct "^3.0.0"
|
spdx-correct "^3.0.0"
|
||||||
spdx-expression-parse "^3.0.0"
|
spdx-expression-parse "^3.0.0"
|
||||||
|
|
||||||
|
vary@~1.1.2:
|
||||||
|
version "1.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
|
||||||
|
integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
|
||||||
|
|
||||||
webidl-conversions@^3.0.0:
|
webidl-conversions@^3.0.0:
|
||||||
version "3.0.1"
|
version "3.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
|
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
"allowJs": true,
|
"allowJs": true,
|
||||||
"noUnusedLocals": true,
|
"noUnusedLocals": true,
|
||||||
"outDir": "ts-gen",
|
"outDir": "ts-gen",
|
||||||
"typeRoots" : ["./node_modules/@types"],
|
"typeRoots" : ["./node_modules/@types", "./spec/node_modules/@types"],
|
||||||
"paths": {
|
"paths": {
|
||||||
"@electron/internal/*": ["lib/*"]
|
"@electron/internal/*": ["lib/*"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -203,6 +203,28 @@ declare namespace Electron {
|
||||||
registerProtocol(scheme: string, handler: any): boolean;
|
registerProtocol(scheme: string, handler: any): boolean;
|
||||||
interceptProtocol(scheme: string, handler: any): boolean;
|
interceptProtocol(scheme: string, handler: any): boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface WebContents {
|
||||||
|
on(event: '-new-window', listener: (event: Electron.Event, url: string, frameName: string, disposition: Electron.HandlerDetails['disposition'],
|
||||||
|
rawFeatures: string, referrer: Electron.Referrer, postData: LoadURLOptions['postData']) => void): this;
|
||||||
|
on(event: '-add-new-contents', listener: (event: Event, webContents: Electron.WebContents, disposition: string,
|
||||||
|
_userGesture: boolean, _left: number, _top: number, _width: number, _height: number, url: string, frameName: string,
|
||||||
|
referrer: Electron.Referrer, rawFeatures: string, postData: LoadURLOptions['postData']) => void): this;
|
||||||
|
on(event: '-will-add-new-contents', listener: (event: Electron.Event, url: string, frameName: string, rawFeatures: string, disposition: Electron.HandlerDetails['disposition'], referrer: Electron.Referrer, postData: LoadURLOptions['postData']) => void): this;
|
||||||
|
on(event: '-ipc-message', listener: (event: Electron.IpcMainEvent, internal: boolean, channel: string, args: any[]) => void): this;
|
||||||
|
on(event: '-ipc-message-sync', listener: (event: Electron.IpcMainEvent, internal: boolean, channel: string, args: any[]) => void): this;
|
||||||
|
on(event: '-ipc-invoke', listener: (event: Electron.IpcMainInvokeEvent, internal: boolean, channel: string, args: any[]) => void): this;
|
||||||
|
on(event: '-ipc-ports', listener: (event: Electron.IpcMainEvent, internal: boolean, channel: string, message: any, ports: any[]) => void): this;
|
||||||
|
on(event: '-run-dialog', listener: (info: {frame: WebFrameMain, dialogType: 'prompt' | 'confirm' | 'alert', messageText: string, defaultPromptText: string}, callback: (success: boolean, user_input: string) => void) => void): this;
|
||||||
|
on(event: '-cancel-dialogs', listener: () => void): this;
|
||||||
|
on(event: 'ready-to-show', listener: () => void): this;
|
||||||
|
on(event: '-before-unload-fired', listener: (event: Electron.Event, proceed: boolean) => void): this;
|
||||||
|
|
||||||
|
on(event: '-window-visibility-change', listener: (visibilityState: 'hidden' | 'visible') => void): this;
|
||||||
|
removeListener(event: '-window-visibility-change', listener: (visibilityState: 'hidden' | 'visible') => void): this;
|
||||||
|
|
||||||
|
once(event: 'destroyed', listener: (event: Electron.Event) => void): this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
declare namespace ElectronInternal {
|
declare namespace ElectronInternal {
|
||||||
|
|
2020
yarn.lock
2020
yarn.lock
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Загрузка…
Ссылка в новой задаче