From dba6ac74ad065e48efaf88c893c0b0ae2c4a505d Mon Sep 17 00:00:00 2001 From: Rob Bearman Date: Tue, 13 Dec 2016 16:08:03 +0000 Subject: [PATCH 1/3] Support for gulp tasks --- gulp/lib/allPackages.js | 19 + gulp/tasks/browserify.js | 126 ++ gulp/tasks/docs.js | 184 ++ gulp/tasks/help.js | 24 + gulp/tasks/lint.js | 23 + gulp/templates/main.hbs | 3 + gulp/templates/mixes.hbs | 3 + gulp/templates/mixin-linked-type-list.hbs | 4 + gulp/templates/scope.hbs | 12 + gulpfile.js | 36 + package.json | 12 +- yarn.lock | 2049 +++++++++++++++------ 12 files changed, 1963 insertions(+), 532 deletions(-) create mode 100644 gulp/lib/allPackages.js create mode 100644 gulp/tasks/browserify.js create mode 100644 gulp/tasks/docs.js create mode 100644 gulp/tasks/help.js create mode 100644 gulp/tasks/lint.js create mode 100644 gulp/templates/main.hbs create mode 100644 gulp/templates/mixes.hbs create mode 100644 gulp/templates/mixin-linked-type-list.hbs create mode 100644 gulp/templates/scope.hbs create mode 100644 gulpfile.js diff --git a/gulp/lib/allPackages.js b/gulp/lib/allPackages.js new file mode 100644 index 00000000..fa406332 --- /dev/null +++ b/gulp/lib/allPackages.js @@ -0,0 +1,19 @@ +/*jslint node: true */ +'use strict'; + +const fs = require('fs'); +const path = require('path'); + +// +// allPackages is the global array of npm-publishable packages in this monorepo. +// This is all folders inside the ./packages folder that start with the prefix +// "basic-". +// +const PACKAGE_FOLDER = './packages'; +const allPackages = fs.readdirSync(PACKAGE_FOLDER).filter(fileName => { + const filePath = path.join(PACKAGE_FOLDER, fileName); + const stat = fs.statSync(filePath); + return stat && stat.isDirectory() && fileName.startsWith('basic-'); +}); + +module.exports = allPackages; \ No newline at end of file diff --git a/gulp/tasks/browserify.js b/gulp/tasks/browserify.js new file mode 100644 index 00000000..a5cc1901 --- /dev/null +++ b/gulp/tasks/browserify.js @@ -0,0 +1,126 @@ +/*jslint node: true */ +'use strict'; + +const gulp = require('gulp'); +const gutil = require('gulp-util'); +const glob = require('glob'); +const babelify = require('babelify') +const browserify = require('browserify'); +const watchify = require('watchify'); +const buffer = require('vinyl-buffer'); +const vinylStream = require('vinyl-source-stream'); +const sourceMaps = require('gulp-sourcemaps'); +const uglify = require('gulp-uglify'); +const allPackages = require('../lib/allPackages'); + +// +// Build the global buildList object for use in browserifyTask +// +function buildBuildList() { + const buildList = { + 'build/tests.js': allPackages.map(pkg => `packages/${pkg}/test/*.js`) + }; + allPackages.forEach(pkg => { + buildList[`packages/${pkg}/dist/${pkg}.js`] = [`packages/${pkg}/globals.js`]; + }); + buildList['packages/demos/dist/demos.js'] = ['packages/demos/src/*.js']; + return buildList; +} +const buildList = buildBuildList(); + +const watchifyTask = function(done) { + browserifyHelperTask(true, done); +} + +const browserifyTask = function(done) { + browserifyHelperTask(false, done); +} + +const browserifyHelperTask = function(watch, done) { + let processedCount = 0; + let bundlerCount = 0; + let bundlers = []; + + function bundleIt(bundler) { + bundler.bundler + .bundle() + .pipe(vinylStream(bundler.outputFile)) + .pipe(buffer()) // Convert to gulp pipeline + .pipe(sourceMaps.init({loadMaps : true})) // Strip inline source maps + .pipe(uglify()) // Minimize + .on('error', gutil.log) + .pipe(sourceMaps.write('./')) // Relative to bundler.outputDir below + .pipe(gulp.dest(bundler.outputDir)) + .on('end', function() { + gutil.log(`Processed ${bundler.source} and wrote ${bundler.outputDir}${bundler.outputFile}`); + processedCount++; + if (processedCount >= bundlerCount) { + if (watch) { + // Do not call task completion callback in the watch case + gutil.log('Now watching for changes...') + } + else { + done(); + } + } + }); + } + + gutil.log('Preparing build...'); + + for (let key in buildList) { + let entries = []; + + buildList[key].forEach(globItem => { + let a = glob.sync(globItem); + Array.prototype.push.apply(entries, a); + }); + + const props = watch ? { + entries: entries, + debug: true, + cache: {}, + packageCache: {}, + plugin: [watchify] + } : { + entries: entries, + debug: true + } + + let bundler = browserify(props); + if (watch) { + bundler.on('update', function() { + bundleIt(this.bundlerData); + }); + } + + let bundlerData = { + bundler: bundler, + source: entries, + outputFile: key.split('/').pop(), + outputDir: key.substring(0, key.lastIndexOf('/') + 1) + }; + + // Attach bundlerData to the bundler object so we can fetch + // details about the bundler in the update event + bundler.bundlerData = bundlerData; + + bundlers.push(bundlerData); + } + + bundlerCount = bundlers.length; + + bundlers.forEach(bundler => { + // + // Remember: we have .babelrc in the root specifying the ES2015 preset, + // and the babelify transform specified in package.json. + // This was necessary for the Grunt build. The following line is + // therefore unnecessary: + // + // bundler.bundler.transform(babelify, {presets: ['es2015']}); + + bundleIt(bundler); + }); +}; + +module.exports = {browserifyTask: browserifyTask, watchifyTask: watchifyTask}; \ No newline at end of file diff --git a/gulp/tasks/docs.js b/gulp/tasks/docs.js new file mode 100644 index 00000000..43161022 --- /dev/null +++ b/gulp/tasks/docs.js @@ -0,0 +1,184 @@ +/*jslint node: true */ +'use strict'; + +const fs = require('fs'); +const jsDocParse = require('jsdoc-parse'); +const dmd = require('dmd'); +const Readable = require('stream').Readable; +const gutil = require('gulp-util'); +const allPackages = require('../lib/allPackages'); + +// +// Build the global docsList array for use in building the package's README.md documentation +// +function buildDocsList() { + const packagesWithoutBuiltDocs = [ + 'basic-component-mixins', + 'basic-web-components' + ]; + const ary = allPackages.filter(item => { + return packagesWithoutBuiltDocs.indexOf(item) < 0; + }).map(item => { + return { + src: `packages/${item}/src/*.js`, + dest: `packages/${item}/README.md`}; + }); + + return ary.concat(buildMixinsDocsList()); +} +const docsList = buildDocsList(); + +// +// Build the portion of docsList that represents the individual source files within +// the basic-component-mixins directory. +// +function buildMixinsDocsList() { + return fs.readdirSync('packages/basic-component-mixins/src').filter(file => { + return file.indexOf('.js') == file.length - 3; + }).map(file => { + const fileRoot = file.replace('.js', ''); + return { + src: `packages/basic-component-mixins/src/${file}`, + dest: `packages/basic-component-mixins/docs/${fileRoot}.md` }; + }); +} + +function buildMarkdownDoc(docItem) { + gutil.log('Building ' + docItem.dest + ' from ' + docItem.src); + + return parseScriptToJSDocJSON(docItem.src) + .then(json => { + return mergeMixinDocs(json); + }) + .then(json => { + // Sort the array, leaving the order:0 item alone at the + // front of the list (the class identifier section) + json.sort((a, b) => { + if (a.order === 0) { return -1; } + if (b.order === 0) { return 1; } + + return a.name.localeCompare(b.name); + }); + + // Set the order value + json.map((item, index) => { + item.order = index; + }); + + // Convert the JSON to Markdown + return parseJSONToMarkdown(json); + }) + .then(function(string) { + // Write to the output markdown file + return new Promise(function(resolve, reject) { + fs.writeFile(docItem.dest, string, 'utf-8', function (err) { + if (err) { + return reject(err); + } + resolve(); + }); + }); + }); +} + +function parseScriptToJSDocJSON(src) { + return new Promise((resolve, reject) => { + // Start by parsing the jsdoc into a stream which will contain + // the jsdoc represented in JSON + const stream = jsDocParse({src: src}); + + // Convert the stream to jsdoc JSON + let string = ''; + stream.setEncoding('utf8'); + stream.on('data', chunk => { + string += chunk; + }) + .on('end', () => { + const json = JSON.parse(string); + resolve(json); + }) + .on('error', err => { + reject(err); + }); + }); +} + +function parseJSONToMarkdown(json) { + return new Promise(function(resolve, reject) { + // Create a new readable stream, holding the stringified JSON + let string = ''; + const s = new Readable(); + s._read = function noop() {}; + s.push(JSON.stringify(json)); + s.push(null); + + // Use dmd to create the markdown string which we will + // write to an output .md file (NYI) + const partials = [ + './gulp/templates/main.hbs', + './gulp/templates/scope.hbs', + './gulp/templates/mixes.hbs', + './gulp/templates/mixin-linked-type-list.hbs']; + const dmdStream = dmd({partial: partials, 'global-index-format': 'none', 'group-by': ['none']}); + s.pipe(dmdStream); + dmdStream.setEncoding('utf8'); + dmdStream.on('data', data => { + string += data; + }) + .on('end', () => { + // string now holds the markdown text + resolve(string); + }) + .on('error', err => { + reject(err); + }); + }); +} + +function mergeMixinDocs(componentJson) { + if (componentJson[0].mixes == null || componentJson[0].mixes === undefined) { + return componentJson; + } + + const mixins = componentJson[0].mixes.map(mixin => { + return 'packages/basic-component-mixins/src/' + mixin + '.js'; + }); + + const hostId = componentJson[0].id; + return mapAndChain(mixins, mixin => mergeMixinIntoBag(mixin, componentJson, hostId)) + .then(() => + componentJson + ); +} + +function mergeMixinIntoBag(mixinPath, componentJson, hostId) { + return parseScriptToJSDocJSON(mixinPath) + .then(mixinJson => { + for (let i = 1; i < mixinJson.length; i++) { + if (mixinJson[i].memberof != null && mixinJson[i].memberof != hostId) { + mixinJson[i].originalmemberof = mixinJson[i].memberof; + mixinJson[i].memberof = hostId; + } + componentJson.push(mixinJson[i]); + } + }); +} + +// Apply the given promise-returning function to each member of the array. +// Ensure each promise completes before starting the next one to avoid +// spinning up too many file operations at once. This is effectively like +// Promise.all(), while ensuring that the items are processed in a completely +// sequential order. +function mapAndChain(array, promiseFn) { + // Start the promise chain with a resolved promise. + return array.reduce((chain, item) => chain.then(() => promiseFn(item)), Promise.resolve()); +} + + +const docsTask = function() { + return mapAndChain(docsList, doc => buildMarkdownDoc(doc)) + .then(() => gutil.log('All documentation complete')) + .catch(err => gutil.log(`error: ${err}`)); +}; + +module.exports = docsTask; \ No newline at end of file diff --git a/gulp/tasks/help.js b/gulp/tasks/help.js new file mode 100644 index 00000000..f0af0996 --- /dev/null +++ b/gulp/tasks/help.js @@ -0,0 +1,24 @@ +/*jslint node: true */ +'use strict'; + +const gulp = require('gulp'); +const gutil = require('gulp-util'); + +// +// Help task - prints to the console the tasks that are available to be run from the command line +// +function helpTask() { + gutil.log(`gulp commands this project supports: + + gulp build (builds all packages, docs, and tests) + gulp devbuild (same as build minus building the documentation) + gulp docs (builds all packages README.md files) + gulp lint (runs jshint on all .js files) + gulp watch (builds and watches changes to project files) + `); + // gulp npm-publish:package-name|* (publishes packages/package-name or all packages (packages/*) to npm) + // gulp set-version:version (updates package.json version values and dependencies. Ex: gulp set-version:1.0.30) + // gulp saucelabs (Runs SauceLabs tests. You must set environment variables SAUCE_USERNAME and SAUCE_ACCESS_KEY.) +} + +module.exports = helpTask; \ No newline at end of file diff --git a/gulp/tasks/lint.js b/gulp/tasks/lint.js new file mode 100644 index 00000000..7ba04af6 --- /dev/null +++ b/gulp/tasks/lint.js @@ -0,0 +1,23 @@ +/*jslint node: true */ +'use strict'; + +const gulp = require('gulp'); +const gutil = require('gulp-util'); +const jshint = require('gulp-jshint'); + +const lintTask = function() { + const lintFiles = [ + 'gulpfile.js', + 'packages/**/*.js', + '!packages/**/dist/**', + '!packages/**/lib/**', + '!packages/**/bower_components/**', + 'test/**/*.js' + ]; + + return gulp.src(lintFiles) + .pipe(jshint()) + .pipe(jshint.reporter('default')); +} + +module.exports = lintTask; \ No newline at end of file diff --git a/gulp/templates/main.hbs b/gulp/templates/main.hbs new file mode 100644 index 00000000..9cc0bbd4 --- /dev/null +++ b/gulp/templates/main.hbs @@ -0,0 +1,3 @@ +# API Documentation +{{>main-index~}} +{{>all-docs~}} \ No newline at end of file diff --git a/gulp/templates/mixes.hbs b/gulp/templates/mixes.hbs new file mode 100644 index 00000000..42e144ae --- /dev/null +++ b/gulp/templates/mixes.hbs @@ -0,0 +1,3 @@ +{{#if mixes~}} + **Mixes**: {{>mixin-linked-type-list types=mixes delimiter=", " }} +{{/if}} \ No newline at end of file diff --git a/gulp/templates/mixin-linked-type-list.hbs b/gulp/templates/mixin-linked-type-list.hbs new file mode 100644 index 00000000..8a6cbd0f --- /dev/null +++ b/gulp/templates/mixin-linked-type-list.hbs @@ -0,0 +1,4 @@ +{{#each types~}} + [{{this}}](../basic-component-mixins/docs/{{this}}.md) + {{#unless @last}}{{{../../delimiter}}}{{/unless~}} +{{/each}} \ No newline at end of file diff --git a/gulp/templates/scope.hbs b/gulp/templates/scope.hbs new file mode 100644 index 00000000..0649a0d3 --- /dev/null +++ b/gulp/templates/scope.hbs @@ -0,0 +1,12 @@ +{{#if scope}} + **Kind**: {{#if (equal kind "event") ~}} + event emitted{{#if memberof}} by {{#if originalmemberof}}{{>link to=memberof}}. Defined by [{{originalmemberof}}](../basic-component-mixins/docs/{{originalmemberof}}.md) mixin.{{else~}} + {{>link to=memberof}}{{/if}}{{/if}} + {{else~}} + {{scope}} {{#if virtual}}abstract {{/if}}{{kindInThisContext}}{{#if memberof}} of {{#if originalmemberof}}{{>link to=memberof}}. Defined by [{{originalmemberof}}](../basic-component-mixins/docs/{{originalmemberof}}.md) mixin.{{else~}} + {{>link to=memberof}}{{/if}}{{/if}} + {{/if~}} + {{else~}} + {{#if isExported}}**Kind**: Exported {{kind}} + {{/if~}} +{{/if~}} \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 00000000..ff007a33 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,36 @@ +/*jslint node: true */ +'use strict'; + +const gulp = require('gulp'); + +const browserifyTask = require('./gulp/tasks/browserify').browserifyTask; +const watchifyTask = require('./gulp/tasks/browserify').watchifyTask; +const docsTask = require('./gulp/tasks/docs'); +const helpTask = require('./gulp/tasks/help'); +const lintTask = require('./gulp/tasks/lint'); + +// +// Naming convention for tasks: +// taskName[-taskDependency[-taskDependency-[...]]] +// +// Example: +// lint: Simply runs the lint task +// lint-browserify: Runs the lint task with a dependency on browserify +// lint-docs-browserify: Runs the lint taks with a dependency first on docs, +// then browserify +// + +// Private +gulp.task('browserify', [], browserifyTask); +gulp.task('docs-browserify', ['browserify'], docsTask); +gulp.task('help', [], helpTask); +gulp.task('lint-docs-browserify', ['docs-browserify'], lintTask); +gulp.task('lint-browserify', ['browserify'], lintTask); + +// Public +gulp.task('build', ['browserify', 'docs-browserify', 'lint-docs-browserify']); +gulp.task('devbuild', ['browserify', 'lint-browserify']); +gulp.task('default', ['help']); +gulp.task('docs', [], docsTask); +gulp.task('lint', [], lintTask); +gulp.task('watch', [], watchifyTask); diff --git a/package.json b/package.json index 03d87193..5a2b3594 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "dependencies": { "babel-preset-es2015": "^6.6.0", "babelify": "^7.3.0", + "browserify": "^13.1.1", "chai": "^3.5.0", "grunt": "^0.4.5", "grunt-browserify": "^4.0.1", @@ -20,9 +21,18 @@ "grunt-contrib-jshint": "^0.11.3", "grunt-contrib-watch": "^0.6.1", "grunt-jsdoc-to-markdown": "^1.2.0", - "grunt-mocha": "^0.4.15", + "grunt-mocha": "^1.0.2", "grunt-saucelabs": "^8.6.2", "grunt-shell": "^1.1.2", + "gulp": "^3.9.1", + "gulp-jshint": "^2.0.3", + "gulp-rename": "^1.2.2", + "gulp-sourcemaps": "^2.2.0", + "gulp-uglify": "^2.0.0", + "gulp-util": "^3.0.7", + "vinyl-buffer": "^1.0.0", + "vinyl-source-stream": "^1.1.0", + "watchify": "^3.7.0", "web-animations-js": "^2.2.1" }, "browserify": { diff --git a/yarn.lock b/yarn.lock index 3c934ab6..5b352a76 100644 --- a/yarn.lock +++ b/yarn.lock @@ -25,10 +25,14 @@ acorn@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" -acorn@^3.0.4, acorn@^3.3.0: +acorn@^3.0.4, acorn@^3.1.0, acorn@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" +acorn@4.X: + version "4.0.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.3.tgz#1a3e850b428e73ba6b09d1cc527f5aaad4d03ef1" + agent-base@2: version "2.0.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.0.1.tgz#bd8f9e86a8eb221fffa07bd14befd55df142815e" @@ -36,9 +40,17 @@ agent-base@2: extend "~3.0.0" semver "~5.0.1" +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" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + amdefine@>=0.0.4: - version "1.0.0" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.0.tgz#fd17474700cb5cc9c2b709f0be9d23ce3c198c33" + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" ansi-escape-sequences@^2.2.1, ansi-escape-sequences@^2.2.2: version "2.2.2" @@ -68,10 +80,25 @@ anymatch@^1.3.0: arrify "^1.0.0" micromatch "^2.1.5" +app-usage-stats@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/app-usage-stats/-/app-usage-stats-0.4.0.tgz#f98dd1c1adfc665d22345111a2583db36f824ed6" + dependencies: + array-back "^1.0.3" + core-js "^2.4.1" + feature-detect-es6 "^1.3.1" + home-path "^1.0.3" + test-value "^2.1.0" + usage-stats "^0.8.2" + aproba@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0" +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + are-we-there-yet@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" @@ -97,15 +124,23 @@ arr-flatten@^1.0.1: resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" array-back@^1.0.2, array-back@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-1.0.3.tgz#f1128a5cf1b91c80bed4a218f8c5b635c8b10663" + version "1.0.4" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-1.0.4.tgz#644ba7f095f7ffcf7c43b5f0dc39d3c1f03c063b" dependencies: - typical "^2.4.2" + typical "^2.6.0" + +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" array-filter@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + array-map@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" @@ -137,6 +172,10 @@ array-tools@^2: sort-array "^1.0.0" test-value "^1.0.1" +array-uniq@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" @@ -150,8 +189,8 @@ asap@~2.0.3: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" asn1.js@^4.0.0: - version "4.8.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.8.1.tgz#3949b7f5fd1e8bedc13be3abebf477f93490c810" + version "4.9.0" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.0.tgz#f71a1243f3e79d46d7b07d7fbf4824ee73af054a" dependencies: bn.js "^4.0.0" inherits "^2.0.1" @@ -193,12 +232,6 @@ async@^0.9.0: version "0.9.2" resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" -async@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/async/-/async-2.0.1.tgz#b709cc0280a9c36f09f4536be823c838a9049e25" - dependencies: - lodash "^4.8.0" - async@~0.1.22: version "0.1.22" resolved "https://registry.yarnpkg.com/async/-/async-0.1.22.tgz#0fc1aaa088a0e3ef0ebe2d8831bab0dcf8845061" @@ -207,14 +240,18 @@ async@~0.2.6, async@~0.2.9: version "0.2.10" resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" -async@0.1.15: - version "0.1.15" - resolved "https://registry.yarnpkg.com/async/-/async-0.1.15.tgz#2180eaca2cf2a6ca5280d41c0585bec9b3e49bd3" +async@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" +atob@~1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/atob/-/atob-1.1.3.tgz#95f13629b12c3a51a5d215abdce2aa9f32f80773" + aws-sign2@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" @@ -223,119 +260,117 @@ aws4@^1.2.1: version "1.5.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" -babel-code-frame@^6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.16.0.tgz#f90e60da0862909d3ce098733b5d3987c97cb8de" +babel-code-frame@^6.20.0: + version "6.20.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.20.0.tgz#b968f839090f9a8bc6d41938fb96cb84f7387b26" dependencies: chalk "^1.1.0" esutils "^2.0.2" js-tokens "^2.0.0" -babel-core@^6.0.14, babel-core@^6.16.0: - version "6.17.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.17.0.tgz#6c4576447df479e241e58c807e4bc7da4db7f425" +babel-core@^6.0.14, babel-core@^6.18.0: + version "6.20.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.20.0.tgz#ab0d7176d9dea434e66badadaf92237865eab1ec" dependencies: - babel-code-frame "^6.16.0" - babel-generator "^6.17.0" + babel-code-frame "^6.20.0" + babel-generator "^6.20.0" babel-helpers "^6.16.0" babel-messages "^6.8.0" - babel-register "^6.16.0" - babel-runtime "^6.9.1" + babel-register "^6.18.0" + babel-runtime "^6.20.0" babel-template "^6.16.0" - babel-traverse "^6.16.0" - babel-types "^6.16.0" + babel-traverse "^6.20.0" + babel-types "^6.20.0" babylon "^6.11.0" convert-source-map "^1.1.0" debug "^2.1.1" - json5 "^0.4.0" + json5 "^0.5.0" lodash "^4.2.0" minimatch "^3.0.2" - path-exists "^1.0.0" path-is-absolute "^1.0.0" private "^0.1.6" - shebang-regex "^1.0.0" slash "^1.0.0" source-map "^0.5.0" -babel-generator@^6.17.0: - version "6.17.0" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.17.0.tgz#b894e3808beef7800f2550635bfe024b6226cf33" +babel-generator@^6.20.0: + version "6.20.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.20.0.tgz#fee63614e0449390103b3097f3f6a118016c6766" dependencies: babel-messages "^6.8.0" - babel-runtime "^6.9.0" - babel-types "^6.16.0" - detect-indent "^3.0.1" + babel-runtime "^6.20.0" + babel-types "^6.20.0" + detect-indent "^4.0.0" jsesc "^1.3.0" lodash "^4.2.0" source-map "^0.5.0" -babel-helper-call-delegate@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.8.0.tgz#9d283e7486779b6b0481864a11b371ea5c01fa64" +babel-helper-call-delegate@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.18.0.tgz#05b14aafa430884b034097ef29e9f067ea4133bd" dependencies: - babel-helper-hoist-variables "^6.8.0" + babel-helper-hoist-variables "^6.18.0" babel-runtime "^6.0.0" - babel-traverse "^6.8.0" - babel-types "^6.8.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" -babel-helper-define-map@^6.8.0, babel-helper-define-map@^6.9.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.9.0.tgz#6629f9b2a7e58e18e8379a57d1e6fbb2969902fb" +babel-helper-define-map@^6.18.0, babel-helper-define-map@^6.8.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.18.0.tgz#8d6c85dc7fbb4c19be3de40474d18e97c3676ec2" dependencies: - babel-helper-function-name "^6.8.0" + babel-helper-function-name "^6.18.0" babel-runtime "^6.9.0" - babel-types "^6.9.0" + babel-types "^6.18.0" lodash "^4.2.0" -babel-helper-function-name@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.8.0.tgz#a0336ba14526a075cdf502fc52d3fe84b12f7a34" +babel-helper-function-name@^6.18.0, babel-helper-function-name@^6.8.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.18.0.tgz#68ec71aeba1f3e28b2a6f0730190b754a9bf30e6" dependencies: - babel-helper-get-function-arity "^6.8.0" + babel-helper-get-function-arity "^6.18.0" babel-runtime "^6.0.0" babel-template "^6.8.0" - babel-traverse "^6.8.0" - babel-types "^6.8.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" -babel-helper-get-function-arity@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.8.0.tgz#88276c24bd251cdf6f61b6f89f745f486ced92af" +babel-helper-get-function-arity@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.18.0.tgz#a5b19695fd3f9cdfc328398b47dafcd7094f9f24" dependencies: babel-runtime "^6.0.0" - babel-types "^6.8.0" + babel-types "^6.18.0" -babel-helper-hoist-variables@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.8.0.tgz#8b0766dc026ea9ea423bc2b34e665a4da7373aaf" +babel-helper-hoist-variables@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.18.0.tgz#a835b5ab8b46d6de9babefae4d98ea41e866b82a" dependencies: babel-runtime "^6.0.0" - babel-types "^6.8.0" + babel-types "^6.18.0" -babel-helper-optimise-call-expression@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.8.0.tgz#4175628e9c89fc36174904f27070f29d38567f06" +babel-helper-optimise-call-expression@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.18.0.tgz#9261d0299ee1a4f08a6dd28b7b7c777348fd8f0f" dependencies: babel-runtime "^6.0.0" - babel-types "^6.8.0" + babel-types "^6.18.0" babel-helper-regex@^6.8.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.9.0.tgz#c74265fde180ff9a16735fee05e63cadb9e0b057" + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.18.0.tgz#ae0ebfd77de86cb2f1af258e2cc20b5fe893ecc6" dependencies: babel-runtime "^6.9.0" - babel-types "^6.9.0" + babel-types "^6.18.0" lodash "^4.2.0" -babel-helper-replace-supers@^6.14.0, babel-helper-replace-supers@^6.8.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.16.0.tgz#21c97623cc7e430855753f252740122626a39e6b" +babel-helper-replace-supers@^6.18.0, babel-helper-replace-supers@^6.8.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.18.0.tgz#28ec69877be4144dbd64f4cc3a337e89f29a924e" dependencies: - babel-helper-optimise-call-expression "^6.8.0" + babel-helper-optimise-call-expression "^6.18.0" babel-messages "^6.8.0" babel-runtime "^6.0.0" babel-template "^6.16.0" - babel-traverse "^6.16.0" - babel-types "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" babel-helpers@^6.16.0: version "6.16.0" @@ -368,29 +403,29 @@ babel-plugin-transform-es2015-block-scoped-functions@^6.3.13: dependencies: babel-runtime "^6.0.0" -babel-plugin-transform-es2015-block-scoping@^6.14.0: - version "6.15.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.15.0.tgz#5b443ca142be8d1db6a8c2ae42f51958b66b70f6" +babel-plugin-transform-es2015-block-scoping@^6.18.0: + version "6.20.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.20.0.tgz#5d8f3e83b1a1ae1064e64a9e5bb83108d8e73be3" dependencies: - babel-runtime "^6.9.0" + babel-runtime "^6.20.0" babel-template "^6.15.0" - babel-traverse "^6.15.0" - babel-types "^6.15.0" + babel-traverse "^6.20.0" + babel-types "^6.20.0" lodash "^4.2.0" -babel-plugin-transform-es2015-classes@^6.14.0: - version "6.14.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.14.0.tgz#87d5149ee91fb475922409f9af5b2ba5d1e39287" +babel-plugin-transform-es2015-classes@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.18.0.tgz#ffe7a17321bf83e494dcda0ae3fc72df48ffd1d9" dependencies: - babel-helper-define-map "^6.9.0" - babel-helper-function-name "^6.8.0" - babel-helper-optimise-call-expression "^6.8.0" - babel-helper-replace-supers "^6.14.0" + babel-helper-define-map "^6.18.0" + babel-helper-function-name "^6.18.0" + babel-helper-optimise-call-expression "^6.18.0" + babel-helper-replace-supers "^6.18.0" babel-messages "^6.8.0" babel-runtime "^6.9.0" babel-template "^6.14.0" - babel-traverse "^6.14.0" - babel-types "^6.14.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" babel-plugin-transform-es2015-computed-properties@^6.3.13: version "6.8.0" @@ -400,9 +435,9 @@ babel-plugin-transform-es2015-computed-properties@^6.3.13: babel-runtime "^6.0.0" babel-template "^6.8.0" -babel-plugin-transform-es2015-destructuring@^6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.16.0.tgz#050fe0866f5d53b36062ee10cdf5bfe64f929627" +babel-plugin-transform-es2015-destructuring@^6.18.0: + version "6.19.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.19.0.tgz#ff1d911c4b3f4cab621bd66702a869acd1900533" dependencies: babel-runtime "^6.9.0" @@ -413,9 +448,9 @@ babel-plugin-transform-es2015-duplicate-keys@^6.6.0: babel-runtime "^6.0.0" babel-types "^6.8.0" -babel-plugin-transform-es2015-for-of@^6.6.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.8.0.tgz#82eda139ba4270dda135c3ec1b1f2813fa62f23c" +babel-plugin-transform-es2015-for-of@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.18.0.tgz#4c517504db64bf8cfc119a6b8f177211f2028a70" dependencies: babel-runtime "^6.0.0" @@ -433,36 +468,36 @@ babel-plugin-transform-es2015-literals@^6.3.13: dependencies: babel-runtime "^6.0.0" -babel-plugin-transform-es2015-modules-amd@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.8.0.tgz#25d954aa0bf04031fc46d2a8e6230bb1abbde4a3" +babel-plugin-transform-es2015-modules-amd@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.18.0.tgz#49a054cbb762bdf9ae2d8a807076cfade6141e40" dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.8.0" + babel-plugin-transform-es2015-modules-commonjs "^6.18.0" babel-runtime "^6.0.0" babel-template "^6.8.0" -babel-plugin-transform-es2015-modules-commonjs@^6.16.0, babel-plugin-transform-es2015-modules-commonjs@^6.8.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.16.0.tgz#0a34b447bc88ad1a70988b6d199cca6d0b96c892" +babel-plugin-transform-es2015-modules-commonjs@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.18.0.tgz#c15ae5bb11b32a0abdcc98a5837baa4ee8d67bcc" dependencies: - babel-plugin-transform-strict-mode "^6.8.0" + babel-plugin-transform-strict-mode "^6.18.0" babel-runtime "^6.0.0" babel-template "^6.16.0" - babel-types "^6.16.0" + babel-types "^6.18.0" -babel-plugin-transform-es2015-modules-systemjs@^6.14.0: - version "6.14.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.14.0.tgz#c519b5c73e32388e679c9b1edf41b2fc23dc3303" +babel-plugin-transform-es2015-modules-systemjs@^6.18.0: + version "6.19.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.19.0.tgz#50438136eba74527efa00a5b0fefaf1dc4071da6" dependencies: - babel-helper-hoist-variables "^6.8.0" + babel-helper-hoist-variables "^6.18.0" babel-runtime "^6.11.6" babel-template "^6.14.0" -babel-plugin-transform-es2015-modules-umd@^6.12.0: - version "6.12.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.12.0.tgz#5d73559eb49266775ed281c40be88a421bd371a3" +babel-plugin-transform-es2015-modules-umd@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.18.0.tgz#23351770ece5c1f8e83ed67cb1d7992884491e50" dependencies: - babel-plugin-transform-es2015-modules-amd "^6.8.0" + babel-plugin-transform-es2015-modules-amd "^6.18.0" babel-runtime "^6.0.0" babel-template "^6.8.0" @@ -473,23 +508,23 @@ babel-plugin-transform-es2015-object-super@^6.3.13: babel-helper-replace-supers "^6.8.0" babel-runtime "^6.0.0" -babel-plugin-transform-es2015-parameters@^6.16.0: - version "6.17.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.17.0.tgz#e06d30cef897f46adb4734707bbe128a0d427d58" +babel-plugin-transform-es2015-parameters@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.18.0.tgz#9b2cfe238c549f1635ba27fc1daa858be70608b1" dependencies: - babel-helper-call-delegate "^6.8.0" - babel-helper-get-function-arity "^6.8.0" + babel-helper-call-delegate "^6.18.0" + babel-helper-get-function-arity "^6.18.0" babel-runtime "^6.9.0" babel-template "^6.16.0" - babel-traverse "^6.16.0" - babel-types "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" -babel-plugin-transform-es2015-shorthand-properties@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.8.0.tgz#f0a4c5fd471630acf333c2d99c3d677bf0952149" +babel-plugin-transform-es2015-shorthand-properties@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.18.0.tgz#e2ede3b7df47bf980151926534d1dd0cbea58f43" dependencies: babel-runtime "^6.0.0" - babel-types "^6.8.0" + babel-types "^6.18.0" babel-plugin-transform-es2015-spread@^6.3.13: version "6.8.0" @@ -511,9 +546,9 @@ babel-plugin-transform-es2015-template-literals@^6.6.0: dependencies: babel-runtime "^6.0.0" -babel-plugin-transform-es2015-typeof-symbol@^6.6.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.8.0.tgz#84c29eb1219372480955a020fef7a65c44f30533" +babel-plugin-transform-es2015-typeof-symbol@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.18.0.tgz#0b14c48629c90ff47a0650077f6aa699bee35798" dependencies: babel-runtime "^6.0.0" @@ -526,76 +561,73 @@ babel-plugin-transform-es2015-unicode-regex@^6.3.13: regexpu-core "^2.0.0" babel-plugin-transform-regenerator@^6.16.0: - version "6.16.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.16.1.tgz#a75de6b048a14154aae14b0122756c5bed392f59" + version "6.20.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.20.0.tgz#a546cd2aa1c9889929d5c427a31303847847ab75" dependencies: - babel-runtime "^6.9.0" - babel-types "^6.16.0" - private "~0.1.5" + regenerator-transform "0.9.8" -babel-plugin-transform-strict-mode@^6.8.0: - version "6.11.3" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.11.3.tgz#183741325126bc7ec9cf4c0fc257d3e7ca5afd40" +babel-plugin-transform-strict-mode@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.18.0.tgz#df7cf2991fe046f44163dcd110d5ca43bc652b9d" dependencies: babel-runtime "^6.0.0" - babel-types "^6.8.0" + babel-types "^6.18.0" babel-polyfill@^6.13.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.16.0.tgz#2d45021df87e26a374b6d4d1a9c65964d17f2422" + version "6.20.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.20.0.tgz#de4a371006139e20990aac0be367d398331204e7" dependencies: - babel-runtime "^6.9.1" + babel-runtime "^6.20.0" core-js "^2.4.0" - regenerator-runtime "^0.9.5" + regenerator-runtime "^0.10.0" babel-preset-es2015@^6.6.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.16.0.tgz#59acecd1efbebaf48f89404840f2fe78c4d2ad5c" + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.18.0.tgz#b8c70df84ec948c43dcf2bf770e988eb7da88312" dependencies: babel-plugin-check-es2015-constants "^6.3.13" babel-plugin-transform-es2015-arrow-functions "^6.3.13" babel-plugin-transform-es2015-block-scoped-functions "^6.3.13" - babel-plugin-transform-es2015-block-scoping "^6.14.0" - babel-plugin-transform-es2015-classes "^6.14.0" + babel-plugin-transform-es2015-block-scoping "^6.18.0" + babel-plugin-transform-es2015-classes "^6.18.0" babel-plugin-transform-es2015-computed-properties "^6.3.13" - babel-plugin-transform-es2015-destructuring "^6.16.0" + babel-plugin-transform-es2015-destructuring "^6.18.0" babel-plugin-transform-es2015-duplicate-keys "^6.6.0" - babel-plugin-transform-es2015-for-of "^6.6.0" + babel-plugin-transform-es2015-for-of "^6.18.0" babel-plugin-transform-es2015-function-name "^6.9.0" babel-plugin-transform-es2015-literals "^6.3.13" - babel-plugin-transform-es2015-modules-amd "^6.8.0" - babel-plugin-transform-es2015-modules-commonjs "^6.16.0" - babel-plugin-transform-es2015-modules-systemjs "^6.14.0" - babel-plugin-transform-es2015-modules-umd "^6.12.0" + babel-plugin-transform-es2015-modules-amd "^6.18.0" + babel-plugin-transform-es2015-modules-commonjs "^6.18.0" + babel-plugin-transform-es2015-modules-systemjs "^6.18.0" + babel-plugin-transform-es2015-modules-umd "^6.18.0" babel-plugin-transform-es2015-object-super "^6.3.13" - babel-plugin-transform-es2015-parameters "^6.16.0" - babel-plugin-transform-es2015-shorthand-properties "^6.3.13" + babel-plugin-transform-es2015-parameters "^6.18.0" + babel-plugin-transform-es2015-shorthand-properties "^6.18.0" babel-plugin-transform-es2015-spread "^6.3.13" babel-plugin-transform-es2015-sticky-regex "^6.3.13" babel-plugin-transform-es2015-template-literals "^6.6.0" - babel-plugin-transform-es2015-typeof-symbol "^6.6.0" + babel-plugin-transform-es2015-typeof-symbol "^6.18.0" babel-plugin-transform-es2015-unicode-regex "^6.3.13" babel-plugin-transform-regenerator "^6.16.0" -babel-register@^6.16.0: - version "6.16.3" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.16.3.tgz#7b0c0ca7bfdeb9188ba4c27e5fcb7599a497c624" +babel-register@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.18.0.tgz#892e2e03865078dd90ad2c715111ec4449b32a68" dependencies: - babel-core "^6.16.0" + babel-core "^6.18.0" babel-runtime "^6.11.6" core-js "^2.4.0" - home-or-tmp "^1.0.0" + home-or-tmp "^2.0.0" lodash "^4.2.0" mkdirp "^0.5.1" - path-exists "^1.0.0" source-map-support "^0.4.2" -babel-runtime@^6.0.0, babel-runtime@^6.11.6, babel-runtime@^6.9.0, babel-runtime@^6.9.1: - version "6.11.6" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.11.6.tgz#6db707fef2d49c49bfa3cb64efdb436b518b8222" +babel-runtime@^6.0.0, babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.20.0, babel-runtime@^6.9.0: + version "6.20.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.20.0.tgz#87300bdcf4cd770f09bf0048c64204e17806d16f" dependencies: core-js "^2.4.0" - regenerator-runtime "^0.9.5" + regenerator-runtime "^0.10.0" babel-template@^6.14.0, babel-template@^6.15.0, babel-template@^6.16.0, babel-template@^6.8.0: version "6.16.0" @@ -607,25 +639,25 @@ babel-template@^6.14.0, babel-template@^6.15.0, babel-template@^6.16.0, babel-te babylon "^6.11.0" lodash "^4.2.0" -babel-traverse@^6.14.0, babel-traverse@^6.15.0, babel-traverse@^6.16.0, babel-traverse@^6.8.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.16.0.tgz#fba85ae1fd4d107de9ce003149cc57f53bef0c4f" +babel-traverse@^6.16.0, babel-traverse@^6.18.0, babel-traverse@^6.20.0: + version "6.20.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.20.0.tgz#5378d1a743e3d856e6a52289994100bbdfd9872a" dependencies: - babel-code-frame "^6.16.0" + babel-code-frame "^6.20.0" babel-messages "^6.8.0" - babel-runtime "^6.9.0" - babel-types "^6.16.0" + babel-runtime "^6.20.0" + babel-types "^6.20.0" babylon "^6.11.0" debug "^2.2.0" - globals "^8.3.0" + globals "^9.0.0" invariant "^2.2.0" lodash "^4.2.0" -babel-types@^6.14.0, babel-types@^6.15.0, babel-types@^6.16.0, babel-types@^6.8.0, babel-types@^6.9.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.16.0.tgz#71cca1dbe5337766225c5c193071e8ebcbcffcfe" +babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.20.0, babel-types@^6.8.0, babel-types@^6.9.0: + version "6.20.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.20.0.tgz#3869ecb98459533b37df809886b3f7f3b08d2baa" dependencies: - babel-runtime "^6.9.1" + babel-runtime "^6.20.0" esutils "^2.0.2" lodash "^4.2.0" to-fast-properties "^1.0.1" @@ -638,8 +670,8 @@ babelify@^7.3.0: object-assign "^4.0.0" babylon@^6.11.0: - version "6.11.4" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.11.4.tgz#75e1f52187efa0cde5a541a7f7fdda38f6eb5bd2" + version "6.14.1" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.14.1.tgz#956275fab72753ad9b3435d7afe58f8bf0a29815" balanced-match@^0.4.1: version "0.4.2" @@ -667,21 +699,19 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -binary-extensions@^1.0.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.7.0.tgz#6c1610db163abfb34edfe42fa423343a1e01185d" +beeper@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" -bl@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.0.3.tgz#fc5421a28fd4226036c3b3891a66a25bc64d226e" - dependencies: - readable-stream "~2.0.5" +binary-extensions@^1.0.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" -bl@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398" +bl@^0.9.1: + version "0.9.5" + resolved "https://registry.yarnpkg.com/bl/-/bl-0.9.5.tgz#c06b797af085ea00bc527afc8efcf11de2232054" dependencies: - readable-stream "~2.0.5" + readable-stream "~1.0.26" block-stream@*: version "0.0.9" @@ -733,8 +763,8 @@ browser-pack@^5.0.0: umd "^3.0.0" browser-pack@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.0.1.tgz#779887c792eaa1f64a46a22c8f1051cdcd96755f" + version "6.0.2" + resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.0.2.tgz#f86cd6cef4f5300c8e63e07a4d512f65fbff4531" dependencies: combine-source-map "~0.7.1" defined "^1.0.0" @@ -853,15 +883,16 @@ browserify@^11.0.1: vm-browserify "~0.0.1" xtend "^4.0.0" -browserify@^13.0.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/browserify/-/browserify-13.1.0.tgz#d81a018e98dd7ca706ec04253d20f8a03b2af8ae" +browserify@^13.0.0, browserify@^13.1.1: + version "13.1.1" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-13.1.1.tgz#72a2310e2f706ed87db929cf0ee73a5e195d9bb0" dependencies: assert "~1.3.0" browser-pack "^6.0.1" browser-resolve "^1.11.0" browserify-zlib "~0.1.2" buffer "^4.1.0" + cached-path-relative "^1.0.0" concat-stream "~1.5.1" console-browserify "^1.1.0" constants-browserify "~1.0.0" @@ -879,7 +910,7 @@ browserify@^13.0.0: insert-module-globals "^7.0.0" JSONStream "^1.0.3" labeled-stream-splicer "^2.0.0" - module-deps "^4.0.2" + module-deps "^4.0.8" os-browserify "~0.1.1" parents "^1.0.1" path-browserify "~0.0.0" @@ -928,6 +959,10 @@ buffer@^4.1.0: ieee754 "^1.1.4" isarray "^1.0.0" +builtin-modules@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + builtin-status-codes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-1.0.0.tgz#30637ee262978ac07174e16d7f82f0ad06e085ad" @@ -950,6 +985,25 @@ cache-point@~0.3.3: fs-then-native "^1.0.2" mkdirp "~0.5.1" +cached-path-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.0.tgz#d1094c577fbd9a8b8bd43c96af6188aa205d05f4" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + caseless@~0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" @@ -960,6 +1014,13 @@ catharsis@~0.8.8: dependencies: underscore-contrib "~0.3.0" +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + chai@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" @@ -979,8 +1040,8 @@ chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1: supports-color "^2.0.0" chokidar@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.0.tgz#90c32ad4802901d7713de532dc284e96a63ad058" + version "1.6.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" dependencies: anymatch "^1.3.0" async-each "^1.0.0" @@ -999,6 +1060,15 @@ cipher-base@^1.0.0, cipher-base@^1.0.1: dependencies: inherits "^2.0.1" +cli-commands@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/cli-commands/-/cli-commands-0.1.0.tgz#c57cacc406bbcf9ee21646607161ed432ef5a05a" + dependencies: + ansi-escape-sequences "^3.0.0" + command-line-args "^3.0.1" + command-line-commands "^1.0.4" + command-line-usage "^3.0.5" + cli@0.6.x: version "0.6.6" resolved "https://registry.yarnpkg.com/cli/-/cli-0.6.6.tgz#02ad44a380abf27adac5e6f0cdd7b043d74c53e3" @@ -1006,11 +1076,29 @@ cli@0.6.x: exit "0.1.2" glob "~ 3.2.1" -code-point-at@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.0.1.tgz#1104cd34f9b5b45d3eba88f1babc1924e1ce35fb" +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" dependencies: - number-is-nan "^1.0.0" + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +clone-stats@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" + +clone@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" + +clone@^1.0.0, clone@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" coffee-script@~1.3.3: version "1.3.3" @@ -1097,15 +1185,22 @@ command-line-args@^2.1.4, command-line-args@^2.1.6: find-replace "^1" typical "^2.3.0" -command-line-args@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-3.0.1.tgz#617bac0a15d34ae848eda2aa513ed76efdc48af5" +command-line-args@^3.0.0, command-line-args@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-3.0.4.tgz#06124399c79b055b24003425f4eb823227b83e95" dependencies: array-back "^1.0.3" core-js "^2.4.1" feature-detect-es6 "^1.3.1" find-replace "^1.0.2" - typical "^2.5.0" + typical "^2.6.0" + +command-line-commands@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/command-line-commands/-/command-line-commands-1.0.4.tgz#034f9b167b5188afbdcf6b2efbb150fc8442c32b" + dependencies: + array-back "^1.0.3" + feature-detect-es6 "^1.3.1" command-line-tool@^0.1.0: version "0.1.0" @@ -1136,14 +1231,14 @@ command-line-usage@^2: typical "^2.4.2" wordwrapjs "^1.2.0" -command-line-usage@^3.0.1, command-line-usage@^3.0.3: - version "3.0.4" - resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-3.0.4.tgz#bf20f34f08d5f4d63487a32e07d193d8c47b4a03" +command-line-usage@^3.0.3, command-line-usage@^3.0.5: + version "3.0.8" + resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-3.0.8.tgz#b6a20978c1b383477f5c11a529428b880bfe0f4d" dependencies: ansi-escape-sequences "^3.0.0" array-back "^1.0.3" feature-detect-es6 "^1.3.1" - table-layout "~0.2.2" + table-layout "^0.3.0" typical "^2.6.0" commander@^2.9.0: @@ -1196,7 +1291,7 @@ concat-stream@1.5.0: readable-stream "~2.0.0" typedarray "~0.0.5" -config-master@^2.0.2: +config-master@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/config-master/-/config-master-2.0.4.tgz#e749505c5d3f946f2fad3c76dfe71fca689751dc" dependencies: @@ -1235,7 +1330,7 @@ constants-browserify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" -convert-source-map@^1.1.0: +convert-source-map@^1.1.0, convert-source-map@1.X: version "1.3.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67" @@ -1295,9 +1390,24 @@ crypto-browserify@^3.0.0: public-encrypt "^4.0.0" randombytes "^2.0.0" +css@2.X: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css/-/css-2.2.1.tgz#73a4c81de85db664d4ee674f7d47085e3b2d55dc" + dependencies: + inherits "^2.0.1" + source-map "^0.1.38" + source-map-resolve "^0.3.0" + urix "^0.1.0" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + dashdash@^1.12.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.0.tgz#29e486c5418bf0f356034a993d51686a33e84141" + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" dependencies: assert-plus "^1.0.0" @@ -1305,6 +1415,13 @@ date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" +dateformat@^1.0.11: + version "1.0.12" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" + dependencies: + get-stdin "^4.0.1" + meow "^3.3.0" + dateformat@1.0.2-1.2.3: version "1.0.2-1.2.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.2-1.2.3.tgz#b0220c02de98617433b72851cf47de3df2cdbee9" @@ -1322,21 +1439,33 @@ ddata@~0.1.25: string-tools "^1.0.0" test-value "^2.0.0" -debug@^2.1.1, debug@^2.2.0, debug@~2.2.0, debug@2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" +debug-fabulous@0.0.X: + version "0.0.4" + resolved "https://registry.yarnpkg.com/debug-fabulous/-/debug-fabulous-0.0.4.tgz#fa071c5d87484685424807421ca4b16b0b1a0763" dependencies: - ms "0.7.1" + debug "2.X" + lazy-debug-legacy "0.0.X" + object-assign "4.1.0" + +debug@^2.1.1, debug@^2.2.0, debug@2, debug@2.X: + version "2.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" + dependencies: + ms "0.7.2" debug@~0.7.0, debug@0.7.4: version "0.7.4" resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" -debug@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.0.0.tgz#89bd9df6732b51256bc6705342bba02ed12131ef" +debug@~2.2.0, debug@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" dependencies: - ms "0.6.2" + ms "0.7.1" + +decamelize@^1.0.0, decamelize@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" deep-eql@^0.1.3: version "0.1.3" @@ -1348,6 +1477,16 @@ deep-extend@~0.4.0, deep-extend@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" +defaults@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + dependencies: + clone "^1.0.2" + +defer-promise@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defer-promise/-/defer-promise-1.0.0.tgz#43c94a8a3e1e2699a114ea86a18fa9d5f83bca85" + defined@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" @@ -1364,6 +1503,10 @@ depd@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" +deprecated@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" + deps-sort@^1.3.7: version "1.3.9" resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-1.3.9.tgz#29dfff53e17b36aecae7530adbbbf622c2ed1a71" @@ -1393,24 +1536,32 @@ destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" -detect-indent@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-3.0.1.tgz#9dc5e5ddbceef8325764b9451b02bc6d54084f75" +detect-file@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" dependencies: - get-stdin "^4.0.1" - minimist "^1.1.0" - repeating "^1.1.0" + fs-exists-sync "^0.1.0" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-newline@2.X: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" detective@^4.0.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/detective/-/detective-4.3.1.tgz#9fb06dd1ee8f0ea4dbcc607cda39d9ce1d4f726f" + version "4.3.2" + resolved "https://registry.yarnpkg.com/detective/-/detective-4.3.2.tgz#77697e2e7947ac3fe7c8e26a6d6f115235afa91c" dependencies: - acorn "^1.0.3" + acorn "^3.1.0" defined "^1.0.0" -diff@1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/diff/-/diff-1.0.8.tgz#343276308ec991b7bc82267ed55bc1411f971666" +diff@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" diffie-hellman@^5.0.0: version "5.0.2" @@ -1508,6 +1659,12 @@ encodeurl@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" +end-of-stream@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf" + dependencies: + once "~1.3.0" + entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" @@ -1516,6 +1673,16 @@ entities@1.0: version "1.0.0" resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26" +error-ex@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9" + dependencies: + is-arrayish "^0.2.1" + +es6-promise@~4.0.3: + version "4.0.5" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.0.5.tgz#7882f30adde5b240ccfa7f7d78c548330951ae42" + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -1581,6 +1748,12 @@ expand-range@^1.8.1: dependencies: fill-range "^2.1.0" +expand-tilde@^1.2.1, expand-tilde@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" + dependencies: + os-homedir "^1.0.1" + extend@^3.0.0, extend@~3.0.0, extend@3: version "3.0.0" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" @@ -1604,6 +1777,13 @@ extsprintf@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" +fancy-log@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.2.0.tgz#d5a51b53e9ab22ca07d558f2b67ae55fdb5fcbd8" + dependencies: + chalk "^1.1.1" + time-stamp "^1.0.0" + faye-websocket@~0.4.3: version "0.4.4" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.4.4.tgz#c14c5b3bf14d7417ffbfd990c0a7495cd9f337bc" @@ -1671,6 +1851,10 @@ finalhandler@0.5.0: statuses "~1.3.0" unpipe "~1.0.0" +find-index@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" + find-replace@^1, find-replace@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-1.0.2.tgz#a2d6ce740d15f0d92b1b26763e2ce9c0e361fd98" @@ -1678,6 +1862,22 @@ find-replace@^1, find-replace@^1.0.2: array-back "^1.0.2" test-value "^2.0.0" +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +findup-sync@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12" + dependencies: + detect-file "^0.1.0" + is-glob "^2.0.1" + micromatch "^2.3.7" + resolve-dir "^0.1.0" + findup-sync@~0.1.0, findup-sync@~0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.1.3.tgz#7f3e7a97b82392c653bf06589bd85190e93c3683" @@ -1685,11 +1885,31 @@ findup-sync@~0.1.0, findup-sync@~0.1.2: glob "~3.2.9" lodash "~2.4.1" +fined@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fined/-/fined-1.0.2.tgz#5b28424b760d7598960b7ef8480dff8ad3660e97" + dependencies: + expand-tilde "^1.2.1" + lodash.assignwith "^4.0.7" + lodash.isempty "^4.2.1" + lodash.isplainobject "^4.0.4" + lodash.isstring "^4.0.1" + lodash.pick "^4.2.1" + parse-filepath "^1.0.1" + +first-chunk-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" + +flagged-respawn@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5" + for-in@^0.1.5: version "0.1.6" resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" -for-own@^0.1.3: +for-own@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072" dependencies: @@ -1703,35 +1923,29 @@ forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" -form-data@~1.0.0-rc3: - version "1.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-1.0.1.tgz#ae315db9a4907fa065502304a66d7733475ee37c" - dependencies: - async "^2.0.1" - combined-stream "^1.0.5" - mime-types "^2.1.11" - -form-data@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.0.0.tgz#6f0aebadcc5da16c13e1ecc11137d85f9b883b25" +form-data@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" dependencies: asynckit "^0.4.0" combined-stream "^1.0.5" - mime-types "^2.1.11" + mime-types "^2.1.12" fresh@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f" -fs-extra@~0.26.4: - version "0.26.7" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.26.7.tgz#9ae1fdd94897798edab76d0918cf42d0c3184fa9" +fs-exists-sync@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" + +fs-extra@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" dependencies: graceful-fs "^4.1.2" jsonfile "^2.1.0" klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" fs-then-native@^1.0.2: version "1.0.2" @@ -1744,8 +1958,8 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" fsevents@^1.0.0: - version "1.0.14" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.14.tgz#558e8cc38643d8ef40fe45158486d0d25758eee4" + version "1.0.15" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.15.tgz#fa63f590f3c2ad91275e4972a6cea545fb0aae44" dependencies: nan "^2.3.0" node-pre-gyp "^0.6.29" @@ -1771,21 +1985,21 @@ function-bind@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" -gauge@~2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.6.0.tgz#d35301ad18e96902b4751dcbbe40f4218b942a46" +gauge@~2.7.1: + version "2.7.2" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.2.tgz#15cecc31b02d05345a5d6b0e171cdb3ad2307774" dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" - has-color "^0.1.7" has-unicode "^2.0.0" object-assign "^4.1.0" signal-exit "^3.0.0" string-width "^1.0.1" strip-ansi "^3.0.1" + supports-color "^0.2.0" wide-align "^1.1.0" -gaze@~0.5.1: +gaze@^0.5.1, gaze@~0.5.1: version "0.5.2" resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f" dependencies: @@ -1828,7 +2042,24 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob@^4, glob@^4.0.5: +glob-stream@^3.1.5: + version "3.1.18" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b" + dependencies: + glob "^4.3.1" + glob2base "^0.0.12" + minimatch "^2.0.1" + ordered-read-streams "^0.1.0" + through2 "^0.6.1" + unique-stream "^1.0.0" + +glob-watcher@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b" + dependencies: + gaze "^0.5.1" + +glob@^4, glob@^4.0.5, glob@^4.3.1: version "4.5.3" resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" dependencies: @@ -1858,7 +2089,7 @@ glob@^7.0.5, glob@^7.1.0: once "^1.3.0" path-is-absolute "^1.0.0" -"glob@~ 3.2.1", glob@~3.2.9: +"glob@~ 3.2.1", glob@~3.2.9, glob@3.2.11: version "3.2.11" resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d" dependencies: @@ -1873,17 +2104,31 @@ glob@~3.1.21: inherits "1" minimatch "~0.2.11" -glob@3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.3.tgz#e313eeb249c7affaa5c475286b0e115b59839467" +glob2base@^0.0.12: + version "0.0.12" + resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" dependencies: - graceful-fs "~2.0.0" - inherits "2" - minimatch "~0.2.11" + find-index "^0.1.1" + +global-modules@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" + dependencies: + global-prefix "^0.1.4" + is-windows "^0.2.0" + +global-prefix@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" + dependencies: + homedir-polyfill "^1.0.0" + ini "^1.3.4" + is-windows "^0.2.0" + which "^1.2.12" -globals@^8.3.0: - version "8.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-8.18.0.tgz#93d4a62bdcac38cfafafc47d6b034768cb0ffcb4" +globals@^9.0.0: + version "9.14.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034" globule@~0.1.0: version "0.1.0" @@ -1893,25 +2138,33 @@ globule@~0.1.0: lodash "~1.0.1" minimatch "~0.2.11" -graceful-fs@^4.1.2, graceful-fs@^4.1.6: - version "4.1.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.9.tgz#baacba37d19d11f9d146d3578bc99958c3787e29" +glogg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5" + dependencies: + sparkles "^1.0.0" + +graceful-fs@^3.0.0: + version "3.0.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" + dependencies: + natives "^1.1.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@4.X: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" graceful-fs@~1.2.0: version "1.2.3" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" -graceful-fs@~2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-2.0.3.tgz#7cd2cdb228a4a3f36e95efa6cc142de7d1a136d0" - "graceful-readlink@>= 1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" -growl@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.8.1.tgz#4b2dec8d907e93db336624dcec0183502f8c9428" +growl@1.9.2: + version "1.9.2" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" grunt-browserify@^4.0.1: version "4.0.1" @@ -2003,22 +2256,23 @@ grunt-legacy-util@~0.2.0: underscore.string "~2.2.1" which "~1.0.5" -grunt-lib-phantomjs@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/grunt-lib-phantomjs/-/grunt-lib-phantomjs-0.7.1.tgz#a496ac104bc8e842e26893749d54c4905475e8fc" +grunt-lib-phantomjs@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/grunt-lib-phantomjs/-/grunt-lib-phantomjs-1.1.0.tgz#9e9edcdd9fd2dd40e0c181c94371d572aa5eead2" dependencies: eventemitter2 "^0.4.9" - phantomjs "^1.9.15" - semver "^4.3.0" + phantomjs-prebuilt "^2.1.3" + rimraf "^2.5.2" + semver "^5.1.0" temporary "^0.0.8" -grunt-mocha@^0.4.15: - version "0.4.15" - resolved "https://registry.yarnpkg.com/grunt-mocha/-/grunt-mocha-0.4.15.tgz#af584712f467fb2a216b0c04863061da4838e123" +grunt-mocha@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/grunt-mocha/-/grunt-mocha-1.0.2.tgz#60589a1020f4adb837c498e37617fbcb9711feb4" dependencies: - grunt-lib-phantomjs "^0.7.1" + grunt-lib-phantomjs "^1.0.2" lodash "^3.9.0" - mocha "^1.21.5" + mocha "^2.4.5" grunt-saucelabs@^8.6.2: version "8.6.3" @@ -2064,21 +2318,110 @@ grunt@^0.4.5: underscore.string "~2.2.1" which "~1.0.5" -handlebars-array@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/handlebars-array/-/handlebars-array-0.2.1.tgz#dd58395a5261d661988e8d77520ebbfaadc6bd24" +gulp-jshint@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/gulp-jshint/-/gulp-jshint-2.0.4.tgz#f382b18564b1072def0c9aaf753c146dadb4f0e8" dependencies: - array-tools "^1.1.4" + gulp-util "^3.0.0" + lodash "^4.12.0" + minimatch "^3.0.3" + rcloader "^0.2.2" + through2 "^2.0.0" -handlebars-comparison@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handlebars-comparison/-/handlebars-comparison-2.0.1.tgz#b17b95d2c298578e4aead38f5fac46e8f6005855" +gulp-rename@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/gulp-rename/-/gulp-rename-1.2.2.tgz#3ad4428763f05e2764dec1c67d868db275687817" + +gulp-sourcemaps@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-2.2.1.tgz#b9c7321526089d022180485a9eba2277d72805a7" + dependencies: + acorn "4.X" + convert-source-map "1.X" + css "2.X" + debug-fabulous "0.0.X" + detect-newline "2.X" + graceful-fs "4.X" + source-map "0.X" + strip-bom "3.X" + through2 "2.X" + vinyl "1.X" + +gulp-uglify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/gulp-uglify/-/gulp-uglify-2.0.0.tgz#cbe4aae4fe0b6bdd760335bc46f200fff699c4af" dependencies: - array-tools "^1.1.0" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + lodash "^4.13.1" + make-error-cause "^1.1.1" + through2 "^2.0.0" + uglify-js "2.7.0" + uglify-save-license "^0.4.1" + vinyl-sourcemaps-apply "^0.2.0" -handlebars-json@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/handlebars-json/-/handlebars-json-1.0.1.tgz#2ef87bb782551cd645bb4691b824e9653ec02504" +gulp-util@^3.0.0, gulp-util@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.7.tgz#78925c4b8f8b49005ac01a011c557e6218941cbb" + dependencies: + array-differ "^1.0.0" + array-uniq "^1.0.2" + beeper "^1.0.0" + chalk "^1.0.0" + dateformat "^1.0.11" + fancy-log "^1.1.0" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + lodash._reescape "^3.0.0" + lodash._reevaluate "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.template "^3.0.0" + minimist "^1.1.0" + multipipe "^0.1.2" + object-assign "^3.0.0" + replace-ext "0.0.1" + through2 "^2.0.0" + vinyl "^0.5.0" + +gulp@^3.9.1: + version "3.9.1" + resolved "https://registry.yarnpkg.com/gulp/-/gulp-3.9.1.tgz#571ce45928dd40af6514fc4011866016c13845b4" + dependencies: + archy "^1.0.0" + chalk "^1.0.0" + deprecated "^0.0.1" + gulp-util "^3.0.0" + interpret "^1.0.0" + liftoff "^2.1.0" + minimist "^1.1.0" + orchestrator "^0.3.0" + pretty-hrtime "^1.0.0" + semver "^4.1.0" + tildify "^1.0.0" + v8flags "^2.0.2" + vinyl-fs "^0.3.0" + +gulplog@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + dependencies: + glogg "^1.0.0" + +handlebars-array@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/handlebars-array/-/handlebars-array-0.2.1.tgz#dd58395a5261d661988e8d77520ebbfaadc6bd24" + dependencies: + array-tools "^1.1.4" + +handlebars-comparison@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handlebars-comparison/-/handlebars-comparison-2.0.1.tgz#b17b95d2c298578e4aead38f5fac46e8f6005855" + dependencies: + array-tools "^1.1.0" + +handlebars-json@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/handlebars-json/-/handlebars-json-1.0.1.tgz#2ef87bb782551cd645bb4691b824e9653ec02504" handlebars-regexp@^1.0.0: version "1.0.1" @@ -2100,7 +2443,7 @@ handlebars@^3.0.0, handlebars@^3.0.3: optionalDependencies: uglify-js "~2.3" -har-validator@~2.0.2, har-validator@~2.0.6: +har-validator@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" dependencies: @@ -2115,9 +2458,11 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" -has-color@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" +has-gulplog@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" + dependencies: + sparkles "^1.0.0" has-unicode@^2.0.0: version "2.0.1" @@ -2135,14 +2480,14 @@ hash.js@^1.0.0: dependencies: inherits "^2.0.1" -hasha@^2.2.0: +hasha@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1" dependencies: is-stream "^1.0.1" pinkie-promise "^2.0.0" -hawk@~3.1.0, hawk@~3.1.3: +hawk@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" dependencies: @@ -2155,17 +2500,31 @@ hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" -home-or-tmp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-1.0.0.tgz#4b9f1e40800c3e50c6c27f781676afcce71f3985" +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" dependencies: + os-homedir "^1.0.0" os-tmpdir "^1.0.1" - user-home "^1.1.1" + +home-path@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/home-path/-/home-path-1.0.3.tgz#9ece59fec3f032e6d10b5434fee264df4c2de32f" + +homedir-polyfill@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" + dependencies: + parse-passwd "^1.0.0" hooker@^0.2.3, hooker@~0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/hooker/-/hooker-0.2.3.tgz#b834f723cc4a242aa65963459df6d984c5d3d959" +hosted-git-info@^2.1.4: + version "2.1.5" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b" + htmlescape@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" @@ -2181,12 +2540,12 @@ htmlparser2@3.8.x: readable-stream "1.1" http-errors@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.0.tgz#b1cb3d8260fd8e2386cad3189045943372d48211" + version "1.5.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.1.tgz#788c0d2c1de2c81b9e6e8c01843b6b97eb920750" dependencies: - inherits "2.0.1" - setprototypeof "1.0.1" - statuses ">= 1.3.0 < 2" + inherits "2.0.3" + setprototypeof "1.0.2" + statuses ">= 1.3.1 < 2" http-signature@~1.1.0: version "1.1.1" @@ -2216,18 +2575,24 @@ ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + dependencies: + repeating "^2.0.0" + indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" inflight@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.5.tgz#db3204cd5a9de2e6cd890b85c6e2f66bcf4f620a" + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" dependencies: once "^1.3.0" wrappy "1" -inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@2: +inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@2, inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -2239,7 +2604,7 @@ inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" -ini@~1.3.0: +ini@^1.3.4, ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" @@ -2281,12 +2646,27 @@ insert-module-globals@^7.0.0: through2 "^2.0.0" xtend "^4.0.0" +interpret@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" + invariant@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.1.tgz#b097010547668c7e337028ebe816ebe36c8a8d54" + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" dependencies: loose-envify "^1.0.0" +is-absolute@^0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb" + dependencies: + is-relative "^0.2.1" + is-windows "^0.2.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -2297,6 +2677,12 @@ is-buffer@^1.0.2, is-buffer@^1.1.0: version "1.1.4" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + is-dotfile@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" @@ -2360,6 +2746,12 @@ is-property@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" +is-relative@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5" + dependencies: + is-unc-path "^0.1.1" + is-stream@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -2368,6 +2760,20 @@ is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" +is-unc-path@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-0.1.2.tgz#6ab053a72573c10250ff416a3814c35178af39b9" + dependencies: + unc-path-regex "^0.1.0" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +is-windows@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" + isarray@^1.0.0, isarray@~1.0.0, isarray@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -2403,10 +2809,6 @@ jodid25519@^1.0.0: dependencies: jsbn "~0.1.0" -js-tokens@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-1.0.3.tgz#14e56eb68c8f1a92c43d59f5014ec29dc20f2ae1" - js-tokens@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" @@ -2478,18 +2880,26 @@ jsdoc-parse@^1.2.7: test-value "^1.0.1" jsdoc-to-markdown@^1.3.3: - version "1.3.7" - resolved "https://registry.yarnpkg.com/jsdoc-to-markdown/-/jsdoc-to-markdown-1.3.7.tgz#b2b8cf35242981b114fa093394d4687334f53163" + version "1.3.9" + resolved "https://registry.yarnpkg.com/jsdoc-to-markdown/-/jsdoc-to-markdown-1.3.9.tgz#774c0ece0ebd0bcc3261b2c9a2aa8d1399a61472" dependencies: - ansi-escape-sequences "^2.2.2" - command-line-args "^3.0.0" - command-line-usage "^3.0.1" - config-master "^2.0.2" + ansi-escape-sequences "^3.0.0" + command-line-args "^3.0.1" + command-line-usage "^3.0.5" + config-master "^2.0.4" dmd "^1.4.1" jsdoc-parse "^1.2.7" + jsdoc2md-stats "^1.0.3" object-tools "^2.0.6" stream-connect "^1.0.2" +jsdoc2md-stats@^1.0.3: + version "1.0.6" + resolved "https://registry.yarnpkg.com/jsdoc2md-stats/-/jsdoc2md-stats-1.0.6.tgz#dc0e002aebbd0fbae5123534f92732afbc651fbf" + dependencies: + app-usage-stats "^0.4.0" + feature-detect-es6 "^1.3.1" + jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" @@ -2525,9 +2935,9 @@ json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" -json5@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.4.0.tgz#054352e4c4c80c86c0923877d449de176a732c8d" +json5@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" jsonfile@^2.1.0: version "2.4.0" @@ -2567,14 +2977,16 @@ kew@~0.7.0: resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" kind-of@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.0.4.tgz#7b8ecf18a4e17f8269d73b501c9f232c96887a74" + version "3.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" dependencies: is-buffer "^1.0.2" klaw@^1.0.0, klaw@~1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.0.tgz#8857bfbc1d824badf13d3d0241d8bbe46fb12f73" + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + optionalDependencies: + graceful-fs "^4.1.9" labeled-stream-splicer@^1.0.0: version "1.0.2" @@ -2592,16 +3004,171 @@ labeled-stream-splicer@^2.0.0: isarray "~0.0.1" stream-splicer "^2.0.0" +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lazy-debug-legacy@0.0.X: + version "0.0.1" + resolved "https://registry.yarnpkg.com/lazy-debug-legacy/-/lazy-debug-legacy-0.0.1.tgz#537716c0776e4cf79e3ed1b621f7658c2911b1b1" + lexical-scope@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/lexical-scope/-/lexical-scope-1.2.0.tgz#fcea5edc704a4b3a8796cdca419c3a0afaf22df4" dependencies: astw "^2.0.0" +liftoff@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.3.0.tgz#a98f2ff67183d8ba7cfaca10548bd7ff0550b385" + dependencies: + extend "^3.0.0" + findup-sync "^0.4.2" + fined "^1.0.1" + flagged-respawn "^0.3.2" + lodash.isplainobject "^4.0.4" + lodash.isstring "^4.0.1" + lodash.mapvalues "^4.4.0" + rechoir "^0.6.2" + resolve "^1.1.7" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._basetostring@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" + +lodash._basevalues@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + +lodash._reescape@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" + +lodash._reevaluate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + +lodash._root@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + +lodash.assign@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + +lodash.assignwith@^4.0.7: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz#127a97f02adc41751a954d24b0de17e100e038eb" + +lodash.clonedeep@^4.3.2: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + +lodash.escape@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" + dependencies: + lodash._root "^3.0.0" + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + +lodash.isempty@^4.2.1: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" + +lodash.isobject@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" + +lodash.isplainobject@^4.0.4: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.mapvalues@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" + lodash.memoize@~3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" +lodash.merge@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" + +lodash.pick@^4.2.1, lodash.pick@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + +lodash.template@^3.0.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" + dependencies: + lodash._basecopy "^3.0.0" + lodash._basetostring "^3.0.0" + lodash._basevalues "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + lodash.keys "^3.0.0" + lodash.restparam "^3.0.0" + lodash.templatesettings "^3.0.0" + +lodash.templatesettings@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + lodash@^2.4.1, lodash@~2.4.1: version "2.4.2" resolved "https://registry.yarnpkg.com/lodash/-/lodash-2.4.2.tgz#fadd834b9683073da179b3eae6d9c0d15053f73e" @@ -2610,9 +3177,9 @@ lodash@^3.8.0, lodash@^3.9.0: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.2.0, lodash@^4.8.0: - version "4.16.4" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.16.4.tgz#01ce306b9bad1319f2a5528674f88297aeb70127" +lodash@^4.12.0, lodash@^4.13.1, lodash@^4.2.0: + version "4.17.2" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42" lodash@~0.9.2: version "0.9.2" @@ -2630,21 +3197,65 @@ lodash@3.7.x: version "3.7.0" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.7.0.tgz#3678bd8ab995057c07ade836ed2ef087da811d45" +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + loose-envify@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.2.0.tgz#69a65aad3de542cf4ee0f4fe74e8e33c709ccb0f" + version "1.3.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.0.tgz#6b26248c42f6d4fa4b0d8542f78edfcde35642a8" + dependencies: + js-tokens "^2.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" dependencies: - js-tokens "^1.0.1" + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" lru-cache@2: version "2.7.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" +make-error-cause@^1.1.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/make-error-cause/-/make-error-cause-1.2.2.tgz#df0388fcd0b37816dff0a5fb8108939777dcbc9d" + dependencies: + make-error "^1.2.0" + +make-error@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.2.1.tgz#9a6dfb4844423b9f145806728d05c6e935670e75" + +map-cache@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + marked@~0.3.6: version "0.3.6" resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.6.tgz#b2c6c618fccece4ef86c4fc6cb8a7cbf5aeda8d7" -micromatch@^2.1.5: +meow@^3.3.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +micromatch@^2.1.5, micromatch@^2.3.7: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" dependencies: @@ -2669,15 +3280,15 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@~1.24.0: - version "1.24.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.24.0.tgz#e2d13f939f0016c6e4e9ad25a8652f126c467f0c" +mime-db@~1.25.0: + version "1.25.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.25.0.tgz#c18dbd7c73a5dbf6f44a024dc0d165a1e7b1c392" -mime-types@^2.1.11, mime-types@~2.1.11, mime-types@~2.1.7: - version "2.1.12" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.12.tgz#152ba256777020dd4663f54c2e7bc26381e71729" +mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.7: + version "2.1.13" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.13.tgz#e07aaa9c6c6b9a7ca3012c69003ad25a39e92a88" dependencies: - mime-db "~1.24.0" + mime-db "~1.25.0" mime@1.3.4: version "1.3.4" @@ -2693,7 +3304,7 @@ minimatch@^2.0.1, minimatch@2.0.x: dependencies: brace-expansion "^1.0.0" -minimatch@^3.0.0, minimatch@^3.0.2, "minimatch@2 || 3": +minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, "minimatch@2 || 3": version "3.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" dependencies: @@ -2713,7 +3324,7 @@ minimatch@0.3: lru-cache "2" sigmund "~1.0.0" -minimist@^1.1.0, minimist@^1.2.0: +minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" @@ -2725,7 +3336,7 @@ minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" -mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.0, mkdirp@~0.5.1: +mkdirp@^0.5.0, mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.1, mkdirp@0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -2741,18 +3352,20 @@ mkdirp@0.5.0: dependencies: minimist "0.0.8" -mocha@^1.21.5: - version "1.21.5" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-1.21.5.tgz#7c58b09174df976e434a23b1e8d639873fc529e9" +mocha@^2.4.5: + version "2.5.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-2.5.3.tgz#161be5bdeb496771eb9b35745050b622b5aefc58" dependencies: commander "2.3.0" - debug "2.0.0" - diff "1.0.8" + debug "2.2.0" + diff "1.4.0" escape-string-regexp "1.0.2" - glob "3.2.3" - growl "1.8.1" + glob "3.2.11" + growl "1.9.2" jade "0.26.3" - mkdirp "0.5.0" + mkdirp "0.5.1" + supports-color "1.2.0" + to-iso-string "0.0.2" module-deps@^3.7.11: version "3.9.1" @@ -2773,11 +3386,12 @@ module-deps@^3.7.11: through2 "^1.0.0" xtend "^4.0.0" -module-deps@^4.0.2: - version "4.0.7" - resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-4.0.7.tgz#edfeb3937be7359bc14a6672c22ef124887f6ed2" +module-deps@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-4.0.8.tgz#55fd70623399706c3288bef7a609ff1e8c0ed2bb" dependencies: browser-resolve "^1.7.0" + cached-path-relative "^1.0.0" concat-stream "~1.5.0" defined "^1.0.0" detective "^4.0.0" @@ -2802,39 +3416,45 @@ morgan@^1.6.1: on-finished "~2.3.0" on-headers "~1.0.1" -ms@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.6.2.tgz#d89c2124c6fdc1353d65a8b77bf1aac4b193708c" - ms@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" +ms@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + +multipipe@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" + dependencies: + duplexer2 "0.0.2" + nan@^2.3.0: version "2.4.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.4.0.tgz#fb3c59d45fe4effe215f0b890f8adf6eb32d2232" +natives@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.0.tgz#e9ff841418a6b2ec7a495e939984f78f163e6e31" + negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" node-pre-gyp@^0.6.29: - version "0.6.30" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.30.tgz#64d3073a6f573003717ccfe30c89023297babba1" - dependencies: - mkdirp "~0.5.0" - nopt "~3.0.1" - npmlog "4.x" - rc "~1.1.0" - request "2.x" - rimraf "~2.5.0" + version "0.6.32" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.32.tgz#fc452b376e7319b3d255f5f34853ef6fd8fe1fd5" + dependencies: + mkdirp "~0.5.1" + nopt "~3.0.6" + npmlog "^4.0.1" + rc "~1.1.6" + request "^2.79.0" + rimraf "~2.5.4" semver "~5.3.0" - tar "~2.2.0" - tar-pack "~3.1.0" - -node-uuid@~1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" + tar "~2.2.1" + tar-pack "~3.3.0" nopt@~1.0.10: version "1.0.10" @@ -2848,7 +3468,7 @@ nopt@~2.0.0: dependencies: abbrev "1" -nopt@~3.0.1: +nopt@~3.0.6: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" dependencies: @@ -2860,6 +3480,15 @@ noptify@~0.0.3: dependencies: nopt "~2.0.0" +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.3.5" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + normalize-path@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" @@ -2870,24 +3499,28 @@ npm-run-path@^1.0.0: dependencies: path-key "^1.0.0" -npmlog@4.x: - version "4.0.0" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.0.tgz#e094503961c70c1774eb76692080e8d578a9f88f" +npmlog@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f" dependencies: are-we-there-yet "~1.1.2" console-control-strings "~1.1.0" - gauge "~2.6.0" + gauge "~2.7.1" set-blocking "~2.0.0" number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" -oauth-sign@~0.8.0, oauth-sign@~0.8.1: +oauth-sign@~0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" -object-assign@^4.0.0, object-assign@^4.1.0: +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + +object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" @@ -2921,10 +3554,10 @@ object-tools@^2, object-tools@^2.0.6: typical "^2.4.2" object.omit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.0.tgz#868597333d54e60662940bb458605dd6ae12fe94" + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" dependencies: - for-own "^0.1.3" + for-own "^0.1.4" is-extendable "^0.1.1" on-finished@~2.3.0: @@ -2943,7 +3576,7 @@ once@^1.3.0: dependencies: wrappy "1" -once@~1.3.3: +once@~1.3.0, once@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" dependencies: @@ -2966,10 +3599,26 @@ optimist@~0.3.5: dependencies: wordwrap "~0.0.2" +orchestrator@^0.3.0: + version "0.3.8" + resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" + dependencies: + end-of-stream "~0.1.5" + sequencify "~0.0.7" + stream-consume "~0.1.0" + +ordered-read-streams@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126" + os-browserify@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.1.2.tgz#49ca0293e0b19590a5f5de10c7f265a617d8fe54" +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + os-tmpdir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -3004,6 +3653,14 @@ parse-asn1@^5.0.0: evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" +parse-filepath@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.1.tgz#159d6155d43904d16c10ef698911da1e91969b73" + dependencies: + is-absolute "^0.2.3" + map-cache "^0.2.0" + path-root "^0.1.1" + parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" @@ -3013,6 +3670,16 @@ parse-glob@^3.0.4: is-extglob "^1.0.0" is-glob "^2.0.0" +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + 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.1: version "1.3.1" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" @@ -3021,9 +3688,11 @@ path-browserify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" -path-exists@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-1.0.0.tgz#d5a8998eb71ef37a74c34eb0d9eba6e878eea081" +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" path-is-absolute@^1.0.0: version "1.0.1" @@ -3037,6 +3706,24 @@ path-platform@~0.11.15: version "0.11.15" resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + dependencies: + path-root-regex "^0.1.0" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + pbkdf2@^3.0.3: version "3.0.9" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.9.tgz#f2c4b25a600058b3c3773c086c37dbbee1ffe693" @@ -3047,18 +3734,23 @@ pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" -phantomjs@^1.9.15: - version "1.9.20" - resolved "https://registry.yarnpkg.com/phantomjs/-/phantomjs-1.9.20.tgz#4424aca20e14d255c0b0889af6f6b8973da10e0d" +phantomjs-prebuilt@^2.1.3: + version "2.1.14" + resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz#d53d311fcfb7d1d08ddb24014558f1188c516da0" dependencies: + es6-promise "~4.0.3" extract-zip "~1.5.0" - fs-extra "~0.26.4" - hasha "^2.2.0" + fs-extra "~1.0.0" + hasha "~2.2.0" kew "~0.7.0" progress "~1.1.8" - request "~2.67.0" + request "~2.79.0" request-progress "~2.0.1" - which "~1.2.2" + which "~1.2.10" + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" pinkie-promise@^2.0.0: version "2.0.1" @@ -3071,16 +3763,20 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" portscanner@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/portscanner/-/portscanner-1.0.0.tgz#3b5cfe393828b5160abc600e6270ebc2f1590558" + version "1.2.0" + resolved "https://registry.yarnpkg.com/portscanner/-/portscanner-1.2.0.tgz#b14bbda257d14c310fa9cc09682af02d40961802" dependencies: - async "0.1.15" + async "1.5.2" preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" -private@^0.1.6, private@~0.1.5: +pretty-hrtime@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + +private@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/private/-/private-0.1.6.tgz#55c6a976d0f9bafb9924851350fe47b9b5fbb7c1" @@ -3116,7 +3812,7 @@ public-encrypt@^4.0.0: parse-asn1 "^5.0.0" randombytes "^2.0.1" -punycode@^1.3.2: +punycode@^1.3.2, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" @@ -3132,13 +3828,9 @@ qs@~0.5.2: version "0.5.6" resolved "https://registry.yarnpkg.com/qs/-/qs-0.5.6.tgz#31b1ad058567651c526921506b9a8793911a0384" -qs@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-5.2.1.tgz#801fee030e0b9450d6385adc48a4cc55b44aedfc" - -qs@~6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.1.tgz#ce03c5ff0935bc1d9d69a9f14cbd18e568d67625" +qs@~6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" querystring-es3@~0.2.0: version "0.2.1" @@ -3149,8 +3841,8 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" randomatic@^1.1.3: - version "1.1.5" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.5.tgz#5e9ef5f2d573c67bd2b8124ae90b5156e457840b" + version "1.1.6" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" dependencies: is-number "^2.0.2" kind-of "^3.0.2" @@ -3163,7 +3855,7 @@ range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" -rc@~1.1.0: +rc@~1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" dependencies: @@ -3172,6 +3864,21 @@ rc@~1.1.0: minimist "^1.2.0" strip-json-comments "~1.0.4" +rcfinder@^0.1.6: + version "0.1.9" + resolved "https://registry.yarnpkg.com/rcfinder/-/rcfinder-0.1.9.tgz#f3e80f387ddf9ae80ae30a4100329642eae81115" + dependencies: + lodash.clonedeep "^4.3.2" + +rcloader@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/rcloader/-/rcloader-0.2.2.tgz#58d2298b462d0b9bfd2133d2a1ec74fbd705c717" + dependencies: + lodash.assign "^4.2.0" + lodash.isobject "^3.0.2" + lodash.merge "^4.6.0" + rcfinder "^0.1.6" + read-only-stream@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-1.1.1.tgz#5da77c799ed1388d3ef88a18471bb5924f8a0ba1" @@ -3185,6 +3892,21 @@ read-only-stream@^2.0.0: dependencies: readable-stream "^2.0.2" +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + readable-stream@^1.0.31, readable-stream@^1.1.13, readable-stream@^1.1.13-1, "readable-stream@>=1.1.13-1 <1.2.0-0", readable-stream@~1.1.9: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" @@ -3194,9 +3916,9 @@ readable-stream@^1.0.31, readable-stream@^1.1.13, readable-stream@^1.1.13-1, "re isarray "0.0.1" string_decoder "~0.10.x" -"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2, readable-stream@^2.1.0, readable-stream@~2.1.4: - version "2.1.5" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" +"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2, readable-stream@^2.1.0, readable-stream@^2.1.5: + version "2.2.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e" dependencies: buffer-shims "^1.0.0" core-util-is "~1.0.0" @@ -3206,7 +3928,7 @@ readable-stream@^1.0.31, readable-stream@^1.1.13, readable-stream@^1.1.13-1, "re string_decoder "~0.10.x" util-deprecate "~1.0.1" -readable-stream@~1.0.17: +"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.17, readable-stream@~1.0.26: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: @@ -3215,7 +3937,7 @@ readable-stream@~1.0.17: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@~2.0.0, readable-stream@~2.0.5: +readable-stream@~2.0.0: version "2.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" dependencies: @@ -3226,6 +3948,18 @@ readable-stream@~2.0.0, readable-stream@~2.0.5: string_decoder "~0.10.x" util-deprecate "~1.0.1" +readable-stream@~2.1.4: + version "2.1.5" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" + dependencies: + buffer-shims "^1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + readable-stream@1.1: version "1.1.13" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" @@ -3250,6 +3984,19 @@ readdirp@^2.0.0: readable-stream "^2.0.2" set-immediate-shim "^1.0.1" +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + reduce-extract@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/reduce-extract/-/reduce-extract-1.0.0.tgz#67f2385beda65061b5f5f4312662e8b080ca1525" @@ -3271,12 +4018,20 @@ reduce-without@^1.0.0, reduce-without@^1.0.1: test-value "^2.0.0" regenerate@^1.2.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.1.tgz#0300203a5d2fdcf89116dce84275d011f5903f33" + version "1.3.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" -regenerator-runtime@^0.9.5: - version "0.9.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.9.5.tgz#403d6d40a4bdff9c330dd9392dcbb2d9a8bba1fc" +regenerator-runtime@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.1.tgz#257f41961ce44558b18f7814af48c17559f9faeb" + +regenerator-transform@0.9.8: + version "0.9.8" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.8.tgz#0f88bb2bc03932ddb7b6b7312e68078f01026d6c" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" regex-cache@^0.4.2: version "0.4.3" @@ -3308,33 +4063,46 @@ repeat-element@^1.1.2: resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" repeat-string@^1.5.2: - version "1.5.4" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.5.4.tgz#64ec0c91e0f4b475f90d5b643651e3e6e5b6c2d5" + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" -repeating@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-1.1.3.tgz#3d4114218877537494f97f77f9785fab810fa4ac" +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" dependencies: is-finite "^1.0.0" +replace-ext@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" + +req-then@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/req-then/-/req-then-0.5.1.tgz#31c6e0b56f4ddd2acd6de0ba1bcea77b6079dfdf" + dependencies: + array-back "^1.0.3" + defer-promise "^1.0.0" + feature-detect-es6 "^1.3.1" + lodash.pick "^4.4.0" + typical "^2.6.0" + request-progress@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08" dependencies: throttleit "^1.0.0" -request@^2.67.0, request@^2.74.x, request@2.x: - version "2.75.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.75.0.tgz#d2b8268a286da13eaa5d01adf5d18cc90f657d93" +request@^2.67.0, request@^2.74.x, request@^2.79.0, request@~2.79.0: + version "2.79.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" dependencies: aws-sign2 "~0.6.0" aws4 "^1.2.1" - bl "~1.1.2" caseless "~0.11.0" combined-stream "~1.0.5" extend "~3.0.0" forever-agent "~0.6.1" - form-data "~2.0.0" + form-data "~2.1.1" har-validator "~2.0.6" hawk "~3.1.3" http-signature "~1.1.0" @@ -3342,37 +4110,12 @@ request@^2.67.0, request@^2.74.x, request@2.x: isstream "~0.1.2" json-stringify-safe "~5.0.1" mime-types "~2.1.7" - node-uuid "~1.4.7" oauth-sign "~0.8.1" - qs "~6.2.0" + qs "~6.3.0" stringstream "~0.0.4" tough-cookie "~2.3.0" tunnel-agent "~0.4.1" - -request@~2.67.0: - version "2.67.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.67.0.tgz#8af74780e2bf11ea0ae9aa965c11f11afd272742" - dependencies: - aws-sign2 "~0.6.0" - bl "~1.0.0" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~1.0.0-rc3" - har-validator "~2.0.2" - hawk "~3.1.0" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - node-uuid "~1.4.7" - oauth-sign "~0.8.0" - qs "~5.2.0" - stringstream "~0.0.4" - tough-cookie "~2.2.0" - tunnel-agent "~0.4.1" + uuid "^3.0.0" requestretry@~1.9.0: version "1.9.1" @@ -3389,7 +4132,18 @@ requizzle@~0.2.1: dependencies: underscore "~1.6.0" -resolve@^1.1.3, resolve@^1.1.4, resolve@^1.1.6, resolve@1.1.7: +resolve-dir@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" + dependencies: + expand-tilde "^1.2.2" + global-modules "^0.2.3" + +resolve-url@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + +resolve@^1.1.3, resolve@^1.1.4, resolve@^1.1.6, resolve@^1.1.7, resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" @@ -3397,7 +4151,13 @@ resolve@~0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.3.1.tgz#34c63447c664c70598d1c9b126fc43b2a24310a4" -rimraf@^2.2.1, rimraf@^2.2.8, rimraf@~2.5.0, rimraf@~2.5.1, rimraf@2: +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@^2.2.1, rimraf@^2.5.2, rimraf@~2.5.1, rimraf@~2.5.4, rimraf@2: version "2.5.4" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" dependencies: @@ -3425,18 +4185,18 @@ saucelabs@~1.0.1: dependencies: https-proxy-agent "^1.0.0" -semver@^4.3.0: +semver@^4.1.0: version "4.3.6" resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" +semver@^5.1.0, semver@~5.3.0, "semver@2 || 3 || 4 || 5": + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + semver@~5.0.1: version "5.0.3" resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" -semver@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - send@0.14.1: version "0.14.1" resolved "https://registry.yarnpkg.com/send/-/send-0.14.1.tgz#a954984325392f51532a7760760e459598c89f7a" @@ -3455,6 +4215,10 @@ send@0.14.1: range-parser "~1.2.0" statuses "~1.3.0" +sequencify@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" + serve-index@^1.7.1: version "1.8.0" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.8.0.tgz#7c5d96c13fb131101f93c1c5774f8516a1e78d3b" @@ -3484,13 +4248,13 @@ set-immediate-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" -setprototypeof@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.1.tgz#52009b27888c4dc48f591949c0a8275834c1ca7e" +setprototypeof@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08" sha.js@^2.3.6, sha.js@~2.4.4: - version "2.4.5" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.5.tgz#27d171efcc82a118b99639ff581660242b506e7c" + version "2.4.8" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" dependencies: inherits "^2.0.1" @@ -3501,10 +4265,6 @@ shasum@^1.0.0: json-stable-stringify "~0.0.0" sha.js "~2.4.4" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - shell-quote@^1.4.2, shell-quote@^1.4.3: version "1.6.1" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" @@ -3527,8 +4287,8 @@ sigmund@~1.0.0: resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" signal-exit@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.1.tgz#5a4c884992b63a7acd9badb7894c3ee9cfccad81" + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" slash@^1.0.0: version "1.0.0" @@ -3548,19 +4308,32 @@ sort-array@^1.0.0: object-get "^2.0.4" typical "^2.4.2" +source-map-resolve@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.3.1.tgz#610f6122a445b8dd51535a2a71b783dfc1248761" + dependencies: + atob "~1.1.0" + resolve-url "~0.2.1" + source-map-url "~0.3.0" + urix "~0.1.0" + source-map-support@^0.4.2: - version "0.4.3" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.3.tgz#693c8383d4389a4569486987c219744dfc601685" + version "0.4.6" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.6.tgz#32552aa64b458392a85eab3b0b5ee61527167aeb" dependencies: source-map "^0.5.3" -source-map@^0.1.40, source-map@~0.1.7: +source-map-url@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.3.0.tgz#7ecaf13b57bcd09da8a40c5d269db33799d4aaf9" + +source-map@^0.1.38, source-map@^0.1.40, source-map@~0.1.7: version "0.1.43" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" dependencies: amdefine ">=0.0.4" -source-map@^0.5.0, source-map@^0.5.3, source-map@~0.5.3: +source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@~0.5.1, source-map@~0.5.3, source-map@0.X: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" @@ -3570,6 +4343,24 @@ source-map@~0.4.0, source-map@~0.4.2: dependencies: amdefine ">=0.0.4" +sparkles@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" + +spdx-correct@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + split@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/split/-/split-1.0.0.tgz#c4395ce683abcd254bc28fe1dabb6e5c27dcffae" @@ -3591,9 +4382,9 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" -"statuses@>= 1.3.0 < 2", statuses@~1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.0.tgz#8e55758cb20e7682c1f4fce8dcab30bf01d1e07a" +"statuses@>= 1.3.1 < 2", statuses@~1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" stream-browserify@^2.0.0: version "2.0.1" @@ -3622,6 +4413,10 @@ stream-connect@^1.0.1, stream-connect@^1.0.2: dependencies: array-back "^1.0.2" +stream-consume@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.0.tgz#a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f" + stream-handlebars@~0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/stream-handlebars/-/stream-handlebars-0.1.6.tgz#7305b5064203da171608c478acf642a149892a2f" @@ -3641,8 +4436,8 @@ stream-http@^1.2.0: xtend "^4.0.0" stream-http@^2.0.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.4.0.tgz#9599aa8e263667ce4190e0dc04a1d065d3595a7e" + version "2.5.0" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.5.0.tgz#585eee513217ed98fe199817e7313b6f772a6802" dependencies: builtin-status-codes "^2.0.0" inherits "^2.0.1" @@ -3706,6 +4501,29 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1: dependencies: ansi-regex "^2.0.0" +strip-bom@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" + dependencies: + first-chunk-stream "^1.0.0" + is-utf8 "^0.2.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-bom@3.X: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + dependencies: + get-stdin "^4.0.1" + strip-json-comments@~1.0.4, 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" @@ -3720,38 +4538,42 @@ subarg@^1.0.0: dependencies: minimist "^1.1.0" +supports-color@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" +supports-color@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-1.2.0.tgz#ff1ed1e61169d06b3cf2d588e188b18d8847e17e" + syntax-error@^1.1.1: version "1.1.6" resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.1.6.tgz#b4549706d386cc1c1dc7c2423f18579b6cade710" dependencies: acorn "^2.7.0" -table-layout@~0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-0.2.2.tgz#583d792cf58114380a22acac34305f776747210d" +table-layout@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-0.3.0.tgz#6ee20dc483db371b3e5c87f704ed2f7c799d2c9a" dependencies: - ansi-escape-sequences "^2.2.2" array-back "^1.0.3" - collect-json "^1.0.8" - command-line-args "^3.0.0" - command-line-usage "^3.0.1" - core-js "^2.4.0" + core-js "^2.4.1" deep-extend "~0.4.1" - feature-detect-es6 "^1.3.0" - typical "^2.4.2" - wordwrapjs "^1.2.0" + feature-detect-es6 "^1.3.1" + typical "^2.6.0" + wordwrapjs "^2.0.0-0" taffydb@2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268" -tar-pack@~3.1.0: - version "3.1.4" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.1.4.tgz#bc8cf9a22f5832739f12f3910dac1eb97b49708c" +tar-pack@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" dependencies: debug "~2.2.0" fstream "~1.0.10" @@ -3762,7 +4584,7 @@ tar-pack@~3.1.0: tar "~2.2.1" uid-number "~0.0.6" -tar@~2.2.0, tar@~2.2.1: +tar@~2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" dependencies: @@ -3787,7 +4609,7 @@ test-value@^1.0.1, test-value@^1.1.0: array-back "^1.0.2" typical "^2.4.2" -test-value@^2.0.0: +test-value@^2.0.0, test-value@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/test-value/-/test-value-2.1.0.tgz#11da6ff670f3471a73b625ca4f3fdcf7bb748291" dependencies: @@ -3808,6 +4630,13 @@ throttleit@^1.0.0: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" +through2@^0.6.1: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + through2@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/through2/-/through2-1.1.1.tgz#0847cbc4449f3405574dbdccd9bb841b83ac3545" @@ -3815,12 +4644,12 @@ through2@^1.0.0: readable-stream ">=1.1.13-1 <1.2.0-0" xtend ">=4.0.0 <4.1.0-0" -through2@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.1.tgz#384e75314d49f32de12eebb8136b8eb6b5d59da9" +through2@^2.0.0, through2@2.X: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" dependencies: - readable-stream "~2.0.0" - xtend "~4.0.0" + readable-stream "^2.1.5" + xtend "~4.0.1" through2@~0.5.1: version "0.5.1" @@ -3829,6 +4658,16 @@ through2@~0.5.1: readable-stream "~1.0.17" xtend "~3.0.0" +tildify@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" + dependencies: + os-homedir "^1.0.0" + +time-stamp@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.0.1.tgz#9f4bd23559c9365966f3302dbba2b07c6b99b151" + timers-browserify@^1.0.1: version "1.4.2" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" @@ -3852,13 +4691,19 @@ to-fast-properties@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" -tough-cookie@~2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.2.2.tgz#c83a1830f4e5ef0b93ef2a3488e724f8de016ac7" +to-iso-string@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/to-iso-string/-/to-iso-string-0.0.2.tgz#4dc19e664dfccbe25bd8db508b00c6da158255d1" tough-cookie@~2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.1.tgz#99c77dfbb7d804249e8a299d4cb0fd81fef083fd" + version "2.3.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + dependencies: + punycode "^1.4.1" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" tty-browserify@~0.0.0: version "0.0.0" @@ -3869,8 +4714,8 @@ tunnel-agent@~0.4.1: resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.3.tgz#3da382f670f25ded78d7b3d1792119bca0b7132d" + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" type-detect@^1.0.0: version "1.0.0" @@ -3896,6 +4741,23 @@ uglify-js@~2.3: optimist "~0.3.5" source-map "~0.1.7" +uglify-js@2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.0.tgz#f021e38ba2ca740860f5bd5c695c2a817345f0ec" + dependencies: + async "~0.2.6" + source-map "~0.5.1" + uglify-to-browserify "~1.0.0" + yargs "~3.10.0" + +uglify-save-license@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/uglify-save-license/-/uglify-save-license-0.4.1.tgz#95726c17cc6fd171c3617e3bf4d8d82aa8c4cce1" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + uid-number@~0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" @@ -3904,6 +4766,10 @@ umd@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.1.tgz#8ae556e11011f63c2596708a8837259f01b3d60e" +unc-path-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + underscore-contrib@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/underscore-contrib/-/underscore-contrib-0.3.0.tgz#665b66c24783f8fa2b18c9f8cbb0e2c7d48c26c7" @@ -3934,10 +4800,18 @@ underscore@~1.8.3: version "1.8.3" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" +unique-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" + unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" +urix@^0.1.0, urix@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + url@~0.10.1: version "0.10.3" resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" @@ -3952,6 +4826,20 @@ url@~0.11.0: punycode "1.3.2" querystring "0.2.0" +usage-stats@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/usage-stats/-/usage-stats-0.8.2.tgz#d7be5203682e267f7696b354356c8c376aa12542" + dependencies: + array-back "^1.0.3" + cli-commands "0.1.0" + core-js "^2.4.1" + feature-detect-es6 "^1.3.1" + home-path "^1.0.3" + mkdirp "^0.5.1" + req-then "^0.5.1" + typical "^2.6.0" + uuid "^3.0.0" + user-home@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" @@ -3970,12 +4858,85 @@ utils-merge@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" +uuid@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" + +v8flags@^2.0.2: + version "2.0.11" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.0.11.tgz#bca8f30f0d6d60612cc2c00641e6962d42ae6881" + dependencies: + user-home "^1.1.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" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + verror@1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" dependencies: extsprintf "1.0.2" +vinyl-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/vinyl-buffer/-/vinyl-buffer-1.0.0.tgz#ca067ea08431d507722b1de5083f602616ebc234" + dependencies: + bl "^0.9.1" + through2 "^0.6.1" + +vinyl-fs@^0.3.0: + version "0.3.14" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz#9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6" + dependencies: + defaults "^1.0.0" + glob-stream "^3.1.5" + glob-watcher "^0.0.6" + graceful-fs "^3.0.0" + mkdirp "^0.5.0" + strip-bom "^1.0.0" + through2 "^0.6.1" + vinyl "^0.4.0" + +vinyl-source-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vinyl-source-stream/-/vinyl-source-stream-1.1.0.tgz#44cbe5108205279deb0c5653c094a2887938b1ab" + dependencies: + through2 "^0.6.1" + vinyl "^0.4.3" + +vinyl-sourcemaps-apply@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" + dependencies: + source-map "^0.5.1" + +vinyl@^0.4.0, vinyl@^0.4.3: + version "0.4.6" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" + dependencies: + clone "^0.2.0" + clone-stats "^0.0.1" + +vinyl@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vinyl@1.X: + version "1.2.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + vm-browserify@~0.0.1: version "0.0.4" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" @@ -3986,7 +4947,7 @@ walk-back@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/walk-back/-/walk-back-2.0.1.tgz#554e2a9d874fac47a8cb006bf44c2f0c4998a0a4" -watchify@^3.3.1: +watchify@^3.3.1, watchify@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/watchify/-/watchify-3.7.0.tgz#ee2f2c5c8c37312303f998b818b2b3450eefe648" dependencies: @@ -4006,26 +4967,34 @@ when@~3.7.5: version "3.7.7" resolved "https://registry.yarnpkg.com/when/-/when-3.7.7.tgz#aba03fc3bb736d6c88b091d013d8a8e590d84718" +which@^1.2.12, which@~1.2.10: + version "1.2.12" + resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" + dependencies: + isexe "^1.1.1" + which@~1.0.5: version "1.0.9" resolved "https://registry.yarnpkg.com/which/-/which-1.0.9.tgz#460c1da0f810103d0321a9b633af9e575e64486f" -which@~1.2.2: - version "1.2.11" - resolved "https://registry.yarnpkg.com/which/-/which-1.2.11.tgz#c8b2eeea6b8c1659fa7c1dd4fdaabe9533dc5e8b" - dependencies: - isexe "^1.1.1" - wide-align@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" dependencies: string-width "^1.0.1" +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + wordwrapjs@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-1.2.1.tgz#754a5ea0664cfbff50540dc32d67bda3289fc34b" @@ -4033,11 +5002,20 @@ wordwrapjs@^1.2.0: array-back "^1.0.3" typical "^2.5.0" +wordwrapjs@^2.0.0-0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-2.0.0.tgz#ab55f695e6118da93858fdd70c053d1c5e01ac20" + dependencies: + array-back "^1.0.3" + feature-detect-es6 "^1.3.1" + reduce-flatten "^1.0.1" + typical "^2.6.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -xtend@^4.0.0, "xtend@>=4.0.0 <4.1.0-0", xtend@~4.0.0: +xtend@^4.0.0, "xtend@>=4.0.0 <4.1.0-0", xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -4045,6 +5023,15 @@ xtend@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xtend/-/xtend-3.0.0.tgz#5cce7407baf642cba7becda568111c493f59665a" +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + yauzl@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" From b88ef695d61bdce8b50d2c085d2511c37f29ad46 Mon Sep 17 00:00:00 2001 From: Rob Bearman Date: Tue, 13 Dec 2016 16:16:28 +0000 Subject: [PATCH 2/3] Added source maps and rebuilt distribution .js files --- .../dist/basic-animation-stage.js | 3342 +----- .../dist/basic-animation-stage.js.map | 1 + .../dist/basic-autosize-textarea.js | 2215 +--- .../dist/basic-autosize-textarea.js.map | 1 + .../basic-carousel/dist/basic-carousel.js | 4612 +------- .../basic-carousel/dist/basic-carousel.js.map | 1 + .../dist/basic-collapsible-panel.js | 1451 +-- .../dist/basic-collapsible-panel.js.map | 1 + .../dist/basic-component-mixins.js | 6129 +---------- .../dist/basic-component-mixins.js.map | 1 + .../dist/basic-current-anchor.js | 1685 +-- .../dist/basic-current-anchor.js.map | 1 + .../dist/basic-element-base.js | 1174 +- .../dist/basic-element-base.js.map | 1 + .../dist/basic-fade-overflow.js | 1347 +-- .../dist/basic-fade-overflow.js.map | 1 + .../basic-list-box/dist/basic-list-box.js | 3977 +------ .../basic-list-box/dist/basic-list-box.js.map | 1 + packages/basic-modes/dist/basic-modes.js | 2246 +--- packages/basic-modes/dist/basic-modes.js.map | 1 + .../dist/basic-slideshow-with-controls.js | 3734 +------ .../dist/basic-slideshow-with-controls.js.map | 1 + .../basic-slideshow/dist/basic-slideshow.js | 3574 +----- .../dist/basic-slideshow.js.map | 1 + .../dist/basic-sliding-carousel.js | 4108 +------ .../dist/basic-sliding-carousel.js.map | 1 + .../dist/basic-sliding-viewport.js | 1909 +--- .../dist/basic-sliding-viewport.js.map | 1 + .../dist/basic-spread-items.js | 1493 +-- .../dist/basic-spread-items.js.map | 1 + .../basic-tab-strip/dist/basic-tab-strip.js | 3335 +----- .../dist/basic-tab-strip.js.map | 1 + packages/basic-tabs/dist/basic-tabs.js | 3490 +----- packages/basic-tabs/dist/basic-tabs.js.map | 1 + .../dist/basic-web-components.js | 9703 +---------------- .../dist/basic-web-components.js.map | 1 + .../dist/basic-wrapped-standard-element.js | 1497 +-- .../basic-wrapped-standard-element.js.map | 1 + packages/demos/dist/demos.js | 5261 +-------- packages/demos/dist/demos.js.map | 1 + 40 files changed, 80 insertions(+), 66222 deletions(-) create mode 100644 packages/basic-animation-stage/dist/basic-animation-stage.js.map create mode 100644 packages/basic-autosize-textarea/dist/basic-autosize-textarea.js.map create mode 100644 packages/basic-carousel/dist/basic-carousel.js.map create mode 100644 packages/basic-collapsible-panel/dist/basic-collapsible-panel.js.map create mode 100644 packages/basic-component-mixins/dist/basic-component-mixins.js.map create mode 100644 packages/basic-current-anchor/dist/basic-current-anchor.js.map create mode 100644 packages/basic-element-base/dist/basic-element-base.js.map create mode 100644 packages/basic-fade-overflow/dist/basic-fade-overflow.js.map create mode 100644 packages/basic-list-box/dist/basic-list-box.js.map create mode 100644 packages/basic-modes/dist/basic-modes.js.map create mode 100644 packages/basic-slideshow-with-controls/dist/basic-slideshow-with-controls.js.map create mode 100644 packages/basic-slideshow/dist/basic-slideshow.js.map create mode 100644 packages/basic-sliding-carousel/dist/basic-sliding-carousel.js.map create mode 100644 packages/basic-sliding-viewport/dist/basic-sliding-viewport.js.map create mode 100644 packages/basic-spread-items/dist/basic-spread-items.js.map create mode 100644 packages/basic-tab-strip/dist/basic-tab-strip.js.map create mode 100644 packages/basic-tabs/dist/basic-tabs.js.map create mode 100644 packages/basic-web-components/dist/basic-web-components.js.map create mode 100644 packages/basic-wrapped-standard-element/dist/basic-wrapped-standard-element.js.map create mode 100644 packages/demos/dist/demos.js.map diff --git a/packages/basic-animation-stage/dist/basic-animation-stage.js b/packages/basic-animation-stage/dist/basic-animation-stage.js index df3d71e3..2e7b1c28 100644 --- a/packages/basic-animation-stage/dist/basic-animation-stage.js +++ b/packages/basic-animation-stage/dist/basic-animation-stage.js @@ -1,3339 +1,3 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o\n :host {\n overflow: hidden;\n position: relative;\n }\n\n #container ::slotted(*) {\n height: 100%;\n object-fit: contain;\n position: absolute;\n width: 100%;\n will-change: transform;\n }\n \n\n
\n \n
\n '; - } - }]); - - return AnimationStage; -}(base); - -customElements.define('basic-animation-stage', AnimationStage); -exports.default = AnimationStage; - -},{"../../basic-component-mixins/src/ContentItemsMixin":5,"../../basic-component-mixins/src/DistributedChildrenContentMixin":6,"../../basic-component-mixins/src/FractionalSelectionMixin":8,"../../basic-component-mixins/src/SelectionAnimationMixin":9,"../../basic-component-mixins/src/SelectionAriaActiveMixin":10,"../../basic-component-mixins/src/SingleSelectionMixin":13,"../../basic-component-mixins/src/symbols":17,"../../basic-element-base/src/ElementBase":19}],3:[function(require,module,exports){ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - -var _safeAttributes = require('./safeAttributes'); - -var _safeAttributes2 = _interopRequireDefault(_safeAttributes); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -// Memoized maps of attribute to property names and vice versa. -var attributeToPropertyNames = {}; -var propertyNamesToAttributes = {}; - -/* Exported function extends a base class with AttributeMarshalling. */ - -exports.default = function (base) { - - /** - * Mixin which marshalls attributes to properties and vice versa. - * - * If your component exposes a setter for a property, it's generally a good - * idea to let devs using your component be able to set that property in HTML - * via an element attribute. You can code that yourself by writing an - * `attributeChangedCallback`, or you can use this mixin to get a degree of - * automatic support. - * - * This mixin implements an `attributeChangedCallback` that will attempt to - * convert a change in an element attribute into a call to the corresponding - * property setter. Attributes typically follow hyphenated names ("foo-bar"), - * whereas properties typically use camelCase names ("fooBar"). This mixin - * respects that convention, automatically mapping the hyphenated attribute - * name to the corresponding camelCase property name. - * - * Example: You define a component using this mixin: - * - * class MyElement extends AttributeMarshallingMixin(HTMLElement) { - * get fooBar() { return this._fooBar; } - * set fooBar(value) { this._fooBar = value; } - * } - * customElements.define('my-element', MyElement); - * - * If someone then instantiates your component in HTML: - * - * - * - * Then, after the element has been upgraded, the `fooBar` setter will - * automatically be invoked with the initial value "Hello". - * - * For the time being, this mixin only supports string-valued properties. - * If you'd like to convert string attributes to other types (numbers, - * booleans), you need to implement `attributeChangedCallback` yourself. - */ - var AttributeMarshalling = function (_base) { - _inherits(AttributeMarshalling, _base); - - function AttributeMarshalling() { - _classCallCheck(this, AttributeMarshalling); - - return _possibleConstructorReturn(this, (AttributeMarshalling.__proto__ || Object.getPrototypeOf(AttributeMarshalling)).apply(this, arguments)); - } - - _createClass(AttributeMarshalling, [{ - key: 'attributeChangedCallback', - - - /* - * Handle a change to the attribute with the given name. - */ - value: function attributeChangedCallback(attributeName, oldValue, newValue) { - if (_get(AttributeMarshalling.prototype.__proto__ || Object.getPrototypeOf(AttributeMarshalling.prototype), 'attributeChangedCallback', this)) { - _get(AttributeMarshalling.prototype.__proto__ || Object.getPrototypeOf(AttributeMarshalling.prototype), 'attributeChangedCallback', this).call(this); - } - var propertyName = attributeToPropertyName(attributeName); - // If the attribute name corresponds to a property name, set the property. - // Ignore standard HTMLElement properties handled by the DOM. - if (propertyName in this && !(propertyName in HTMLElement.prototype)) { - this[propertyName] = newValue; - } - } - }, { - key: 'connectedCallback', - value: function connectedCallback() { - if (_get(AttributeMarshalling.prototype.__proto__ || Object.getPrototypeOf(AttributeMarshalling.prototype), 'connectedCallback', this)) { - _get(AttributeMarshalling.prototype.__proto__ || Object.getPrototypeOf(AttributeMarshalling.prototype), 'connectedCallback', this).call(this); - } - _safeAttributes2.default.connected(this); - } - }, { - key: 'reflectAttribute', - - - /** - * Set/unset the attribute with the indicated name. - * - * This method exists primarily to handle the case where an element wants to - * set a default property value that should be reflected as an attribute. An - * important limitation of custom element consturctors is that they cannot - * set attributes. A call to `reflectAttribute` during the constructor will - * be deferred until the element is connected to the document. - * - * @param {string} attribute - The name of the *attribute* (not property) to set. - * @param {object} value - The value to set. If null, the attribute will be removed. - */ - value: function reflectAttribute(attribute, value) { - return _safeAttributes2.default.setAttribute(this, attribute, value); - } - - /** - * Set/unset the class with the indicated name. - * - * This method exists primarily to handle the case where an element wants to - * set a default property value that should be reflected as as class. An - * important limitation of custom element consturctors is that they cannot - * set attributes, including the `class` attribute. A call to - * `reflectClass` during the constructor will be deferred until the element - * is connected to the document. - * - * @param {string} className - The name of the class to set. - * @param {object} value - True to set the class, false to remove it. - */ - - }, { - key: 'reflectClass', - value: function reflectClass(className, value) { - return _safeAttributes2.default.toggleClass(this, className, value); - } - }], [{ - key: 'observedAttributes', - get: function get() { - return attributesForClass(this); - } - }]); - - return AttributeMarshalling; - }(base); - - return AttributeMarshalling; -}; - -// Convert hyphenated foo-bar attribute name to camel case fooBar property name. - - -function attributeToPropertyName(attributeName) { - var propertyName = attributeToPropertyNames[attributeName]; - if (!propertyName) { - // Convert and memoize. - var hypenRegEx = /-([a-z])/g; - propertyName = attributeName.replace(hypenRegEx, function (match) { - return match[1].toUpperCase(); - }); - attributeToPropertyNames[attributeName] = propertyName; - } - return propertyName; -} - -function attributesForClass(classFn) { - - // We treat the element base classes as if they have no attributes, since we - // don't want to receive attributeChangedCallback for them. - if (classFn === HTMLElement || classFn === Object) { - return []; - } - - // Get attributes for parent class. - var baseClass = Object.getPrototypeOf(classFn.prototype).constructor; - var baseAttributes = attributesForClass(baseClass); - - // Get attributes for this class. - var propertyNames = Object.getOwnPropertyNames(classFn.prototype); - var setterNames = propertyNames.filter(function (propertyName) { - return typeof Object.getOwnPropertyDescriptor(classFn.prototype, propertyName).set === 'function'; - }); - var attributes = setterNames.map(function (setterName) { - return propertyNameToAttribute(setterName); - }); - - // Merge. - var diff = attributes.filter(function (attribute) { - return baseAttributes.indexOf(attribute) < 0; - }); - return baseAttributes.concat(diff); -} - -// Convert a camel case fooBar property name to a hyphenated foo-bar attribute. -function propertyNameToAttribute(propertyName) { - var attribute = propertyNamesToAttributes[propertyName]; - if (!attribute) { - // Convert and memoize. - var uppercaseRegEx = /([A-Z])/g; - attribute = propertyName.replace(uppercaseRegEx, '-$1').toLowerCase(); - } - return attribute; -} - -},{"./safeAttributes":16}],4:[function(require,module,exports){ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -/* Exported function extends a base class with Composable. */ -exports.default = function (base) { - - /** - * Mixin to make a class more easily composable with other mixins. - * - * This mixin contributes a `compose` method that applies a set of mixin - * functions and returns the resulting new class. This sugar can make the - * application of many mixins at once easier to read. - */ - var Composable = function (_base) { - _inherits(Composable, _base); - - function Composable() { - _classCallCheck(this, Composable); - - return _possibleConstructorReturn(this, (Composable.__proto__ || Object.getPrototypeOf(Composable)).apply(this, arguments)); - } - - _createClass(Composable, null, [{ - key: 'compose', - - - /** - * Apply a set of mixin functions or mixin objects to the present class and - * return the new class. - * - * Instead of writing: - * - * let MyClass = Mixin1(Mixin2(Mixin3(Mixin4(Mixin5(BaseClass))))); - * - * You can write: - * - * let MyClass = ComposableMixin(BaseClass).compose( - * Mixin1, - * Mixin2, - * Mixin3, - * Mixin4, - * Mixin5 - * ); - * - * This function can also take mixin objects. A mixin object is just a - * shorthand for a mixin function that creates a new subclass with the given - * members. The mixin object's members are *not* copied directly onto the - * prototype of the base class, as with traditional mixins. - * - * In addition to providing syntactic sugar, this mixin can be used to - * define a class in ES5, which lacks ES6's `class` keyword. - * - * @param {...mixins} mixins - A set of mixin functions or objects to apply. - */ - value: function compose() { - for (var _len = arguments.length, mixins = Array(_len), _key = 0; _key < _len; _key++) { - mixins[_key] = arguments[_key]; - } - - // We create a new subclass for each mixin in turn. The result becomes - // the base class extended by any subsequent mixins. It turns out that - // we can use Array.reduce() to concisely express this, using the current - // object as the seed for reduce(). - return mixins.reduce(composeClass, this); - } - }]); - - return Composable; - }(base); - - return Composable; -}; - -// Properties defined by Object that we don't want to mixin. - - -var NON_MIXABLE_OBJECT_PROPERTIES = ['constructor']; - -/* - * Apply the mixin to the given base class to return a new class. - * The mixin can either be a function that returns the modified class, or a - * plain object whose members will be copied to the new class' prototype. - */ -function composeClass(base, mixin) { - if (typeof mixin === 'function') { - // Mixin function - return mixin(base); - } else { - // Mixin object - var Subclass = function (_base2) { - _inherits(Subclass, _base2); - - function Subclass() { - _classCallCheck(this, Subclass); - - return _possibleConstructorReturn(this, (Subclass.__proto__ || Object.getPrototypeOf(Subclass)).apply(this, arguments)); - } - - return Subclass; - }(base); - - copyOwnProperties(mixin, Subclass.prototype, NON_MIXABLE_OBJECT_PROPERTIES); - return Subclass; - } -} - -/* - * Copy the given properties/methods to the target. - * Return the updated target. - */ -function copyOwnProperties(source, target) { - var ignorePropertyNames = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; - - Object.getOwnPropertyNames(source).forEach(function (name) { - if (ignorePropertyNames.indexOf(name) < 0) { - var descriptor = Object.getOwnPropertyDescriptor(source, name); - Object.defineProperty(target, name, descriptor); - } - }); - return target; -} - -},{}],5:[function(require,module,exports){ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - -var _createSymbol = require('./createSymbol'); - -var _createSymbol2 = _interopRequireDefault(_createSymbol); - -var _toggleClass = require('./toggleClass'); - -var _toggleClass2 = _interopRequireDefault(_toggleClass); - -var _symbols = require('./symbols'); - -var _symbols2 = _interopRequireDefault(_symbols); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -// Symbols for private data members on an element. -var itemsSymbol = (0, _createSymbol2.default)('items'); -var itemInitializedSymbol = (0, _createSymbol2.default)('itemInitialized'); - -/* Exported function extends a base class with ContentItems. */ - -exports.default = function (base) { - - /** - * Mixin which maps content semantics (elements) to list item semantics. - * - * Items differ from element contents in several ways: - * - * * They are often referenced via index. - * * They may have a selection state. - * * It's common to do work to initialize the appearance or state of a new - * item. - * * Auxiliary invisible child elements are filtered out and not counted as - * items. Auxiliary elements include link, script, style, and template - * elements. This filtering ensures that those auxiliary elements can be - * used in markup inside of a list without being treated as list items. - * - * This mixin expects a component to provide a `content` property returning a - * raw set of elements. You can provide that yourself, or use - * [DistributedChildrenContentMixin](DistributedChildrenContentMixin.md). - * - * The most commonly referenced property defined by this mixin is the `items` - * property. To avoid having to do work each time that property is requested, - * this mixin supports an optimized mode. If you invoke the `contentChanged` - * method when the set of items changes, the mixin concludes that you'll take - * care of notifying it of future changes, and turns on the optimization. With - * that on, the mixin saves a reference to the computed set of items, and will - * return that immediately on subsequent calls to the `items` property. If you - * use this mixin in conjunction with - * [DistributedChildrenContentMixin](DistributedChildrenContentMixin.md), the - * `contentChanged` method will be invoked for you when the element's children - * change, turning on the optimization automatically. - */ - var ContentItems = function (_base) { - _inherits(ContentItems, _base); - - function ContentItems() { - _classCallCheck(this, ContentItems); - - return _possibleConstructorReturn(this, (ContentItems.__proto__ || Object.getPrototypeOf(ContentItems)).apply(this, arguments)); - } - - _createClass(ContentItems, [{ - key: 'contentChanged', - value: function contentChanged() { - if (_get(ContentItems.prototype.__proto__ || Object.getPrototypeOf(ContentItems.prototype), 'contentChanged', this)) { - _get(ContentItems.prototype.__proto__ || Object.getPrototypeOf(ContentItems.prototype), 'contentChanged', this).call(this); - } - - // Since we got the contentChanged call, we'll assume we'll be notified if - // the set of items changes later. We turn on memoization of the items - // property by setting our internal property to null (instead of - // undefined). - this[itemsSymbol] = null; - - this[_symbols2.default.itemsChanged](); - } - - /** - * This method is invoked whenever a new item is added to the list. - * - * The default implementation of this method does nothing. You can override - * this to perform per-item initialization. - * - * @param {HTMLElement} item - The item that was added. - */ - - }, { - key: _symbols2.default.itemAdded, - value: function value(item) { - if (_get(ContentItems.prototype.__proto__ || Object.getPrototypeOf(ContentItems.prototype), _symbols2.default.itemAdded, this)) { - _get(ContentItems.prototype.__proto__ || Object.getPrototypeOf(ContentItems.prototype), _symbols2.default.itemAdded, this).call(this, item); - } - } - - /** - * The selection state for a single item has changed. - * - * Invoke this method to signal that the selected state of the indicated item - * has changed. By default, this applies a `selected` CSS class if the item - * is selected, and removed it if not selected. - * - * @param {HTMLElement} item - The item whose selection state has changed. - * @param {boolean} selected - True if the item is selected, false if not. - */ - - }, { - key: _symbols2.default.itemSelected, - value: function value(item, selected) { - if (_get(ContentItems.prototype.__proto__ || Object.getPrototypeOf(ContentItems.prototype), _symbols2.default.itemSelected, this)) { - _get(ContentItems.prototype.__proto__ || Object.getPrototypeOf(ContentItems.prototype), _symbols2.default.itemSelected, this).call(this, item, selected); - } - (0, _toggleClass2.default)(item, 'selected', selected); - } - - /** - * The current set of items in the list. See the top-level documentation for - * mixin for a description of how items differ from plain content. - * - * @type {HTMLElement[]} - */ - - }, { - key: _symbols2.default.itemsChanged, - - - /** - * This method is invoked when the underlying contents change. It is also - * invoked on component initialization – since the items have "changed" from - * being nothing. - */ - value: function value() { - var _this2 = this; - - if (_get(ContentItems.prototype.__proto__ || Object.getPrototypeOf(ContentItems.prototype), _symbols2.default.itemsChanged, this)) { - _get(ContentItems.prototype.__proto__ || Object.getPrototypeOf(ContentItems.prototype), _symbols2.default.itemsChanged, this).call(this); - } - - // Perform per-item initialization. - Array.prototype.forEach.call(this.items, function (item) { - if (!item[itemInitializedSymbol]) { - _this2[_symbols2.default.itemAdded](item); - item[itemInitializedSymbol] = true; - } - }); - - this.dispatchEvent(new CustomEvent('items-changed')); - } - - /** - * Fires when the items in the list change. - * - * @memberof ContentItems - * @event items-changed - */ - - }, { - key: 'items', - get: function get() { - var items = void 0; - if (this[itemsSymbol] == null) { - items = filterAuxiliaryElements(this.content); - // Note: test for *equality* with null; don't treat undefined as a match. - if (this[itemsSymbol] === null) { - // Memoize the set of items. - this[itemsSymbol] = items; - } - } else { - // Return the memoized items. - items = this[itemsSymbol]; - } - return items; - } - }]); - - return ContentItems; - }(base); - - return ContentItems; -}; - -// Return the given elements, filtering out auxiliary elements that aren't -// typically visible. Items which are not elements are returned as is. - - -function filterAuxiliaryElements(items) { - var auxiliaryTags = ['link', 'script', 'style', 'template']; - return [].filter.call(items, function (item) { - return !item.localName || auxiliaryTags.indexOf(item.localName) < 0; - }); -} - -},{"./createSymbol":14,"./symbols":17,"./toggleClass":18}],6:[function(require,module,exports){ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _set = function set(object, property, value, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent !== null) { set(parent, property, value, receiver); } } else if ("value" in desc && desc.writable) { desc.value = value; } else { var setter = desc.set; if (setter !== undefined) { setter.call(receiver, value); } } return value; }; - -var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - -var _microtask = require('./microtask'); - -var _microtask2 = _interopRequireDefault(_microtask); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -/* Exported function extends a base class with DistributedChildrenContent. */ -exports.default = function (base) { - - /** - * Mixin which defines a component's content as its children, expanding any - * nodes distributed to the component's slots. - * - * This also provides notification of changes to a component's content. It - * will invoke a `contentChanged` method when the component is first - * instantiated, and whenever its distributed children change. This is an - * easy way to satisfy the Gold Standard checklist item for monitoring - * [Content Changes](https://github.com/webcomponents/gold-standard/wiki/Content-Changes). - * - * Example: - * - * ``` - * let base = DistributedChildrenContentMixin(DistributedChildrenMixin(HTMLElement)); - * class CountingElement extends base { - * - * constructor() { - * super(); - * let root = this.attachShadow({ mode: 'open' }); - * root.innerHTML = ``; - * } - * - * contentChanged() { - * // Count the component's children, both initially and when changed. - * this.count = this.distributedChildren.length; - * } - * - * } - * ``` - * - * Note that content change detection depends upon the element having at least - * one `slot` element in its shadow subtree. - * - * This mixin is intended for use with the - * [DistributedChildrenMixin](DistributedChildrenMixin.md). See that mixin for - * a discussion of how that works. This DistributedChildrenContentMixin - * provides an easy way of defining the "content" of a component as the - * component's distributed children. That in turn lets mixins like - * [ContentItemsMixin](ContentItemsMixin.md) manipulate the children as list - * items. - */ - var DistributedChildrenContent = function (_base) { - _inherits(DistributedChildrenContent, _base); - - function DistributedChildrenContent() { - _classCallCheck(this, DistributedChildrenContent); - - var _this = _possibleConstructorReturn(this, (DistributedChildrenContent.__proto__ || Object.getPrototypeOf(DistributedChildrenContent)).call(this)); - - if (_this.shadowRoot) { - // Listen to changes on all slots. - var slots = _this.shadowRoot.querySelectorAll('slot'); - slots.forEach(function (slot) { - return slot.addEventListener('slotchange', function (event) { - _this.contentChanged(); - }); - }); - } - - // Make an initial call to contentChanged() so that the component can do - // initialization that it normally does when content changes. - // - // This will invoke contentChanged() handlers in other mixins. In order - // that those mixins have a chance to complete their own initialization, - // we add the contentChanged() call to the microtask queue. - (0, _microtask2.default)(function () { - return _this.contentChanged(); - }); - return _this; - } - - /** - * Invoked when the contents of the component (including distributed - * children) have changed. - * - * This method is also invoked when a component is first instantiated; the - * contents have essentially "changed" from being nothing. This allows the - * component to perform initial processing of its children. - */ - - - _createClass(DistributedChildrenContent, [{ - key: 'contentChanged', - value: function contentChanged() { - if (_get(DistributedChildrenContent.prototype.__proto__ || Object.getPrototypeOf(DistributedChildrenContent.prototype), 'contentChanged', this)) { - _get(DistributedChildrenContent.prototype.__proto__ || Object.getPrototypeOf(DistributedChildrenContent.prototype), 'contentChanged', this).call(this); - } - var event = new CustomEvent('content-changed'); - this.dispatchEvent(event); - } - - /** - * The content of this component, defined to be the flattened array of - * children distributed to the component. - * - * @type {HTMLElement[]} - */ - - }, { - key: 'content', - get: function get() { - var distributedChildren = this.distributedChildren; - if (typeof distributedChildren === 'undefined') { - console.warn('DistributedChildrenContentMixin expects the component to define a "distributedChildren" property.'); - } - return distributedChildren; - }, - set: function set(value) { - if ('content' in base.prototype) { - _set(DistributedChildrenContent.prototype.__proto__ || Object.getPrototypeOf(DistributedChildrenContent.prototype), 'content', value, this); - } - // TODO: Set the children to the given value (which should be an array of - // elements)? - } - - /** - * This event is raised when the component's contents (including distributed - * children) have changed. - * - * @memberof DistributedChildrenContent - * @event content-changed - */ - - }]); - - return DistributedChildrenContent; - }(base); - - return DistributedChildrenContent; -}; - -},{"./microtask":15}],7:[function(require,module,exports){ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -/* Exported function extends a base class with DistributedChildren. */ -exports.default = function (base) { - - /** - * Mixin which defines helpers for accessing a component's distributed - * children as a flattened array or string. - * - * The standard DOM API provides several ways of accessing child content: - * `children`, `childNodes`, and `textContent`. None of these functions are - * Shadow DOM aware. This mixin defines variations of those functions that - * *are* Shadow DOM aware. - * - * Example: you create a component `` that displays a number - * equal to the number of children placed inside that component. If someone - * instantiates your component like: - * - * - *
- *
- *
- *
- * - * Then the component should show "3", because there are three children. To - * calculate the number of children, the component can just calculate - * `this.children.length`. However, suppose someone instantiates your - * component inside one of their own components, and puts a `` element - * inside your component: - * - * - * - * - * - * If your component only looks at `this.children`, it will always see exactly - * one child — the `` element. But the user looking at the page will - * *see* any nodes distributed to that slot. To match what the user sees, your - * component should expand any `` elements it contains. - * - * That is the problem this mixin solves. After applying this mixin, your - * component code has access to `this.distributedChildren`, whose `length` - * will return the total number of all children distributed to your component - * in the composed tree. - * - * Note: The latest Custom Elements API design calls for a new function, - * `getAssignedNodes` that takes an optional `deep` parameter, that will solve - * this problem at the API level. - */ - var DistributedChildren = function (_base) { - _inherits(DistributedChildren, _base); - - function DistributedChildren() { - _classCallCheck(this, DistributedChildren); - - return _possibleConstructorReturn(this, (DistributedChildren.__proto__ || Object.getPrototypeOf(DistributedChildren)).apply(this, arguments)); - } - - _createClass(DistributedChildren, [{ - key: 'distributedChildren', - - - /** - * An in-order collection of distributed children, expanding any slot - * elements. Like the standard children property, this skips text nodes. - * - * @type {HTMLElement[]} - */ - get: function get() { - return expandContentElements(this.children, false); - } - - /** - * An in-order collection of distributed child nodes, expanding any slot - * elements. Like the standard childNodes property, this includes text - * nodes. - * - * @type {Node[]} - */ - - }, { - key: 'distributedChildNodes', - get: function get() { - return expandContentElements(this.childNodes, true); - } - - /** - * The concatenated text content of all distributed child nodes, expanding - * any slot elements. - * - * @type {string} - */ - - }, { - key: 'distributedTextContent', - get: function get() { - var strings = this.distributedChildNodes.map(function (child) { - return child.textContent; - }); - return strings.join(''); - } - }]); - - return DistributedChildren; - }(base); - - return DistributedChildren; -}; - -/* - * Given a array of nodes, return a new array with any content elements expanded - * to the nodes distributed to that content element. This rule is applied - * recursively. - * - * If includeTextNodes is true, text nodes will be included, as in the - * standard childNodes property; by default, this skips text nodes, like the - * standard children property. - */ - - -function expandContentElements(nodes, includeTextNodes) { - var _ref; - - var expanded = Array.prototype.map.call(nodes, function (node) { - // We want to see if the node is an instanceof HTMLSlotELement, but - // that class won't exist if the browser that doesn't support native - // Shadow DOM and if the Shadow DOM polyfill hasn't been loaded. Instead, - // we do a simplistic check to see if the tag name is "slot". - var isSlot = typeof HTMLSlotElement !== 'undefined' ? node instanceof HTMLSlotElement : node.localName === 'slot'; - if (isSlot) { - // Use the nodes assigned to this node instead. - var assignedNodes = node.assignedNodes({ flatten: true }); - return assignedNodes ? expandContentElements(assignedNodes, includeTextNodes) : []; - } else if (node instanceof HTMLElement) { - // Plain element; use as is. - return [node]; - } else if (node instanceof Text && includeTextNodes) { - // Text node. - return [node]; - } else { - // Comment, processing instruction, etc.; skip. - return []; - } - }); - var flattened = (_ref = []).concat.apply(_ref, _toConsumableArray(expanded)); - return flattened; -} - -},{}],8:[function(require,module,exports){ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _set = function set(object, property, value, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent !== null) { set(parent, property, value, receiver); } } else if ("value" in desc && desc.writable) { desc.value = value; } else { var setter = desc.set; if (setter !== undefined) { setter.call(receiver, value); } } return value; }; - -var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - -exports.default = mixin; - -var _createSymbol = require('./createSymbol'); - -var _createSymbol2 = _interopRequireDefault(_createSymbol); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -// Symbols for private data members on an element. -var selectedFractionSymbol = (0, _createSymbol2.default)('selectedFraction'); - -/* Exported function extends a base class with FractionalSelection. */ -function mixin(base) { - - /** - * Adds support for fractional selection: treating a selection as a real - * number that combines an integer portion (an index into a list), and a - * fraction (indicating how far of the way we are to the next or previous - * item). - * - * This is useful in components that support incremental operations during - * dragging and swiping. Example: a carousel component has several items, and the - * currently selected item is item 3. The user begins swiping to the left, - * moving towards selecting item 4. Halfway through this operation, the - * fractional selection value is 3.5. - * - * This value permits communication between mixins like - * [SwipeDirectionMixin](./SwipeDirectionMixin.md) and - * [TrackpadDirectionMixin](./TrackpadDirectionMixin.md), which generate - * fractional selection values, and mixins like - * [SelectionAnimationMixin](./SelectionAnimationMixin.md), which can render - * selection at a fractional value. - */ - var FractionalSelection = function (_base) { - _inherits(FractionalSelection, _base); - - function FractionalSelection() { - _classCallCheck(this, FractionalSelection); - - return _possibleConstructorReturn(this, (FractionalSelection.__proto__ || Object.getPrototypeOf(FractionalSelection)).apply(this, arguments)); - } - - _createClass(FractionalSelection, [{ - key: 'connectedCallback', - value: function connectedCallback() { - if (_get(FractionalSelection.prototype.__proto__ || Object.getPrototypeOf(FractionalSelection.prototype), 'connectedCallback', this)) { - _get(FractionalSelection.prototype.__proto__ || Object.getPrototypeOf(FractionalSelection.prototype), 'connectedCallback', this).call(this); - } - this.selectedFraction = 0; - } - - /** - * A fractional value indicating how far the user has currently advanced to - * the next/previous item. E.g., a `selectedFraction` of 3.5 indicates the - * user is halfway between items 3 and 4. - * - * @type {number} - */ - - }, { - key: 'selectedFraction', - get: function get() { - return this[selectedFractionSymbol]; - }, - set: function set(value) { - this[selectedFractionSymbol] = value; - if ('selectedFraction' in base.prototype) { - _set(FractionalSelection.prototype.__proto__ || Object.getPrototypeOf(FractionalSelection.prototype), 'selectedFraction', value, this); - } - var event = new CustomEvent('selected-fraction-changed'); - this.dispatchEvent(event); - } - }]); - - return FractionalSelection; - }(base); - - return FractionalSelection; -} - -mixin.helpers = { - - /* - * Dampen a selection that goes past the beginning or end of a list. This is - * generally used to produce a visual effect of tension as the user tries to - * go further in a direction that has no more items. - * - * Example: suppose `itemCount` is 5, indicating a list of 5 items. The index of - * the last item is 4. If the `selection` parameter is 4.5, the user is trying - * to go past this last item. When a damping function is applied, the resulting - * value will be less than 4.5 (the actual value will be 4.25). When this - * selection state is rendered, the user will see that, each unit distance the - * drag travels has less and less visible effect. This is perceived as tension. - * - * @param {number} selection - A real number indicating a selection position - * @param {number} itemCount - An integer for the number of items in the list - * @returns {number} A real number representing the damped selection value. - */ - dampedSelection: function dampedSelection(selection, itemCount) { - var bound = itemCount - 1; - var damped = void 0; - if (selection < 0) { - // Trying to go past beginning of list. Apply tension from the left edge. - damped = -mixin.helpers.damping(-selection); - } else if (selection >= bound) { - // Trying to go past end of list. Apply tension from the right edge. - damped = bound + mixin.helpers.damping(selection - bound); - } else { - // No damping required. - damped = selection; - } - return damped; - }, - - - /* - * Calculate damping as a function of the distance past the minimum/maximum - * values. - * - * We want to asymptotically approach an absolute minimum of 1 unit - * below/above the actual minimum/maximum. This requires calculating a - * hyperbolic function. - * - * See http://www.wolframalpha.com/input/?i=y+%3D+-1%2F%28x%2B1%29+%2B+1 - * for the one we use. The only portion of that function we care about is when - * x is zero or greater. An important consideration is that the curve be - * tangent to the diagonal line x=y at (0, 0). This ensures smooth continuity - * with the normal drag behavior, in which the visible sliding is linear with - * the distance the touchpoint has been dragged. - */ - damping: function damping(x) { - var y = -1 / (x + 1) + 1; - return y; - }, - - - /* - * Return the current fractional selection value for the given element. - * - * This simply adds the element's `selectedIndex` and `selectedFraction` - * properties. - * - * @param {HTMLElement} element - An element that supports selection - */ - elementSelection: function elementSelection(element) { - var selectedIndex = element.selectedIndex; - if (selectedIndex < 0) { - // No selection - return; - } - var selectedFraction = element.selectedFraction || 0; - return selectedIndex + selectedFraction; - }, - - - /* - * Breaks a fractional selection into its integer and fractional parts. - * - * Example: if passed 3.5, this returns { index: 3, fraction: 5 }. - * - * @param {number} selection – A real number representing a selection point - * @returns {object} - An object with an `index` property holding the - * selection's integer component, and a `fraction` property holding the - * selection's fractional component. - */ - selectionParts: function selectionParts(selection) { - // Stupid IE doesn't have Math.trunc. - // const index = Math.trunc(selection); - var index = selection < 0 ? Math.ceil(selection) : Math.floor(selection); - var fraction = selection - index; - return { index: index, fraction: fraction }; - }, - - - /* - * Returns a fractional selection point after accounting for wrapping, ensuring - * that the integer portion of the selection stays between 0 and `itemCount`-1. - * That is, the integer portion will always be a valid index into the list. - * - * Example of wrapping past the end of the list: if `selection` is 5.5 and - * `itemCount` is 5, this returns 0.5. Example of wrapping past the beginning of - * the list: if `selection` is 0.5 and `itemCount` is 5, this returns 4.5. - * - * @param {number} selection - A real number representing a selection point - * @param {number} itemCount - The number of items in the list - * @returns {number} - The result of wrapping the selection point - */ - wrappedSelection: function wrappedSelection(selection, itemCount) { - // Handles possibility of negative mod. - // See http://stackoverflow.com/a/18618250/76472 - return (selection % itemCount + itemCount) % itemCount; - }, - - - /* - * Return the parts of a selection, first wrapping if necessary. - * - * @param {number} selection – A real number representing a selection point - * @param {number} itemCount - The number of items in the list - * @param {boolean} wrap – True if the selection should wrap to stay within the - * list - * @returns {object} – The parts of the selection, using the same format as - * `selectionParts`. - */ - wrappedSelectionParts: function wrappedSelectionParts(selection, itemCount, wrap) { - if (wrap) { - selection = mixin.helpers.wrappedSelection(selection, itemCount); - } - return mixin.helpers.selectionParts(selection); - } -}; - -},{"./createSymbol":14}],9:[function(require,module,exports){ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _set = function set(object, property, value, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent !== null) { set(parent, property, value, receiver); } } else if ("value" in desc && desc.writable) { desc.value = value; } else { var setter = desc.set; if (setter !== undefined) { setter.call(receiver, value); } } return value; }; - -var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - -exports.default = mixin; - -var _createSymbol = require('./createSymbol'); - -var _createSymbol2 = _interopRequireDefault(_createSymbol); - -var _FractionalSelectionMixin = require('./FractionalSelectionMixin'); - -var _FractionalSelectionMixin2 = _interopRequireDefault(_FractionalSelectionMixin); - -var _symbols = require('./symbols'); - -var _symbols2 = _interopRequireDefault(_symbols); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -// Symbols for private data members on an element. -var animationSymbol = (0, _createSymbol2.default)('animation'); -var draggingSymbol = (0, _createSymbol2.default)('dragging'); -var lastAnimationSymbol = (0, _createSymbol2.default)('lastAnimation'); -var playingAnimationSymbol = (0, _createSymbol2.default)('animatingSelection'); -var previousSelectionSymbol = (0, _createSymbol2.default)('previousSelection'); -var selectionAnimationDurationSymbol = (0, _createSymbol2.default)('selectionAnimationDuration'); -var selectionAnimationEffectSymbol = (0, _createSymbol2.default)('selectionAnimationEffect'); -var selectionAnimationKeyframesSymbol = (0, _createSymbol2.default)('selectionAnimationKeyframes'); -var resetAnimationsOnNextRenderSymbol = (0, _createSymbol2.default)('resetAnimationsOnNextRender'); - -/* Exported function extends a base class with SelectionAnimation. */ -function mixin(base) { - - /** - * Mixin which uses animation to show transitions between selection states. - * - * This mixin can be used by components that want to provide visible - * animations when changing the selection. For example, a carousel component - * may want to define a sliding animation effect shown when moving between - * items. - * - * The animation is defined by a `selectionAnimationKeyframes` property; see - * that property for details on how to define these keyframes. This animation - * will be used in two ways. First, when moving strictly between items, the - * animation will play smoothly to show the selection changing. Second, the - * animation can be used to render the selection at a fixed point in the - * transition between states. E.g., if the user pauses halfway through - * dragging an element using [SwipeDirectionMixin](SwipeDirectionMixin.md) - * or [TrackpadDirectionMixin](TrackpadDirectionMixin.md)s, then the selection - * animation will be shown at the point exactly halfway through. - * - * This mixin expects a component to provide an `items` array of all elements - * in the list, which can be provided via - * [ContentItemsMixin](ContentItemsMixin.md). This mixin also expects - * `selectedIndex` and `selectedItem` properties, which can be provided via - * [SingleSelectionMixin](SingleSelectionMixin.md). - * - * This mixin supports a `selectionWraps` property. When true, the user can - * navigate forward from the last item in the list and wrap around to the - * first item, or navigate backward from the first item and wrap around to the - * last item. - * - * This mixin uses the Web Animations API. For use on browsers which - * do not support that API natively, you will need to load the - * [Web Animations polyfill](https://github.com/web-animations/web-animations-js). - */ - var SelectionAnimation = function (_base) { - _inherits(SelectionAnimation, _base); - - function SelectionAnimation() { - _classCallCheck(this, SelectionAnimation); - - // Set defaults. - var _this = _possibleConstructorReturn(this, (SelectionAnimation.__proto__ || Object.getPrototypeOf(SelectionAnimation)).call(this)); - - if (typeof _this.selectionAnimationDuration === 'undefined') { - _this.selectionAnimationDuration = _this[_symbols2.default.defaults].selectionAnimationDuration; - } - if (typeof _this.selectionAnimationEffect === 'undefined' && _this.selectionAnimationKeyframes == null) { - _this.selectionAnimationEffect = _this[_symbols2.default.defaults].selectionAnimationEffect; - } - - _this[_symbols2.default.dragging] = false; - return _this; - } - - _createClass(SelectionAnimation, [{ - key: _symbols2.default.itemAdded, - value: function value(item) { - // We mark new items in the list as explicitly visible to ARIA. Otherwise, - // when an item isn't visible on the screen, ARIA will assume the item is - // of no interest to the user, and leave it out of the accessibility tree. - // If the list contains 10 items, but only 3 are visible, a screen reader - // might then announce the list only has 3 items. To ensure that screen - // readers and other assistive technologies announce the correct total - // number of items, we explicitly mark all items as not hidden. This will - // expose them all in the accessibility tree, even the items which are - // currently not rendered. - // - // TODO: Generally speaking, this entire mixin assumes that the user can - // navigate through all items in a list. But an app could style an item as - // display:none or visibility:hidden because the user is not allowed to - // interact with that item at the moment. Support for this scenario should - // be added. This would entail changing all locations where a mixin - // function is counting items, iterating over the (visible) items, and - // showing or hiding items. Among other things, the code below to make - // items visible to ARIA would need to discriminate between items which - // are invisible because of animation state, or invisible because the user - // shouldn't interact with them. - item.setAttribute('aria-hidden', false); - } - }, { - key: _symbols2.default.itemsChanged, - value: function value() { - if (_get(SelectionAnimation.prototype.__proto__ || Object.getPrototypeOf(SelectionAnimation.prototype), _symbols2.default.itemsChanged, this)) { - _get(SelectionAnimation.prototype.__proto__ || Object.getPrototypeOf(SelectionAnimation.prototype), _symbols2.default.itemsChanged, this).call(this); - } - - _resetAnimations(this); - - // TODO: Also reset our notion of the last rendered selection? This comes - // up when a DOM removal causes the selected item to change position. - // this[previousSelectionSymbol] = null; - - renderSelection(this); - } - }, { - key: 'resetAnimations', - value: function resetAnimations() { - _resetAnimations(this); - } - - /** - * A fractional value indicating how far the user has currently advanced to - * the next/previous item. E.g., a `selectedFraction` of 3.5 indicates the - * user is halfway between items 3 and 4. - * - * For more details, see [FractionalSelectionMixin](FractionalSelectionMixin.md) - * mixin. - * - * @type {number} - */ - - }, { - key: _symbols2.default.defaults, - get: function get() { - var defaults = _get(SelectionAnimation.prototype.__proto__ || Object.getPrototypeOf(SelectionAnimation.prototype), _symbols2.default.defaults, this) || {}; - defaults.selectionAnimationDuration = 250; - defaults.selectionAnimationEffect = 'slide'; - return defaults; - } - - /* - * Provide backing for the dragging property. - * Also, when a drag begins, reset the animations. - */ - - }, { - key: _symbols2.default.dragging, - get: function get() { - return this[draggingSymbol]; - }, - set: function set(value) { - var previousValue = this[_symbols2.default.dragging]; - this[draggingSymbol] = value; - if (_symbols2.default.dragging in base.prototype) { - _set(SelectionAnimation.prototype.__proto__ || Object.getPrototypeOf(SelectionAnimation.prototype), _symbols2.default.dragging, value, this); - } - if (value && !previousValue) { - // Have begun a drag. - this[resetAnimationsOnNextRenderSymbol] = true; - } - } - }, { - key: 'selectedFraction', - get: function get() { - return _get(SelectionAnimation.prototype.__proto__ || Object.getPrototypeOf(SelectionAnimation.prototype), 'selectedFraction', this) || 0; - }, - set: function set(value) { - if ('selectedFraction' in base.prototype) { - _set(SelectionAnimation.prototype.__proto__ || Object.getPrototypeOf(SelectionAnimation.prototype), 'selectedFraction', value, this); - } - renderSelection(this, this.selectedIndex, value); - } - }, { - key: 'selectedIndex', - get: function get() { - return _get(SelectionAnimation.prototype.__proto__ || Object.getPrototypeOf(SelectionAnimation.prototype), 'selectedIndex', this); - }, - set: function set(index) { - if ('selectedIndex' in base.prototype) { - _set(SelectionAnimation.prototype.__proto__ || Object.getPrototypeOf(SelectionAnimation.prototype), 'selectedIndex', index, this); - } - renderSelection(this, index, 0); - } - - /** - * The duration of a selection animation in milliseconds. - * - * This measures the amount of time required for a selection animation to - * complete. This number remains constant, even if the number of items being - * animated increases. - * - * The default value is 250 milliseconds (a quarter a second). - * - * @type {number} - * @default 250 - */ - - }, { - key: 'selectionAnimationDuration', - get: function get() { - return this[selectionAnimationDurationSymbol]; - }, - set: function set(value) { - this[selectionAnimationDurationSymbol] = value; - if ('selectionAnimationDuration' in base.prototype) { - _set(SelectionAnimation.prototype.__proto__ || Object.getPrototypeOf(SelectionAnimation.prototype), 'selectionAnimationDuration', value, this); - } - } - - /** - * The name of a standard selection animation effect. - * - * This is a shorthand for setting the `selectionAnimationKeyframes` - * property to standard keyframes. Supported string values: - * - * * "crossfade" - * * "reveal" - * * "revealWithFade" - * * "showAdjacent" - * * "slide" - * * "slideWithGap" - * - * @type {string} - * @default "slide" - */ - - }, { - key: 'selectionAnimationEffect', - get: function get() { - return this[selectionAnimationEffectSymbol]; - }, - set: function set(value) { - this[selectionAnimationEffectSymbol] = value; - if ('selectionAnimationEffect' in base.prototype) { - _set(SelectionAnimation.prototype.__proto__ || Object.getPrototypeOf(SelectionAnimation.prototype), 'selectionAnimationEffect', value, this); - } - this.selectionAnimationKeyframes = mixin.standardEffectKeyframes[value]; - } - - /** - * The keyframes that define an animation that plays for an item when moving - * forward in the sequence. - * - * This is an array of CSS rules that will be applied. These are used as - * [keyframes](http://w3c.github.io/web-animations/#keyframes-section) - * to animate the item with the - * [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/animation). - * - * The animation represents the state of the next item as it moves from - * completely unselected (offstage, usually right), to selected (center - * stage), to completely unselected (offstage, usually left). The center time - * of the animation should correspond to the item's quiscent selected state, - * typically in the center of the stage and at the item's largest size. - * - * The default forward animation is a smooth slide at full size from right to - * left. - * - * When moving the selection backward, this animation is played in reverse. - * - * @type {cssRules[]} - */ - - }, { - key: 'selectionAnimationKeyframes', - get: function get() { - // Standard animation slides left/right, keeps adjacent items out of view. - return this[selectionAnimationKeyframesSymbol]; - }, - set: function set(value) { - this[selectionAnimationKeyframesSymbol] = value; - if ('selectionAnimationKeyframes' in base.prototype) { - _set(SelectionAnimation.prototype.__proto__ || Object.getPrototypeOf(SelectionAnimation.prototype), 'selectionAnimationKeyframes', value, this); - } - _resetAnimations(this); - renderSelection(this); - } - }, { - key: 'selectionWraps', - get: function get() { - return _get(SelectionAnimation.prototype.__proto__ || Object.getPrototypeOf(SelectionAnimation.prototype), 'selectionWraps', this); - }, - set: function set(value) { - if ('selectionWraps' in base.prototype) { - _set(SelectionAnimation.prototype.__proto__ || Object.getPrototypeOf(SelectionAnimation.prototype), 'selectionWraps', value, this); - } - _resetAnimations(this); - renderSelection(this); - } - }]); - - return SelectionAnimation; - }(base); - - return SelectionAnimation; -} - -// We expose helpers on the mixin function that we want to be able to unit test. -// Since these are on the function, not on the class emitted by the function, -// they don't end up getting exposed on actual element instances. -mixin.helpers = { - - /* - * Calculate the animation fractions for an element's items at the given - * selection point. This is used when rendering the element's selection state - * instantaneously. - * - * This function considers the selectedIndex parameter, which can be a whole - * or fractional number, and determines which items will be visible at that - * index. This function then calculates a corresponding animation fraction: a - * number between 0 and 1 indicating how far through the selection animation - * an item should be shown, or null if the item should not be visible at that - * selection index. These fractions are returned as an array, where the - * animation fraction at position N corresponds to how item N should be shown. - */ - animationFractionsForSelection: function animationFractionsForSelection(element, selection) { - - var items = element.items; - if (!items) { - return; - } - - var itemCount = items.length; - var selectionWraps = element.selectionWraps; - - return items.map(function (item, itemIndex) { - // How many steps from the selection point to this item? - var steps = stepsToIndex(itemCount, selectionWraps, selection, itemIndex); - // To convert steps to animation fraction: - // steps animation fraction - // 1 0 (stage right) - // 0 0.5 (center stage) - // -1 1 (stage left) - var animationFraction = (1 - steps) / 2; - return animationFraction >= 0 && animationFraction <= 1 ? animationFraction : null; // Outside animation range - }); - }, - - - /* - * Calculate the animation timings that should be used to smoothly animate the - * element's items from one selection state to another. - * - * This returns an array of timings, where the timing at position N should be - * used to animate item N. If an item's timing is null, then that item should - * not take place in the animation, and should be hidden instead. - */ - effectTimingsForSelectionAnimation: function effectTimingsForSelectionAnimation(element, fromSelection, toSelection) { - - var items = element.items; - if (!items) { - return; - } - var itemCount = items.length; - var selectionWraps = element.selectionWraps; - var toIndex = _FractionalSelectionMixin2.default.helpers.wrappedSelectionParts(toSelection, itemCount, selectionWraps).index; - var totalSteps = stepsToIndex(itemCount, selectionWraps, fromSelection, toSelection); - var direction = totalSteps >= 0 ? 'normal' : 'reverse'; - var fill = 'both'; - var totalDuration = element.selectionAnimationDuration; - var stepDuration = totalSteps !== 0 ? totalDuration * 2 / Math.ceil(Math.abs(totalSteps)) : 0; // No steps required, animation will be instantenous. - - var timings = items.map(function (item, itemIndex) { - var steps = stepsToIndex(itemCount, selectionWraps, itemIndex, toSelection); - // If we include this item in the staggered sequence of animations we're - // creating, where would the item appear in the sequence? - var positionInSequence = totalSteps - steps; - if (totalSteps < 0) { - positionInSequence = -positionInSequence; - } - // So, is this item really included in the sequence? - if (Math.ceil(positionInSequence) >= 0 && positionInSequence <= Math.abs(totalSteps)) { - // Note that delay for first item will be negative. That will cause - // the animation to start halfway through, which is what we want. - var delay = stepDuration * (positionInSequence - 1) / 2; - var endDelay = itemIndex === toIndex ? -stepDuration / 2 : // Stop halfway through. - 0; // Play animation until end. - return { duration: stepDuration, direction: direction, fill: fill, delay: delay, endDelay: endDelay }; - } else { - return null; - } - }); - - return timings; - } -}; - -// Keyframes for standard selection animation effects. -mixin.standardEffectKeyframes = { - - // Simple crossfade - crossfade: [{ opacity: 0 }, { opacity: 1 }, { opacity: 0 }], - - // Reveal, as if sliding the top card off a deck of cards - reveal: [{ transform: 'translateX(0%)', zIndex: 0 }, { transform: 'translateX(0%)', zIndex: 1 }, { transform: 'translateX(-100%)', zIndex: 2 }], - - // Google Photos-style reveal-with-fade animation - revealWithFade: [{ transform: 'translateX(0%) scale(0.75)', opacity: 0, zIndex: 0 }, { transform: 'translateX(0%) scale(1.0)', opacity: 1, zIndex: 1 }, { transform: 'translateX(-100%) scale(1.0)', opacity: 1, zIndex: 2 }], - - // Carousel variant with a bit of off-stage elements showing - showAdjacent: [{ transform: 'translateX(78%) scale(0.7)', zIndex: 0 }, { transform: 'translateX(0%) scale(0.82)', zIndex: 1 }, { transform: 'translateX(-78%) scale(0.7)', zIndex: 0 }], - - // Simple slide - slide: [{ transform: 'translateX(100%)' }, { transform: 'translateX(-100%)' }], - - // Slide, with a gap between - slideWithGap: [{ transform: 'translateX(110%)' }, { transform: 'translateX(-110%)' }] - -}; - -/* - * Smoothly animate the selection between the indicated "from" and "to" - * indices. The former can be a fraction, e.g., when the user releases a finger - * to complete a touch drag, and the selection will snap to the closest whole - * index. - */ -function animateSelection(element, fromSelection, toSelection) { - - _resetAnimations(element); - - // Calculate the animation timings. - var items = element.items; - var keyframes = element.selectionAnimationKeyframes; - element[playingAnimationSymbol] = true; - var timings = mixin.helpers.effectTimingsForSelectionAnimation(element, fromSelection, toSelection); - - // Figure out which item will be the one *after* the one we're selecting. - var itemCount = items.length; - var selectionWraps = element.selectionWraps; - var selectionIndex = _FractionalSelectionMixin2.default.helpers.selectionParts(toSelection, itemCount, selectionWraps).index; - var totalSteps = stepsToIndex(itemCount, selectionWraps, fromSelection, toSelection); - var forward = totalSteps >= 0; - var nextUpIndex = selectionIndex + (forward ? 1 : -1); - if (selectionWraps) { - nextUpIndex = _FractionalSelectionMixin2.default.helpers.wrappedSelection(nextUpIndex, itemCount); - } else if (!isItemIndexInBounds(element, nextUpIndex)) { - nextUpIndex = null; // At start/end of list; don't have a next item to show. - } - - // Play the animations using those timings. - var lastAnimationDetails = void 0; - timings.forEach(function (timing, index) { - var item = items[index]; - if (timing) { - showItem(item, true); - var animation = item.animate(keyframes, timing); - element[animationSymbol][index] = animation; - if (index === nextUpIndex) { - // This item will be animated, so will already be in the desired state - // after the animation completes. - nextUpIndex = null; - } - if (timing.endDelay !== 0) { - // This is the animation for the item that will be left selected. - // We want to clean up when this animation completes. - lastAnimationDetails = { animation: animation, index: index, timing: timing, forward: forward }; - } - } else { - // This item doesn't participate in the animation. - showItem(item, false); - } - }); - - if (lastAnimationDetails != null) { - // Arrange for clean-up work to be performed. - lastAnimationDetails.nextUpIndex = nextUpIndex; - lastAnimationDetails.animation.onfinish = function (event) { - return selectionAnimationFinished(element, lastAnimationDetails); - }; - element[lastAnimationSymbol] = lastAnimationDetails.animation; - } else { - // Shouldn't happen -- we should always have at least one animation. - element[playingAnimationSymbol] = false; - } -} - -function getAnimationForItemIndex(element, index) { - if (element[animationSymbol] == null) { - // Not ready yet; - return null; - } - var animation = element[animationSymbol][index]; - if (!animation) { - var item = element.items[index]; - animation = item.animate(element.selectionAnimationKeyframes, { - duration: element.selectionAnimationDuration, - fill: 'both' - }); - animation.pause(); - element[animationSymbol][index] = animation; - } - return animation; -} - -function isItemIndexInBounds(element, index) { - return index >= 0 && element.items && index < element.items.length; -} - -/* - * Render the selection state of the element. - * - * This can be used to re-render a previous selection state (if the - * selectedIndex param is omitted), render the selection instantly at a given - * whole or fractional selection index, or animate to a given selection index. - * - * There are several distinct scenarios we need to cover: - * - * 1. Initial positioning, or repositioning after changing a property like - * selectionAnimationKeyframes that affects rendering. - * 2. Animate on selectedIndex change. This should override any animation/swipe - * already in progress. - * 3. Instantly render the current position of a drag operation in progress. - * 4. Complete a drag operation. If the drag wasn't far enough to affect - * selection, we'll just be restoring the selectedFraction to 0. - * - * If the list does not wrap, any selection position outside the list's bounds - * will be damped to produce a visual effect of tension. - */ -function renderSelection(element) { - var selectedIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : element.selectedIndex; - var selectedFraction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : element.selectedFraction; - - var itemCount = element.items ? element.items.length : 0; - if (itemCount === 0) { - // Nothing to render. - return; - } - if (selectedIndex < 0) { - // TODO: Handle no selection. - return; - } - var selection = selectedIndex + selectedFraction; - if (element.selectionWraps) { - // Apply wrapping to ensure consistent representation of selection. - selection = _FractionalSelectionMixin2.default.helpers.wrappedSelection(selection, itemCount); - } else { - // Apply damping if necessary. - selection = _FractionalSelectionMixin2.default.helpers.dampedSelection(selection, itemCount); - } - var previousSelection = element[previousSelectionSymbol]; - // TODO: If an item changes position in the DOM, we end up animating from - // its old index to its new index, but we really don't want to animate at all. - if (!element[_symbols2.default.dragging] && previousSelection != null && previousSelection !== selection) { - // Animate selection from previous state to new state. - animateSelection(element, previousSelection, selection); - } else if (selectedFraction === 0 && element[playingAnimationSymbol]) { - // Already in process of animating to fraction 0. During that process, - // ignore subsequent attempts to renderSelection to fraction 0. - return; - } else { - // Render current selection state instantly. - renderSelectionInstantly(element, selection); - } - element[previousSelectionSymbol] = selection; -} - -/* - * Instantly render (don't animate) the element's items at the given whole or - * fractional selection index. - */ -function renderSelectionInstantly(element, toSelection) { - if (element[resetAnimationsOnNextRenderSymbol]) { - _resetAnimations(element); - element[resetAnimationsOnNextRenderSymbol] = false; - } - var animationFractions = mixin.helpers.animationFractionsForSelection(element, toSelection); - animationFractions.map(function (animationFraction, index) { - var item = element.items[index]; - if (animationFraction != null) { - showItem(item, true); - setAnimationFraction(element, index, animationFraction); - } else { - showItem(item, false); - } - }); -} - -/* - * We maintain an array containing an animation per item. This is used for two - * reasons: - * - * * During a drag operation, we want to be able to reuse animations between - * drag updates. - * * When a selection animation completes, we need to be able to leave the - * visibile items in a paused state. Later, we'll want to be able to clean up - * those animations. - * - * Note that this array is sparse: it will only hold up from 0–3 animations at - * any given point. - */ -function _resetAnimations(element) { - var animations = element[animationSymbol]; - if (animations) { - // Cancel existing animations to remove the effects they're applying. - animations.forEach(function (animation, index) { - if (animation) { - animation.cancel(); - animations[index] = null; - } - }); - } - var itemCount = element.items ? element.items.length : 0; - if (!animations || animations.length !== itemCount) { - // Haven't animated before with this number of items; (re)create array. - element[animationSymbol] = new Array(itemCount); - } -} - -/* - * The last animation in our selection animation has completed. Clean up. - */ -function selectionAnimationFinished(element, details) { - - // When the last animation completes, show the next item in the direction - // we're going. Waiting to that until this point is a bit of a hack to avoid - // having a next item that's higher in the natural z-order obscure other items - // during animation. - var nextUpIndex = details.nextUpIndex; - if (nextUpIndex != null) { - if (element[animationSymbol][nextUpIndex]) { - // Cancel existing selection animation so we can construct a new one. - element[animationSymbol][nextUpIndex].cancel(); - element[animationSymbol][nextUpIndex] = null; - } - var animationFraction = details.forward ? 0 : 1; - setAnimationFraction(element, nextUpIndex, animationFraction); - showItem(element.items[nextUpIndex], true); - } - - element[lastAnimationSymbol].onfinish = null; - element[playingAnimationSymbol] = false; -} - -/* - * Pause the indicated animation and have it show the animation at the given - * fraction (between 0 and 1) of the way through the animation. - */ -function setAnimationFraction(element, itemIndex, fraction) { - var animation = getAnimationForItemIndex(element, itemIndex); - if (animation) { - var duration = element.selectionAnimationDuration; - if (duration) { - animation.currentTime = fraction * duration; - } - } -} - -function showItem(item, flag) { - item.style.visibility = flag ? 'visible' : 'hidden'; -} - -/* - * Figure out how many steps it will take to go from fromSelection to - * toSelection. To go from item 3 to item 4 is one step. - * - * If wrapping is allowed, then going from the last item to the first will take - * one step (forward), and going from the first item to the last will take one - * step (backward). - */ -function stepsToIndex(length, allowWrap, fromSelection, toSelection) { - var steps = toSelection - fromSelection; - // Wrapping only kicks in when list has more than 1 item. - if (allowWrap && length > 1) { - var wrapSteps = length - Math.abs(steps); - if (wrapSteps <= 1) { - // Special case - steps = steps < 0 ? wrapSteps : // Wrap forward from last item to first. - -wrapSteps; // Wrap backward from first item to last. - } - } - return steps; -} - -},{"./FractionalSelectionMixin":8,"./createSymbol":14,"./symbols":17}],10:[function(require,module,exports){ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _set = function set(object, property, value, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent !== null) { set(parent, property, value, receiver); } } else if ("value" in desc && desc.writable) { desc.value = value; } else { var setter = desc.set; if (setter !== undefined) { setter.call(receiver, value); } } return value; }; - -var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - -var _symbols = require('./symbols'); - -var _symbols2 = _interopRequireDefault(_symbols); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -// Used to assign unique IDs to item elements without IDs. -var idCount = 0; - -/* Exported function extends a base class with SelectionAriaActive. */ - -exports.default = function (base) { - - /** - * Mixin which treats the selected item in a list as the active item in ARIA - * accessibility terms. - * - * Handling ARIA selection state properly is actually quite complex: - * - * * The items in the list need to be indicated as possible items via an ARIA - * `role` attribute value such as "option". - * * The selected item need to be marked as selected by setting the item's - * `aria-selected` attribute to true *and* the other items need be marked as - * *not* selected by setting `aria-selected` to false. - * * The outermost element with the keyboard focus needs to have attributes - * set on it so that the selection is knowable at the list level via the - * `aria-activedescendant` attribute. - * * Use of `aria-activedescendant` in turn requires that all items in the - * list have ID attributes assigned to them. - * - * This mixin tries to address all of the above requirements. To that end, - * this mixin will assign generated IDs to any item that doesn't already have - * an ID. - * - * ARIA relies on elements to provide `role` attributes. This mixin will apply - * a default role of "listbox" on the outer list if it doesn't already have an - * explicit role. Similarly, this mixin will apply a default role of "option" - * to any list item that does not already have a role specified. - * - * This mixin expects a set of members that manage the state of the selection: - * `[symbols.itemSelected]`, `itemAdded`, and `selectedIndex`. You can - * supply these yourself, or do so via - * [SingleSelectionMixin](SingleSelectionMixin.md). - */ - var SelectionAriaActive = function (_base) { - _inherits(SelectionAriaActive, _base); - - function SelectionAriaActive() { - _classCallCheck(this, SelectionAriaActive); - - return _possibleConstructorReturn(this, (SelectionAriaActive.__proto__ || Object.getPrototypeOf(SelectionAriaActive)).apply(this, arguments)); - } - - _createClass(SelectionAriaActive, [{ - key: 'connectedCallback', - value: function connectedCallback() { - if (_get(SelectionAriaActive.prototype.__proto__ || Object.getPrototypeOf(SelectionAriaActive.prototype), 'connectedCallback', this)) { - _get(SelectionAriaActive.prototype.__proto__ || Object.getPrototypeOf(SelectionAriaActive.prototype), 'connectedCallback', this).call(this); - } - // Set default ARIA role. - if (this.getAttribute('role') == null && this[_symbols2.default.defaults].role) { - this.setAttribute('role', this[_symbols2.default.defaults].role); - } - } - }, { - key: _symbols2.default.itemAdded, - value: function value(item) { - if (_get(SelectionAriaActive.prototype.__proto__ || Object.getPrototypeOf(SelectionAriaActive.prototype), _symbols2.default.itemAdded, this)) { - _get(SelectionAriaActive.prototype.__proto__ || Object.getPrototypeOf(SelectionAriaActive.prototype), _symbols2.default.itemAdded, this).call(this, item); - } - - if (!item.getAttribute('role')) { - // Assign a default ARIA role. - item.setAttribute('role', 'option'); - } - - // Ensure each item has an ID so we can set aria-activedescendant on the - // overall list whenever the selection changes. - // - // The ID will take the form of a base ID plus a unique integer. The base - // ID will be incorporate the component's own ID. E.g., if a component has - // ID "foo", then its items will have IDs that look like "_fooOption1". If - // the compnent has no ID itself, its items will get IDs that look like - // "_option1". Item IDs are prefixed with an underscore to differentiate - // them from manually-assigned IDs, and to minimize the potential for ID - // conflicts. - if (!item.id) { - var baseId = this.id ? "_" + this.id + "Option" : "_option"; - item.id = baseId + idCount++; - } - } - }, { - key: _symbols2.default.itemSelected, - value: function value(item, selected) { - if (_get(SelectionAriaActive.prototype.__proto__ || Object.getPrototypeOf(SelectionAriaActive.prototype), _symbols2.default.itemSelected, this)) { - _get(SelectionAriaActive.prototype.__proto__ || Object.getPrototypeOf(SelectionAriaActive.prototype), _symbols2.default.itemSelected, this).call(this, item, selected); - } - item.setAttribute('aria-selected', selected); - var itemId = item.id; - if (itemId && selected) { - this.setAttribute('aria-activedescendant', itemId); - } - } - }, { - key: _symbols2.default.defaults, - get: function get() { - var defaults = _get(SelectionAriaActive.prototype.__proto__ || Object.getPrototypeOf(SelectionAriaActive.prototype), _symbols2.default.defaults, this) || {}; - defaults.role = 'listbox'; - return defaults; - } - }, { - key: 'selectedItem', - get: function get() { - return _get(SelectionAriaActive.prototype.__proto__ || Object.getPrototypeOf(SelectionAriaActive.prototype), 'selectedItem', this); - }, - set: function set(item) { - if ('selectedItem' in base.prototype) { - _set(SelectionAriaActive.prototype.__proto__ || Object.getPrototypeOf(SelectionAriaActive.prototype), 'selectedItem', item, this); - } - if (item == null) { - // Selection was removed. - this.removeAttribute('aria-activedescendant'); - } - } - }]); - - return SelectionAriaActive; - }(base); - - return SelectionAriaActive; -}; - -},{"./symbols":17}],11:[function(require,module,exports){ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -/* Exported function extends a base class with ShadowElementReferences. */ -exports.default = function (base) { - - /** - * Mixin to create references to elements in a component's Shadow DOM subtree. - * - * This adds a member on the component called `this.$` that can be used to - * reference shadow elements with IDs. E.g., if component's shadow contains an - * element `