├── .npmignore ├── .travis.yml ├── src ├── tests │ ├── index.ts │ ├── it.ts │ ├── it.test.ts │ └── describe.ts ├── helpers │ ├── coerceToPromise.ts │ ├── padNewLine.ts │ ├── assertIsAssertion.ts │ └── formatMessage.ts ├── index.ts ├── assertions │ ├── index.ts │ ├── assert.ts │ ├── inspect.ts │ ├── fail.ts │ ├── throws.ts │ ├── all.ts │ ├── fail.test.ts │ ├── throws.test.ts │ ├── equals.ts │ └── equals.test.ts ├── types.ts └── 45.ts ├── tslint.json ├── .vscode └── settings.json ├── .editorconfig ├── CHANGELOG.md ├── .github ├── PULL_REQUEST_TEMPLATE.md └── ISSUE_TEMPLATE.md ├── CONTRIBUTING.md ├── tsconfig.json ├── README.md ├── .gitignore ├── LICENSE.md ├── bin └── 45.js ├── package.json └── yarn.lock /.npmignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 7 4 | -------------------------------------------------------------------------------- /src/tests/index.ts: -------------------------------------------------------------------------------- 1 | export * from './it'; 2 | export * from './describe'; 3 | -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "@motorcycle/tslint" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /src/helpers/coerceToPromise.ts: -------------------------------------------------------------------------------- 1 | export function coerceToPromise(x: any): Promise { 2 | return Promise.resolve(x); 3 | } 4 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './types'; 2 | export * from './45'; 3 | export * from './assertions'; 4 | export * from './tests'; 5 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.tabSize": 2, 3 | 4 | "editor.insertSpaces": true, 5 | 6 | "typescript.tsdk": "node_modules/typescript/lib" 7 | } -------------------------------------------------------------------------------- /src/assertions/index.ts: -------------------------------------------------------------------------------- 1 | export * from './equals'; 2 | export * from './fail'; 3 | export * from './assert'; 4 | export * from './throws'; 5 | export * from './all'; 6 | -------------------------------------------------------------------------------- /src/assertions/assert.ts: -------------------------------------------------------------------------------- 1 | import { Assertion } from '../'; 2 | import { equals } from './'; 3 | 4 | export const assert: (bool: boolean) => Assertion = equals(true); 5 | -------------------------------------------------------------------------------- /src/helpers/padNewLine.ts: -------------------------------------------------------------------------------- 1 | import { EOL } from 'os'; 2 | 3 | export function padNewLine(str: string): string { 4 | return str.replace(new RegExp(`[${EOL}]`, 'g'), EOL + ' '); 5 | } 6 | -------------------------------------------------------------------------------- /src/assertions/inspect.ts: -------------------------------------------------------------------------------- 1 | const objInspect: (x: any) => string = require('object-inspect'); 2 | 3 | export function inspect(x: any): string { 4 | return typeof x === 'object' 5 | ? objInspect(x) 6 | : String(x); 7 | } 8 | -------------------------------------------------------------------------------- /src/assertions/fail.ts: -------------------------------------------------------------------------------- 1 | import { Assertion } from '../'; 2 | import { inspect } from './inspect'; 3 | 4 | export const fail = (message: A): Assertion => 5 | ({ 6 | passed: false, 7 | message: inspect(message), 8 | }); 9 | -------------------------------------------------------------------------------- /src/helpers/assertIsAssertion.ts: -------------------------------------------------------------------------------- 1 | import { Assertion } from '../'; 2 | 3 | export function assertIsAssertion (x: any): Assertion { 4 | if (x && typeof x.passed === 'boolean' && typeof x.message === 'string') 5 | return x as Assertion; 6 | 7 | return { passed: false, message: `No assertions used` }; 8 | } 9 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | tab_width = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | insert_final_newline = false 15 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # 0.1.0 (2017-02-04) 2 | --- 3 | 4 | ## Features 5 | 6 | - feat(45): draft implementation [93f63034](https://github.com/TylorS/45/commits/93f630347c5a38bac5037c133194c2517dcf7f45) 7 | - feat(45): basic implementation [6f610231](https://github.com/TylorS/45/commits/6f6102314d3d811e5870c2f91ccfccb01af5ecaa) 8 | 9 | 10 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 5 | 6 | - [ ] I added new tests for the issue I fixed or the feature I built 7 | - [ ] I ran `npm test` for the package I'm modifying 8 | - [ ] I used `npm run commit` instead of `git commit` 9 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | First of all, thank you so much, we need your help. 4 | 5 | ## Contributing a fix or feature 6 | 7 | 1. Fork the repository 8 | 2. Switch to a new branch `git checkout -b [branchName]` 9 | 3. Produce your fix or feature 10 | 4. Use `npm run commit` instead of `git commit` PLEASE! 11 | 5. Submit a pull request for review 12 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": [ 4 | "es5", 5 | "es2015" 6 | ], 7 | "moduleResolution": "node", 8 | "declaration": true, 9 | "noImplicitAny": true, 10 | "sourceMap": true, 11 | "noUnusedParameters": true, 12 | "strictNullChecks": true 13 | }, 14 | "include": [ 15 | "src/**/*.ts" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /src/assertions/throws.ts: -------------------------------------------------------------------------------- 1 | import { Assertion } from '../'; 2 | import { inspect } from './inspect'; 3 | 4 | export function throws(f: () => any): Assertion { 5 | try { 6 | const x = f(); 7 | return { passed: false, message: `Did not throw 8 | returned: ${ x && inspect(x) || '' }` }; 9 | } catch (e) { 10 | return { passed: true, message: e.message }; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/assertions/all.ts: -------------------------------------------------------------------------------- 1 | import { Assertion } from '../'; 2 | 3 | export function all(assertions: Array): Assertion { 4 | const seed = { passed: true, message: `` }; 5 | 6 | return assertions.reduce((acc, assertion) => { 7 | if (!assertion.passed) { 8 | acc.message += assertion.message; 9 | acc.passed = false; 10 | } 11 | 12 | return acc; 13 | }, seed); 14 | } 15 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | **Code to reproduce the issue:** 8 | 9 | 10 | **Expected behavior:** 11 | 12 | 13 | **Actual behavior:** 14 | 15 | 16 | **Versions of packages used:** 17 | -------------------------------------------------------------------------------- /src/assertions/fail.test.ts: -------------------------------------------------------------------------------- 1 | import { Test, describe, given, it } from '../'; 2 | 3 | import { fail } from './fail'; 4 | 5 | export const test: Test = describe(`fail`, [ 6 | given(`a message string`, [ 7 | it(`returns a FailedAssertion`, ({ all, assert, equals }) => { 8 | const assertion = fail(`Message`); 9 | 10 | return all([ 11 | assert(!assertion.passed), 12 | equals(assertion.message, 'Message'), 13 | ]); 14 | }), 15 | ]), 16 | ]); 17 | -------------------------------------------------------------------------------- /src/tests/it.ts: -------------------------------------------------------------------------------- 1 | import * as assert from '../assertions'; 2 | 3 | import { Test, TestFn } from '../'; 4 | import { blue, bold } from 'typed-colors'; 5 | 6 | import { assertIsAssertion } from '../helpers/assertIsAssertion'; 7 | import { coerceToPromise } from '../helpers/coerceToPromise'; 8 | 9 | export function it(does: string, test: TestFn): Test { 10 | return { 11 | name: bold(blue('it ') + does), 12 | showStatus: true, 13 | run: () => coerceToPromise(test(assert)).then(assertIsAssertion), 14 | }; 15 | } 16 | -------------------------------------------------------------------------------- /src/helpers/formatMessage.ts: -------------------------------------------------------------------------------- 1 | import { Assertion, Test } from '../'; 2 | import { bold, green, red, reset } from 'typed-colors'; 3 | import { cross, tick } from 'typed-figures'; 4 | 5 | import { EOL } from 'os'; 6 | 7 | export function success(test: Test, assertion: Assertion): string { 8 | return (test.showStatus ? green(tick) + ' ' : '') + 9 | bold(test.name) + 10 | reset(EOL + ' ' + assertion.message); 11 | } 12 | 13 | export function failure(test: Test, assertion: Assertion): string { 14 | return (test.showStatus ? bold(red(cross)) + ' ' : '') + 15 | bold(test.name) + 16 | reset(EOL + ' ' + assertion.message) + EOL; 17 | } 18 | -------------------------------------------------------------------------------- /src/assertions/throws.test.ts: -------------------------------------------------------------------------------- 1 | import { Test, describe, given, it } from '../'; 2 | 3 | import { throws } from './throws'; 4 | 5 | export const test: Test = describe(`throws`, [ 6 | given(`a function that throws`, [ 7 | it(`Returns an SuccefulAssertion`, ({ assert }) => { 8 | const assertion = throws(() => { throw new Error(`Wtf`); }); 9 | 10 | return assert(assertion.passed); 11 | }), 12 | ]), 13 | 14 | given(`a function that does not throw`, [ 15 | it(`Returns a FailedAssertion`, ({ assert }) => { 16 | const assertion = throws(() => 1); 17 | 18 | return assert(!assertion.passed); 19 | }), 20 | ]), 21 | ]); 22 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | export interface Test { 2 | name: string; 3 | run(): Promise; 4 | showStatus: boolean; 5 | } 6 | 7 | export interface Assert 8 | { 9 | all (assertions: Array): Assertion; 10 | assert (bool: boolean): Assertion; 11 | equals (expected: A, actual: A): Assertion; 12 | equals (expected: A): (actual: A) => Assertion; 13 | fail (message: any): Assertion; 14 | throws (f: () => any): Assertion; 15 | }; 16 | 17 | export type TestFn = ((assert: Assert) => Assertion) | ((assert: Assert) => Promise); 18 | 19 | export type Assertion = 20 | { 21 | passed: boolean; 22 | message: string; 23 | }; 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 45 2 | 3 | > A functionally-oriented test runner 4 | 5 | `45` is a test runner that is easy to use and gets out of your way. 6 | Supports tests written ES2015 and TypeScript out-of-the-box. 7 | 8 | ## Let me have it! 9 | ```sh 10 | npm install --save 45 11 | ``` 12 | 13 | ## Basic Usage 14 | 15 | Create a test file 16 | ```js 17 | // test/foo.js 18 | import { describe, given, it } from '45'; 19 | 20 | module.exports = describe('foo', [ 21 | given('an iteger', [ 22 | 23 | it('returns a string', ({ assert }) => { 24 | return assert(typeof foo(1) === 'string'); 25 | }) 26 | ]) 27 | ]) 28 | ``` 29 | In your terminal run 30 | ```sh 31 | 45 test/foo.js 32 | 33 | # Supports globs 34 | 45 test/*.js 35 | ``` -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Logs 3 | logs 4 | *.log 5 | npm-debug.log* 6 | 7 | # Runtime data 8 | pids 9 | *.pid 10 | *.seed 11 | 12 | # Directory for instrumented libs generated by jscoverage/JSCover 13 | lib-cov 14 | 15 | # Coverage directory used by tools like istanbul 16 | coverage 17 | 18 | # nyc test coverage 19 | .nyc_output 20 | 21 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 22 | .grunt 23 | 24 | # node-waf configuration 25 | .lock-wscript 26 | 27 | # Compiled binary addons (http://nodejs.org/api/addons.html) 28 | build/Release 29 | 30 | # Dependency directories 31 | node_modules 32 | jspm_packages 33 | 34 | # Optional npm cache directory 35 | .npm 36 | 37 | # Optional REPL history 38 | .node_repl_history 39 | 40 | # generated files 41 | lib 42 | lib.es2015 43 | .tmp 44 | 45 | # other stuff 46 | src/test.ts 47 | -------------------------------------------------------------------------------- /src/assertions/equals.ts: -------------------------------------------------------------------------------- 1 | const isEqual: (a: any, b: any) => boolean = require('lodash.isequal'); 2 | 3 | import { green, red } from 'typed-colors'; 4 | 5 | import { Assertion } from '../'; 6 | import { curry2 } from '@typed/curry'; 7 | import { inspect } from './inspect'; 8 | 9 | export const equals: EqualsFn = curry2( 10 | function equals(expected: A, actual: A): Assertion { 11 | const areEqual = isEqual(expected, actual); 12 | 13 | if (areEqual) 14 | return { 15 | passed: true, 16 | message: ``, 17 | }; 18 | 19 | return { 20 | passed: false, 21 | message: `Equality check failed: 22 | ${green('Expected')}: ${inspect(expected)} 23 | ${red('Actual')}: ${inspect(actual)}`, 24 | }; 25 | }, 26 | ); 27 | 28 | export interface EqualsFn { 29 | (expected: A, actual: A): Assertion; 30 | (expected: A): (actual: A) => Assertion; 31 | } 32 | -------------------------------------------------------------------------------- /src/tests/it.test.ts: -------------------------------------------------------------------------------- 1 | import { Test, describe, given, it } from '../'; 2 | 3 | export const test = describe(`it`, [ 4 | given(`a test name and test function`, [ 5 | it(`returns a Test`, ({ equals, all, assert }) => { 6 | const testTest: Test = it('does things', () => equals(1, 1)); 7 | 8 | return testTest.run().then(assertion => { 9 | return all([ 10 | assert(testTest.name.includes('does things')), 11 | assert(assertion.passed), 12 | ]); 13 | }); 14 | }), 15 | ]), 16 | 17 | given(`a test function that does not return an assertion`, [ 18 | it(`returns a failed test`, ({ equals }) => { 19 | const testTest: Test = it('does stuff', () => { return 1 as any; }); 20 | 21 | return testTest.run().then(assertion => { 22 | if (assertion.passed) 23 | throw new Error(`Should not return passing assertion`); 24 | 25 | return equals(assertion.message, 'No assertions used'); 26 | }); 27 | }), 28 | ]), 29 | ]); 30 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Tylor Steinberger 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /src/45.ts: -------------------------------------------------------------------------------- 1 | import { failure, success } from './helpers/formatMessage'; 2 | 3 | import { EOL } from 'os'; 4 | import { Test } from './'; 5 | import { red } from 'typed-colors'; 6 | 7 | export class FourtyFive { 8 | constructor (private tests: Array) {} 9 | 10 | public run(): Promise<{ failures: number, message: string }> { 11 | const tests = this.tests; 12 | 13 | return Promise.all(tests.map(test => test.run())) 14 | .then((assertions) => { 15 | const result = 16 | { 17 | failures: 0, 18 | message: EOL, 19 | }; 20 | 21 | assertions.forEach((assertion, i) => { 22 | const test = tests[i]; 23 | 24 | if (assertion.passed) 25 | return result.message += success(test, assertion); 26 | 27 | result.failures += 1; 28 | result.message += failure(test, assertion); 29 | }); 30 | 31 | result.message = EOL + result.message.trim(); 32 | 33 | if (!result.message.trim()) { 34 | result.failures = 1; 35 | result.message = EOL + red('WARNING: ') + 'No tests were run!'; 36 | } 37 | 38 | return result; 39 | }); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/tests/describe.ts: -------------------------------------------------------------------------------- 1 | import { blue, bold, underline } from 'typed-colors'; 2 | import { failure, success } from '../helpers/formatMessage'; 3 | 4 | import { EOL } from 'os'; 5 | import { Test } from '../'; 6 | import { padNewLine } from '../helpers/padNewLine'; 7 | 8 | export function describe(category: string, tests: Array): Test { 9 | return { 10 | name: blue('Describe ' + underline(category)), 11 | showStatus: false, 12 | run() { 13 | return Promise.all(tests.map(test => test.run())) 14 | .then(assertions => { 15 | let result = { passed: true, message: '' }; 16 | 17 | assertions.forEach((assertion, i) => { 18 | const test = tests[i]; 19 | 20 | if (assertion.passed) 21 | return result.message += success(test, assertion); 22 | 23 | result.passed = false; 24 | result.message += EOL + failure(test, assertion); 25 | }); 26 | 27 | result.message = padNewLine(result.message).trim() + EOL; 28 | 29 | return result; 30 | }); 31 | }, 32 | }; 33 | } 34 | 35 | export const given = (parameters: string, tests: Test[]): Test => 36 | ({ 37 | name: bold(blue('given') + ' ' + parameters), 38 | showStatus: false, 39 | run: () => describe(parameters, tests).run(), 40 | }); 41 | -------------------------------------------------------------------------------- /bin/45.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var expand = require("glob-expand"); 3 | var fourtyFive = require("../lib"); 4 | var path = require("path"); 5 | var testFiles = process.argv.slice(2); 6 | 7 | require('ts-node/register') 8 | require('buba/register') 9 | 10 | var defaultPatterns = [ 11 | /.*\.(spec|test)\.(js|ts)$/, 12 | /-(spec|test)\.(js|ts)$/, 13 | /(Spec|Test)\.(js|ts)$/, 14 | 'test/**/*.js', 15 | 'test/**/*.ts', 16 | 'tests/**/*.js', 17 | 'tests/**/*.ts', 18 | '!lib/**/*.*', 19 | '!lib.es2015/**/*.*', 20 | '!node_modules/**/*.*', 21 | ]; 22 | 23 | if (testFiles.length === 0) 24 | testFiles.push.apply(testFiles, defaultPatterns); 25 | 26 | var cwd = process.cwd(); 27 | 28 | var files = expand({ filter: 'isFile', cwd: cwd }, testFiles); 29 | 30 | var filePaths = files.map(function (file) { return path.join(cwd, file); }); 31 | 32 | var tests = []; 33 | 34 | filePaths.forEach(function (path) { 35 | var pkg = require(path); 36 | 37 | Object.keys(pkg).forEach(function (key) { 38 | var value = pkg[key]; 39 | 40 | if (isTest(value)) 41 | tests.push(value); 42 | }); 43 | }); 44 | 45 | function isTest(x) { 46 | return x && typeof x.name === 'string' && typeof x.run === 'function'; 47 | } 48 | 49 | new fourtyFive.FourtyFive(tests).run() 50 | .then(function (_a) { 51 | var failures = _a.failures, message = _a.message; 52 | 53 | console.log(message); 54 | 55 | process.exit(failures); 56 | }); 57 | //# sourceMappingURL=cli.js.map 58 | -------------------------------------------------------------------------------- /src/assertions/equals.test.ts: -------------------------------------------------------------------------------- 1 | import { Assertion, Test, describe, given, it } from '../'; 2 | 3 | import { strip } from 'typed-colors'; 4 | 5 | export const test: Test = describe(`equals`, [ 6 | given(`expected value and actual value`, [ 7 | it(`returns an Assertion`, ({ equals }) => { 8 | const assertion: Assertion = equals(1)(1); 9 | 10 | return equals(typeof assertion.passed, 'boolean'); 11 | }), 12 | 13 | given(`expected value and actual are equal`, [ 14 | it(`returns a SuccessfulAssertion`, ({ all, equals }) => { 15 | return all([ 16 | equals('', ''), 17 | equals(1, 1), 18 | equals({}, {}), 19 | equals({ a: 1 }, { a: 1 }), 20 | equals(NaN, NaN), 21 | equals(0)(-0), 22 | ]); 23 | }), 24 | ]), 25 | 26 | given(`xpected value and actual are not equal`, [ 27 | it(`returns a FailedAssertion`, ({ equals, all, assert }) => { 28 | const passed = all([ 29 | assert(!equals('', 'asdf').passed), 30 | assert(!equals(1, 2).passed), 31 | assert(!equals({ a: 1 }, { a: 2 }).passed), 32 | ]); 33 | 34 | const assertion: Assertion = equals({ b: 7 }, { b: 42 }); 35 | 36 | if (assertion.passed) 37 | throw new Error(`Assertion should not succeed`); 38 | 39 | return all([ 40 | passed, 41 | equals( 42 | `Equality check failed: Expected: { b: 7 } Actual: { b: 42 }`.replace(/\s/g, ''), 43 | strip(assertion.message).replace(/\s/g, ''), 44 | ), 45 | ]); 46 | }), 47 | ]), 48 | ]), 49 | ]); 50 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "45", 3 | "version": "0.1.0", 4 | "main": "lib/index.js", 5 | "typings": "lib/index.d.ts", 6 | "bin": { 7 | "45": "bin/45.js" 8 | }, 9 | "description": "A functionally-oriented test runner", 10 | "scripts": { 11 | "test:lint": "northbrook tslint", 12 | "test:unit": "npm run build && node bin/45.js", 13 | "test": "npm run test:lint && npm run test:unit", 14 | "commit": "northbrook commit", 15 | "build": "northbrook tsc", 16 | "preversion": "npm run build", 17 | "release": "northbrook release" 18 | }, 19 | "repository": { 20 | "type": "git", 21 | "url": "git+https://github.com/TylorS/45.git" 22 | }, 23 | "keywords": [ 24 | "45", 25 | "functional", 26 | "test", 27 | "runner", 28 | "assert" 29 | ], 30 | "author": "Tylor Steinberger ", 31 | "license": "MIT", 32 | "bugs": { 33 | "url": "https://github.com/TylorS/45/issues" 34 | }, 35 | "homepage": "https://github.com/TylorS/45#readme", 36 | "devDependencies": { 37 | "@motorcycle/tslint": "^1.3.0", 38 | "@northbrook/tsc": "^1.0.7", 39 | "@northbrook/tslint": "^2.1.7", 40 | "@types/glob-expand": "^0.0.30", 41 | "@types/node": "^7.0.4", 42 | "mocha": "^3.2.0", 43 | "northbrook": "^4.6.0", 44 | "tslint": "^4.4.2", 45 | "typescript": "^2.1.5" 46 | }, 47 | "dependencies": { 48 | "@typed/curry": "^1.0.1", 49 | "buba": "^4.0.2", 50 | "glob-expand": "^0.2.1", 51 | "lodash.isequal": "^4.5.0", 52 | "object-inspect": "^1.2.1", 53 | "ts-node": "^2.0.0", 54 | "typed-colors": "^1.0.0", 55 | "typed-figures": "^1.0.0" 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@motorcycle/tslint@^1.3.0": 6 | version "1.3.0" 7 | resolved "https://registry.yarnpkg.com/@motorcycle/tslint/-/tslint-1.3.0.tgz#c8624624ce9b074e437cc4853ee8fc85a0b2a143" 8 | 9 | "@northbrook/tsc@^1.0.7": 10 | version "1.0.8" 11 | resolved "https://registry.yarnpkg.com/@northbrook/tsc/-/tsc-1.0.8.tgz#70cb5a6744c64bcb8849221b20fdd22898d76749" 12 | dependencies: 13 | "@types/glob-expand" "0.0.30" 14 | "@types/rimraf" "0.0.28" 15 | glob-expand "^0.2.1" 16 | northbrook "^4.6.1" 17 | rimraf "^2.5.4" 18 | simple-spinner "0.0.5" 19 | typescript "^2.1.5" 20 | 21 | "@northbrook/tslint@^2.1.7": 22 | version "2.1.8" 23 | resolved "https://registry.yarnpkg.com/@northbrook/tslint/-/tslint-2.1.8.tgz#ac1e9f78fc565d49a46b0a876737dcf51d862187" 24 | dependencies: 25 | "@motorcycle/tslint" "^1.3.0" 26 | "@types/glob-expand" "0.0.30" 27 | glob-expand "^0.2.1" 28 | northbrook "^4.6.1" 29 | tslint "^4.4.2" 30 | typescript "^2.1.5" 31 | 32 | "@typed/curry@^1.0.1": 33 | version "1.0.1" 34 | resolved "https://registry.yarnpkg.com/@typed/curry/-/curry-1.0.1.tgz#555d4624b0cbf09e101945326d3bb9ffcaba3655" 35 | 36 | "@typed/sequence@^1.1.0": 37 | version "1.1.0" 38 | resolved "https://registry.yarnpkg.com/@typed/sequence/-/sequence-1.1.0.tgz#7e84b267d602bb3d452d59b7ac9b55f9597a862f" 39 | 40 | "@types/findup-sync@^0.3.29": 41 | version "0.3.29" 42 | resolved "https://registry.yarnpkg.com/@types/findup-sync/-/findup-sync-0.3.29.tgz#ec0c80597e5ed157282207e762ca7254cad57632" 43 | dependencies: 44 | "@types/minimatch" "*" 45 | 46 | "@types/glob-expand@0.0.30", "@types/glob-expand@^0.0.30": 47 | version "0.0.30" 48 | resolved "https://registry.yarnpkg.com/@types/glob-expand/-/glob-expand-0.0.30.tgz#7d1185a8607b693a2bb7414f1cf9ea1b8fd396d6" 49 | dependencies: 50 | "@types/glob" "*" 51 | 52 | "@types/glob@*": 53 | version "5.0.30" 54 | resolved "https://registry.yarnpkg.com/@types/glob/-/glob-5.0.30.tgz#1026409c5625a8689074602808d082b2867b8a51" 55 | dependencies: 56 | "@types/minimatch" "*" 57 | "@types/node" "*" 58 | 59 | "@types/minimatch@*": 60 | version "2.0.29" 61 | resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-2.0.29.tgz#5002e14f75e2d71e564281df0431c8c1b4a2a36a" 62 | 63 | "@types/minimist@^1.2.0": 64 | version "1.2.0" 65 | resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" 66 | 67 | "@types/mkdirp@^0.3.29": 68 | version "0.3.29" 69 | resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.3.29.tgz#7f2ad7ec55f914482fc9b1ec4bb1ae6028d46066" 70 | 71 | "@types/node@*", "@types/node@^7.0.4": 72 | version "7.0.5" 73 | resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.5.tgz#96a0f0a618b7b606f1ec547403c00650210bfbb7" 74 | 75 | "@types/ramda@0.0.3": 76 | version "0.0.3" 77 | resolved "https://registry.yarnpkg.com/@types/ramda/-/ramda-0.0.3.tgz#683a3437d4446a4d21af473a9286e6950fa777c1" 78 | 79 | "@types/rimraf@0.0.28": 80 | version "0.0.28" 81 | resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-0.0.28.tgz#5562519bc7963caca8abf7f128cae3b594d41d06" 82 | 83 | "@types/semver@^5.3.30": 84 | version "5.3.30" 85 | resolved "https://registry.yarnpkg.com/@types/semver/-/semver-5.3.30.tgz#b55a3bd07b6b8b35f9d4472e1fc3318b68a493b2" 86 | 87 | acorn-jsx@^3.0.1: 88 | version "3.0.1" 89 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" 90 | dependencies: 91 | acorn "^3.0.4" 92 | 93 | acorn-object-spread@^1.0.0: 94 | version "1.0.0" 95 | resolved "https://registry.yarnpkg.com/acorn-object-spread/-/acorn-object-spread-1.0.0.tgz#48ead0f4a8eb16995a17a0db9ffc6acaada4ba68" 96 | dependencies: 97 | acorn "^3.1.0" 98 | 99 | acorn@^3.0.4, acorn@^3.1.0, acorn@^3.3.0: 100 | version "3.3.0" 101 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" 102 | 103 | ansi-align@^1.1.0: 104 | version "1.1.0" 105 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-1.1.0.tgz#2f0c1658829739add5ebb15e6b0c6e3423f016ba" 106 | dependencies: 107 | string-width "^1.0.1" 108 | 109 | ansi-escapes@^1.1.0: 110 | version "1.4.0" 111 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" 112 | 113 | ansi-regex@^2.0.0: 114 | version "2.1.1" 115 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 116 | 117 | ansi-styles@^2.2.1: 118 | version "2.2.1" 119 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 120 | 121 | ansi@^0.3.0: 122 | version "0.3.1" 123 | resolved "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz#0c42d4fb17160d5a9af1e484bace1c66922c1b21" 124 | 125 | any-promise@^1.3.0: 126 | version "1.3.0" 127 | resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" 128 | 129 | app-module-path@^2.2.0: 130 | version "2.2.0" 131 | resolved "https://registry.yarnpkg.com/app-module-path/-/app-module-path-2.2.0.tgz#641aa55dfb7d6a6f0a8141c4b9c0aa50b6c24dd5" 132 | 133 | arr-diff@^2.0.0: 134 | version "2.0.0" 135 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 136 | dependencies: 137 | arr-flatten "^1.0.1" 138 | 139 | arr-flatten@^1.0.1: 140 | version "1.0.1" 141 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" 142 | 143 | array-unique@^0.2.1: 144 | version "0.2.1" 145 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 146 | 147 | arrify@^1.0.0: 148 | version "1.0.1" 149 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 150 | 151 | babel-code-frame@^6.20.0, babel-code-frame@^6.22.0: 152 | version "6.22.0" 153 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" 154 | dependencies: 155 | chalk "^1.1.0" 156 | esutils "^2.0.2" 157 | js-tokens "^3.0.0" 158 | 159 | babel-core@6.21.0: 160 | version "6.21.0" 161 | resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.21.0.tgz#75525480c21c803f826ef3867d22c19f080a3724" 162 | dependencies: 163 | babel-code-frame "^6.20.0" 164 | babel-generator "^6.21.0" 165 | babel-helpers "^6.16.0" 166 | babel-messages "^6.8.0" 167 | babel-register "^6.18.0" 168 | babel-runtime "^6.20.0" 169 | babel-template "^6.16.0" 170 | babel-traverse "^6.21.0" 171 | babel-types "^6.21.0" 172 | babylon "^6.11.0" 173 | convert-source-map "^1.1.0" 174 | debug "^2.1.1" 175 | json5 "^0.5.0" 176 | lodash "^4.2.0" 177 | minimatch "^3.0.2" 178 | path-is-absolute "^1.0.0" 179 | private "^0.1.6" 180 | slash "^1.0.0" 181 | source-map "^0.5.0" 182 | 183 | babel-core@^6.22.0: 184 | version "6.22.1" 185 | resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.22.1.tgz#9c5fd658ba1772d28d721f6d25d968fc7ae21648" 186 | dependencies: 187 | babel-code-frame "^6.22.0" 188 | babel-generator "^6.22.0" 189 | babel-helpers "^6.22.0" 190 | babel-messages "^6.22.0" 191 | babel-register "^6.22.0" 192 | babel-runtime "^6.22.0" 193 | babel-template "^6.22.0" 194 | babel-traverse "^6.22.1" 195 | babel-types "^6.22.0" 196 | babylon "^6.11.0" 197 | convert-source-map "^1.1.0" 198 | debug "^2.1.1" 199 | json5 "^0.5.0" 200 | lodash "^4.2.0" 201 | minimatch "^3.0.2" 202 | path-is-absolute "^1.0.0" 203 | private "^0.1.6" 204 | slash "^1.0.0" 205 | source-map "^0.5.0" 206 | 207 | babel-generator@^6.21.0, babel-generator@^6.22.0: 208 | version "6.22.0" 209 | resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.22.0.tgz#d642bf4961911a8adc7c692b0c9297f325cda805" 210 | dependencies: 211 | babel-messages "^6.22.0" 212 | babel-runtime "^6.22.0" 213 | babel-types "^6.22.0" 214 | detect-indent "^4.0.0" 215 | jsesc "^1.3.0" 216 | lodash "^4.2.0" 217 | source-map "^0.5.0" 218 | 219 | babel-helpers@^6.16.0, babel-helpers@^6.22.0: 220 | version "6.22.0" 221 | resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.22.0.tgz#d275f55f2252b8101bff07bc0c556deda657392c" 222 | dependencies: 223 | babel-runtime "^6.22.0" 224 | babel-template "^6.22.0" 225 | 226 | babel-messages@^6.22.0, babel-messages@^6.8.0: 227 | version "6.22.0" 228 | resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.22.0.tgz#36066a214f1217e4ed4164867669ecb39e3ea575" 229 | dependencies: 230 | babel-runtime "^6.22.0" 231 | 232 | babel-plugin-transform-es2015-modules-commonjs@6.18.0: 233 | version "6.18.0" 234 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.18.0.tgz#c15ae5bb11b32a0abdcc98a5837baa4ee8d67bcc" 235 | dependencies: 236 | babel-plugin-transform-strict-mode "^6.18.0" 237 | babel-runtime "^6.0.0" 238 | babel-template "^6.16.0" 239 | babel-types "^6.18.0" 240 | 241 | babel-plugin-transform-strict-mode@^6.18.0: 242 | version "6.22.0" 243 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.22.0.tgz#e008df01340fdc87e959da65991b7e05970c8c7c" 244 | dependencies: 245 | babel-runtime "^6.22.0" 246 | babel-types "^6.22.0" 247 | 248 | babel-register@^6.18.0, babel-register@^6.22.0: 249 | version "6.22.0" 250 | resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.22.0.tgz#a61dd83975f9ca4a9e7d6eff3059494cd5ea4c63" 251 | dependencies: 252 | babel-core "^6.22.0" 253 | babel-runtime "^6.22.0" 254 | core-js "^2.4.0" 255 | home-or-tmp "^2.0.0" 256 | lodash "^4.2.0" 257 | mkdirp "^0.5.1" 258 | source-map-support "^0.4.2" 259 | 260 | babel-runtime@^6.0.0, babel-runtime@^6.20.0, babel-runtime@^6.22.0: 261 | version "6.22.0" 262 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.22.0.tgz#1cf8b4ac67c77a4ddb0db2ae1f74de52ac4ca611" 263 | dependencies: 264 | core-js "^2.4.0" 265 | regenerator-runtime "^0.10.0" 266 | 267 | babel-template@^6.16.0, babel-template@^6.22.0: 268 | version "6.22.0" 269 | resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.22.0.tgz#403d110905a4626b317a2a1fcb8f3b73204b2edb" 270 | dependencies: 271 | babel-runtime "^6.22.0" 272 | babel-traverse "^6.22.0" 273 | babel-types "^6.22.0" 274 | babylon "^6.11.0" 275 | lodash "^4.2.0" 276 | 277 | babel-traverse@^6.21.0, babel-traverse@^6.22.0, babel-traverse@^6.22.1: 278 | version "6.22.1" 279 | resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.22.1.tgz#3b95cd6b7427d6f1f757704908f2fc9748a5f59f" 280 | dependencies: 281 | babel-code-frame "^6.22.0" 282 | babel-messages "^6.22.0" 283 | babel-runtime "^6.22.0" 284 | babel-types "^6.22.0" 285 | babylon "^6.15.0" 286 | debug "^2.2.0" 287 | globals "^9.0.0" 288 | invariant "^2.2.0" 289 | lodash "^4.2.0" 290 | 291 | babel-types@^6.18.0, babel-types@^6.21.0, babel-types@^6.22.0: 292 | version "6.22.0" 293 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.22.0.tgz#2a447e8d0ea25d2512409e4175479fd78cc8b1db" 294 | dependencies: 295 | babel-runtime "^6.22.0" 296 | esutils "^2.0.2" 297 | lodash "^4.2.0" 298 | to-fast-properties "^1.0.1" 299 | 300 | babylon@^6.11.0, babylon@^6.15.0: 301 | version "6.15.0" 302 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.15.0.tgz#ba65cfa1a80e1759b0e89fb562e27dccae70348e" 303 | 304 | balanced-match@^0.4.1: 305 | version "0.4.2" 306 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" 307 | 308 | boxen@^0.6.0: 309 | version "0.6.0" 310 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-0.6.0.tgz#8364d4248ac34ff0ef1b2f2bf49a6c60ce0d81b6" 311 | dependencies: 312 | ansi-align "^1.1.0" 313 | camelcase "^2.1.0" 314 | chalk "^1.1.1" 315 | cli-boxes "^1.0.0" 316 | filled-array "^1.0.0" 317 | object-assign "^4.0.1" 318 | repeating "^2.0.0" 319 | string-width "^1.0.1" 320 | widest-line "^1.0.0" 321 | 322 | brace-expansion@^1.0.0: 323 | version "1.1.6" 324 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" 325 | dependencies: 326 | balanced-match "^0.4.1" 327 | concat-map "0.0.1" 328 | 329 | braces@^1.8.2: 330 | version "1.8.5" 331 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 332 | dependencies: 333 | expand-range "^1.8.1" 334 | preserve "^0.2.0" 335 | repeat-element "^1.1.2" 336 | 337 | browser-stdout@1.3.0: 338 | version "1.3.0" 339 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" 340 | 341 | buba@^4.0.2: 342 | version "4.0.2" 343 | resolved "https://registry.yarnpkg.com/buba/-/buba-4.0.2.tgz#a0af6531de011523a4f046abf224b0806a039555" 344 | dependencies: 345 | babel-core "6.21.0" 346 | babel-plugin-transform-es2015-modules-commonjs "6.18.0" 347 | buble "0.15.2" 348 | commander "2.9.0" 349 | mkdirp "^0.5.1" 350 | 351 | buble@0.15.2: 352 | version "0.15.2" 353 | resolved "https://registry.yarnpkg.com/buble/-/buble-0.15.2.tgz#547fc47483f8e5e8176d82aa5ebccb183b02d613" 354 | dependencies: 355 | acorn "^3.3.0" 356 | acorn-jsx "^3.0.1" 357 | acorn-object-spread "^1.0.0" 358 | chalk "^1.1.3" 359 | magic-string "^0.14.0" 360 | minimist "^1.2.0" 361 | os-homedir "^1.0.1" 362 | 363 | buffer-shims@^1.0.0: 364 | version "1.0.0" 365 | resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" 366 | 367 | camelcase@^2.1.0: 368 | version "2.1.1" 369 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" 370 | 371 | capture-stack-trace@^1.0.0: 372 | version "1.0.0" 373 | resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" 374 | 375 | chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: 376 | version "1.1.3" 377 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 378 | dependencies: 379 | ansi-styles "^2.2.1" 380 | escape-string-regexp "^1.0.2" 381 | has-ansi "^2.0.0" 382 | strip-ansi "^3.0.0" 383 | supports-color "^2.0.0" 384 | 385 | cli-boxes@^1.0.0: 386 | version "1.0.0" 387 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" 388 | 389 | cli-cursor@^1.0.1: 390 | version "1.0.2" 391 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" 392 | dependencies: 393 | restore-cursor "^1.0.1" 394 | 395 | cli-width@^2.0.0: 396 | version "2.1.0" 397 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" 398 | 399 | code-point-at@^1.0.0: 400 | version "1.1.0" 401 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 402 | 403 | colors@^1.1.2: 404 | version "1.1.2" 405 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" 406 | 407 | commander@2.9.0: 408 | version "2.9.0" 409 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" 410 | dependencies: 411 | graceful-readlink ">= 1.0.0" 412 | 413 | concat-map@0.0.1: 414 | version "0.0.1" 415 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 416 | 417 | concat-stream@^1.4.7: 418 | version "1.6.0" 419 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" 420 | dependencies: 421 | inherits "^2.0.3" 422 | readable-stream "^2.2.2" 423 | typedarray "^0.0.6" 424 | 425 | configstore@^2.0.0: 426 | version "2.1.0" 427 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-2.1.0.tgz#737a3a7036e9886102aa6099e47bb33ab1aba1a1" 428 | dependencies: 429 | dot-prop "^3.0.0" 430 | graceful-fs "^4.1.2" 431 | mkdirp "^0.5.0" 432 | object-assign "^4.0.1" 433 | os-tmpdir "^1.0.0" 434 | osenv "^0.1.0" 435 | uuid "^2.0.1" 436 | write-file-atomic "^1.1.2" 437 | xdg-basedir "^2.0.0" 438 | 439 | convert-source-map@^1.1.0: 440 | version "1.3.0" 441 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67" 442 | 443 | core-js@^2.4.0: 444 | version "2.4.1" 445 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" 446 | 447 | core-util-is@~1.0.0: 448 | version "1.0.2" 449 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 450 | 451 | create-error-class@^3.0.1: 452 | version "3.0.2" 453 | resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" 454 | dependencies: 455 | capture-stack-trace "^1.0.0" 456 | 457 | debug@2.2.0, debug@^2.1.1, debug@^2.2.0: 458 | version "2.2.0" 459 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" 460 | dependencies: 461 | ms "0.7.1" 462 | 463 | deep-extend@~0.4.0: 464 | version "0.4.1" 465 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" 466 | 467 | dependency-graph@^0.5.0: 468 | version "0.5.0" 469 | resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.5.0.tgz#71edf7945dbba86c1b19ac982b6afb6476b56dd5" 470 | 471 | detect-file@^0.1.0: 472 | version "0.1.0" 473 | resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" 474 | dependencies: 475 | fs-exists-sync "^0.1.0" 476 | 477 | detect-indent@^4.0.0: 478 | version "4.0.0" 479 | resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" 480 | dependencies: 481 | repeating "^2.0.0" 482 | 483 | diff@1.4.0: 484 | version "1.4.0" 485 | resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" 486 | 487 | diff@^3.0.1, diff@^3.1.0: 488 | version "3.2.0" 489 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" 490 | 491 | dot-prop@^3.0.0: 492 | version "3.0.0" 493 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" 494 | dependencies: 495 | is-obj "^1.0.0" 496 | 497 | duplexer2@^0.1.4: 498 | version "0.1.4" 499 | resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" 500 | dependencies: 501 | readable-stream "^2.0.2" 502 | 503 | error-ex@^1.2.0: 504 | version "1.3.0" 505 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9" 506 | dependencies: 507 | is-arrayish "^0.2.1" 508 | 509 | escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 510 | version "1.0.5" 511 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 512 | 513 | esutils@^2.0.2: 514 | version "2.0.2" 515 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 516 | 517 | exit-hook@^1.0.0: 518 | version "1.1.1" 519 | resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" 520 | 521 | expand-brackets@^0.1.4: 522 | version "0.1.5" 523 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 524 | dependencies: 525 | is-posix-bracket "^0.1.0" 526 | 527 | expand-range@^1.8.1: 528 | version "1.8.2" 529 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 530 | dependencies: 531 | fill-range "^2.1.0" 532 | 533 | expand-tilde@^1.2.2: 534 | version "1.2.2" 535 | resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" 536 | dependencies: 537 | os-homedir "^1.0.1" 538 | 539 | extend@^3.0.0: 540 | version "3.0.0" 541 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" 542 | 543 | external-editor@^1.1.0: 544 | version "1.1.1" 545 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-1.1.1.tgz#12d7b0db850f7ff7e7081baf4005700060c4600b" 546 | dependencies: 547 | extend "^3.0.0" 548 | spawn-sync "^1.0.15" 549 | tmp "^0.0.29" 550 | 551 | extglob@^0.3.1: 552 | version "0.3.2" 553 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 554 | dependencies: 555 | is-extglob "^1.0.0" 556 | 557 | figures@^1.3.5: 558 | version "1.7.0" 559 | resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" 560 | dependencies: 561 | escape-string-regexp "^1.0.5" 562 | object-assign "^4.1.0" 563 | 564 | filename-regex@^2.0.0: 565 | version "2.0.0" 566 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" 567 | 568 | fill-range@^2.1.0: 569 | version "2.2.3" 570 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" 571 | dependencies: 572 | is-number "^2.1.0" 573 | isobject "^2.0.0" 574 | randomatic "^1.1.3" 575 | repeat-element "^1.1.2" 576 | repeat-string "^1.5.2" 577 | 578 | filled-array@^1.0.0: 579 | version "1.1.0" 580 | resolved "https://registry.yarnpkg.com/filled-array/-/filled-array-1.1.0.tgz#c3c4f6c663b923459a9aa29912d2d031f1507f84" 581 | 582 | findup-sync@^0.4.3: 583 | version "0.4.3" 584 | resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12" 585 | dependencies: 586 | detect-file "^0.1.0" 587 | is-glob "^2.0.1" 588 | micromatch "^2.3.7" 589 | resolve-dir "^0.1.0" 590 | 591 | findup-sync@~0.3.0: 592 | version "0.3.0" 593 | resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.3.0.tgz#37930aa5d816b777c03445e1966cc6790a4c0b16" 594 | dependencies: 595 | glob "~5.0.0" 596 | 597 | for-in@^0.1.5: 598 | version "0.1.6" 599 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" 600 | 601 | for-own@^0.1.4: 602 | version "0.1.4" 603 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072" 604 | dependencies: 605 | for-in "^0.1.5" 606 | 607 | fs-exists-sync@^0.1.0: 608 | version "0.1.0" 609 | resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" 610 | 611 | fs.realpath@^1.0.0: 612 | version "1.0.0" 613 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 614 | 615 | glob-base@^0.3.0: 616 | version "0.3.0" 617 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 618 | dependencies: 619 | glob-parent "^2.0.0" 620 | is-glob "^2.0.0" 621 | 622 | glob-expand@^0.2.1: 623 | version "0.2.1" 624 | resolved "https://registry.yarnpkg.com/glob-expand/-/glob-expand-0.2.1.tgz#1b088ac272b57158870b76816111da4618a66a0f" 625 | dependencies: 626 | glob "~4.5.x" 627 | lodash "~4.13.x" 628 | 629 | glob-parent@^2.0.0: 630 | version "2.0.0" 631 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 632 | dependencies: 633 | is-glob "^2.0.0" 634 | 635 | glob@7.0.5: 636 | version "7.0.5" 637 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95" 638 | dependencies: 639 | fs.realpath "^1.0.0" 640 | inflight "^1.0.4" 641 | inherits "2" 642 | minimatch "^3.0.2" 643 | once "^1.3.0" 644 | path-is-absolute "^1.0.0" 645 | 646 | glob@^7.0.5, glob@^7.1.1: 647 | version "7.1.1" 648 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" 649 | dependencies: 650 | fs.realpath "^1.0.0" 651 | inflight "^1.0.4" 652 | inherits "2" 653 | minimatch "^3.0.2" 654 | once "^1.3.0" 655 | path-is-absolute "^1.0.0" 656 | 657 | glob@~4.5.x: 658 | version "4.5.3" 659 | resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" 660 | dependencies: 661 | inflight "^1.0.4" 662 | inherits "2" 663 | minimatch "^2.0.1" 664 | once "^1.3.0" 665 | 666 | glob@~5.0.0: 667 | version "5.0.15" 668 | resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" 669 | dependencies: 670 | inflight "^1.0.4" 671 | inherits "2" 672 | minimatch "2 || 3" 673 | once "^1.3.0" 674 | path-is-absolute "^1.0.0" 675 | 676 | global-modules@^0.2.3: 677 | version "0.2.3" 678 | resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" 679 | dependencies: 680 | global-prefix "^0.1.4" 681 | is-windows "^0.2.0" 682 | 683 | global-prefix@^0.1.4: 684 | version "0.1.5" 685 | resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" 686 | dependencies: 687 | homedir-polyfill "^1.0.0" 688 | ini "^1.3.4" 689 | is-windows "^0.2.0" 690 | which "^1.2.12" 691 | 692 | globals@^9.0.0: 693 | version "9.14.0" 694 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034" 695 | 696 | got@^5.0.0: 697 | version "5.7.1" 698 | resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" 699 | dependencies: 700 | create-error-class "^3.0.1" 701 | duplexer2 "^0.1.4" 702 | is-redirect "^1.0.0" 703 | is-retry-allowed "^1.0.0" 704 | is-stream "^1.0.0" 705 | lowercase-keys "^1.0.0" 706 | node-status-codes "^1.0.0" 707 | object-assign "^4.0.1" 708 | parse-json "^2.1.0" 709 | pinkie-promise "^2.0.0" 710 | read-all-stream "^3.0.0" 711 | readable-stream "^2.0.5" 712 | timed-out "^3.0.0" 713 | unzip-response "^1.0.2" 714 | url-parse-lax "^1.0.0" 715 | 716 | graceful-fs@^4.1.11, graceful-fs@^4.1.2: 717 | version "4.1.11" 718 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 719 | 720 | "graceful-readlink@>= 1.0.0": 721 | version "1.0.1" 722 | resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" 723 | 724 | growl@1.9.2: 725 | version "1.9.2" 726 | resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" 727 | 728 | has-ansi@^2.0.0: 729 | version "2.0.0" 730 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 731 | dependencies: 732 | ansi-regex "^2.0.0" 733 | 734 | has-flag@^1.0.0: 735 | version "1.0.0" 736 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" 737 | 738 | home-or-tmp@^2.0.0: 739 | version "2.0.0" 740 | resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" 741 | dependencies: 742 | os-homedir "^1.0.0" 743 | os-tmpdir "^1.0.1" 744 | 745 | homedir-polyfill@^1.0.0: 746 | version "1.0.1" 747 | resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" 748 | dependencies: 749 | parse-passwd "^1.0.0" 750 | 751 | imurmurhash@^0.1.4: 752 | version "0.1.4" 753 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 754 | 755 | inflight@^1.0.4: 756 | version "1.0.6" 757 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 758 | dependencies: 759 | once "^1.3.0" 760 | wrappy "1" 761 | 762 | inherits@2, inherits@^2.0.3, inherits@~2.0.1: 763 | version "2.0.3" 764 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 765 | 766 | ini@^1.3.4, ini@~1.3.0: 767 | version "1.3.4" 768 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" 769 | 770 | inquirer@^1.2.2: 771 | version "1.2.3" 772 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-1.2.3.tgz#4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918" 773 | dependencies: 774 | ansi-escapes "^1.1.0" 775 | chalk "^1.0.0" 776 | cli-cursor "^1.0.1" 777 | cli-width "^2.0.0" 778 | external-editor "^1.1.0" 779 | figures "^1.3.5" 780 | lodash "^4.3.0" 781 | mute-stream "0.0.6" 782 | pinkie-promise "^2.0.0" 783 | run-async "^2.2.0" 784 | rx "^4.1.0" 785 | string-width "^1.0.1" 786 | strip-ansi "^3.0.0" 787 | through "^2.3.6" 788 | 789 | invariant@^2.2.0: 790 | version "2.2.2" 791 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" 792 | dependencies: 793 | loose-envify "^1.0.0" 794 | 795 | is-arrayish@^0.2.1: 796 | version "0.2.1" 797 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 798 | 799 | is-buffer@^1.0.2: 800 | version "1.1.4" 801 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" 802 | 803 | is-dotfile@^1.0.0: 804 | version "1.0.2" 805 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" 806 | 807 | is-equal-shallow@^0.1.3: 808 | version "0.1.3" 809 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 810 | dependencies: 811 | is-primitive "^2.0.0" 812 | 813 | is-extendable@^0.1.1: 814 | version "0.1.1" 815 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 816 | 817 | is-extglob@^1.0.0: 818 | version "1.0.0" 819 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 820 | 821 | is-finite@^1.0.0: 822 | version "1.0.2" 823 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 824 | dependencies: 825 | number-is-nan "^1.0.0" 826 | 827 | is-fullwidth-code-point@^1.0.0: 828 | version "1.0.0" 829 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 830 | dependencies: 831 | number-is-nan "^1.0.0" 832 | 833 | is-glob@^2.0.0, is-glob@^2.0.1: 834 | version "2.0.1" 835 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 836 | dependencies: 837 | is-extglob "^1.0.0" 838 | 839 | is-npm@^1.0.0: 840 | version "1.0.0" 841 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" 842 | 843 | is-number@^2.0.2, is-number@^2.1.0: 844 | version "2.1.0" 845 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 846 | dependencies: 847 | kind-of "^3.0.2" 848 | 849 | is-obj@^1.0.0: 850 | version "1.0.1" 851 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 852 | 853 | is-posix-bracket@^0.1.0: 854 | version "0.1.1" 855 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 856 | 857 | is-primitive@^2.0.0: 858 | version "2.0.0" 859 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 860 | 861 | is-promise@^2.1.0: 862 | version "2.1.0" 863 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 864 | 865 | is-redirect@^1.0.0: 866 | version "1.0.0" 867 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" 868 | 869 | is-retry-allowed@^1.0.0: 870 | version "1.1.0" 871 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" 872 | 873 | is-stream@^1.0.0: 874 | version "1.1.0" 875 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 876 | 877 | is-utf8@^0.2.0: 878 | version "0.2.1" 879 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 880 | 881 | is-windows@^0.2.0: 882 | version "0.2.0" 883 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" 884 | 885 | isarray@1.0.0, isarray@~1.0.0: 886 | version "1.0.0" 887 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 888 | 889 | isexe@^1.1.1: 890 | version "1.1.2" 891 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" 892 | 893 | isobject@^2.0.0: 894 | version "2.1.0" 895 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 896 | dependencies: 897 | isarray "1.0.0" 898 | 899 | js-tokens@^3.0.0: 900 | version "3.0.1" 901 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 902 | 903 | jsesc@^1.3.0: 904 | version "1.3.0" 905 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" 906 | 907 | json3@3.3.2: 908 | version "3.3.2" 909 | resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" 910 | 911 | json5@^0.5.0: 912 | version "0.5.1" 913 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" 914 | 915 | kind-of@^3.0.2: 916 | version "3.1.0" 917 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" 918 | dependencies: 919 | is-buffer "^1.0.2" 920 | 921 | latest-version@^2.0.0: 922 | version "2.0.0" 923 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-2.0.0.tgz#56f8d6139620847b8017f8f1f4d78e211324168b" 924 | dependencies: 925 | package-json "^2.0.0" 926 | 927 | lazy-req@^1.1.0: 928 | version "1.1.0" 929 | resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac" 930 | 931 | lodash._baseassign@^3.0.0: 932 | version "3.2.0" 933 | resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" 934 | dependencies: 935 | lodash._basecopy "^3.0.0" 936 | lodash.keys "^3.0.0" 937 | 938 | lodash._basecopy@^3.0.0: 939 | version "3.0.1" 940 | resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" 941 | 942 | lodash._basecreate@^3.0.0: 943 | version "3.0.3" 944 | resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" 945 | 946 | lodash._getnative@^3.0.0: 947 | version "3.9.1" 948 | resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" 949 | 950 | lodash._isiterateecall@^3.0.0: 951 | version "3.0.9" 952 | resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" 953 | 954 | lodash.create@3.1.1: 955 | version "3.1.1" 956 | resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" 957 | dependencies: 958 | lodash._baseassign "^3.0.0" 959 | lodash._basecreate "^3.0.0" 960 | lodash._isiterateecall "^3.0.0" 961 | 962 | lodash.isarguments@^3.0.0: 963 | version "3.1.0" 964 | resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" 965 | 966 | lodash.isarray@^3.0.0: 967 | version "3.0.4" 968 | resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" 969 | 970 | lodash.isequal@^4.5.0: 971 | version "4.5.0" 972 | resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" 973 | 974 | lodash.keys@^3.0.0: 975 | version "3.1.2" 976 | resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" 977 | dependencies: 978 | lodash._getnative "^3.0.0" 979 | lodash.isarguments "^3.0.0" 980 | lodash.isarray "^3.0.0" 981 | 982 | lodash@^4.2.0, lodash@^4.3.0, lodash@~4.13.x: 983 | version "4.13.1" 984 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.13.1.tgz#83e4b10913f48496d4d16fec4a560af2ee744b68" 985 | 986 | loose-envify@^1.0.0: 987 | version "1.3.1" 988 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 989 | dependencies: 990 | js-tokens "^3.0.0" 991 | 992 | lowercase-keys@^1.0.0: 993 | version "1.0.0" 994 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" 995 | 996 | magic-string@^0.14.0: 997 | version "0.14.0" 998 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.14.0.tgz#57224aef1701caeed273b17a39a956e72b172462" 999 | dependencies: 1000 | vlq "^0.2.1" 1001 | 1002 | make-error@^1.1.1: 1003 | version "1.2.1" 1004 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.2.1.tgz#9a6dfb4844423b9f145806728d05c6e935670e75" 1005 | 1006 | micromatch@^2.3.7: 1007 | version "2.3.11" 1008 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 1009 | dependencies: 1010 | arr-diff "^2.0.0" 1011 | array-unique "^0.2.1" 1012 | braces "^1.8.2" 1013 | expand-brackets "^0.1.4" 1014 | extglob "^0.3.1" 1015 | filename-regex "^2.0.0" 1016 | is-extglob "^1.0.0" 1017 | is-glob "^2.0.1" 1018 | kind-of "^3.0.2" 1019 | normalize-path "^2.0.1" 1020 | object.omit "^2.0.0" 1021 | parse-glob "^3.0.4" 1022 | regex-cache "^0.4.2" 1023 | 1024 | "minimatch@2 || 3", minimatch@^3.0.2: 1025 | version "3.0.3" 1026 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" 1027 | dependencies: 1028 | brace-expansion "^1.0.0" 1029 | 1030 | minimatch@^2.0.1: 1031 | version "2.0.10" 1032 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" 1033 | dependencies: 1034 | brace-expansion "^1.0.0" 1035 | 1036 | minimist@0.0.8, minimist@~0.0.1: 1037 | version "0.0.8" 1038 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1039 | 1040 | minimist@^1.2.0: 1041 | version "1.2.0" 1042 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1043 | 1044 | mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1: 1045 | version "0.5.1" 1046 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1047 | dependencies: 1048 | minimist "0.0.8" 1049 | 1050 | mocha@^3.2.0: 1051 | version "3.2.0" 1052 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.2.0.tgz#7dc4f45e5088075171a68896814e6ae9eb7a85e3" 1053 | dependencies: 1054 | browser-stdout "1.3.0" 1055 | commander "2.9.0" 1056 | debug "2.2.0" 1057 | diff "1.4.0" 1058 | escape-string-regexp "1.0.5" 1059 | glob "7.0.5" 1060 | growl "1.9.2" 1061 | json3 "3.3.2" 1062 | lodash.create "3.1.1" 1063 | mkdirp "0.5.1" 1064 | supports-color "3.1.2" 1065 | 1066 | ms@0.7.1: 1067 | version "0.7.1" 1068 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" 1069 | 1070 | mute-stream@0.0.6: 1071 | version "0.0.6" 1072 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.6.tgz#48962b19e169fd1dfc240b3f1e7317627bbc47db" 1073 | 1074 | node-status-codes@^1.0.0: 1075 | version "1.0.0" 1076 | resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f" 1077 | 1078 | normalize-path@^2.0.1: 1079 | version "2.0.1" 1080 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" 1081 | 1082 | northbrook@^4.6.0, northbrook@^4.6.1: 1083 | version "4.6.3" 1084 | resolved "https://registry.yarnpkg.com/northbrook/-/northbrook-4.6.3.tgz#71dfab72a699aee92e8de7b8190bd2e67d12c615" 1085 | dependencies: 1086 | "@typed/sequence" "^1.1.0" 1087 | "@types/findup-sync" "^0.3.29" 1088 | "@types/minimist" "^1.2.0" 1089 | "@types/mkdirp" "^0.3.29" 1090 | "@types/node" "^7.0.4" 1091 | "@types/ramda" "0.0.3" 1092 | "@types/rimraf" "0.0.28" 1093 | "@types/semver" "^5.3.30" 1094 | app-module-path "^2.2.0" 1095 | buba "^4.0.2" 1096 | dependency-graph "^0.5.0" 1097 | findup-sync "^0.4.3" 1098 | mkdirp "^0.5.1" 1099 | ramda "^0.23.0" 1100 | reginn "^2.1.5" 1101 | rimraf "^2.5.4" 1102 | semver "^5.3.0" 1103 | simple-spinner "0.0.5" 1104 | stdio-mock "^1.1.0" 1105 | ts-node "^2.0.0" 1106 | typed-colors "^1.0.0" 1107 | typed-figures "^1.0.0" 1108 | typed-prompts "^1.5.0" 1109 | 1110 | number-is-nan@^1.0.0: 1111 | version "1.0.1" 1112 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1113 | 1114 | object-assign@^4.0.1, object-assign@^4.1.0: 1115 | version "4.1.1" 1116 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1117 | 1118 | object-inspect@^1.2.1: 1119 | version "1.2.1" 1120 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.2.1.tgz#3b62226eb8f6d441751c7d8f22a20ff80ac9dc3f" 1121 | 1122 | object.omit@^2.0.0: 1123 | version "2.0.1" 1124 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 1125 | dependencies: 1126 | for-own "^0.1.4" 1127 | is-extendable "^0.1.1" 1128 | 1129 | once@^1.3.0: 1130 | version "1.4.0" 1131 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1132 | dependencies: 1133 | wrappy "1" 1134 | 1135 | onetime@^1.0.0: 1136 | version "1.1.0" 1137 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" 1138 | 1139 | optimist@~0.6.0: 1140 | version "0.6.1" 1141 | resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" 1142 | dependencies: 1143 | minimist "~0.0.1" 1144 | wordwrap "~0.0.2" 1145 | 1146 | os-homedir@^1.0.0, os-homedir@^1.0.1: 1147 | version "1.0.2" 1148 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 1149 | 1150 | os-shim@^0.1.2: 1151 | version "0.1.3" 1152 | resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" 1153 | 1154 | os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1: 1155 | version "1.0.2" 1156 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1157 | 1158 | osenv@^0.1.0: 1159 | version "0.1.4" 1160 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" 1161 | dependencies: 1162 | os-homedir "^1.0.0" 1163 | os-tmpdir "^1.0.0" 1164 | 1165 | package-json@^2.0.0: 1166 | version "2.4.0" 1167 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb" 1168 | dependencies: 1169 | got "^5.0.0" 1170 | registry-auth-token "^3.0.1" 1171 | registry-url "^3.0.3" 1172 | semver "^5.1.0" 1173 | 1174 | parse-glob@^3.0.4: 1175 | version "3.0.4" 1176 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 1177 | dependencies: 1178 | glob-base "^0.3.0" 1179 | is-dotfile "^1.0.0" 1180 | is-extglob "^1.0.0" 1181 | is-glob "^2.0.0" 1182 | 1183 | parse-json@^2.1.0, parse-json@^2.2.0: 1184 | version "2.2.0" 1185 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 1186 | dependencies: 1187 | error-ex "^1.2.0" 1188 | 1189 | parse-passwd@^1.0.0: 1190 | version "1.0.0" 1191 | resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" 1192 | 1193 | path-is-absolute@^1.0.0: 1194 | version "1.0.1" 1195 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1196 | 1197 | pinkie-promise@^2.0.0: 1198 | version "2.0.1" 1199 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 1200 | dependencies: 1201 | pinkie "^2.0.0" 1202 | 1203 | pinkie@^2.0.0, pinkie@^2.0.4: 1204 | version "2.0.4" 1205 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 1206 | 1207 | prepend-http@^1.0.1: 1208 | version "1.0.4" 1209 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 1210 | 1211 | preserve@^0.2.0: 1212 | version "0.2.0" 1213 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 1214 | 1215 | private@^0.1.6: 1216 | version "0.1.6" 1217 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.6.tgz#55c6a976d0f9bafb9924851350fe47b9b5fbb7c1" 1218 | 1219 | process-nextick-args@~1.0.6: 1220 | version "1.0.7" 1221 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 1222 | 1223 | ramda@^0.22.1: 1224 | version "0.22.1" 1225 | resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.22.1.tgz#031da0c3df417c5b33c96234757eb37033f36a0e" 1226 | 1227 | ramda@^0.23.0: 1228 | version "0.23.0" 1229 | resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.23.0.tgz#ccd13fff73497a93974e3e86327bfd87bd6e8e2b" 1230 | 1231 | randomatic@^1.1.3: 1232 | version "1.1.6" 1233 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" 1234 | dependencies: 1235 | is-number "^2.0.2" 1236 | kind-of "^3.0.2" 1237 | 1238 | rc@^1.0.1, rc@^1.1.6: 1239 | version "1.1.6" 1240 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" 1241 | dependencies: 1242 | deep-extend "~0.4.0" 1243 | ini "~1.3.0" 1244 | minimist "^1.2.0" 1245 | strip-json-comments "~1.0.4" 1246 | 1247 | read-all-stream@^3.0.0: 1248 | version "3.1.0" 1249 | resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" 1250 | dependencies: 1251 | pinkie-promise "^2.0.0" 1252 | readable-stream "^2.0.0" 1253 | 1254 | readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.2.2: 1255 | version "2.2.2" 1256 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e" 1257 | dependencies: 1258 | buffer-shims "^1.0.0" 1259 | core-util-is "~1.0.0" 1260 | inherits "~2.0.1" 1261 | isarray "~1.0.0" 1262 | process-nextick-args "~1.0.6" 1263 | string_decoder "~0.10.x" 1264 | util-deprecate "~1.0.1" 1265 | 1266 | regenerator-runtime@^0.10.0: 1267 | version "0.10.1" 1268 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.1.tgz#257f41961ce44558b18f7814af48c17559f9faeb" 1269 | 1270 | regex-cache@^0.4.2: 1271 | version "0.4.3" 1272 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" 1273 | dependencies: 1274 | is-equal-shallow "^0.1.3" 1275 | is-primitive "^2.0.0" 1276 | 1277 | reginn@^2.1.5: 1278 | version "2.1.5" 1279 | resolved "https://registry.yarnpkg.com/reginn/-/reginn-2.1.5.tgz#c80c28ed8d4f5a524e169bd19456dea03e450e22" 1280 | dependencies: 1281 | minimist "^1.2.0" 1282 | ramda "^0.22.1" 1283 | 1284 | registry-auth-token@^3.0.1: 1285 | version "3.1.0" 1286 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.1.0.tgz#997c08256e0c7999837b90e944db39d8a790276b" 1287 | dependencies: 1288 | rc "^1.1.6" 1289 | 1290 | registry-url@^3.0.3: 1291 | version "3.1.0" 1292 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 1293 | dependencies: 1294 | rc "^1.0.1" 1295 | 1296 | repeat-element@^1.1.2: 1297 | version "1.1.2" 1298 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 1299 | 1300 | repeat-string@^1.5.2: 1301 | version "1.6.1" 1302 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 1303 | 1304 | repeating@^2.0.0: 1305 | version "2.0.1" 1306 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 1307 | dependencies: 1308 | is-finite "^1.0.0" 1309 | 1310 | resolve-dir@^0.1.0: 1311 | version "0.1.1" 1312 | resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" 1313 | dependencies: 1314 | expand-tilde "^1.2.2" 1315 | global-modules "^0.2.3" 1316 | 1317 | resolve@^1.1.7: 1318 | version "1.2.0" 1319 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.2.0.tgz#9589c3f2f6149d1417a40becc1663db6ec6bc26c" 1320 | 1321 | restore-cursor@^1.0.1: 1322 | version "1.0.1" 1323 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" 1324 | dependencies: 1325 | exit-hook "^1.0.0" 1326 | onetime "^1.0.0" 1327 | 1328 | rimraf@^2.5.4: 1329 | version "2.5.4" 1330 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" 1331 | dependencies: 1332 | glob "^7.0.5" 1333 | 1334 | run-async@^2.2.0: 1335 | version "2.3.0" 1336 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" 1337 | dependencies: 1338 | is-promise "^2.1.0" 1339 | 1340 | rx@^4.1.0: 1341 | version "4.1.0" 1342 | resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" 1343 | 1344 | semver-diff@^2.0.0: 1345 | version "2.1.0" 1346 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" 1347 | dependencies: 1348 | semver "^5.0.3" 1349 | 1350 | semver@^5.0.3, semver@^5.1.0, semver@^5.3.0: 1351 | version "5.3.0" 1352 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" 1353 | 1354 | simple-spinner@0.0.5: 1355 | version "0.0.5" 1356 | resolved "https://registry.yarnpkg.com/simple-spinner/-/simple-spinner-0.0.5.tgz#6faf41e240de52bf267ed79e41b71178faa3feb3" 1357 | dependencies: 1358 | ansi "^0.3.0" 1359 | 1360 | slash@^1.0.0: 1361 | version "1.0.0" 1362 | resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" 1363 | 1364 | slide@^1.1.5: 1365 | version "1.1.6" 1366 | resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" 1367 | 1368 | source-map-support@^0.4.0, source-map-support@^0.4.2: 1369 | version "0.4.11" 1370 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.11.tgz#647f939978b38535909530885303daf23279f322" 1371 | dependencies: 1372 | source-map "^0.5.3" 1373 | 1374 | source-map@^0.5.0, source-map@^0.5.3: 1375 | version "0.5.6" 1376 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" 1377 | 1378 | spawn-sync@^1.0.15: 1379 | version "1.0.15" 1380 | resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" 1381 | dependencies: 1382 | concat-stream "^1.4.7" 1383 | os-shim "^0.1.2" 1384 | 1385 | stdio-mock@^1.1.0: 1386 | version "1.1.0" 1387 | resolved "https://registry.yarnpkg.com/stdio-mock/-/stdio-mock-1.1.0.tgz#cf6fcbbf03048436a83fe7ff647c5b9f28528005" 1388 | 1389 | string-width@^1.0.1: 1390 | version "1.0.2" 1391 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 1392 | dependencies: 1393 | code-point-at "^1.0.0" 1394 | is-fullwidth-code-point "^1.0.0" 1395 | strip-ansi "^3.0.0" 1396 | 1397 | string_decoder@~0.10.x: 1398 | version "0.10.31" 1399 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 1400 | 1401 | strip-ansi@^3.0.0: 1402 | version "3.0.1" 1403 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1404 | dependencies: 1405 | ansi-regex "^2.0.0" 1406 | 1407 | strip-bom@^2.0.0: 1408 | version "2.0.0" 1409 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 1410 | dependencies: 1411 | is-utf8 "^0.2.0" 1412 | 1413 | strip-json-comments@^2.0.0: 1414 | version "2.0.1" 1415 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1416 | 1417 | strip-json-comments@~1.0.4: 1418 | version "1.0.4" 1419 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" 1420 | 1421 | supports-color@3.1.2: 1422 | version "3.1.2" 1423 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" 1424 | dependencies: 1425 | has-flag "^1.0.0" 1426 | 1427 | supports-color@^2.0.0: 1428 | version "2.0.0" 1429 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1430 | 1431 | through@^2.3.6: 1432 | version "2.3.8" 1433 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1434 | 1435 | timed-out@^3.0.0: 1436 | version "3.1.3" 1437 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" 1438 | 1439 | tmp@^0.0.29: 1440 | version "0.0.29" 1441 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.29.tgz#f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0" 1442 | dependencies: 1443 | os-tmpdir "~1.0.1" 1444 | 1445 | to-fast-properties@^1.0.1: 1446 | version "1.0.2" 1447 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" 1448 | 1449 | ts-node@^2.0.0: 1450 | version "2.0.0" 1451 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-2.0.0.tgz#16e4fecc949088238b4cbf1c39c9582526b66f74" 1452 | dependencies: 1453 | arrify "^1.0.0" 1454 | chalk "^1.1.1" 1455 | diff "^3.1.0" 1456 | make-error "^1.1.1" 1457 | minimist "^1.2.0" 1458 | mkdirp "^0.5.1" 1459 | pinkie "^2.0.4" 1460 | source-map-support "^0.4.0" 1461 | tsconfig "^5.0.2" 1462 | v8flags "^2.0.11" 1463 | xtend "^4.0.0" 1464 | yn "^1.2.0" 1465 | 1466 | tsconfig@^5.0.2: 1467 | version "5.0.3" 1468 | resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-5.0.3.tgz#5f4278e701800967a8fc383fd19648878f2a6e3a" 1469 | dependencies: 1470 | any-promise "^1.3.0" 1471 | parse-json "^2.2.0" 1472 | strip-bom "^2.0.0" 1473 | strip-json-comments "^2.0.0" 1474 | 1475 | tslint@^4.4.2: 1476 | version "4.4.2" 1477 | resolved "https://registry.yarnpkg.com/tslint/-/tslint-4.4.2.tgz#b14cb79ae039c72471ab4c2627226b940dda19c6" 1478 | dependencies: 1479 | babel-code-frame "^6.20.0" 1480 | colors "^1.1.2" 1481 | diff "^3.0.1" 1482 | findup-sync "~0.3.0" 1483 | glob "^7.1.1" 1484 | optimist "~0.6.0" 1485 | resolve "^1.1.7" 1486 | update-notifier "^1.0.2" 1487 | 1488 | typed-colors@^1.0.0: 1489 | version "1.0.0" 1490 | resolved "https://registry.yarnpkg.com/typed-colors/-/typed-colors-1.0.0.tgz#a86fb57183ea8d955d811aec0e100f565e48bbb9" 1491 | 1492 | typed-figures@^1.0.0: 1493 | version "1.0.0" 1494 | resolved "https://registry.yarnpkg.com/typed-figures/-/typed-figures-1.0.0.tgz#898932b2797b59532cfdf03f23ec2e2dc136126a" 1495 | 1496 | typed-prompts@^1.5.0: 1497 | version "1.5.0" 1498 | resolved "https://registry.yarnpkg.com/typed-prompts/-/typed-prompts-1.5.0.tgz#ac5ad872d71bfdf3a8bbe8d84d382fea8e8e7ef2" 1499 | dependencies: 1500 | inquirer "^1.2.2" 1501 | 1502 | typedarray@^0.0.6: 1503 | version "0.0.6" 1504 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 1505 | 1506 | typescript@^2.1.5: 1507 | version "2.2.0" 1508 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.2.0.tgz#626f2fc70087d2480f21ebb12c1888288c8614e3" 1509 | 1510 | unzip-response@^1.0.2: 1511 | version "1.0.2" 1512 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" 1513 | 1514 | update-notifier@^1.0.2: 1515 | version "1.0.3" 1516 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-1.0.3.tgz#8f92c515482bd6831b7c93013e70f87552c7cf5a" 1517 | dependencies: 1518 | boxen "^0.6.0" 1519 | chalk "^1.0.0" 1520 | configstore "^2.0.0" 1521 | is-npm "^1.0.0" 1522 | latest-version "^2.0.0" 1523 | lazy-req "^1.1.0" 1524 | semver-diff "^2.0.0" 1525 | xdg-basedir "^2.0.0" 1526 | 1527 | url-parse-lax@^1.0.0: 1528 | version "1.0.0" 1529 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" 1530 | dependencies: 1531 | prepend-http "^1.0.1" 1532 | 1533 | user-home@^1.1.1: 1534 | version "1.1.1" 1535 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" 1536 | 1537 | util-deprecate@~1.0.1: 1538 | version "1.0.2" 1539 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1540 | 1541 | uuid@^2.0.1: 1542 | version "2.0.3" 1543 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" 1544 | 1545 | v8flags@^2.0.11: 1546 | version "2.0.11" 1547 | resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.0.11.tgz#bca8f30f0d6d60612cc2c00641e6962d42ae6881" 1548 | dependencies: 1549 | user-home "^1.1.1" 1550 | 1551 | vlq@^0.2.1: 1552 | version "0.2.1" 1553 | resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.1.tgz#14439d711891e682535467f8587c5630e4222a6c" 1554 | 1555 | which@^1.2.12: 1556 | version "1.2.12" 1557 | resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" 1558 | dependencies: 1559 | isexe "^1.1.1" 1560 | 1561 | widest-line@^1.0.0: 1562 | version "1.0.0" 1563 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c" 1564 | dependencies: 1565 | string-width "^1.0.1" 1566 | 1567 | wordwrap@~0.0.2: 1568 | version "0.0.3" 1569 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" 1570 | 1571 | wrappy@1: 1572 | version "1.0.2" 1573 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1574 | 1575 | write-file-atomic@^1.1.2: 1576 | version "1.3.1" 1577 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.1.tgz#7d45ba32316328dd1ec7d90f60ebc0d845bb759a" 1578 | dependencies: 1579 | graceful-fs "^4.1.11" 1580 | imurmurhash "^0.1.4" 1581 | slide "^1.1.5" 1582 | 1583 | xdg-basedir@^2.0.0: 1584 | version "2.0.0" 1585 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" 1586 | dependencies: 1587 | os-homedir "^1.0.0" 1588 | 1589 | xtend@^4.0.0: 1590 | version "4.0.1" 1591 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 1592 | 1593 | yn@^1.2.0: 1594 | version "1.2.0" 1595 | resolved "https://registry.yarnpkg.com/yn/-/yn-1.2.0.tgz#d237a4c533f279b2b89d3acac2db4b8c795e4a63" 1596 | --------------------------------------------------------------------------------