Merge branch 'master' into upgrade-yarn-time

This commit is contained in:
Brendan Forster 2018-03-29 12:29:46 +11:00 committed by GitHub
commit a76185792d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 349 additions and 63 deletions

View file

@ -5,6 +5,7 @@ plugins:
- babel
- react
- prettier
- json
extends:
- prettier

View file

@ -170,4 +170,5 @@ pull requests.
| Label name | :mag_right: | Description |
| --- | --- | --- |
| `infrastructure` | [search](https://github.com/desktop/desktop/labels/infrastructure) | Pull requests not related to the core application - documentation, dependencies, tooling, etc. |
| `ready-for-review` | [search](https://github.com/desktop/desktop/labels/ready-for-review) | Pull Requests that are ready to be reviewed by the maintainers. |

View file

@ -57,7 +57,7 @@ install:
- yarn install --force
script:
- yarn lint && yarn build:prod && yarn test:setup && yarn test
- yarn lint && yarn validate-changelog && yarn build:prod && yarn test:setup && yarn test
after_failure:
- yarn test:review

View file

@ -3,7 +3,7 @@
"productName": "GitHub Desktop",
"bundleID": "com.github.GitHubClient",
"companyName": "GitHub, Inc.",
"version": "1.1.1-beta4",
"version": "1.1.2-beta1",
"main": "./main.js",
"repository": {
"type": "git",

View file

@ -347,7 +347,7 @@ export interface IRepositoryState {
/**
* The ordered local commit SHAs. The commits themselves can be looked up in
* `commits.`
* `commitLookup.`
*/
readonly localCommitSHAs: ReadonlyArray<string>

View file

@ -487,8 +487,8 @@ export class Dispatcher {
}
/** Update the repository's issues from GitHub. */
public updateIssues(repository: GitHubRepository): Promise<void> {
return this.appStore._updateIssues(repository)
public refreshIssues(repository: GitHubRepository): Promise<void> {
return this.appStore._refreshIssues(repository)
}
/** End the Welcome flow. */
@ -806,6 +806,18 @@ export class Dispatcher {
} catch (e) {
rejectOAuthRequest(e)
}
if (__DARWIN__) {
// workaround for user reports that the application doesn't receive focus
// after completing the OAuth signin in the browser
const window = remote.getCurrentWindow()
if (!window.isFocused()) {
log.info(
`refocusing the main window after the OAuth flow is completed`
)
window.focus()
}
}
break
case 'open-repository-from-url':

View file

@ -823,7 +823,7 @@ export class AppStore extends TypedBaseStore<IAppState> {
const gitHubRepository = repository.gitHubRepository
if (gitHubRepository != null) {
this._updateIssues(gitHubRepository)
this._refreshIssues(gitHubRepository)
this.loadPullRequests(repository, async () => {
const promiseForPRs = this.pullRequestStore.fetchPullRequestsFromCache(
gitHubRepository
@ -871,14 +871,14 @@ export class AppStore extends TypedBaseStore<IAppState> {
return this._repositoryWithRefreshedGitHubRepository(repository)
}
public async _updateIssues(repository: GitHubRepository) {
public async _refreshIssues(repository: GitHubRepository) {
const user = getAccountForEndpoint(this.accounts, repository.endpoint)
if (!user) {
return
}
try {
await this._issuesStore.fetchIssues(repository, user)
await this._issuesStore.refreshIssues(repository, user)
} catch (e) {
log.warn(`Unable to fetch issues for ${repository.fullName}`, e)
}
@ -2439,6 +2439,9 @@ export class AppStore extends TypedBaseStore<IAppState> {
if (fetchType === FetchType.UserInitiatedTask) {
this._refreshPullRequests(repository)
if (repository.gitHubRepository != null) {
this._refreshIssues(repository.gitHubRepository)
}
}
}
})

View file

@ -48,10 +48,10 @@ export class IssuesStore {
}
/**
* Fetch the issues for the repository. This will delete any issues that have
* Refresh the issues for the current repository. This will delete any issues that have
* been closed and update or add any issues that have changed or been added.
*/
public async fetchIssues(repository: GitHubRepository, account: Account) {
public async refreshIssues(repository: GitHubRepository, account: Account) {
const api = API.fromAccount(account)
const lastUpdatedAt = await this.getLatestUpdatedAt(repository)

View file

@ -52,7 +52,7 @@ export class IssuesAutocompletionProvider
text: string
): Promise<ReadonlyArray<IIssueHit>> {
this.updateIssuesScheduler.queue(() => {
this.dispatcher.updateIssues(this.repository)
this.dispatcher.refreshIssues(this.repository)
})
return this.issuesStore.getIssuesMatching(this.repository, text)

View file

@ -29,6 +29,7 @@ install:
build_script:
- yarn lint
- yarn validate-changelog
- yarn build:prod
test_script:

View file

@ -1,5 +1,39 @@
{
"releases": {
"1.1.2-beta1": [
],
"1.1.1": [
"[New] Render WebP images in diffs - #4164. Thanks @agisilaos!",
"[Fixed] Edit context menus in commit form input elements - #3886",
"[Fixed] Escape behavior for Pull Request list does not match Branch List - #3597",
"[Fixed] Keep caret position after inserting completion for emoji/mention - #3835. Thanks @CarlRosell!",
"[Fixed] Handle error events when watching files used to get Git LFS output - #4117",
"[Fixed] Potential race condition when opening a fork pull request - #4149",
"[Fixed] Show placeholder image when no pull requests found - #3973",
"[Fixed] Disable commit summary and description inputs while commit in progress - #3893. Thanks @crea7or!",
"[Fixed] Ensure pull request cache is cleared after last pull request merged - #4122",
"[Fixed] Focus two-factor authentication dialog on input - #4220. Thanks @WaleedAshraf!",
"[Fixed] Branches button no longer disabled while on an unborn branch - #4236. Thanks @agisilaos!",
"[Fixed] Delete gitignore file when all entries cleared in Repository Settings - #1896",
"[Fixed] Add visual indicator that a folder can be dropped on Desktop - #4004. Thanks @agisilaos!",
"[Fixed] Attempt to focus the application window on macOS after signing in via the browser - #4126",
"[Fixed] Refresh issues when user manually fetches - #4076",
"[Improved] Add `Discard All Changes...` to context menu on changed file list - #4197. Thanks @xamm!",
"[Improved] Improve contrast for button labels in app toolbar - #4219",
"[Improved] Speed up check for submodules when discarding - #4186. Thanks @kmscode!",
"[Improved] Make the keychain known issue more clear within Desktop - #4125",
"[Improved] Continue past the 'diff too large' message and view the diff - #4050",
"[Improved] Repository association might not have expected prefix - #4090. Thanks @mathieudutour!",
"[Improved] Add message to gitignore dialog when not on default branch - #3720",
"[Improved] Hide Desktop-specific forks in Branch List - #4127",
"[Improved] Disregard accidental whitespace when cloning a repository by URL - #4216",
"[Improved] Show alert icon in repository list when repository not found on disk - #4254. Thanks @gingerbeardman!",
"[Improved] Repository list now closes after removing last repository - #4269. Thanks @agisilaos!",
"[Improved] Move forget password link after the password dialog to match expected tab order - #4283. Thanks @iamnapo!",
"[Improved] More descriptive text in repository toolbar button when no repositories are tracked - #4268. Thanks @agisilaos!",
"[Improved] Context menu in Changes tab now supports opening file in your preferred editor - #4030"
],
"1.1.1-beta4": [
"[Improved] Context menu in Changes tab now supports opening file in your preferred editor - #4030"
],
@ -38,7 +72,7 @@
"[Improved] Electron 1.8.3 upgrade (again)"
],
"1.1.1-test1": [
"[Improved] Electron 1.8.3 upgrade"
"[Improved] Forcing a focus on the window after the OAuth dance is done"
],
"1.1.1-beta1": [
@ -636,8 +670,7 @@
"[Fixed] 'Create Without Pushing' button throwing an exception while opening a pull request - #2368",
"[Fixed] Windows: Don't removing the running app out from under itself when there are updates pending - #2373",
"[Fixed] Windows: Respect `core.autocrlf` and `core.safeclrf` when modifying the .gitignore - #1535",
"[Fixed] Windows: Fix opening the app from the command line - #2396",
"[Fixed] 'Create Without Pushing' button throwing an exception while opening a pull request - #2368"
"[Fixed] Windows: Fix opening the app from the command line - #2396"
],
"0.7.3-beta5": [],
"0.7.3-beta4": [],

View file

@ -33,6 +33,7 @@ dependencies:
compile:
override:
- yarn lint
- yarn validate-changelog
- yarn build:prod
test:

View file

@ -29,6 +29,20 @@ This seems to be caused by the Keychain being in an invalid state, affecting app
- Right-click on the `login` keychain and try unlocking it
- Sign into your GitHub account again
### Checking for updates triggers a 'Could not create temporary directory: Permission denied' message - [#4115](https://github.com/desktop/desktop/issues/4115)
This issue seems to be caused by missing permissions for the `~/Library/Caches/com.github.GitHubClient.ShipIt` folder. This is a directory that Desktop uses to create and unpack temporary files as part of updating the application.
**Workaround:**
- Close Desktop
- Open Finder and navigate to `~/Library/Caches/`
- Context-click `com.github.GitHubClient.ShipIt` and select **Get Info**
- Expand the **Sharing & Permissions** section
- If you do not see the "You can read and write" message, add yourself with
the "Read & Write" permissions
- Start Desktop again and check for updates
## Windows
### Window is hidden after detaching secondary monitor - [#2107](https://github.com/desktop/desktop/issues/2107)

View file

@ -8,7 +8,8 @@
"cli": "ts-node --require ./app/test/globals.ts --require ./app/src/cli/dev-commands-global.js app/src/cli/main.ts",
"test:integration": "cross-env TEST_ENV=1 ELECTRON_NO_ATTACH_CONSOLE=1 xvfb-maybe --auto-servernum -- mocha -t 30000 --require ts-node/register app/test/integration/*.ts",
"test:unit": "ts-node script/unit-tests.ts",
"test": "yarn test:unit && yarn test:integration",
"test:script": "mocha -t 10000 --require ts-node/register script/changelog/test/*.ts",
"test": "yarn test:unit && yarn test:script && yarn test:integration",
"test:setup": "ts-node script/test-setup.ts",
"test:review": "ts-node script/test-review.ts",
"postinstall": "cd app && yarn install --force && cd .. && git submodule update --recursive --init && yarn compile:tslint",
@ -19,7 +20,7 @@
"compile:prod": "cross-env NODE_ENV=production parallel-webpack --config app/webpack.production.js",
"build:dev": "yarn compile:dev && cross-env NODE_ENV=development ts-node script/build.ts",
"build:prod": "yarn compile:prod && cross-env NODE_ENV=production ts-node script/build.ts",
"package": "ts-node -P script script/package.ts",
"package": "ts-node -P script/tsconfig.json script/package.ts",
"generate-octicons": "ts-node script/generate-octicons.ts",
"clean:tslint": "rimraf tslint-rules/*.js",
"compile:tslint": "tsc -p tslint-rules",
@ -37,7 +38,8 @@
"rebuild-hard:dev": "yarn clean-slate && yarn build:dev",
"rebuild-hard:prod": "yarn clean-slate && yarn build:prod",
"changelog": "ts-node script/changelog/index.ts",
"draft-release": "ts-node script/draft-release/index.ts"
"draft-release": "ts-node script/draft-release/index.ts",
"validate-changelog": "ts-node script/validate-changelog.ts"
},
"author": {
"name": "GitHub, Inc.",
@ -50,6 +52,7 @@
"yarn": ">= 1.5.0"
},
"dependencies": {
"ajv": "^6.4.0",
"awesome-typescript-loader": "^3.4.0",
"aws-sdk": "^2.23.0",
"babel-core": "^6.24.1",
@ -65,6 +68,7 @@
"eslint": "^4.19.1",
"eslint-config-prettier": "^2.9.0",
"eslint-plugin-babel": "^4.1.2",
"eslint-plugin-json": "^1.2.0",
"eslint-plugin-prettier": "^2.6.0",
"eslint-plugin-react": "^7.7.0",
"eslint-plugin-typescript": "^0.10.0",
@ -88,7 +92,7 @@
"spectron": "^3.8.0",
"style-loader": "^0.19.1",
"to-camel-case": "^1.0.0",
"ts-node": "^3.2.0",
"ts-node": "^5.0.1",
"tslint": "^5.9.1",
"tslint-config-prettier": "^1.10.0",
"tslint-microsoft-contrib": "^5.0.3",

View file

@ -35,19 +35,29 @@ function capitalized(str: string): string {
return str.charAt(0).toUpperCase() + str.slice(1)
}
function getChangelogEntry(commit: IParsedCommit, pr: IAPIPR): string {
export function findIssueRef(body: string): string {
let issueRef = ''
const re = /(close[s]?|fix(e[sd])?|resolve[sd]):?\s*#(\d+)/gi
let match: RegExpExecArray | null = null
do {
match = re.exec(body)
if (match && match.length === 4) {
// a match should always have four elements - the matching text
// as well as the three groups within the match. We're only
// interested in the last group - the issue reference number
issueRef += ` #${match[3]}`
}
} while (match)
return issueRef
}
function getChangelogEntry(commit: IParsedCommit, pr: IAPIPR): string {
let type = PlaceholderChangeType
const description = capitalized(pr.title)
const re = /Fixes #(\d+)/gi
let match: RegExpExecArray | null = null
do {
match = re.exec(pr.body)
if (match && match.length > 1) {
issueRef += ` #${match[1]}`
}
} while (match)
let issueRef = findIssueRef(pr.body)
if (issueRef.length) {
type = 'Fixed'

View file

@ -0,0 +1,59 @@
import { expect } from 'chai'
import { findIssueRef } from '../parser'
describe('changelog/parser', () => {
describe('findIssueRef', () => {
it('detected fixes message at start of PR body', () => {
const body = `
Fixes #2314
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sollicitudin turpis
tempor euismod fermentum. Nullam hendrerit neque eget risus faucibus volutpat. Donec
ultrices, orci quis auctor ultrices, nulla lacus gravida lectus, non rutrum dolor
quam vel augue.`
expect(findIssueRef(body)).to.equal(' #2314')
})
it('detects multiple fixed issues in PR body', () => {
const body = `
Fixes #2314
Fixes #1234
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sollicitudin turpis
tempor euismod fermentum. Nullam hendrerit neque eget risus faucibus volutpat. Donec
ultrices, orci quis auctor ultrices, nulla lacus gravida lectus, non rutrum dolor
quam vel augue.`
expect(findIssueRef(body)).to.equal(' #2314 #1234')
})
it('handles colon after fixed message', () => {
const body = `
Pellentesque pellentesque finibus fermentum. Aenean eget semper libero.
Fixes: #2314
Nam malesuada augue vel velit vehicula suscipit. Nunc posuere, velit at sodales
malesuada, quam tellus rutrum orci, et tincidunt sem nunc non velit. Cras
placerat, massa vel tristique iaculis, urna nisl tristique nibh, eget luctus
nisl quam in metus.`
expect(findIssueRef(body)).to.equal(' #2314')
})
it('handles closes syntax', () => {
const body = `
Closes: #2314
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sollicitudin turpis
tempor euismod fermentum. Nullam hendrerit neque eget risus faucibus volutpat. Donec
ultrices, orci quis auctor ultrices, nulla lacus gravida lectus, non rutrum dolor
quam vel augue.`
expect(findIssueRef(body)).to.equal(' #2314')
})
it('handles resolves syntax', () => {
const body = `This resolves #2314 and is totally wild`
expect(findIssueRef(body)).to.equal(' #2314')
})
})
})

View file

@ -18,6 +18,7 @@ const report = eslint.executeOnFiles([
'./tslint-rules/**/*.ts',
'./app/*.js',
'./app/{src,typings,test}/**/*.{j,t}s?(x)',
'./changelog.json',
])
if (shouldFix) {
@ -29,6 +30,6 @@ console.log(eslint.getFormatter()(report.results))
if (report.errorCount > 0) {
process.exitCode = 1
console.error(
chalk`{bold.green → To fix some of these errors, run {underline yarn eslint:fix}}`
chalk`{bold.green → To fix some of these errors, run {underline yarn eslint --fix}}`
)
}

View file

@ -105,5 +105,6 @@ generateIconData().then(result => {
console.log('Ensuring generated file is formatted correctly...')
const root = Path.dirname(__dirname)
return cp.spawn('yarn', ['lint:fix'], { cwd: root, stdio: 'inherit' })
const yarnExecutable = process.platform === 'win32' ? 'yarn.cmd' : 'yarn'
return cp.spawn(yarnExecutable, ['lint:fix'], { cwd: root, stdio: 'inherit' })
})

View file

@ -0,0 +1,80 @@
#!/usr/bin/env ts-node
import * as Path from 'path'
import * as Fs from 'fs'
import * as Ajv from 'ajv'
function handleError(error: string) {
console.error(error)
process.exit(-1)
}
function formatErrors(errors: Ajv.ErrorObject[]): string {
return errors
.map(error => {
const { dataPath, message } = error
const additionalProperties = error.params as any
const additionalProperty = additionalProperties.additionalProperty as string
let additionalPropertyText = ''
if (additionalProperty != null) {
additionalPropertyText = `, found: '${
additionalProperties.additionalProperty
}'`
}
// dataPath starts with a leading "."," which is a bit confusing
const element = dataPath.substr(1)
return ` - ${element} - ${message}${additionalPropertyText}`
})
.join('\n')
}
const repositoryRoot = Path.dirname(__dirname)
const changelogPath = Path.join(repositoryRoot, 'changelog.json')
const changelog = Fs.readFileSync(changelogPath, 'utf8')
let changelogObj = null
try {
changelogObj = JSON.parse(changelog)
} catch {
handleError(
'Unable to parse the contents of changelog.json into a JSON object. Please review the file contents.'
)
}
const schema = {
$schema: 'http://json-schema.org/draft-07/schema#',
type: 'object',
properties: {
releases: {
type: 'object',
patternProperties: {
'^([0-9]+.[0-9]+.[0-9]+)(-beta[0-9]+|-test[0-9]+)?$': {
type: 'array',
items: {
type: 'string',
},
uniqueItems: true,
},
},
additionalProperties: false,
},
},
}
const ajv = new Ajv({ allErrors: true, uniqueItems: true })
const validate = ajv.compile(schema)
const valid = validate(changelogObj)
if (!valid && validate.errors != null) {
handleError(`Errors: \n${formatErrors(validate.errors)}`)
}
console.log('The changelog is totally fine')

133
yarn.lock
View file

@ -262,6 +262,15 @@ ajv@^6.1.1:
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.3.0"
ajv@^6.4.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.4.0.tgz#d3aff78e9277549771daf0164cff48482b754fc6"
dependencies:
fast-deep-equal "^1.0.0"
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.3.0"
uri-js "^3.0.2"
align-text@^0.1.1, align-text@^0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
@ -1395,6 +1404,13 @@ cli-width@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
cli@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/cli/-/cli-1.0.1.tgz#22817534f24bfa4950c34d532d48ecbc621b8c14"
dependencies:
exit "0.1.2"
glob "^7.1.1"
cliui@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
@ -1547,7 +1563,7 @@ configstore@^3.0.0:
write-file-atomic "^2.0.0"
xdg-basedir "^3.0.0"
console-browserify@^1.1.0:
console-browserify@1.1.x, console-browserify@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
dependencies:
@ -2030,13 +2046,19 @@ domhandler@2.1:
dependencies:
domelementtype "1"
domhandler@2.3:
version "2.3.0"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738"
dependencies:
domelementtype "1"
domutils@1.1:
version "1.1.6"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485"
dependencies:
domelementtype "1"
domutils@1.5.1:
domutils@1.5, domutils@1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
dependencies:
@ -2322,6 +2344,10 @@ enhanced-resolve@^3.3.0, enhanced-resolve@^3.4.0:
object-assign "^4.0.1"
tapable "^0.2.7"
entities@1.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26"
entities@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
@ -2443,6 +2469,12 @@ eslint-plugin-babel@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-4.1.2.tgz#79202a0e35757dd92780919b2336f1fa2fe53c1e"
eslint-plugin-json@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-json/-/eslint-plugin-json-1.2.0.tgz#9ba73bb0be99d50093e889f5b968463d2a30efae"
dependencies:
jshint "^2.8.0"
eslint-plugin-prettier@^2.6.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.0.tgz#33e4e228bdb06142d03c560ce04ec23f6c767dd7"
@ -2593,6 +2625,10 @@ execa@^0.7.0:
signal-exit "^3.0.0"
strip-eof "^1.0.0"
exit@0.1.2, exit@0.1.x:
version "0.1.2"
resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
expand-brackets@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
@ -3320,12 +3356,6 @@ home-path@^1.0.1:
version "1.0.5"
resolved "https://registry.yarnpkg.com/home-path/-/home-path-1.0.5.tgz#788b29815b12d53bacf575648476e6f9041d133f"
homedir-polyfill@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc"
dependencies:
parse-passwd "^1.0.0"
hosted-git-info@^2.1.4, hosted-git-info@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
@ -3362,6 +3392,16 @@ html-webpack-plugin@^2.30.1:
pretty-error "^2.0.2"
toposort "^1.0.0"
htmlparser2@3.8.x:
version "3.8.3"
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068"
dependencies:
domelementtype "1"
domhandler "2.3"
domutils "1.5"
entities "1.0"
readable-stream "1.1"
htmlparser2@~3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe"
@ -3870,6 +3910,19 @@ jsesc@~0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
jshint@^2.8.0:
version "2.9.5"
resolved "https://registry.yarnpkg.com/jshint/-/jshint-2.9.5.tgz#1e7252915ce681b40827ee14248c46d34e9aa62c"
dependencies:
cli "~1.0.0"
console-browserify "1.1.x"
exit "0.1.x"
htmlparser2 "3.8.x"
lodash "3.7.x"
minimatch "~3.0.2"
shelljs "0.3.x"
strip-json-comments "1.0.x"
json-loader@^0.5.4:
version "0.5.7"
resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d"
@ -4149,6 +4202,10 @@ lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
lodash@3.7.x:
version "3.7.0"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.7.0.tgz#3678bd8ab995057c07ade836ed2ef087da811d45"
lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.8.0, lodash@~4.17.4:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
@ -4907,10 +4964,6 @@ parse-json@^2.2.0:
dependencies:
error-ex "^1.2.0"
parse-passwd@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
parseurl@~1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
@ -5389,6 +5442,10 @@ punycode@^1.2.4, punycode@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
punycode@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d"
q@^1.1.2, q@~1.5.0:
version "1.5.1"
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
@ -5535,6 +5592,15 @@ readable-stream@1.0:
isarray "0.0.1"
string_decoder "~0.10.x"
readable-stream@1.1:
version "1.1.13"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e"
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.1"
isarray "0.0.1"
string_decoder "~0.10.x"
readable-stream@^1.1.8, readable-stream@~1.1.9:
version "1.1.14"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
@ -6025,6 +6091,10 @@ shebang-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
shelljs@0.3.x:
version "0.3.0"
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1"
signal-exit@^3.0.0, signal-exit@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
@ -6121,7 +6191,7 @@ source-map-resolve@^0.5.0:
source-map-url "^0.4.0"
urix "^0.1.0"
source-map-support@^0.4.0, source-map-support@^0.4.15:
source-map-support@^0.4.15:
version "0.4.18"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
dependencies:
@ -6326,7 +6396,11 @@ strip-indent@^1.0.1:
dependencies:
get-stdin "^4.0.1"
strip-json-comments@^2.0.0, strip-json-comments@~2.0.1:
strip-json-comments@1.0.x:
version "1.0.4"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91"
strip-json-comments@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
@ -6593,28 +6667,19 @@ tryit@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
ts-node@^3.2.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-3.3.0.tgz#c13c6a3024e30be1180dd53038fc209289d4bf69"
ts-node@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-5.0.1.tgz#78e5d1cb3f704de1b641e43b76be2d4094f06f81"
dependencies:
arrify "^1.0.0"
chalk "^2.0.0"
chalk "^2.3.0"
diff "^3.1.0"
make-error "^1.1.1"
minimist "^1.2.0"
mkdirp "^0.5.1"
source-map-support "^0.4.0"
tsconfig "^6.0.0"
v8flags "^3.0.0"
source-map-support "^0.5.3"
yn "^2.0.0"
tsconfig@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-6.0.0.tgz#6b0e8376003d7af1864f8df8f89dd0059ffcd032"
dependencies:
strip-bom "^3.0.0"
strip-json-comments "^2.0.0"
tslib@^1.7.1:
version "1.8.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.8.0.tgz#dc604ebad64bcbf696d613da6c954aa0e7ea1eb6"
@ -6824,6 +6889,12 @@ upper-case@^1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598"
uri-js@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-3.0.2.tgz#f90b858507f81dea4dcfbb3c4c3dbfa2b557faaa"
dependencies:
punycode "^2.1.0"
urix@^0.1.0, urix@~0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
@ -6901,12 +6972,6 @@ uuid@3.1.0, uuid@^3.0.0, uuid@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
v8flags@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.0.1.tgz#dce8fc379c17d9f2c9e9ed78d89ce00052b1b76b"
dependencies:
homedir-polyfill "^1.0.1"
validate-npm-package-license@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"