mirror of
https://github.com/desktop/desktop
synced 2024-09-13 21:31:32 +00:00
Merge branch 'development' into add-20-syntax-highlighting-languages
This commit is contained in:
commit
9d3a658f9f
8
.vscode/settings.json
vendored
8
.vscode/settings.json
vendored
|
@ -28,5 +28,11 @@
|
|||
"eslint.options": {
|
||||
"configFile": ".eslintrc.yml",
|
||||
"rulePaths": ["eslint-rules"]
|
||||
}
|
||||
},
|
||||
"eslint.validate": [
|
||||
"javascript",
|
||||
"javascriptreact",
|
||||
"typescript",
|
||||
"typescriptreact"
|
||||
]
|
||||
}
|
||||
|
|
22
README.md
22
README.md
|
@ -21,13 +21,6 @@ Download the official installer for your operating system:
|
|||
- [Windows](https://central.github.com/deployments/desktop/desktop/latest/win32)
|
||||
- [Windows machine-wide install](https://central.github.com/deployments/desktop/desktop/latest/win32?format=msi)
|
||||
|
||||
There are several community-supported package managers that can be used to install Github Desktop.
|
||||
- Windows users can install using [Chocolatey](https://chocolatey.org/) package manager:
|
||||
`c:\> choco install github-desktop`
|
||||
- macOS users can install using [Homebrew](https://brew.sh/) package manager:
|
||||
`$ brew cask install github`
|
||||
- Arch Linux users can install the latest version from the [AUR](https://aur.archlinux.org/packages/github-desktop/).
|
||||
|
||||
You can install this alongside your existing GitHub Desktop for Mac or GitHub
|
||||
Desktop for Windows application.
|
||||
|
||||
|
@ -43,6 +36,21 @@ beta channel to get access to early builds of Desktop:
|
|||
- [macOS](https://central.github.com/deployments/desktop/desktop/latest/darwin?env=beta)
|
||||
- [Windows](https://central.github.com/deployments/desktop/desktop/latest/win32?env=beta)
|
||||
|
||||
### Community Releases
|
||||
|
||||
There are several community-supported package managers that can be used to
|
||||
install GitHub Desktop:
|
||||
- Windows users can install using [Chocolatey](https://chocolatey.org/) package manager:
|
||||
`c:\> choco install github-desktop`
|
||||
- macOS users can install using [Homebrew](https://brew.sh/) package manager:
|
||||
`$ brew cask install github`
|
||||
|
||||
Installers for various Linux distributions can be found on the
|
||||
[`shiftkey/desktop`](https://github.com/shiftkey/desktop) fork.
|
||||
|
||||
Arch Linux users can install the latest version from the
|
||||
[AUR](https://aur.archlinux.org/packages/github-desktop-bin/).
|
||||
|
||||
## Is GitHub Desktop right for me? What are the primary areas of focus?
|
||||
|
||||
[This document](https://github.com/desktop/desktop/blob/development/docs/process/what-is-desktop.md) describes the focus of GitHub Desktop and who the product is most useful for.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
runtime = electron
|
||||
disturl = https://atom.io/download/electron
|
||||
target = 3.1.6
|
||||
target = 5.0.6
|
||||
arch = x64
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"productName": "GitHub Desktop",
|
||||
"bundleID": "com.github.GitHubClient",
|
||||
"companyName": "GitHub, Inc.",
|
||||
"version": "2.1.0",
|
||||
"version": "2.1.1-beta2",
|
||||
"main": "./main.js",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
|
|
@ -97,7 +97,7 @@ export function enableBranchProtectionChecks(): boolean {
|
|||
|
||||
/** Should the app detect Windows Subsystem for Linux as a valid shell? */
|
||||
export function enableWSLDetection(): boolean {
|
||||
return enableDevelopmentFeatures()
|
||||
return enableBetaFeatures()
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
7
app/src/lib/globals.d.ts
vendored
7
app/src/lib/globals.d.ts
vendored
|
@ -188,13 +188,6 @@ interface XMLHttpRequest extends XMLHttpRequestEventTarget {
|
|||
}
|
||||
|
||||
declare namespace Electron {
|
||||
interface MenuItem {
|
||||
readonly accelerator?: Electron.Accelerator
|
||||
readonly submenu?: Electron.Menu
|
||||
readonly role?: string
|
||||
readonly type: 'normal' | 'separator' | 'submenu' | 'checkbox' | 'radio'
|
||||
}
|
||||
|
||||
interface RequestOptions {
|
||||
readonly method: string
|
||||
readonly url: string
|
||||
|
|
|
@ -17,7 +17,7 @@ export interface IMenuItem {
|
|||
* When specified the click property will be ignored.
|
||||
* See https://electronjs.org/docs/api/menu-item#roles
|
||||
*/
|
||||
readonly role?: string
|
||||
readonly role?: Electron.MenuItemConstructorOptions['role']
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -57,12 +57,10 @@ async function getRawShellEnv(): Promise<string | null> {
|
|||
cleanup()
|
||||
}, 5000)
|
||||
|
||||
const options = {
|
||||
child = ChildProcess.spawn(shell, ['-ilc', 'command env'], {
|
||||
detached: true,
|
||||
stdio: ['ignore', 'pipe', process.stderr],
|
||||
}
|
||||
|
||||
child = ChildProcess.spawn(shell, ['-ilc', 'command env'], options)
|
||||
})
|
||||
|
||||
const buffers: Array<Buffer> = []
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ export enum Shell {
|
|||
Hyper = 'Hyper',
|
||||
iTerm2 = 'iTerm2',
|
||||
PowerShellCore = 'PowerShell Core',
|
||||
Kitty = 'Kitty',
|
||||
}
|
||||
|
||||
export const Default = Shell.Terminal
|
||||
|
@ -30,6 +31,10 @@ export function parse(label: string): Shell {
|
|||
return Shell.PowerShellCore
|
||||
}
|
||||
|
||||
if (label === Shell.Kitty) {
|
||||
return Shell.Kitty
|
||||
}
|
||||
|
||||
return Default
|
||||
}
|
||||
|
||||
|
@ -43,6 +48,8 @@ function getBundleID(shell: Shell): string {
|
|||
return 'co.zeit.hyper'
|
||||
case Shell.PowerShellCore:
|
||||
return 'com.microsoft.powershell'
|
||||
case Shell.Kitty:
|
||||
return 'net.kovidgoyal.kitty'
|
||||
default:
|
||||
return assertNever(shell, `Unknown shell: ${shell}`)
|
||||
}
|
||||
|
@ -66,11 +73,13 @@ export async function getAvailableShells(): Promise<
|
|||
hyperPath,
|
||||
iTermPath,
|
||||
powerShellCorePath,
|
||||
kittyPath,
|
||||
] = await Promise.all([
|
||||
getShellPath(Shell.Terminal),
|
||||
getShellPath(Shell.Hyper),
|
||||
getShellPath(Shell.iTerm2),
|
||||
getShellPath(Shell.PowerShellCore),
|
||||
getShellPath(Shell.Kitty),
|
||||
])
|
||||
|
||||
const shells: Array<IFoundShell<Shell>> = []
|
||||
|
@ -90,6 +99,11 @@ export async function getAvailableShells(): Promise<
|
|||
shells.push({ shell: Shell.PowerShellCore, path: powerShellCorePath })
|
||||
}
|
||||
|
||||
if (kittyPath) {
|
||||
const kittyExecutable = `${kittyPath}/Contents/MacOS/kitty`
|
||||
shells.push({ shell: Shell.Kitty, path: kittyExecutable })
|
||||
}
|
||||
|
||||
return shells
|
||||
}
|
||||
|
||||
|
@ -97,7 +111,16 @@ export function launch(
|
|||
foundShell: IFoundShell<Shell>,
|
||||
path: string
|
||||
): ChildProcess {
|
||||
const bundleID = getBundleID(foundShell.shell)
|
||||
const commandArgs = ['-b', bundleID, path]
|
||||
return spawn('open', commandArgs)
|
||||
if (foundShell.shell === Shell.Kitty) {
|
||||
// kitty does not handle arguments as expected when using `open` with
|
||||
// an existing session but closed window (it reverts to the previous
|
||||
// directory rather than using the new directory directory).
|
||||
//
|
||||
// This workaround launches the internal `kitty` executable which
|
||||
// will open a new window to the desired path.
|
||||
return spawn(foundShell.path, ['--single-instance', '--directory', path])
|
||||
} else {
|
||||
const bundleID = getBundleID(foundShell.shell)
|
||||
return spawn('open', ['-b', bundleID, path])
|
||||
}
|
||||
}
|
||||
|
|
|
@ -406,9 +406,7 @@ export class AppStore extends TypedBaseStore<IAppState> {
|
|||
const window = remote.getCurrentWindow()
|
||||
this.windowState = getWindowState(window)
|
||||
|
||||
window.webContents.getZoomFactor(factor => {
|
||||
this.onWindowZoomFactorChanged(factor)
|
||||
})
|
||||
this.onWindowZoomFactorChanged(window.webContents.getZoomFactor())
|
||||
|
||||
this.wireupIpcEventHandlers(window)
|
||||
this.wireupStoreEventHandlers()
|
||||
|
|
|
@ -43,6 +43,7 @@ export class AppWindow {
|
|||
disableBlinkFeatures: 'Auxclick',
|
||||
// Enable, among other things, the ResizeObserver
|
||||
experimentalFeatures: true,
|
||||
nodeIntegration: true,
|
||||
},
|
||||
acceptFirstMouse: true,
|
||||
}
|
||||
|
|
|
@ -43,6 +43,7 @@ export class CrashWindow {
|
|||
// process but our components which relies on ResizeObserver should
|
||||
// be able to degrade gracefully.
|
||||
experimentalFeatures: false,
|
||||
nodeIntegration: true,
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -611,29 +611,27 @@ function zoom(direction: ZoomDirection): ClickHandler {
|
|||
webContents.setZoomFactor(1)
|
||||
webContents.send('zoom-factor-changed', 1)
|
||||
} else {
|
||||
webContents.getZoomFactor(rawZoom => {
|
||||
const zoomFactors =
|
||||
direction === ZoomDirection.In ? ZoomInFactors : ZoomOutFactors
|
||||
const rawZoom = webContents.getZoomFactor()
|
||||
const zoomFactors =
|
||||
direction === ZoomDirection.In ? ZoomInFactors : ZoomOutFactors
|
||||
|
||||
// So the values that we get from getZoomFactor are floating point
|
||||
// precision numbers from chromium that don't always round nicely so
|
||||
// we'll have to do a little trick to figure out which of our supported
|
||||
// zoom factors the value is referring to.
|
||||
const currentZoom = findClosestValue(zoomFactors, rawZoom)
|
||||
// So the values that we get from getZoomFactor are floating point
|
||||
// precision numbers from chromium that don't always round nicely so
|
||||
// we'll have to do a little trick to figure out which of our supported
|
||||
// zoom factors the value is referring to.
|
||||
const currentZoom = findClosestValue(zoomFactors, rawZoom)
|
||||
|
||||
const nextZoomLevel = zoomFactors.find(f =>
|
||||
direction === ZoomDirection.In ? f > currentZoom : f < currentZoom
|
||||
)
|
||||
const nextZoomLevel = zoomFactors.find(f =>
|
||||
direction === ZoomDirection.In ? f > currentZoom : f < currentZoom
|
||||
)
|
||||
|
||||
// If we couldn't find a zoom level (likely due to manual manipulation
|
||||
// of the zoom factor in devtools) we'll just snap to the closest valid
|
||||
// factor we've got.
|
||||
const newZoom =
|
||||
nextZoomLevel === undefined ? currentZoom : nextZoomLevel
|
||||
// If we couldn't find a zoom level (likely due to manual manipulation
|
||||
// of the zoom factor in devtools) we'll just snap to the closest valid
|
||||
// factor we've got.
|
||||
const newZoom = nextZoomLevel === undefined ? currentZoom : nextZoomLevel
|
||||
|
||||
webContents.setZoomFactor(newZoom)
|
||||
webContents.send('zoom-factor-changed', newZoom)
|
||||
})
|
||||
webContents.setZoomFactor(newZoom)
|
||||
webContents.send('zoom-factor-changed', newZoom)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -162,6 +162,24 @@ function getAccessKey(text: string): string | null {
|
|||
return m ? m[1] : null
|
||||
}
|
||||
|
||||
/** Workaround for missing type information on Electron.MenuItem.type */
|
||||
function parseMenuItem(
|
||||
type: string
|
||||
): 'normal' | 'separator' | 'submenu' | 'checkbox' | 'radio' {
|
||||
switch (type) {
|
||||
case 'normal':
|
||||
case 'separator':
|
||||
case 'submenu':
|
||||
case 'checkbox':
|
||||
case 'radio':
|
||||
return type
|
||||
default:
|
||||
throw new Error(
|
||||
`Unable to parse string ${type} to a valid menu item type`
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an instance of one of the types in the MenuItem type union based
|
||||
* on an Electron MenuItem instance. Will recurse through all sub menus and
|
||||
|
@ -182,8 +200,10 @@ function menuItemFromElectronMenuItem(menuItem: Electron.MenuItem): MenuItem {
|
|||
const accelerator = getAccelerator(menuItem)
|
||||
const accessKey = getAccessKey(menuItem.label)
|
||||
|
||||
const type = parseMenuItem(menuItem.type)
|
||||
|
||||
// normal, separator, submenu, checkbox or radio.
|
||||
switch (menuItem.type) {
|
||||
switch (type) {
|
||||
case 'normal':
|
||||
return {
|
||||
id,
|
||||
|
@ -230,10 +250,7 @@ function menuItemFromElectronMenuItem(menuItem: Electron.MenuItem): MenuItem {
|
|||
accessKey,
|
||||
}
|
||||
default:
|
||||
return assertNever(
|
||||
menuItem.type,
|
||||
`Unknown menu item type ${menuItem.type}`
|
||||
)
|
||||
return assertNever(type, `Unknown menu item type ${type}`)
|
||||
}
|
||||
}
|
||||
/**
|
||||
|
|
|
@ -175,10 +175,10 @@ export class AddExistingRepository extends React.Component<
|
|||
|
||||
private showFilePicker = async () => {
|
||||
const window = remote.getCurrentWindow()
|
||||
const directory: string[] | null = remote.dialog.showOpenDialog(window, {
|
||||
const directory = remote.dialog.showOpenDialog(window, {
|
||||
properties: ['createDirectory', 'openDirectory'],
|
||||
})
|
||||
if (!directory) {
|
||||
if (directory === undefined) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -162,11 +162,11 @@ export class CreateRepository extends React.Component<
|
|||
|
||||
private showFilePicker = async () => {
|
||||
const window = remote.getCurrentWindow()
|
||||
const directory: string[] | null = remote.dialog.showOpenDialog(window, {
|
||||
const directory = remote.dialog.showOpenDialog(window, {
|
||||
properties: ['createDirectory', 'openDirectory'],
|
||||
})
|
||||
|
||||
if (!directory) {
|
||||
if (directory === undefined) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@ export class ModifiedImageDiff extends React.Component<
|
|||
private container: HTMLElement | null = null
|
||||
|
||||
private readonly resizeObserver: ResizeObserver
|
||||
private resizedTimeoutID: number | null = null
|
||||
private resizedTimeoutID: NodeJS.Immediate | null = null
|
||||
|
||||
public constructor(props: IModifiedImageDiffProps) {
|
||||
super(props)
|
||||
|
|
|
@ -123,7 +123,7 @@ export class CommitSummary extends React.Component<
|
|||
> {
|
||||
private descriptionScrollViewRef: HTMLDivElement | null = null
|
||||
private readonly resizeObserver: ResizeObserver | null = null
|
||||
private updateOverflowTimeoutId: number | null = null
|
||||
private updateOverflowTimeoutId: NodeJS.Immediate | null = null
|
||||
private descriptionRef: HTMLDivElement | null = null
|
||||
|
||||
public constructor(props: ICommitSummaryProps) {
|
||||
|
|
|
@ -264,7 +264,7 @@ export class List extends React.Component<IListProps, IListState> {
|
|||
private list: HTMLDivElement | null = null
|
||||
private grid: React.Component<any, any> | null = null
|
||||
private readonly resizeObserver: ResizeObserver | null = null
|
||||
private updateSizeTimeoutId: number | null = null
|
||||
private updateSizeTimeoutId: NodeJS.Immediate | null = null
|
||||
|
||||
public constructor(props: IListProps) {
|
||||
super(props)
|
||||
|
|
|
@ -49,13 +49,13 @@ export class CommitConflictsWarning extends React.Component<
|
|||
|
||||
private renderFiles(files: ReadonlyArray<WorkingDirectoryFileChange>) {
|
||||
return (
|
||||
<p>
|
||||
<div className="conflicted-files-text">
|
||||
{files.map(f => (
|
||||
<Monospaced key={f.path}>
|
||||
<PathText path={f.path} />
|
||||
</Monospaced>
|
||||
))}
|
||||
</p>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -76,7 +76,11 @@ export class RepositoryListItem extends React.Component<
|
|||
: 'repository-list-item'
|
||||
|
||||
return (
|
||||
<div onContextMenu={this.onContextMenu} className={className}>
|
||||
<div
|
||||
onContextMenu={this.onContextMenu}
|
||||
className={className}
|
||||
title={repoTooltip}
|
||||
>
|
||||
{!enableGroupRepositoriesByOwner() && (
|
||||
<div
|
||||
className="change-indicator-wrapper"
|
||||
|
@ -98,7 +102,7 @@ export class RepositoryListItem extends React.Component<
|
|||
className="icon-for-repository"
|
||||
symbol={iconForRepository(repository)}
|
||||
/>
|
||||
<div className="name" title={repoTooltip}>
|
||||
<div className="name">
|
||||
{prefix ? <span className="prefix">{prefix}</span> : null}
|
||||
<HighlightText
|
||||
text={repository.name}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
display: flex;
|
||||
flex-direction: row;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
|
||||
.fill-window {
|
||||
// necessary for "no files in commit" view to
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
@import 'dialogs/release-notes';
|
||||
@import 'dialogs/usage-reporting';
|
||||
@import 'dialogs/stash-changes';
|
||||
@import 'dialogs/commit-conflicts-warning';
|
||||
|
||||
// The styles herein attempt to follow a flow where margins are only applied
|
||||
// to the bottom of elements (with the exception of the last child). This to
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
flex-direction: row;
|
||||
flex: 1;
|
||||
border-top: var(--base-border);
|
||||
max-height: 100%;
|
||||
|
||||
> .focus-container {
|
||||
display: flex;
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
max-height: 100%;
|
||||
|
||||
.header {
|
||||
display: flex;
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
flex-grow: 1;
|
||||
padding: 0 var(--spacing);
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
||||
// Chrome on Windows ignores the body element
|
||||
// font-family and uses Arial so we redefine
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
flex-direction: column;
|
||||
flex-grow: 1;
|
||||
min-width: 0;
|
||||
max-height: 100%;
|
||||
|
||||
.header {
|
||||
span {
|
||||
|
@ -64,4 +65,5 @@
|
|||
display: flex;
|
||||
flex-grow: 1;
|
||||
min-width: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
|
3
app/styles/ui/dialogs/_commit-conflicts-warning.scss
Normal file
3
app/styles/ui/dialogs/_commit-conflicts-warning.scss
Normal file
|
@ -0,0 +1,3 @@
|
|||
.conflicted-files-text {
|
||||
margin-bottom: 10px;
|
||||
}
|
|
@ -5,6 +5,7 @@
|
|||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
max-height: 100%;
|
||||
|
||||
// Necessary so that the diff doesn't expand
|
||||
// beyond the width of the history
|
||||
|
|
|
@ -1,5 +1,15 @@
|
|||
{
|
||||
"releases": {
|
||||
"2.1.1-beta2": [
|
||||
"[Fixed] Incorrect proportions for \"stashed changes\" button - #7964",
|
||||
"[Fixed] Overflowing diffs push UI elements out of window - #7967"
|
||||
],
|
||||
"2.1.1-beta1": [
|
||||
"[Added] WSL Support - #7821 #7891. Thanks @ADustyOldMuffin @say25!",
|
||||
"[Fixed] Tooltip does not display on the entire hit area for list items - #7910. Thanks @say25!",
|
||||
"[Improved] Error handling when trying to rebase onto an invalid ref - #7871",
|
||||
"[Improved] Trigger diff search even when CodeMirror doesn't have focus - #7899"
|
||||
],
|
||||
"2.1.0": [
|
||||
"[New] Branches that have been merged and deleted on GitHub.com will now be pruned after two weeks - #750",
|
||||
"[Added] Search text within diffs using shortcut - #7538",
|
||||
|
|
|
@ -127,6 +127,7 @@ These shells are currently supported:
|
|||
- [Hyper](https://hyper.sh/)
|
||||
- [iTerm2](https://www.iterm2.com/)
|
||||
- [PowerShell Core](https://github.com/powershell/powershell/)
|
||||
- [Kitty](https://sw.kovidgoyal.net/kitty/)
|
||||
|
||||
These are defined in an enum at the top of the file:
|
||||
|
||||
|
@ -136,6 +137,7 @@ export enum Shell {
|
|||
Hyper = 'Hyper',
|
||||
iTerm2 = 'iTerm2',
|
||||
PowerShellCore = 'PowerShell Core',
|
||||
Kitty = 'Kitty',
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -168,11 +170,13 @@ export async function getAvailableShells(): Promise<
|
|||
hyperPath,
|
||||
iTermPath,
|
||||
powerShellCorePath,
|
||||
kittyPath,
|
||||
] = await Promise.all([
|
||||
getShellPath(Shell.Terminal),
|
||||
getShellPath(Shell.Hyper),
|
||||
getShellPath(Shell.iTerm2),
|
||||
getShellPath(Shell.PowerShellCore),
|
||||
getShellPath(Shell.Kitty),
|
||||
])
|
||||
|
||||
// other code
|
||||
|
|
11
package.json
11
package.json
|
@ -55,8 +55,8 @@
|
|||
"yarn": ">= 1.9"
|
||||
},
|
||||
"dependencies": {
|
||||
"@typescript-eslint/eslint-plugin": "1.6.0",
|
||||
"@typescript-eslint/parser": "1.6.0",
|
||||
"@typescript-eslint/eslint-plugin": "1.10.2",
|
||||
"@typescript-eslint/parser": "1.10.2",
|
||||
"airbnb-browser-shims": "^3.0.0",
|
||||
"ajv": "^6.4.0",
|
||||
"awesome-node-loader": "^1.1.0",
|
||||
|
@ -141,7 +141,7 @@
|
|||
"@types/memoize-one": "^3.1.1",
|
||||
"@types/mini-css-extract-plugin": "^0.2.0",
|
||||
"@types/mri": "^1.1.0",
|
||||
"@types/node": "10.1.4",
|
||||
"@types/node": "10.12.18",
|
||||
"@types/react": "^16.3.16",
|
||||
"@types/react-css-transition-replace": "^2.1.3",
|
||||
"@types/react-dom": "^16.0.5",
|
||||
|
@ -164,12 +164,9 @@
|
|||
"@types/webpack-merge": "^4.1.3",
|
||||
"@types/winston": "^2.2.0",
|
||||
"@types/xml2js": "^0.4.0",
|
||||
"electron": "3.1.6",
|
||||
"electron": "5.0.6",
|
||||
"electron-builder": "20.28.4",
|
||||
"electron-packager": "^13.1.0",
|
||||
"electron-winstaller": "2.5.2"
|
||||
},
|
||||
"resolutions": {
|
||||
"**/@types/node": "10.1.4"
|
||||
}
|
||||
}
|
||||
|
|
80
yarn.lock
80
yarn.lock
|
@ -174,6 +174,11 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/electron-winstaller/-/electron-winstaller-2.6.0.tgz#703073ee2109fefe8a958fdadb746dfc0a827918"
|
||||
integrity sha512-pQke6avqSYtkNunEec7NF2dTDSFsf2e1Ti9VkaJFzI15UfTEOjwz22lKoImja7nXPLu8nINYSaVaPgw0XHJEkA==
|
||||
|
||||
"@types/eslint-visitor-keys@^1.0.0":
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d"
|
||||
integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==
|
||||
|
||||
"@types/event-kit@^1.2.28":
|
||||
version "1.2.32"
|
||||
resolved "https://registry.yarnpkg.com/@types/event-kit/-/event-kit-1.2.32.tgz#068cbdc69e8c969afae8c9f6e3a51ea4b1b5522e"
|
||||
|
@ -311,11 +316,21 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/mri/-/mri-1.1.0.tgz#66555e4d797713789ea0fefdae0898d8170bf5af"
|
||||
integrity sha512-fMl88ZoZXOB7VKazJ6wUMpZc9QIn+jcigSFRf2K/rrw4DcXn+/uGxlWX8DDlcE7JkwgIZ7BDH+JgxZPlc/Ap3g==
|
||||
|
||||
"@types/node@*", "@types/node@10.1.4", "@types/node@^8.0.24":
|
||||
"@types/node@*":
|
||||
version "10.1.4"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.1.4.tgz#606651d3f8a8bec08b8cb262161aab9209f4a29d"
|
||||
integrity sha512-GpQxofkdlHYxjHad98UUdNoMO7JrmzQZoAaghtNg14Gwg7YkohcrCoJEcEMSgllx4VIZ+mYw7ZHjfaeIagP/rg==
|
||||
|
||||
"@types/node@10.12.18":
|
||||
version "10.12.18"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz#1d3ca764718915584fcd9f6344621b7672665c67"
|
||||
integrity sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==
|
||||
|
||||
"@types/node@^10.12.18":
|
||||
version "10.14.10"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.10.tgz#e491484c6060af8d461e12ec81c0da8a3282b8de"
|
||||
integrity sha512-V8wj+w2YMNvGuhgl/MA5fmTxgjmVHVoasfIaxMMZJV6Y8Kk+Ydpi1z2whoShDCJ2BuNVoqH/h1hrygnBxkrw/Q==
|
||||
|
||||
"@types/prop-types@*":
|
||||
version "15.5.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.2.tgz#3c6b8dceb2906cc87fe4358e809f9d20c8d59be1"
|
||||
|
@ -519,29 +534,39 @@
|
|||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@typescript-eslint/eslint-plugin@1.6.0":
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.6.0.tgz#a5ff3128c692393fb16efa403ec7c8a5593dab0f"
|
||||
integrity sha512-U224c29E2lo861TQZs6GSmyC0OYeRNg6bE9UVIiFBxN2MlA0nq2dCrgIVyyRbC05UOcrgf2Wk/CF2gGOPQKUSQ==
|
||||
"@typescript-eslint/eslint-plugin@1.10.2":
|
||||
version "1.10.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.10.2.tgz#552fc64cfcb19c6162190360217c945e8faa330a"
|
||||
integrity sha512-7449RhjE1oLFIy5E/5rT4wG5+KsfPzakJuhvpzXJ3C46lq7xywY0/Rjo9ZBcwrfbk0nRZ5xmUHkk7DZ67tSBKw==
|
||||
dependencies:
|
||||
"@typescript-eslint/parser" "1.6.0"
|
||||
"@typescript-eslint/typescript-estree" "1.6.0"
|
||||
requireindex "^1.2.0"
|
||||
"@typescript-eslint/experimental-utils" "1.10.2"
|
||||
eslint-utils "^1.3.1"
|
||||
functional-red-black-tree "^1.0.1"
|
||||
regexpp "^2.0.1"
|
||||
tsutils "^3.7.0"
|
||||
|
||||
"@typescript-eslint/parser@1.6.0":
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-1.6.0.tgz#f01189c8b90848e3b8e45a6cdad27870529d1804"
|
||||
integrity sha512-VB9xmSbfafI+/kI4gUK3PfrkGmrJQfh0N4EScT1gZXSZyUxpsBirPL99EWZg9MmPG0pzq/gMtgkk7/rAHj4aQw==
|
||||
"@typescript-eslint/experimental-utils@1.10.2":
|
||||
version "1.10.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-1.10.2.tgz#cd548c03fc1a2b3ba5c136d1599001a1ede24215"
|
||||
integrity sha512-Hf5lYcrnTH5Oc67SRrQUA7KuHErMvCf5RlZsyxXPIT6AXa8fKTyfFO6vaEnUmlz48RpbxO4f0fY3QtWkuHZNjg==
|
||||
dependencies:
|
||||
"@typescript-eslint/typescript-estree" "1.6.0"
|
||||
"@typescript-eslint/typescript-estree" "1.10.2"
|
||||
eslint-scope "^4.0.0"
|
||||
|
||||
"@typescript-eslint/parser@1.10.2":
|
||||
version "1.10.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-1.10.2.tgz#36cfe8c6bf1b6c1dd81da56f88c8588f4b1a852b"
|
||||
integrity sha512-xWDWPfZfV0ENU17ermIUVEVSseBBJxKfqBcRCMZ8nAjJbfA5R7NWMZmFFHYnars5MjK4fPjhu4gwQv526oZIPQ==
|
||||
dependencies:
|
||||
"@types/eslint-visitor-keys" "^1.0.0"
|
||||
"@typescript-eslint/experimental-utils" "1.10.2"
|
||||
"@typescript-eslint/typescript-estree" "1.10.2"
|
||||
eslint-visitor-keys "^1.0.0"
|
||||
|
||||
"@typescript-eslint/typescript-estree@1.6.0":
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.6.0.tgz#6cf43a07fee08b8eb52e4513b428c8cdc9751ef0"
|
||||
integrity sha512-A4CanUwfaG4oXobD5y7EXbsOHjCwn8tj1RDd820etpPAjH+Icjc2K9e/DQM1Hac5zH2BSy+u6bjvvF2wwREvYA==
|
||||
"@typescript-eslint/typescript-estree@1.10.2":
|
||||
version "1.10.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.10.2.tgz#8403585dd74b6cfb6f78aa98b6958de158b5897b"
|
||||
integrity sha512-Kutjz0i69qraOsWeI8ETqYJ07tRLvD9URmdrMoF10bG8y8ucLmPtSxROvVejWvlJUGl2et/plnMiKRDW+rhEhw==
|
||||
dependencies:
|
||||
lodash.unescape "4.0.1"
|
||||
semver "5.5.0"
|
||||
|
@ -3346,12 +3371,12 @@ electron-winstaller@2.5.2:
|
|||
lodash.template "^4.2.2"
|
||||
temp "^0.8.3"
|
||||
|
||||
electron@3.1.6:
|
||||
version "3.1.6"
|
||||
resolved "https://registry.yarnpkg.com/electron/-/electron-3.1.6.tgz#f6222e1964838b31c5806dd041b1b58a941998f6"
|
||||
integrity sha512-elEKKlFMnR0bhR/Uttk0TI496ZadxYsecyKgj2tZgrWx/F/anzfxbEYNcv134vT+qMFC/BXvoaeaIIj2YYdVuA==
|
||||
electron@5.0.6:
|
||||
version "5.0.6"
|
||||
resolved "https://registry.yarnpkg.com/electron/-/electron-5.0.6.tgz#e3ca4a58b5716fceef3fb64e1fd2222dd9c51de0"
|
||||
integrity sha512-0L53lv26eDhaaNxL6DqXGQrQOEAYbrQg40stRSb2pzrY06kwPbABzXEiaCvEsBuKUQ+9OQBbVyyvXRbLJlun/A==
|
||||
dependencies:
|
||||
"@types/node" "^8.0.24"
|
||||
"@types/node" "^10.12.18"
|
||||
electron-download "^4.1.0"
|
||||
extract-zip "^1.0.3"
|
||||
|
||||
|
@ -8289,11 +8314,6 @@ require-main-filename@^1.0.1:
|
|||
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
|
||||
integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=
|
||||
|
||||
requireindex@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef"
|
||||
integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==
|
||||
|
||||
resolve-cwd@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
|
||||
|
@ -9517,9 +9537,9 @@ tslib@^1.9.0:
|
|||
integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==
|
||||
|
||||
tslint-config-prettier@^1.14.0:
|
||||
version "1.14.0"
|
||||
resolved "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.14.0.tgz#860b36634e53f4c70c64c51ff3ef7fd9bbab7676"
|
||||
integrity sha512-SomD+aLvAwoihMtyCfkhhWKt9wcpSY2ZpgDV6OuxLYi8+7uOwE2g03aa+jJLSmY0Ys8s3ZLM5Iwfuwu3giCSQQ==
|
||||
version "1.18.0"
|
||||
resolved "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz#75f140bde947d35d8f0d238e0ebf809d64592c37"
|
||||
integrity sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==
|
||||
|
||||
tslint-microsoft-contrib@^5.2.1:
|
||||
version "5.2.1"
|
||||
|
|
Loading…
Reference in a new issue