From 037ab4a42cbd82e3b1ef1b82c3e991fb67e06406 Mon Sep 17 00:00:00 2001 From: Jakob Anderson Date: Fri, 5 May 2017 21:56:21 -0600 Subject: [PATCH 1/4] most of first sw done --- gulpfile.js | 42 +++- package.json | 14 +- public/dist/js/loadJS.js | 24 +-- public/dist/js/loadJS.js.map | 1 + public/dist/js/sw-registration.js | 2 + public/dist/js/sw-registration.js.map | 1 + public/service-worker.js | 2 + public/service-worker.js.map | 1 + shrinkwrap.yaml | 113 +++++++++++ src/img/programming.svg | 58 ------ src/js/sw-registration.js | 62 ++++++ src/service-worker/service-worker.js | 268 ++++++++++++++++++++++++++ 12 files changed, 504 insertions(+), 84 deletions(-) create mode 100644 public/dist/js/loadJS.js.map create mode 100644 public/dist/js/sw-registration.js create mode 100644 public/dist/js/sw-registration.js.map create mode 100644 public/service-worker.js create mode 100644 public/service-worker.js.map delete mode 100644 src/img/programming.svg create mode 100644 src/js/sw-registration.js create mode 100644 src/service-worker/service-worker.js diff --git a/gulpfile.js b/gulpfile.js index 039a5d9..ef9acd9 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -16,6 +16,7 @@ const svgo = require('gulp-svgo'); const sass = require('gulp-sass'); const livereload = require('gulp-livereload'); const htmlmin = require('gulp-htmlmin'); +const swPrecache = require('sw-precache'); // CONFIG // ============================================================ @@ -105,7 +106,12 @@ cssWatcher.on('change', event => { // ============================================================ gulp.task('js', () => { - return gulp.src('./src/js/loadJS.js') + return gulp.src(['./src/js/*.js', '!./src/js/index.js']) + .pipe(sourcemaps.init({ + loadMaps: true + })) + .pipe(uglify(uglifyConf)) + .pipe(sourcemaps.write('./')) .pipe(gulp.dest('./public/dist/js')); }); @@ -142,13 +148,43 @@ gulp.task('html', () => { const htmlWatcher = gulp.watch('src/html/*.html', ['html']); htmlWatcher.on('change', event => { +// SERVICE WORKER +// ============================================================ + +const rootDir = './public'; +gulp.task('generate-service-worker', callback => { + swPrecache.write(`./src/service-worker/service-worker.js`, { + staticFileGlobs: [rootDir + '/**/*.{js,html,css,png,jpg,gif,svg,eot,ttf,woff}'], + stripPrefix: rootDir + }, callback); +}); + +const swWatcher = gulp.watch([rootDir + '/**/*.{js,html,css,png,jpg,gif,svg,eot,ttf,woff}'], ['generate-service-worker']); + +swWatcher.on('change', event => { + console.log('File ' + event.path + ' was ' + event.type + ', running tasks...'); +}); + +gulp.task('optimize-service-worker', () => { + gulp.src(`./src/service-worker/service-worker.js`) + .pipe(sourcemaps.init({ + loadMaps: true + })) + .pipe(uglify(uglifyConf)) + .pipe(sourcemaps.write('./')) + .pipe(gulp.dest('./public')); +}); + +const swOptoWatcher = gulp.watch(`./src/service-worker/service-worker.js`, ['optimize-service-worker']); + +swOptoWatcher.on('change', event => { console.log('File ' + event.path + ' was ' + event.type + ', running tasks...'); }); // BUILD // ============================================================ -gulp.task('build', () => { +gulp.task('build', ['css', 'js', 'img', 'html'], () => { return compile(); }); gulp.task('watch', () => { @@ -160,4 +196,4 @@ function glob() { return 'typeof self !== "undefined" ? self : ' + 'typeof window !== "undefined" ? window : {}'; // eslint-disable-line no-useless-concat } -gulp.task('default', ['watch']); +gulp.task('default', ['build', 'generate-service-worker', 'optimize-service-worker', 'watch']); diff --git a/package.json b/package.json index 59c460b..7bc10da 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,8 @@ }, "ignore": [ "src/js/loadJS.js", + "src/js/sw-registration.js", + "src/service-worker/service-worker.js", "public/**/*" ] }, @@ -62,17 +64,27 @@ "xo": "^0.18.1" }, "devDependencies": { + "autoprefixer": "^6.7.7", "babel-preset-env": "^1.4.0", "babel-preset-es2017": "^6.24.1", "babel-preset-latest": "^6.24.1", - "browserify": "^14.1.0", + "babelify": "^7.3.0", + "browserify": "^14.3.0", "chai": "^3.5.0", "gulp-htmlmin": "^3.0.0", + "cssnano": "^3.10.0", + "gulp": "^3.9.1", "gulp-livereload": "^3.8.1", + "gulp-postcss": "^6.4.0", "gulp-sass": "^3.1.0", + "gulp-sourcemaps": "^2.6.0", "gulp-svgo": "^1.0.3", + "gulp-uglify": "^2.1.2", "husky": "^0.13.3", "lint-staged": "^3.4.0", + "sw-precache": "^5.1.1", + "vinyl-buffer": "^1.0.0", + "vinyl-source-stream": "^1.1.0", "watchify": "^3.9.0" } } diff --git a/public/dist/js/loadJS.js b/public/dist/js/loadJS.js index 17db91e..5106909 100644 --- a/public/dist/js/loadJS.js +++ b/public/dist/js/loadJS.js @@ -1,22 +1,2 @@ -/*! loadJS: load a JS file asynchronously. [c]2014 @scottjehl, Filament Group, Inc. (Based on http://goo.gl/REQGQ by Paul Irish). Licensed MIT */ -(function( w ){ - var loadJS = function( src, cb ){ - "use strict"; - var ref = w.document.getElementsByTagName( "script" )[ 0 ]; - var script = w.document.createElement( "script" ); - script.src = src; - script.async = true; - ref.parentNode.insertBefore( script, ref ); - if (cb && typeof(cb) === "function") { - script.onload = cb; - } - return script; - }; - // commonjs - if( typeof module !== "undefined" ){ - module.exports = loadJS; - } - else { - w.loadJS = loadJS; - } -}( typeof global !== "undefined" ? global : this )); +!function(e){var t=function(t,n){"use strict";var o=e.document.getElementsByTagName("script")[0],r=e.document.createElement("script");return r.src=t,r.async=!0,o.parentNode.insertBefore(r,o),n&&"function"==typeof n&&(r.onload=n),r};"undefined"!=typeof module?module.exports=t:e.loadJS=t}("undefined"!=typeof global?global:this); +//# sourceMappingURL=loadJS.js.map diff --git a/public/dist/js/loadJS.js.map b/public/dist/js/loadJS.js.map new file mode 100644 index 0000000..f15c043 --- /dev/null +++ b/public/dist/js/loadJS.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["loadJS.js"],"names":["w","loadJS","src","cb","ref","document","getElementsByTagName","script","createElement","async","parentNode","insertBefore","onload","module","exports","global","this"],"mappings":"CACA,SAAUA,GACR,GAAIC,GAAS,SAASC,EAAKC,GACzB,YACA,IAAIC,GAAMJ,EAAEK,SAASC,qBAAqB,UAAU,GAChDC,EAASP,EAAEK,SAASG,cAAc,SAOtC,OANAD,GAAOL,IAAMA,EACbK,EAAOE,OAAQ,EACfL,EAAIM,WAAWC,aAAaJ,EAAQH,GAChCD,GAAoB,kBAAPA,KACfI,EAAOK,OAAST,GAEXI,EAGa,oBAAXM,QACTA,OAAOC,QAAUb,EAEjBD,EAAEC,OAASA,GAEM,mBAAXc,QAAyBA,OAASC","file":"loadJS.js","sourcesContent":["/*! loadJS: load a JS file asynchronously. [c]2014 @scottjehl, Filament Group, Inc. (Based on http://goo.gl/REQGQ by Paul Irish). Licensed MIT */\n(function(w) {\n var loadJS = function(src, cb) {\n 'use strict';\n var ref = w.document.getElementsByTagName('script')[0];\n var script = w.document.createElement('script');\n script.src = src;\n script.async = true;\n ref.parentNode.insertBefore(script, ref);\n if (cb && typeof cb === 'function') {\n script.onload = cb;\n }\n return script;\n };\n // commonjs\n if (typeof module !== 'undefined') {\n module.exports = loadJS;\n } else {\n w.loadJS = loadJS;\n }\n})(typeof global !== 'undefined' ? global : this);\n"]} \ No newline at end of file diff --git a/public/dist/js/sw-registration.js b/public/dist/js/sw-registration.js new file mode 100644 index 0000000..730fa6e --- /dev/null +++ b/public/dist/js/sw-registration.js @@ -0,0 +1,2 @@ +"use strict";"serviceWorker"in navigator&&window.addEventListener("load",function(){navigator.serviceWorker.register("service-worker.js").then(function(e){e.onupdatefound=function(){var n=e.installing;n.onstatechange=function(){switch(n.state){case"installed":navigator.serviceWorker.controller?console.log("New or updated content is available."):console.log("Content is now available offline!");break;case"redundant":console.error("The installing service worker became redundant.")}}}}).catch(function(e){console.error("Error during service worker registration:",e)})}); +//# sourceMappingURL=sw-registration.js.map diff --git a/public/dist/js/sw-registration.js.map b/public/dist/js/sw-registration.js.map new file mode 100644 index 0000000..7470abf --- /dev/null +++ b/public/dist/js/sw-registration.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["sw-registration.js"],"names":["navigator","window","addEventListener","serviceWorker","register","then","reg","onupdatefound","installingWorker","installing","onstatechange","state","controller","console","log","error","catch","e"],"mappings":"AAiBA,YAEI,kBAAmBA,YAIrBC,OAAOC,iBAAiB,OAAQ,WAK9BF,UAAUG,cAAcC,SAAS,qBAAqBC,KAAK,SAASC,GAElEA,EAAIC,cAAgB,WAGlB,GAAIC,GAAmBF,EAAIG,UAE3BD,GAAiBE,cAAgB,WAC/B,OAAQF,EAAiBG,OACvB,IAAK,YACCX,UAAUG,cAAcS,WAK1BC,QAAQC,IAAI,wCAIZD,QAAQC,IAAI,oCAEd,MAEF,KAAK,YACHD,QAAQE,MAAM,wDAKrBC,MAAM,SAASC,GAChBJ,QAAQE,MAAM,4CAA6CE","file":"sw-registration.js","sourcesContent":["/**\n * Copyright 2015 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-env browser */\n'use strict';\n\nif ('serviceWorker' in navigator) {\n // Delay registration until after the page has loaded, to ensure that our\n // precaching requests don't degrade the first visit experience.\n // See https://developers.google.com/web/fundamentals/instant-and-offline/service-worker/registration\n window.addEventListener('load', function() {\n // Your service-worker.js *must* be located at the top-level directory relative to your site.\n // It won't be able to control pages unless it's located at the same level or higher than them.\n // *Don't* register service worker file in, e.g., a scripts/ sub-directory!\n // See https://github.com/slightlyoff/ServiceWorker/issues/468\n navigator.serviceWorker.register('service-worker.js').then(function(reg) {\n // updatefound is fired if service-worker.js changes.\n reg.onupdatefound = function() {\n // The updatefound event implies that reg.installing is set; see\n // https://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html#service-worker-container-updatefound-event\n var installingWorker = reg.installing;\n\n installingWorker.onstatechange = function() {\n switch (installingWorker.state) {\n case 'installed':\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n // It's the perfect time to display a \"New content is available; please refresh.\"\n // message in the page's interface.\n console.log('New or updated content is available.');\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log('Content is now available offline!');\n }\n break;\n\n case 'redundant':\n console.error('The installing service worker became redundant.');\n break;\n }\n };\n };\n }).catch(function(e) {\n console.error('Error during service worker registration:', e);\n });\n });\n}\n"]} \ No newline at end of file diff --git a/public/service-worker.js b/public/service-worker.js new file mode 100644 index 0000000..5827b98 --- /dev/null +++ b/public/service-worker.js @@ -0,0 +1,2 @@ +"use strict";function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}var precacheConfig=[["/404.html","0a27a4163254fc8fce870c8cc3a3f94f"],["/dist/css/min.min.css","4f567068e97b5d7aca24b66316d9424a"],["/dist/css/style.css","d70e1325f89dcb315caf497e339674ac"],["/dist/img/back.svg","898ada2a32ec64bd5b6959c22e8f231d"],["/dist/img/monitor.svg","348592da5567b5a3c46acfb5dcd341bc"],["/dist/img/next.svg","045593410b9f51390e750b9e1e7fff15"],["/dist/img/programming.svg","2e0c467398a43b78494bd384b280ba66"],["/dist/img/reload.svg","a0ab1b765280e4d22e6fb747042f6503"],["/dist/img/shuffle.svg","3a5e3c1bf04eb3493d8a2ffa547aa58f"],["/dist/js/bundle.min.js","3e56c92d7228ef0fa5542d11c2750382"],["/dist/js/loadJS.js","72c55936069f60560a386e46f462c73a"],["/dist/js/sw-registration.js","677217d8e642c1ccff69fc01c96b4431"],["/index.html","b67e5ee55ae315df9ad2a5425dbbfe1d"],["/service-worker.js","ab029ed1eb0fee8b6e6110d8fe5c6a21"]],cacheName="sw-precache-v3--"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){var a=new URL(e);return r&&a.pathname.match(r)||(a.search+=(a.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),a.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.hash="",n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),a=createCacheKey(r,hashParamName,n,!1);return[r.toString(),a]}));self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var r=new Request(n,{credentials:"same-origin"});return fetch(r).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);t=urlsToCacheKeys.has(n);t||(n=addDirectoryIndex(n,"index.html"),t=urlsToCacheKeys.has(n));t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}}); +//# sourceMappingURL=service-worker.js.map diff --git a/public/service-worker.js.map b/public/service-worker.js.map new file mode 100644 index 0000000..d08f78d --- /dev/null +++ b/public/service-worker.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["service-worker.js"],"names":["setOfCachedUrls","cache","keys","then","requests","map","request","url","urls","Set","precacheConfig","cacheName","self","registration","scope","ignoreUrlParametersMatching","addDirectoryIndex","originalUrl","index","URL","pathname","slice","toString","cleanResponse","originalResponse","redirected","Promise","resolve","body","blob","Response","headers","status","statusText","createCacheKey","paramName","paramValue","dontCacheBustUrlsMatching","match","search","encodeURIComponent","isPathWhitelisted","whitelist","absoluteUrlString","length","path","some","whitelistedPathRegex","stripIgnoredUrlParameters","hash","split","kv","filter","every","ignoredRegex","test","join","hashParamName","urlsToCacheKeys","Map","item","relativeUrl","absoluteUrl","location","cacheKey","addEventListener","event","waitUntil","caches","open","cachedUrls","all","Array","from","values","has","Request","credentials","fetch","response","ok","Error","responseToCache","put","skipWaiting","setOfExpectedUrls","existingRequests","existingRequest","delete","clients","claim","method","shouldRespond","respondWith","get","catch","e","console","warn"],"mappings":"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","file":"service-worker.js","sourcesContent":["/**\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n*/\n\n// DO NOT EDIT THIS GENERATED OUTPUT DIRECTLY!\n// This file should be overwritten as part of your build process.\n// If you need to extend the behavior of the generated service worker, the best approach is to write\n// additional code and include it using the importScripts option:\n// https://github.com/GoogleChrome/sw-precache#importscripts-arraystring\n//\n// Alternatively, it's possible to make changes to the underlying template file and then use that as the\n// new base for generating output, via the templateFilePath option:\n// https://github.com/GoogleChrome/sw-precache#templatefilepath-string\n//\n// If you go that route, make sure that whenever you update your sw-precache dependency, you reconcile any\n// changes made to this original template file with your modified copy.\n\n// This generated service worker JavaScript will precache your site's resources.\n// The code needs to be saved in a .js file at the top-level of your site, and registered\n// from your pages in order to be used. See\n// https://github.com/googlechrome/sw-precache/blob/master/demo/app/js/service-worker-registration.js\n// for an example of how you can register this script and handle various service worker events.\n\n/* eslint-env worker, serviceworker */\n/* eslint-disable indent, no-unused-vars, no-multiple-empty-lines, max-nested-callbacks, space-before-function-paren, quotes, comma-spacing */\n'use strict';\n\nvar precacheConfig = [[\"/404.html\",\"0a27a4163254fc8fce870c8cc3a3f94f\"],[\"/dist/css/min.min.css\",\"4f567068e97b5d7aca24b66316d9424a\"],[\"/dist/css/style.css\",\"d70e1325f89dcb315caf497e339674ac\"],[\"/dist/img/back.svg\",\"898ada2a32ec64bd5b6959c22e8f231d\"],[\"/dist/img/monitor.svg\",\"348592da5567b5a3c46acfb5dcd341bc\"],[\"/dist/img/next.svg\",\"045593410b9f51390e750b9e1e7fff15\"],[\"/dist/img/programming.svg\",\"2e0c467398a43b78494bd384b280ba66\"],[\"/dist/img/reload.svg\",\"a0ab1b765280e4d22e6fb747042f6503\"],[\"/dist/img/shuffle.svg\",\"3a5e3c1bf04eb3493d8a2ffa547aa58f\"],[\"/dist/js/bundle.min.js\",\"3e56c92d7228ef0fa5542d11c2750382\"],[\"/dist/js/loadJS.js\",\"72c55936069f60560a386e46f462c73a\"],[\"/dist/js/sw-registration.js\",\"677217d8e642c1ccff69fc01c96b4431\"],[\"/index.html\",\"b67e5ee55ae315df9ad2a5425dbbfe1d\"],[\"/service-worker.js\",\"ab029ed1eb0fee8b6e6110d8fe5c6a21\"]];\nvar cacheName = 'sw-precache-v3--' + (self.registration ? self.registration.scope : '');\n\n\nvar ignoreUrlParametersMatching = [/^utm_/];\n\n\n\nvar addDirectoryIndex = function (originalUrl, index) {\n var url = new URL(originalUrl);\n if (url.pathname.slice(-1) === '/') {\n url.pathname += index;\n }\n return url.toString();\n };\n\nvar cleanResponse = function (originalResponse) {\n // If this is not a redirected response, then we don't have to do anything.\n if (!originalResponse.redirected) {\n return Promise.resolve(originalResponse);\n }\n\n // Firefox 50 and below doesn't support the Response.body stream, so we may\n // need to read the entire body to memory as a Blob.\n var bodyPromise = 'body' in originalResponse ?\n Promise.resolve(originalResponse.body) :\n originalResponse.blob();\n\n return bodyPromise.then(function(body) {\n // new Response() is happy when passed either a stream or a Blob.\n return new Response(body, {\n headers: originalResponse.headers,\n status: originalResponse.status,\n statusText: originalResponse.statusText\n });\n });\n };\n\nvar createCacheKey = function (originalUrl, paramName, paramValue,\n dontCacheBustUrlsMatching) {\n // Create a new URL object to avoid modifying originalUrl.\n var url = new URL(originalUrl);\n\n // If dontCacheBustUrlsMatching is not set, or if we don't have a match,\n // then add in the extra cache-busting URL parameter.\n if (!dontCacheBustUrlsMatching ||\n !(url.pathname.match(dontCacheBustUrlsMatching))) {\n url.search += (url.search ? '&' : '') +\n encodeURIComponent(paramName) + '=' + encodeURIComponent(paramValue);\n }\n\n return url.toString();\n };\n\nvar isPathWhitelisted = function (whitelist, absoluteUrlString) {\n // If the whitelist is empty, then consider all URLs to be whitelisted.\n if (whitelist.length === 0) {\n return true;\n }\n\n // Otherwise compare each path regex to the path of the URL passed in.\n var path = (new URL(absoluteUrlString)).pathname;\n return whitelist.some(function(whitelistedPathRegex) {\n return path.match(whitelistedPathRegex);\n });\n };\n\nvar stripIgnoredUrlParameters = function (originalUrl,\n ignoreUrlParametersMatching) {\n var url = new URL(originalUrl);\n // Remove the hash; see https://github.com/GoogleChrome/sw-precache/issues/290\n url.hash = '';\n\n url.search = url.search.slice(1) // Exclude initial '?'\n .split('&') // Split into an array of 'key=value' strings\n .map(function(kv) {\n return kv.split('='); // Split each 'key=value' string into a [key, value] array\n })\n .filter(function(kv) {\n return ignoreUrlParametersMatching.every(function(ignoredRegex) {\n return !ignoredRegex.test(kv[0]); // Return true iff the key doesn't match any of the regexes.\n });\n })\n .map(function(kv) {\n return kv.join('='); // Join each [key, value] array into a 'key=value' string\n })\n .join('&'); // Join the array of 'key=value' strings into a string with '&' in between each\n\n return url.toString();\n };\n\n\nvar hashParamName = '_sw-precache';\nvar urlsToCacheKeys = new Map(\n precacheConfig.map(function(item) {\n var relativeUrl = item[0];\n var hash = item[1];\n var absoluteUrl = new URL(relativeUrl, self.location);\n var cacheKey = createCacheKey(absoluteUrl, hashParamName, hash, false);\n return [absoluteUrl.toString(), cacheKey];\n })\n);\n\nfunction setOfCachedUrls(cache) {\n return cache.keys().then(function(requests) {\n return requests.map(function(request) {\n return request.url;\n });\n }).then(function(urls) {\n return new Set(urls);\n });\n}\n\nself.addEventListener('install', function(event) {\n event.waitUntil(\n caches.open(cacheName).then(function(cache) {\n return setOfCachedUrls(cache).then(function(cachedUrls) {\n return Promise.all(\n Array.from(urlsToCacheKeys.values()).map(function(cacheKey) {\n // If we don't have a key matching url in the cache already, add it.\n if (!cachedUrls.has(cacheKey)) {\n var request = new Request(cacheKey, {credentials: 'same-origin'});\n return fetch(request).then(function(response) {\n // Bail out of installation unless we get back a 200 OK for\n // every request.\n if (!response.ok) {\n throw new Error('Request for ' + cacheKey + ' returned a ' +\n 'response with status ' + response.status);\n }\n\n return cleanResponse(response).then(function(responseToCache) {\n return cache.put(cacheKey, responseToCache);\n });\n });\n }\n })\n );\n });\n }).then(function() {\n \n // Force the SW to transition from installing -> active state\n return self.skipWaiting();\n \n })\n );\n});\n\nself.addEventListener('activate', function(event) {\n var setOfExpectedUrls = new Set(urlsToCacheKeys.values());\n\n event.waitUntil(\n caches.open(cacheName).then(function(cache) {\n return cache.keys().then(function(existingRequests) {\n return Promise.all(\n existingRequests.map(function(existingRequest) {\n if (!setOfExpectedUrls.has(existingRequest.url)) {\n return cache.delete(existingRequest);\n }\n })\n );\n });\n }).then(function() {\n \n return self.clients.claim();\n \n })\n );\n});\n\n\nself.addEventListener('fetch', function(event) {\n if (event.request.method === 'GET') {\n // Should we call event.respondWith() inside this fetch event handler?\n // This needs to be determined synchronously, which will give other fetch\n // handlers a chance to handle the request if need be.\n var shouldRespond;\n\n // First, remove all the ignored parameters and hash fragment, and see if we\n // have that URL in our cache. If so, great! shouldRespond will be true.\n var url = stripIgnoredUrlParameters(event.request.url, ignoreUrlParametersMatching);\n shouldRespond = urlsToCacheKeys.has(url);\n\n // If shouldRespond is false, check again, this time with 'index.html'\n // (or whatever the directoryIndex option is set to) at the end.\n var directoryIndex = 'index.html';\n if (!shouldRespond && directoryIndex) {\n url = addDirectoryIndex(url, directoryIndex);\n shouldRespond = urlsToCacheKeys.has(url);\n }\n\n // If shouldRespond is still false, check to see if this is a navigation\n // request, and if so, whether the URL matches navigateFallbackWhitelist.\n var navigateFallback = '';\n if (!shouldRespond &&\n navigateFallback &&\n (event.request.mode === 'navigate') &&\n isPathWhitelisted([], event.request.url)) {\n url = new URL(navigateFallback, self.location).toString();\n shouldRespond = urlsToCacheKeys.has(url);\n }\n\n // If shouldRespond was set to true at any point, then call\n // event.respondWith(), using the appropriate cache key.\n if (shouldRespond) {\n event.respondWith(\n caches.open(cacheName).then(function(cache) {\n return cache.match(urlsToCacheKeys.get(url)).then(function(response) {\n if (response) {\n return response;\n }\n throw Error('The cached response that was expected is missing.');\n });\n }).catch(function(e) {\n // Fall back to just fetch()ing the request if some unexpected error\n // prevented the cached response from being valid.\n console.warn('Couldn\\'t serve response for \"%s\" from cache: %O', event.request.url, e);\n return fetch(event.request);\n })\n );\n }\n }\n});\n\n\n\n\n\n\n\n"]} \ No newline at end of file diff --git a/shrinkwrap.yaml b/shrinkwrap.yaml index 1188978..1d6e66e 100644 --- a/shrinkwrap.yaml +++ b/shrinkwrap.yaml @@ -7,10 +7,16 @@ dependencies: babel-preset-es2017@^6.24.1: 6.24.1 babel-preset-latest@^6.24.1: 6.24.1 babelify@^7.3.0: 7.3.0 +<<<<<<< HEAD browserify@^14.1.0: 14.3.0 chai@^3.5.0: 3.5.0 cssnano@^3.10.0: 3.10.0 gulp-htmlmin@^3.0.0: 3.0.0 +======= + browserify@^14.3.0: 14.3.0 + chai@^3.5.0: 3.5.0 + cssnano@^3.10.0: 3.10.0 +>>>>>>> most of first sw done gulp-livereload@^3.8.1: 3.8.1 gulp-postcss@^6.4.0: 6.4.0 gulp-sass@^3.1.0: 3.1.0 @@ -24,6 +30,10 @@ dependencies: localforage@^1.5.0: 1.5.0 rollup-stream@^1.19.0: 1.19.0 static-eval@^1.1.1: 1.1.1 +<<<<<<< HEAD +======= + sw-precache@^5.1.1: 5.1.1 +>>>>>>> most of first sw done uglifyify@^3.0.4: 3.0.4 vinyl-buffer@^1.0.0: 1.0.0 vinyl-source-stream@^1.1.0: 1.1.0 @@ -858,10 +868,13 @@ packages: base64-js: 1.2.0 ieee754: 1.1.8 resolution: 2ea669f7eec0b6eda05b08f8b5ff661b28573588 +<<<<<<< HEAD /bufferstreams/1.1.1: dependencies: readable-stream: 2.2.9 resolution: 0161373060ac5988eff99058731114f6e195d51e +======= +>>>>>>> most of first sw done /builtin-modules/1.1.1: 270f076c5a72c02f5b65a47df94c5fe3a278892f /builtin-status-codes/3.0.0: 85982878e21b98e1c66425e03d0174788f569ee8 /bytes/2.2.0: fd35464a403f6f9117c2de3609ecff9cae000588 @@ -886,11 +899,14 @@ packages: callsites: 0.2.0 resolution: 94085ef63581ecd3daa92444a8fe94e82577751f /callsites/0.2.0: afab96262910a7f33c19a5775825c69f34e350ca +<<<<<<< HEAD /camel-case/3.0.0: dependencies: no-case: 2.3.1 upper-case: 1.1.3 resolution: ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73 +======= +>>>>>>> most of first sw done /camelcase-keys/2.1.0: dependencies: camelcase: 2.1.1 @@ -965,10 +981,13 @@ packages: dependencies: chalk: 1.1.3 resolution: b3bd36e93dd4cbfb395a3c26896352445265c05b +<<<<<<< HEAD /clean-css/4.0.12: dependencies: source-map: 0.5.6 resolution: a02e61707f1840bd3338f54dbc9acbda4e772fa3 +======= +>>>>>>> most of first sw done /clean-stack/1.1.1: a1b3711122df162df7c7cb9b3c0470f28cb58adb /clean-yaml-object/0.1.0: 63fb110dc2ce1a84dc21f6d9334876d010ae8b68 /cli-boxes/1.0.0: 4fa917c3e59c94a004cd61f8ee509da651687143 @@ -1349,6 +1368,13 @@ packages: esutils: 2.0.2 isarray: 1.0.0 resolution: c73d8d2909d22291e1a007a395804da8b665fe63 +<<<<<<< HEAD +======= + /dom-urls/1.1.0: + dependencies: + urijs: 1.18.10 + resolution: 001ddf81628cd1e706125c7176f53ccec55d918e +>>>>>>> most of first sw done /domain-browser/1.1.7: 867aa4b093faa05f1de08c06f4d7b21fdf8698bc /dot-prop/3.0.0: dependencies: @@ -1429,6 +1455,10 @@ packages: es6-symbol: 3.1.1 event-emitter: 0.3.5 resolution: 9136e0503dcc06a301690f0bb14ff4e364e949f0 +<<<<<<< HEAD +======= + /es6-promise/4.1.0: dda03ca8f9f89bc597e689842929de7ba8cebdf0 +>>>>>>> most of first sw done /es6-set/0.1.5: dependencies: d: 1.0.0 @@ -1955,6 +1985,7 @@ packages: resolution: 7613c778a1afea62f25c630a086d7f3acbbdd818 /graceful-fs/4.1.11: 0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658 /graceful-readlink/1.0.1: 4cafad76bc62f02fa039b2f94e9a3dd3a391a725 +<<<<<<< HEAD /gulp-htmlmin/3.0.0: dependencies: bufferstreams: 1.1.1 @@ -1964,6 +1995,8 @@ packages: readable-stream: 2.2.9 tryit: 1.0.3 resolution: 19ea8002d1231d6b1f18a12d20f2a66a77770fb3 +======= +>>>>>>> most of first sw done /gulp-livereload/3.8.1: dependencies: chalk: 0.5.1 @@ -2097,7 +2130,10 @@ packages: hoek: 2.16.3 sntp: 1.0.9 resolution: 078444bd7c1640b0fe540d2c9b73d59678e8e1c4 +<<<<<<< HEAD /he/1.1.1: 93410fd21b009735151f8868c2f271f3427e23fd +======= +>>>>>>> most of first sw done /hmac-drbg/1.0.1: dependencies: hash.js: 1.0.3 @@ -2116,6 +2152,7 @@ packages: resolution: 4c2bbc8a758998feebf5ed68580f76d46768b4bc /hosted-git-info/2.4.2: 0076b9f46a270506ddbaaea56496897460612a67 /html-comment-regex/1.1.1: 668b93776eaae55ebde8f3ad464b307a4963625e +<<<<<<< HEAD /html-minifier/3.4.3: dependencies: camel-case: 3.0.0 @@ -2127,6 +2164,8 @@ packages: relateurl: 0.2.7 uglify-js: 2.8.22 resolution: eb3a7297c804611f470454eeebe0aacc427e424a +======= +>>>>>>> most of first sw done /htmlescape/1.1.1: 3a03edc2214bca3b66424a3e7959349509cb0351 /http-errors/1.3.1: dependencies: @@ -2584,6 +2623,10 @@ packages: /lodash.clonedeep/4.5.0: e23f3f9c4f8fbdde872529c1071857a086e5ccef /lodash.cond/4.5.2: f471a1da486be60f6ab955d17115523dd1d255d5 /lodash.debounce/4.0.8: 82d79bff30a67c4005ffd5e2515300ad9ca4d7af +<<<<<<< HEAD +======= + /lodash.defaults/4.2.0: d09178716ffea4dde9e5fb7b37f6f0802274580c +>>>>>>> most of first sw done /lodash.difference/4.5.0: 9ccb4e505d486b91651345772885a2df27fd017c /lodash.escape/3.2.0: dependencies: @@ -2622,11 +2665,26 @@ packages: lodash.restparam: 3.6.1 lodash.templatesettings: 3.1.1 resolution: f8cdecc6169a255be9098ae8b0c53d378931d14f +<<<<<<< HEAD +======= + /lodash.template/4.4.0: + dependencies: + lodash._reinterpolate: 3.0.0 + lodash.templatesettings: 4.1.0 + resolution: e73a0385c8355591746e020b99679c690e68fba0 +>>>>>>> most of first sw done /lodash.templatesettings/3.1.1: dependencies: lodash._reinterpolate: 3.0.0 lodash.escape: 3.2.0 resolution: fb307844753b66b9f1afa54e262c745307dba8e5 +<<<<<<< HEAD +======= + /lodash.templatesettings/4.1.0: + dependencies: + lodash._reinterpolate: 3.0.0 + resolution: 2b4d4e95ba440d915ff08bc899e4553666713316 +>>>>>>> most of first sw done /lodash.uniq/4.5.0: d0225373aeb652adc1bc82e4945339a842754773 /lodash.upperfirst/4.3.1: 1365edf431480481ef0d1c68957a5ed99d49f7ce /lodash/1.0.2: 8f57560c83b59fc270bd3d561b690043430e2551 @@ -2651,7 +2709,10 @@ packages: currently-unhandled: 0.4.1 signal-exit: 3.0.2 resolution: 5b46f80147edee578870f086d04821cf998e551f +<<<<<<< HEAD /lower-case/1.1.4: 9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac +======= +>>>>>>> most of first sw done /lowercase-keys/1.0.0: 4e3366b39e7f5457e35f1324bdf6f88d0bfc7306 /lru-cache/2.7.3: 6d4524e8b955f95d4f5b58851ce21dd72fb4e952 /lru-cache/4.0.2: @@ -2789,6 +2850,7 @@ packages: /nan/2.6.2: e4ff34e6c95fdfb5aecc08de6596f43605a7db45 /natives/1.1.0: e9ff841418a6b2ec7a495e939984f78f163e6e31 /natural-compare/1.4.0: 4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7 +<<<<<<< HEAD /ncname/1.0.0: dependencies: xml-char-classes: 1.0.0 @@ -2797,6 +2859,8 @@ packages: dependencies: lower-case: 1.1.4 resolution: 7aeba1c73a52184265554b7dc03baf720df80081 +======= +>>>>>>> most of first sw done /node-gyp/3.6.1: dependencies: fstream: 1.0.11 @@ -2988,10 +3052,13 @@ packages: semver: 5.3.0 resolution: 8869a0401253661c4c4ca3da6c2121ed555f5eed /pako/0.2.9: f3f7522f4ef782348da8161bad9ecfd51bf83a75 +<<<<<<< HEAD /param-case/2.1.1: dependencies: no-case: 2.3.1 resolution: df94fd8cf6531ecf75e6bef9a0858fbc72be2247 +======= +>>>>>>> most of first sw done /parents/1.0.1: dependencies: path-platform: 0.11.15 @@ -3042,6 +3109,13 @@ packages: dependencies: path-root-regex: 0.1.2 resolution: 9a4a6814cac1c0cd73360a95f32083c8ea4745b7 +<<<<<<< HEAD +======= + /path-to-regexp/1.7.0: + dependencies: + isarray: 0.0.1 + resolution: 59fde0f435badacba103a84e9d3bc64e96b9937d +>>>>>>> most of first sw done /path-type/1.1.0: dependencies: graceful-fs: 4.1.11 @@ -3262,6 +3336,10 @@ packages: /prelude-ls/1.1.2: 21932a549f5e52ffd9a827f570e04be62a97da54 /prepend-http/1.0.4: d4f4562b0ce3696e41ac52d0e002e57a635dc6dc /preserve/0.2.0: 815ed1f6ebc65926f865b310c0713bcb3315ce4b +<<<<<<< HEAD +======= + /pretty-bytes/4.0.2: b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9 +>>>>>>> most of first sw done /pretty-format/18.1.0: dependencies: ansi-styles: 2.2.1 @@ -3459,7 +3537,10 @@ packages: dependencies: jsesc: 0.5.0 resolution: 7ee8f84dc6fa792d3fd0ae228d24bd949ead205c +<<<<<<< HEAD /relateurl/0.2.7: 54dbf377e51440aca90a4cd274600d3ff2d888a9 +======= +>>>>>>> most of first sw done /remove-trailing-separator/1.0.1: 615ebb96af559552d4bf4057c8436d486ab63cc4 /repeat-element/1.1.2: ef089a178d1483baae4d93eb98b4f9e4e11d990a /repeat-string/1.6.1: 8dcae470e1c88abc2d600fff4a776286da75e637 @@ -3577,6 +3658,10 @@ packages: /semver/4.3.6: 300bc6e0e86374f7ba61068b5b1ecd57fc6532da /semver/5.3.0: 9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f /sequencify/0.0.7: 90cff19d02e07027fd767f5ead3e7b95d1e7380c +<<<<<<< HEAD +======= + /serviceworker-cache-polyfill/4.0.0: de19ee73bef21ab3c0740a37b33db62464babdeb +>>>>>>> most of first sw done /set-blocking/2.0.0: 045f9782d011ae9a6803ddd382b24392b3d890f7 /set-immediate-shim/1.0.1: 4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61 /sha.js/2.4.8: @@ -3790,6 +3875,27 @@ packages: sax: 1.2.2 whet.extend: 0.9.9 resolution: 9f5772413952135c6fefbf40afe6a4faa88b4bb5 +<<<<<<< HEAD +======= + /sw-precache/5.1.1: + dependencies: + dom-urls: 1.1.0 + es6-promise: 4.1.0 + glob: 7.1.1 + lodash.defaults: 4.2.0 + lodash.template: 4.4.0 + meow: 3.7.0 + mkdirp: 0.5.1 + pretty-bytes: 4.0.2 + sw-toolbox: 3.6.0 + update-notifier: 1.0.3 + resolution: 928720957463e55ed56777e177c4699f35ec59b6 + /sw-toolbox/3.6.0: + dependencies: + path-to-regexp: 1.7.0 + serviceworker-cache-polyfill: 4.0.0 + resolution: 26df1d1c70348658e4dea2884319149b7b3183b5 +>>>>>>> most of first sw done /symbol-observable/0.2.4: 95a83db26186d6af7e7a18dbd9760a2f86d08f40 /symbol-observable/1.0.4: 29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d /syntax-error/1.3.0: @@ -3940,7 +4046,11 @@ packages: semver-diff: 2.1.0 xdg-basedir: 3.0.0 resolution: ec0c1e53536b76647a24b77cb83966d9315123d9 +<<<<<<< HEAD /upper-case/1.1.3: f6b4501c2ec4cdd26ba78be7222961de77621598 +======= + /urijs/1.18.10: b94463eaba59a1a796036a467bb633c667f221ab +>>>>>>> most of first sw done /urix/0.1.0: da937f7a62e21fec1fd18d49b35c2935067a6c72 /url-parse-lax/1.0.0: dependencies: @@ -4089,7 +4199,10 @@ packages: os-homedir: 1.0.2 resolution: edbc903cc385fc04523d966a335504b5504d1bd2 /xdg-basedir/3.0.0: 496b2cc109eca8dbacfe2dc72b603c17c5870ad4 +<<<<<<< HEAD /xml-char-classes/1.0.0: 64657848a20ffc5df583a42ad8a277b4512bbc4d +======= +>>>>>>> most of first sw done /xo-init/0.5.0: dependencies: arrify: 1.0.1 diff --git a/src/img/programming.svg b/src/img/programming.svg deleted file mode 100644 index 72dda33..0000000 --- a/src/img/programming.svg +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/js/sw-registration.js b/src/js/sw-registration.js new file mode 100644 index 0000000..e89448d --- /dev/null +++ b/src/js/sw-registration.js @@ -0,0 +1,62 @@ +/** + * Copyright 2015 Google Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* eslint-env browser */ +'use strict'; + +if ('serviceWorker' in navigator) { + // Delay registration until after the page has loaded, to ensure that our + // precaching requests don't degrade the first visit experience. + // See https://developers.google.com/web/fundamentals/instant-and-offline/service-worker/registration + window.addEventListener('load', function() { + // Your service-worker.js *must* be located at the top-level directory relative to your site. + // It won't be able to control pages unless it's located at the same level or higher than them. + // *Don't* register service worker file in, e.g., a scripts/ sub-directory! + // See https://github.com/slightlyoff/ServiceWorker/issues/468 + navigator.serviceWorker.register('service-worker.js').then(function(reg) { + // updatefound is fired if service-worker.js changes. + reg.onupdatefound = function() { + // The updatefound event implies that reg.installing is set; see + // https://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html#service-worker-container-updatefound-event + var installingWorker = reg.installing; + + installingWorker.onstatechange = function() { + switch (installingWorker.state) { + case 'installed': + if (navigator.serviceWorker.controller) { + // At this point, the old content will have been purged and the fresh content will + // have been added to the cache. + // It's the perfect time to display a "New content is available; please refresh." + // message in the page's interface. + console.log('New or updated content is available.'); + } else { + // At this point, everything has been precached. + // It's the perfect time to display a "Content is cached for offline use." message. + console.log('Content is now available offline!'); + } + break; + + case 'redundant': + console.error('The installing service worker became redundant.'); + break; + } + }; + }; + }).catch(function(e) { + console.error('Error during service worker registration:', e); + }); + }); +} diff --git a/src/service-worker/service-worker.js b/src/service-worker/service-worker.js new file mode 100644 index 0000000..8548b45 --- /dev/null +++ b/src/service-worker/service-worker.js @@ -0,0 +1,268 @@ +/** + * Copyright 2016 Google Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ + +// DO NOT EDIT THIS GENERATED OUTPUT DIRECTLY! +// This file should be overwritten as part of your build process. +// If you need to extend the behavior of the generated service worker, the best approach is to write +// additional code and include it using the importScripts option: +// https://github.com/GoogleChrome/sw-precache#importscripts-arraystring +// +// Alternatively, it's possible to make changes to the underlying template file and then use that as the +// new base for generating output, via the templateFilePath option: +// https://github.com/GoogleChrome/sw-precache#templatefilepath-string +// +// If you go that route, make sure that whenever you update your sw-precache dependency, you reconcile any +// changes made to this original template file with your modified copy. + +// This generated service worker JavaScript will precache your site's resources. +// The code needs to be saved in a .js file at the top-level of your site, and registered +// from your pages in order to be used. See +// https://github.com/googlechrome/sw-precache/blob/master/demo/app/js/service-worker-registration.js +// for an example of how you can register this script and handle various service worker events. + +/* eslint-env worker, serviceworker */ +/* eslint-disable indent, no-unused-vars, no-multiple-empty-lines, max-nested-callbacks, space-before-function-paren, quotes, comma-spacing */ +'use strict'; + +var precacheConfig = [["/404.html","0a27a4163254fc8fce870c8cc3a3f94f"],["/dist/css/min.min.css","4f567068e97b5d7aca24b66316d9424a"],["/dist/css/style.css","d70e1325f89dcb315caf497e339674ac"],["/dist/img/back.svg","898ada2a32ec64bd5b6959c22e8f231d"],["/dist/img/monitor.svg","348592da5567b5a3c46acfb5dcd341bc"],["/dist/img/next.svg","045593410b9f51390e750b9e1e7fff15"],["/dist/img/programming.svg","2e0c467398a43b78494bd384b280ba66"],["/dist/img/reload.svg","a0ab1b765280e4d22e6fb747042f6503"],["/dist/img/shuffle.svg","3a5e3c1bf04eb3493d8a2ffa547aa58f"],["/dist/js/bundle.min.js","3e56c92d7228ef0fa5542d11c2750382"],["/dist/js/loadJS.js","72c55936069f60560a386e46f462c73a"],["/dist/js/sw-registration.js","677217d8e642c1ccff69fc01c96b4431"],["/index.html","b67e5ee55ae315df9ad2a5425dbbfe1d"],["/service-worker.js","f2b362a90afad57a219720682d8cfdb5"]]; +var cacheName = 'sw-precache-v3--' + (self.registration ? self.registration.scope : ''); + + +var ignoreUrlParametersMatching = [/^utm_/]; + + + +var addDirectoryIndex = function (originalUrl, index) { + var url = new URL(originalUrl); + if (url.pathname.slice(-1) === '/') { + url.pathname += index; + } + return url.toString(); + }; + +var cleanResponse = function (originalResponse) { + // If this is not a redirected response, then we don't have to do anything. + if (!originalResponse.redirected) { + return Promise.resolve(originalResponse); + } + + // Firefox 50 and below doesn't support the Response.body stream, so we may + // need to read the entire body to memory as a Blob. + var bodyPromise = 'body' in originalResponse ? + Promise.resolve(originalResponse.body) : + originalResponse.blob(); + + return bodyPromise.then(function(body) { + // new Response() is happy when passed either a stream or a Blob. + return new Response(body, { + headers: originalResponse.headers, + status: originalResponse.status, + statusText: originalResponse.statusText + }); + }); + }; + +var createCacheKey = function (originalUrl, paramName, paramValue, + dontCacheBustUrlsMatching) { + // Create a new URL object to avoid modifying originalUrl. + var url = new URL(originalUrl); + + // If dontCacheBustUrlsMatching is not set, or if we don't have a match, + // then add in the extra cache-busting URL parameter. + if (!dontCacheBustUrlsMatching || + !(url.pathname.match(dontCacheBustUrlsMatching))) { + url.search += (url.search ? '&' : '') + + encodeURIComponent(paramName) + '=' + encodeURIComponent(paramValue); + } + + return url.toString(); + }; + +var isPathWhitelisted = function (whitelist, absoluteUrlString) { + // If the whitelist is empty, then consider all URLs to be whitelisted. + if (whitelist.length === 0) { + return true; + } + + // Otherwise compare each path regex to the path of the URL passed in. + var path = (new URL(absoluteUrlString)).pathname; + return whitelist.some(function(whitelistedPathRegex) { + return path.match(whitelistedPathRegex); + }); + }; + +var stripIgnoredUrlParameters = function (originalUrl, + ignoreUrlParametersMatching) { + var url = new URL(originalUrl); + // Remove the hash; see https://github.com/GoogleChrome/sw-precache/issues/290 + url.hash = ''; + + url.search = url.search.slice(1) // Exclude initial '?' + .split('&') // Split into an array of 'key=value' strings + .map(function(kv) { + return kv.split('='); // Split each 'key=value' string into a [key, value] array + }) + .filter(function(kv) { + return ignoreUrlParametersMatching.every(function(ignoredRegex) { + return !ignoredRegex.test(kv[0]); // Return true iff the key doesn't match any of the regexes. + }); + }) + .map(function(kv) { + return kv.join('='); // Join each [key, value] array into a 'key=value' string + }) + .join('&'); // Join the array of 'key=value' strings into a string with '&' in between each + + return url.toString(); + }; + + +var hashParamName = '_sw-precache'; +var urlsToCacheKeys = new Map( + precacheConfig.map(function(item) { + var relativeUrl = item[0]; + var hash = item[1]; + var absoluteUrl = new URL(relativeUrl, self.location); + var cacheKey = createCacheKey(absoluteUrl, hashParamName, hash, false); + return [absoluteUrl.toString(), cacheKey]; + }) +); + +function setOfCachedUrls(cache) { + return cache.keys().then(function(requests) { + return requests.map(function(request) { + return request.url; + }); + }).then(function(urls) { + return new Set(urls); + }); +} + +self.addEventListener('install', function(event) { + event.waitUntil( + caches.open(cacheName).then(function(cache) { + return setOfCachedUrls(cache).then(function(cachedUrls) { + return Promise.all( + Array.from(urlsToCacheKeys.values()).map(function(cacheKey) { + // If we don't have a key matching url in the cache already, add it. + if (!cachedUrls.has(cacheKey)) { + var request = new Request(cacheKey, {credentials: 'same-origin'}); + return fetch(request).then(function(response) { + // Bail out of installation unless we get back a 200 OK for + // every request. + if (!response.ok) { + throw new Error('Request for ' + cacheKey + ' returned a ' + + 'response with status ' + response.status); + } + + return cleanResponse(response).then(function(responseToCache) { + return cache.put(cacheKey, responseToCache); + }); + }); + } + }) + ); + }); + }).then(function() { + + // Force the SW to transition from installing -> active state + return self.skipWaiting(); + + }) + ); +}); + +self.addEventListener('activate', function(event) { + var setOfExpectedUrls = new Set(urlsToCacheKeys.values()); + + event.waitUntil( + caches.open(cacheName).then(function(cache) { + return cache.keys().then(function(existingRequests) { + return Promise.all( + existingRequests.map(function(existingRequest) { + if (!setOfExpectedUrls.has(existingRequest.url)) { + return cache.delete(existingRequest); + } + }) + ); + }); + }).then(function() { + + return self.clients.claim(); + + }) + ); +}); + + +self.addEventListener('fetch', function(event) { + if (event.request.method === 'GET') { + // Should we call event.respondWith() inside this fetch event handler? + // This needs to be determined synchronously, which will give other fetch + // handlers a chance to handle the request if need be. + var shouldRespond; + + // First, remove all the ignored parameters and hash fragment, and see if we + // have that URL in our cache. If so, great! shouldRespond will be true. + var url = stripIgnoredUrlParameters(event.request.url, ignoreUrlParametersMatching); + shouldRespond = urlsToCacheKeys.has(url); + + // If shouldRespond is false, check again, this time with 'index.html' + // (or whatever the directoryIndex option is set to) at the end. + var directoryIndex = 'index.html'; + if (!shouldRespond && directoryIndex) { + url = addDirectoryIndex(url, directoryIndex); + shouldRespond = urlsToCacheKeys.has(url); + } + + // If shouldRespond is still false, check to see if this is a navigation + // request, and if so, whether the URL matches navigateFallbackWhitelist. + var navigateFallback = ''; + if (!shouldRespond && + navigateFallback && + (event.request.mode === 'navigate') && + isPathWhitelisted([], event.request.url)) { + url = new URL(navigateFallback, self.location).toString(); + shouldRespond = urlsToCacheKeys.has(url); + } + + // If shouldRespond was set to true at any point, then call + // event.respondWith(), using the appropriate cache key. + if (shouldRespond) { + event.respondWith( + caches.open(cacheName).then(function(cache) { + return cache.match(urlsToCacheKeys.get(url)).then(function(response) { + if (response) { + return response; + } + throw Error('The cached response that was expected is missing.'); + }); + }).catch(function(e) { + // Fall back to just fetch()ing the request if some unexpected error + // prevented the cached response from being valid. + console.warn('Couldn\'t serve response for "%s" from cache: %O', event.request.url, e); + return fetch(event.request); + }) + ); + } + } +}); + + + + + + + From 5be08701142d5e9af81a4a121473d6c6e0301100 Mon Sep 17 00:00:00 2001 From: Jakob Anderson Date: Sat, 6 May 2017 13:39:54 -0600 Subject: [PATCH 2/4] updated node versions, actually git added the files we need --- .travis.yml | 2 +- gulpfile.js | 29 +++++---- package.json | 4 +- public/index.html | 2 +- public/service-worker.js | 2 +- public/service-worker.js.map | 2 +- shrinkwrap.yaml | 74 +--------------------- src/{html => }/404.html | 0 src/{html => }/index.html | 1 + src/{service-worker => }/service-worker.js | 2 +- 10 files changed, 25 insertions(+), 93 deletions(-) rename src/{html => }/404.html (100%) rename src/{html => }/index.html (98%) rename src/{service-worker => }/service-worker.js (92%) diff --git a/.travis.yml b/.travis.yml index a9401ce..8b2e6fa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: node_js node_js: - - "7.8" + - "7" env: - CXX=g++-4.8 diff --git a/gulpfile.js b/gulpfile.js index ef9acd9..949765c 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -148,25 +148,25 @@ gulp.task('html', () => { const htmlWatcher = gulp.watch('src/html/*.html', ['html']); htmlWatcher.on('change', event => { + console.log('File ' + event.path + ' was ' + event.type + ', running tasks...'); +}); + // SERVICE WORKER // ============================================================ const rootDir = './public'; gulp.task('generate-service-worker', callback => { - swPrecache.write(`./src/service-worker/service-worker.js`, { - staticFileGlobs: [rootDir + '/**/*.{js,html,css,png,jpg,gif,svg,eot,ttf,woff}'], + swPrecache.write(`./src/service-worker.js`, { + staticFileGlobs: [ + `${rootDir}/dist/**/*.{js,css,png,jpg,gif,svg,eot,ttf,woff}`, + `${rootDir}/index.html` + ], stripPrefix: rootDir }, callback); }); -const swWatcher = gulp.watch([rootDir + '/**/*.{js,html,css,png,jpg,gif,svg,eot,ttf,woff}'], ['generate-service-worker']); - -swWatcher.on('change', event => { - console.log('File ' + event.path + ' was ' + event.type + ', running tasks...'); -}); - -gulp.task('optimize-service-worker', () => { - gulp.src(`./src/service-worker/service-worker.js`) +gulp.task('optimize-service-worker', ['generate-service-worker'], () => { + gulp.src(`./src/service-worker.js`) .pipe(sourcemaps.init({ loadMaps: true })) @@ -175,9 +175,12 @@ gulp.task('optimize-service-worker', () => { .pipe(gulp.dest('./public')); }); -const swOptoWatcher = gulp.watch(`./src/service-worker/service-worker.js`, ['optimize-service-worker']); +// Do all service-worker things +gulp.task('service-worker', ['generate-service-worker', 'optimize-service-worker']); -swOptoWatcher.on('change', event => { +const swWatcher = gulp.watch([rootDir + '/**/*.{js,html,css,png,jpg,gif,svg,eot,ttf,woff}'], ['service-worker']); + +swWatcher.on('change', event => { console.log('File ' + event.path + ' was ' + event.type + ', running tasks...'); }); @@ -196,4 +199,4 @@ function glob() { return 'typeof self !== "undefined" ? self : ' + 'typeof window !== "undefined" ? window : {}'; // eslint-disable-line no-useless-concat } -gulp.task('default', ['build', 'generate-service-worker', 'optimize-service-worker', 'watch']); +gulp.task('default', ['build', 'service-worker', 'watch']); diff --git a/package.json b/package.json index 7bc10da..105f56a 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "practice javascript", "main": "index.js", "engines": { - "node": "7.8" + "node": "7" }, "scripts": { "test": "xo", @@ -33,7 +33,7 @@ "ignore": [ "src/js/loadJS.js", "src/js/sw-registration.js", - "src/service-worker/service-worker.js", + "src/service-worker.js", "public/**/*" ] }, diff --git a/public/index.html b/public/index.html index 6cb8a35..c2f17f4 100644 --- a/public/index.html +++ b/public/index.html @@ -1 +1 @@ -Practice JavaScript

Practice JavaScript!

TEST ERRORS

CODE OUTPUT

\ No newline at end of file +Practice JavaScript

Practice JavaScript!

TEST ERRORS

CODE OUTPUT

\ No newline at end of file diff --git a/public/service-worker.js b/public/service-worker.js index 5827b98..b0dc1b5 100644 --- a/public/service-worker.js +++ b/public/service-worker.js @@ -1,2 +1,2 @@ -"use strict";function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}var precacheConfig=[["/404.html","0a27a4163254fc8fce870c8cc3a3f94f"],["/dist/css/min.min.css","4f567068e97b5d7aca24b66316d9424a"],["/dist/css/style.css","d70e1325f89dcb315caf497e339674ac"],["/dist/img/back.svg","898ada2a32ec64bd5b6959c22e8f231d"],["/dist/img/monitor.svg","348592da5567b5a3c46acfb5dcd341bc"],["/dist/img/next.svg","045593410b9f51390e750b9e1e7fff15"],["/dist/img/programming.svg","2e0c467398a43b78494bd384b280ba66"],["/dist/img/reload.svg","a0ab1b765280e4d22e6fb747042f6503"],["/dist/img/shuffle.svg","3a5e3c1bf04eb3493d8a2ffa547aa58f"],["/dist/js/bundle.min.js","3e56c92d7228ef0fa5542d11c2750382"],["/dist/js/loadJS.js","72c55936069f60560a386e46f462c73a"],["/dist/js/sw-registration.js","677217d8e642c1ccff69fc01c96b4431"],["/index.html","b67e5ee55ae315df9ad2a5425dbbfe1d"],["/service-worker.js","ab029ed1eb0fee8b6e6110d8fe5c6a21"]],cacheName="sw-precache-v3--"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){var a=new URL(e);return r&&a.pathname.match(r)||(a.search+=(a.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),a.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.hash="",n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),a=createCacheKey(r,hashParamName,n,!1);return[r.toString(),a]}));self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var r=new Request(n,{credentials:"same-origin"});return fetch(r).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);t=urlsToCacheKeys.has(n);t||(n=addDirectoryIndex(n,"index.html"),t=urlsToCacheKeys.has(n));t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}}); +"use strict";function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}var precacheConfig=[["/dist/css/style.css","d70e1325f89dcb315caf497e339674ac"],["/dist/img/back.svg","898ada2a32ec64bd5b6959c22e8f231d"],["/dist/img/monitor.svg","348592da5567b5a3c46acfb5dcd341bc"],["/dist/img/next.svg","045593410b9f51390e750b9e1e7fff15"],["/dist/img/reload.svg","a0ab1b765280e4d22e6fb747042f6503"],["/dist/img/shuffle.svg","3a5e3c1bf04eb3493d8a2ffa547aa58f"],["/dist/js/bundle.min.js","3e56c92d7228ef0fa5542d11c2750382"],["/dist/js/loadJS.js","72c55936069f60560a386e46f462c73a"],["/dist/js/sw-registration.js","677217d8e642c1ccff69fc01c96b4431"],["/index.html","cd2e2477bddecc148969493027dc769a"]],cacheName="sw-precache-v3--"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){var s=new URL(e);return r&&s.pathname.match(r)||(s.search+=(s.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),s.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.hash="",n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),s=createCacheKey(r,hashParamName,n,!1);return[r.toString(),s]}));self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var r=new Request(n,{credentials:"same-origin"});return fetch(r).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);t=urlsToCacheKeys.has(n);t||(n=addDirectoryIndex(n,"index.html"),t=urlsToCacheKeys.has(n));t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}}); //# sourceMappingURL=service-worker.js.map diff --git a/public/service-worker.js.map b/public/service-worker.js.map index d08f78d..6ee0fd1 100644 --- a/public/service-worker.js.map +++ b/public/service-worker.js.map @@ -1 +1 @@ -{"version":3,"sources":["service-worker.js"],"names":["setOfCachedUrls","cache","keys","then","requests","map","request","url","urls","Set","precacheConfig","cacheName","self","registration","scope","ignoreUrlParametersMatching","addDirectoryIndex","originalUrl","index","URL","pathname","slice","toString","cleanResponse","originalResponse","redirected","Promise","resolve","body","blob","Response","headers","status","statusText","createCacheKey","paramName","paramValue","dontCacheBustUrlsMatching","match","search","encodeURIComponent","isPathWhitelisted","whitelist","absoluteUrlString","length","path","some","whitelistedPathRegex","stripIgnoredUrlParameters","hash","split","kv","filter","every","ignoredRegex","test","join","hashParamName","urlsToCacheKeys","Map","item","relativeUrl","absoluteUrl","location","cacheKey","addEventListener","event","waitUntil","caches","open","cachedUrls","all","Array","from","values","has","Request","credentials","fetch","response","ok","Error","responseToCache","put","skipWaiting","setOfExpectedUrls","existingRequests","existingRequest","delete","clients","claim","method","shouldRespond","respondWith","get","catch","e","console","warn"],"mappings":"AAqCA,YAyGA,SAASA,iBAAgBC,GACvB,MAAOA,GAAMC,OAAOC,KAAK,SAASC,GAChC,MAAOA,GAASC,IAAI,SAASC,GAC3B,MAAOA,GAAQC,QAEhBJ,KAAK,SAASK,GACf,MAAO,IAAIC,KAAID,KA7GnB,GAAIE,kBAAmB,YAAY,qCAAqC,wBAAwB,qCAAqC,sBAAsB,qCAAqC,qBAAqB,qCAAqC,wBAAwB,qCAAqC,qBAAqB,qCAAqC,4BAA4B,qCAAqC,uBAAuB,qCAAqC,wBAAwB,qCAAqC,yBAAyB,qCAAqC,qBAAqB,qCAAqC,8BAA8B,qCAAqC,cAAc,qCAAqC,qBAAqB,qCAC1yBC,UAAY,oBAAsBC,KAAKC,aAAeD,KAAKC,aAAaC,MAAQ,IAGhFC,6BAA+B,SAI/BC,kBAAoB,SAAUC,EAAaC,GAC3C,GAAIX,GAAM,GAAIY,KAAIF,EAIlB,OAH+B,MAA3BV,EAAIa,SAASC,OAAO,KACtBd,EAAIa,UAAYF,GAEXX,EAAIe,YAGXC,cAAgB,SAAUC,GAE1B,MAAKA,GAAiBC,YAMJ,QAAUD,GAC1BE,QAAQC,QAAQH,EAAiBI,MACjCJ,EAAiBK,QAEA1B,KAAK,SAASyB,GAE/B,MAAO,IAAIE,UAASF,GAClBG,QAASP,EAAiBO,QAC1BC,OAAQR,EAAiBQ,OACzBC,WAAYT,EAAiBS,eAdxBP,QAAQC,QAAQH,IAmBzBU,eAAiB,SAAUjB,EAAakB,EAAWC,EAC5BC,GAEvB,GAAI9B,GAAM,GAAIY,KAAIF,EAUlB,OANKoB,IACC9B,EAAIa,SAASkB,MAAMD,KACvB9B,EAAIgC,SAAWhC,EAAIgC,OAAS,IAAM,IAChCC,mBAAmBL,GAAa,IAAMK,mBAAmBJ,IAGtD7B,EAAIe,YAGXmB,kBAAoB,SAAUC,EAAWC,GAEzC,GAAyB,IAArBD,EAAUE,OACZ,OAAO,CAIT,IAAIC,GAAO,GAAK1B,KAAIwB,GAAoBvB,QACxC,OAAOsB,GAAUI,KAAK,SAASC,GAC7B,MAAOF,GAAKP,MAAMS,MAIpBC,0BAA4B,SAAU/B,EACtCF,GACA,GAAIR,GAAM,GAAIY,KAAIF,EAmBlB,OAjBAV,GAAI0C,KAAO,GAEX1C,EAAIgC,OAAShC,EAAIgC,OAAOlB,MAAM,GAC3B6B,MAAM,KACN7C,IAAI,SAAS8C,GACZ,MAAOA,GAAGD,MAAM,OAEjBE,OAAO,SAASD,GACf,MAAOpC,GAA4BsC,MAAM,SAASC,GAChD,OAAQA,EAAaC,KAAKJ,EAAG,QAGhC9C,IAAI,SAAS8C,GACZ,MAAOA,GAAGK,KAAK,OAEhBA,KAAK,KAEDjD,EAAIe,YAIXmC,cAAgB,eAChBC,gBAAkB,GAAIC,KACxBjD,eAAeL,IAAI,SAASuD,GAC1B,GAAIC,GAAcD,EAAK,GACnBX,EAAOW,EAAK,GACZE,EAAc,GAAI3C,KAAI0C,EAAajD,KAAKmD,UACxCC,EAAW9B,eAAe4B,EAAaL,cAAeR,GAAM,EAChE,QAAQa,EAAYxC,WAAY0C,KAcpCpD,MAAKqD,iBAAiB,UAAW,SAASC,GACxCA,EAAMC,UACJC,OAAOC,KAAK1D,WAAWR,KAAK,SAASF,GACnC,MAAOD,iBAAgBC,GAAOE,KAAK,SAASmE,GAC1C,MAAO5C,SAAQ6C,IACbC,MAAMC,KAAKf,gBAAgBgB,UAAUrE,IAAI,SAAS2D,GAEhD,IAAKM,EAAWK,IAAIX,GAAW,CAC7B,GAAI1D,GAAU,GAAIsE,SAAQZ,GAAWa,YAAa,eAClD,OAAOC,OAAMxE,GAASH,KAAK,SAAS4E,GAGlC,IAAKA,EAASC,GACZ,KAAM,IAAIC,OAAM,eAAiBjB,EAAW,oCAChBe,EAAS/C,OAGvC,OAAOT,eAAcwD,GAAU5E,KAAK,SAAS+E,GAC3C,MAAOjF,GAAMkF,IAAInB,EAAUkB,eAOtC/E,KAAK,WAGN,MAAOS,MAAKwE,mBAMlBxE,KAAKqD,iBAAiB,WAAY,SAASC,GACzC,GAAImB,GAAoB,GAAI5E,KAAIiD,gBAAgBgB,SAEhDR,GAAMC,UACJC,OAAOC,KAAK1D,WAAWR,KAAK,SAASF,GACnC,MAAOA,GAAMC,OAAOC,KAAK,SAASmF,GAChC,MAAO5D,SAAQ6C,IACbe,EAAiBjF,IAAI,SAASkF,GAC5B,IAAKF,EAAkBV,IAAIY,EAAgBhF,KACzC,MAAON,GAAMuF,OAAOD,UAK3BpF,KAAK,WAEN,MAAOS,MAAK6E,QAAQC,aAO1B9E,KAAKqD,iBAAiB,QAAS,SAASC,GACtC,GAA6B,QAAzBA,EAAM5D,QAAQqF,OAAkB,CAIlC,GAAIC,GAIArF,EAAMyC,0BAA0BkB,EAAM5D,QAAQC,IAAKQ,4BACvD6E,GAAgBlC,gBAAgBiB,IAAIpE,EAK/BqF,KACHrF,EAAMS,kBAAkBT,EAFL,cAGnBqF,EAAgBlC,gBAAgBiB,IAAIpE,GAgBlCqF,IACF1B,EAAM2B,YACJzB,OAAOC,KAAK1D,WAAWR,KAAK,SAASF,GACnC,MAAOA,GAAMqC,MAAMoB,gBAAgBoC,IAAIvF,IAAMJ,KAAK,SAAS4E,GACzD,GAAIA,EACF,MAAOA,EAET,MAAME,OAAM,yDAEbc,MAAM,SAASC,GAIhB,MADAC,SAAQC,KAAK,mDAAoDhC,EAAM5D,QAAQC,IAAKyF,GAC7ElB,MAAMZ,EAAM5D","file":"service-worker.js","sourcesContent":["/**\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n*/\n\n// DO NOT EDIT THIS GENERATED OUTPUT DIRECTLY!\n// This file should be overwritten as part of your build process.\n// If you need to extend the behavior of the generated service worker, the best approach is to write\n// additional code and include it using the importScripts option:\n// https://github.com/GoogleChrome/sw-precache#importscripts-arraystring\n//\n// Alternatively, it's possible to make changes to the underlying template file and then use that as the\n// new base for generating output, via the templateFilePath option:\n// https://github.com/GoogleChrome/sw-precache#templatefilepath-string\n//\n// If you go that route, make sure that whenever you update your sw-precache dependency, you reconcile any\n// changes made to this original template file with your modified copy.\n\n// This generated service worker JavaScript will precache your site's resources.\n// The code needs to be saved in a .js file at the top-level of your site, and registered\n// from your pages in order to be used. See\n// https://github.com/googlechrome/sw-precache/blob/master/demo/app/js/service-worker-registration.js\n// for an example of how you can register this script and handle various service worker events.\n\n/* eslint-env worker, serviceworker */\n/* eslint-disable indent, no-unused-vars, no-multiple-empty-lines, max-nested-callbacks, space-before-function-paren, quotes, comma-spacing */\n'use strict';\n\nvar precacheConfig = [[\"/404.html\",\"0a27a4163254fc8fce870c8cc3a3f94f\"],[\"/dist/css/min.min.css\",\"4f567068e97b5d7aca24b66316d9424a\"],[\"/dist/css/style.css\",\"d70e1325f89dcb315caf497e339674ac\"],[\"/dist/img/back.svg\",\"898ada2a32ec64bd5b6959c22e8f231d\"],[\"/dist/img/monitor.svg\",\"348592da5567b5a3c46acfb5dcd341bc\"],[\"/dist/img/next.svg\",\"045593410b9f51390e750b9e1e7fff15\"],[\"/dist/img/programming.svg\",\"2e0c467398a43b78494bd384b280ba66\"],[\"/dist/img/reload.svg\",\"a0ab1b765280e4d22e6fb747042f6503\"],[\"/dist/img/shuffle.svg\",\"3a5e3c1bf04eb3493d8a2ffa547aa58f\"],[\"/dist/js/bundle.min.js\",\"3e56c92d7228ef0fa5542d11c2750382\"],[\"/dist/js/loadJS.js\",\"72c55936069f60560a386e46f462c73a\"],[\"/dist/js/sw-registration.js\",\"677217d8e642c1ccff69fc01c96b4431\"],[\"/index.html\",\"b67e5ee55ae315df9ad2a5425dbbfe1d\"],[\"/service-worker.js\",\"ab029ed1eb0fee8b6e6110d8fe5c6a21\"]];\nvar cacheName = 'sw-precache-v3--' + (self.registration ? self.registration.scope : '');\n\n\nvar ignoreUrlParametersMatching = [/^utm_/];\n\n\n\nvar addDirectoryIndex = function (originalUrl, index) {\n var url = new URL(originalUrl);\n if (url.pathname.slice(-1) === '/') {\n url.pathname += index;\n }\n return url.toString();\n };\n\nvar cleanResponse = function (originalResponse) {\n // If this is not a redirected response, then we don't have to do anything.\n if (!originalResponse.redirected) {\n return Promise.resolve(originalResponse);\n }\n\n // Firefox 50 and below doesn't support the Response.body stream, so we may\n // need to read the entire body to memory as a Blob.\n var bodyPromise = 'body' in originalResponse ?\n Promise.resolve(originalResponse.body) :\n originalResponse.blob();\n\n return bodyPromise.then(function(body) {\n // new Response() is happy when passed either a stream or a Blob.\n return new Response(body, {\n headers: originalResponse.headers,\n status: originalResponse.status,\n statusText: originalResponse.statusText\n });\n });\n };\n\nvar createCacheKey = function (originalUrl, paramName, paramValue,\n dontCacheBustUrlsMatching) {\n // Create a new URL object to avoid modifying originalUrl.\n var url = new URL(originalUrl);\n\n // If dontCacheBustUrlsMatching is not set, or if we don't have a match,\n // then add in the extra cache-busting URL parameter.\n if (!dontCacheBustUrlsMatching ||\n !(url.pathname.match(dontCacheBustUrlsMatching))) {\n url.search += (url.search ? '&' : '') +\n encodeURIComponent(paramName) + '=' + encodeURIComponent(paramValue);\n }\n\n return url.toString();\n };\n\nvar isPathWhitelisted = function (whitelist, absoluteUrlString) {\n // If the whitelist is empty, then consider all URLs to be whitelisted.\n if (whitelist.length === 0) {\n return true;\n }\n\n // Otherwise compare each path regex to the path of the URL passed in.\n var path = (new URL(absoluteUrlString)).pathname;\n return whitelist.some(function(whitelistedPathRegex) {\n return path.match(whitelistedPathRegex);\n });\n };\n\nvar stripIgnoredUrlParameters = function (originalUrl,\n ignoreUrlParametersMatching) {\n var url = new URL(originalUrl);\n // Remove the hash; see https://github.com/GoogleChrome/sw-precache/issues/290\n url.hash = '';\n\n url.search = url.search.slice(1) // Exclude initial '?'\n .split('&') // Split into an array of 'key=value' strings\n .map(function(kv) {\n return kv.split('='); // Split each 'key=value' string into a [key, value] array\n })\n .filter(function(kv) {\n return ignoreUrlParametersMatching.every(function(ignoredRegex) {\n return !ignoredRegex.test(kv[0]); // Return true iff the key doesn't match any of the regexes.\n });\n })\n .map(function(kv) {\n return kv.join('='); // Join each [key, value] array into a 'key=value' string\n })\n .join('&'); // Join the array of 'key=value' strings into a string with '&' in between each\n\n return url.toString();\n };\n\n\nvar hashParamName = '_sw-precache';\nvar urlsToCacheKeys = new Map(\n precacheConfig.map(function(item) {\n var relativeUrl = item[0];\n var hash = item[1];\n var absoluteUrl = new URL(relativeUrl, self.location);\n var cacheKey = createCacheKey(absoluteUrl, hashParamName, hash, false);\n return [absoluteUrl.toString(), cacheKey];\n })\n);\n\nfunction setOfCachedUrls(cache) {\n return cache.keys().then(function(requests) {\n return requests.map(function(request) {\n return request.url;\n });\n }).then(function(urls) {\n return new Set(urls);\n });\n}\n\nself.addEventListener('install', function(event) {\n event.waitUntil(\n caches.open(cacheName).then(function(cache) {\n return setOfCachedUrls(cache).then(function(cachedUrls) {\n return Promise.all(\n Array.from(urlsToCacheKeys.values()).map(function(cacheKey) {\n // If we don't have a key matching url in the cache already, add it.\n if (!cachedUrls.has(cacheKey)) {\n var request = new Request(cacheKey, {credentials: 'same-origin'});\n return fetch(request).then(function(response) {\n // Bail out of installation unless we get back a 200 OK for\n // every request.\n if (!response.ok) {\n throw new Error('Request for ' + cacheKey + ' returned a ' +\n 'response with status ' + response.status);\n }\n\n return cleanResponse(response).then(function(responseToCache) {\n return cache.put(cacheKey, responseToCache);\n });\n });\n }\n })\n );\n });\n }).then(function() {\n \n // Force the SW to transition from installing -> active state\n return self.skipWaiting();\n \n })\n );\n});\n\nself.addEventListener('activate', function(event) {\n var setOfExpectedUrls = new Set(urlsToCacheKeys.values());\n\n event.waitUntil(\n caches.open(cacheName).then(function(cache) {\n return cache.keys().then(function(existingRequests) {\n return Promise.all(\n existingRequests.map(function(existingRequest) {\n if (!setOfExpectedUrls.has(existingRequest.url)) {\n return cache.delete(existingRequest);\n }\n })\n );\n });\n }).then(function() {\n \n return self.clients.claim();\n \n })\n );\n});\n\n\nself.addEventListener('fetch', function(event) {\n if (event.request.method === 'GET') {\n // Should we call event.respondWith() inside this fetch event handler?\n // This needs to be determined synchronously, which will give other fetch\n // handlers a chance to handle the request if need be.\n var shouldRespond;\n\n // First, remove all the ignored parameters and hash fragment, and see if we\n // have that URL in our cache. If so, great! shouldRespond will be true.\n var url = stripIgnoredUrlParameters(event.request.url, ignoreUrlParametersMatching);\n shouldRespond = urlsToCacheKeys.has(url);\n\n // If shouldRespond is false, check again, this time with 'index.html'\n // (or whatever the directoryIndex option is set to) at the end.\n var directoryIndex = 'index.html';\n if (!shouldRespond && directoryIndex) {\n url = addDirectoryIndex(url, directoryIndex);\n shouldRespond = urlsToCacheKeys.has(url);\n }\n\n // If shouldRespond is still false, check to see if this is a navigation\n // request, and if so, whether the URL matches navigateFallbackWhitelist.\n var navigateFallback = '';\n if (!shouldRespond &&\n navigateFallback &&\n (event.request.mode === 'navigate') &&\n isPathWhitelisted([], event.request.url)) {\n url = new URL(navigateFallback, self.location).toString();\n shouldRespond = urlsToCacheKeys.has(url);\n }\n\n // If shouldRespond was set to true at any point, then call\n // event.respondWith(), using the appropriate cache key.\n if (shouldRespond) {\n event.respondWith(\n caches.open(cacheName).then(function(cache) {\n return cache.match(urlsToCacheKeys.get(url)).then(function(response) {\n if (response) {\n return response;\n }\n throw Error('The cached response that was expected is missing.');\n });\n }).catch(function(e) {\n // Fall back to just fetch()ing the request if some unexpected error\n // prevented the cached response from being valid.\n console.warn('Couldn\\'t serve response for \"%s\" from cache: %O', event.request.url, e);\n return fetch(event.request);\n })\n );\n }\n }\n});\n\n\n\n\n\n\n\n"]} \ No newline at end of file +{"version":3,"sources":["service-worker.js"],"names":["setOfCachedUrls","cache","keys","then","requests","map","request","url","urls","Set","precacheConfig","cacheName","self","registration","scope","ignoreUrlParametersMatching","addDirectoryIndex","originalUrl","index","URL","pathname","slice","toString","cleanResponse","originalResponse","redirected","Promise","resolve","body","blob","Response","headers","status","statusText","createCacheKey","paramName","paramValue","dontCacheBustUrlsMatching","match","search","encodeURIComponent","isPathWhitelisted","whitelist","absoluteUrlString","length","path","some","whitelistedPathRegex","stripIgnoredUrlParameters","hash","split","kv","filter","every","ignoredRegex","test","join","hashParamName","urlsToCacheKeys","Map","item","relativeUrl","absoluteUrl","location","cacheKey","addEventListener","event","waitUntil","caches","open","cachedUrls","all","Array","from","values","has","Request","credentials","fetch","response","ok","Error","responseToCache","put","skipWaiting","setOfExpectedUrls","existingRequests","existingRequest","delete","clients","claim","method","shouldRespond","respondWith","get","catch","e","console","warn"],"mappings":"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","file":"service-worker.js","sourcesContent":["/**\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n*/\n\n// DO NOT EDIT THIS GENERATED OUTPUT DIRECTLY!\n// This file should be overwritten as part of your build process.\n// If you need to extend the behavior of the generated service worker, the best approach is to write\n// additional code and include it using the importScripts option:\n// https://github.com/GoogleChrome/sw-precache#importscripts-arraystring\n//\n// Alternatively, it's possible to make changes to the underlying template file and then use that as the\n// new base for generating output, via the templateFilePath option:\n// https://github.com/GoogleChrome/sw-precache#templatefilepath-string\n//\n// If you go that route, make sure that whenever you update your sw-precache dependency, you reconcile any\n// changes made to this original template file with your modified copy.\n\n// This generated service worker JavaScript will precache your site's resources.\n// The code needs to be saved in a .js file at the top-level of your site, and registered\n// from your pages in order to be used. See\n// https://github.com/googlechrome/sw-precache/blob/master/demo/app/js/service-worker-registration.js\n// for an example of how you can register this script and handle various service worker events.\n\n/* eslint-env worker, serviceworker */\n/* eslint-disable indent, no-unused-vars, no-multiple-empty-lines, max-nested-callbacks, space-before-function-paren, quotes, comma-spacing */\n'use strict';\n\nvar precacheConfig = [[\"/dist/css/style.css\",\"d70e1325f89dcb315caf497e339674ac\"],[\"/dist/img/back.svg\",\"898ada2a32ec64bd5b6959c22e8f231d\"],[\"/dist/img/monitor.svg\",\"348592da5567b5a3c46acfb5dcd341bc\"],[\"/dist/img/next.svg\",\"045593410b9f51390e750b9e1e7fff15\"],[\"/dist/img/reload.svg\",\"a0ab1b765280e4d22e6fb747042f6503\"],[\"/dist/img/shuffle.svg\",\"3a5e3c1bf04eb3493d8a2ffa547aa58f\"],[\"/dist/js/bundle.min.js\",\"3e56c92d7228ef0fa5542d11c2750382\"],[\"/dist/js/loadJS.js\",\"72c55936069f60560a386e46f462c73a\"],[\"/dist/js/sw-registration.js\",\"677217d8e642c1ccff69fc01c96b4431\"],[\"/index.html\",\"cd2e2477bddecc148969493027dc769a\"]];\nvar cacheName = 'sw-precache-v3--' + (self.registration ? self.registration.scope : '');\n\n\nvar ignoreUrlParametersMatching = [/^utm_/];\n\n\n\nvar addDirectoryIndex = function (originalUrl, index) {\n var url = new URL(originalUrl);\n if (url.pathname.slice(-1) === '/') {\n url.pathname += index;\n }\n return url.toString();\n };\n\nvar cleanResponse = function (originalResponse) {\n // If this is not a redirected response, then we don't have to do anything.\n if (!originalResponse.redirected) {\n return Promise.resolve(originalResponse);\n }\n\n // Firefox 50 and below doesn't support the Response.body stream, so we may\n // need to read the entire body to memory as a Blob.\n var bodyPromise = 'body' in originalResponse ?\n Promise.resolve(originalResponse.body) :\n originalResponse.blob();\n\n return bodyPromise.then(function(body) {\n // new Response() is happy when passed either a stream or a Blob.\n return new Response(body, {\n headers: originalResponse.headers,\n status: originalResponse.status,\n statusText: originalResponse.statusText\n });\n });\n };\n\nvar createCacheKey = function (originalUrl, paramName, paramValue,\n dontCacheBustUrlsMatching) {\n // Create a new URL object to avoid modifying originalUrl.\n var url = new URL(originalUrl);\n\n // If dontCacheBustUrlsMatching is not set, or if we don't have a match,\n // then add in the extra cache-busting URL parameter.\n if (!dontCacheBustUrlsMatching ||\n !(url.pathname.match(dontCacheBustUrlsMatching))) {\n url.search += (url.search ? '&' : '') +\n encodeURIComponent(paramName) + '=' + encodeURIComponent(paramValue);\n }\n\n return url.toString();\n };\n\nvar isPathWhitelisted = function (whitelist, absoluteUrlString) {\n // If the whitelist is empty, then consider all URLs to be whitelisted.\n if (whitelist.length === 0) {\n return true;\n }\n\n // Otherwise compare each path regex to the path of the URL passed in.\n var path = (new URL(absoluteUrlString)).pathname;\n return whitelist.some(function(whitelistedPathRegex) {\n return path.match(whitelistedPathRegex);\n });\n };\n\nvar stripIgnoredUrlParameters = function (originalUrl,\n ignoreUrlParametersMatching) {\n var url = new URL(originalUrl);\n // Remove the hash; see https://github.com/GoogleChrome/sw-precache/issues/290\n url.hash = '';\n\n url.search = url.search.slice(1) // Exclude initial '?'\n .split('&') // Split into an array of 'key=value' strings\n .map(function(kv) {\n return kv.split('='); // Split each 'key=value' string into a [key, value] array\n })\n .filter(function(kv) {\n return ignoreUrlParametersMatching.every(function(ignoredRegex) {\n return !ignoredRegex.test(kv[0]); // Return true iff the key doesn't match any of the regexes.\n });\n })\n .map(function(kv) {\n return kv.join('='); // Join each [key, value] array into a 'key=value' string\n })\n .join('&'); // Join the array of 'key=value' strings into a string with '&' in between each\n\n return url.toString();\n };\n\n\nvar hashParamName = '_sw-precache';\nvar urlsToCacheKeys = new Map(\n precacheConfig.map(function(item) {\n var relativeUrl = item[0];\n var hash = item[1];\n var absoluteUrl = new URL(relativeUrl, self.location);\n var cacheKey = createCacheKey(absoluteUrl, hashParamName, hash, false);\n return [absoluteUrl.toString(), cacheKey];\n })\n);\n\nfunction setOfCachedUrls(cache) {\n return cache.keys().then(function(requests) {\n return requests.map(function(request) {\n return request.url;\n });\n }).then(function(urls) {\n return new Set(urls);\n });\n}\n\nself.addEventListener('install', function(event) {\n event.waitUntil(\n caches.open(cacheName).then(function(cache) {\n return setOfCachedUrls(cache).then(function(cachedUrls) {\n return Promise.all(\n Array.from(urlsToCacheKeys.values()).map(function(cacheKey) {\n // If we don't have a key matching url in the cache already, add it.\n if (!cachedUrls.has(cacheKey)) {\n var request = new Request(cacheKey, {credentials: 'same-origin'});\n return fetch(request).then(function(response) {\n // Bail out of installation unless we get back a 200 OK for\n // every request.\n if (!response.ok) {\n throw new Error('Request for ' + cacheKey + ' returned a ' +\n 'response with status ' + response.status);\n }\n\n return cleanResponse(response).then(function(responseToCache) {\n return cache.put(cacheKey, responseToCache);\n });\n });\n }\n })\n );\n });\n }).then(function() {\n \n // Force the SW to transition from installing -> active state\n return self.skipWaiting();\n \n })\n );\n});\n\nself.addEventListener('activate', function(event) {\n var setOfExpectedUrls = new Set(urlsToCacheKeys.values());\n\n event.waitUntil(\n caches.open(cacheName).then(function(cache) {\n return cache.keys().then(function(existingRequests) {\n return Promise.all(\n existingRequests.map(function(existingRequest) {\n if (!setOfExpectedUrls.has(existingRequest.url)) {\n return cache.delete(existingRequest);\n }\n })\n );\n });\n }).then(function() {\n \n return self.clients.claim();\n \n })\n );\n});\n\n\nself.addEventListener('fetch', function(event) {\n if (event.request.method === 'GET') {\n // Should we call event.respondWith() inside this fetch event handler?\n // This needs to be determined synchronously, which will give other fetch\n // handlers a chance to handle the request if need be.\n var shouldRespond;\n\n // First, remove all the ignored parameters and hash fragment, and see if we\n // have that URL in our cache. If so, great! shouldRespond will be true.\n var url = stripIgnoredUrlParameters(event.request.url, ignoreUrlParametersMatching);\n shouldRespond = urlsToCacheKeys.has(url);\n\n // If shouldRespond is false, check again, this time with 'index.html'\n // (or whatever the directoryIndex option is set to) at the end.\n var directoryIndex = 'index.html';\n if (!shouldRespond && directoryIndex) {\n url = addDirectoryIndex(url, directoryIndex);\n shouldRespond = urlsToCacheKeys.has(url);\n }\n\n // If shouldRespond is still false, check to see if this is a navigation\n // request, and if so, whether the URL matches navigateFallbackWhitelist.\n var navigateFallback = '';\n if (!shouldRespond &&\n navigateFallback &&\n (event.request.mode === 'navigate') &&\n isPathWhitelisted([], event.request.url)) {\n url = new URL(navigateFallback, self.location).toString();\n shouldRespond = urlsToCacheKeys.has(url);\n }\n\n // If shouldRespond was set to true at any point, then call\n // event.respondWith(), using the appropriate cache key.\n if (shouldRespond) {\n event.respondWith(\n caches.open(cacheName).then(function(cache) {\n return cache.match(urlsToCacheKeys.get(url)).then(function(response) {\n if (response) {\n return response;\n }\n throw Error('The cached response that was expected is missing.');\n });\n }).catch(function(e) {\n // Fall back to just fetch()ing the request if some unexpected error\n // prevented the cached response from being valid.\n console.warn('Couldn\\'t serve response for \"%s\" from cache: %O', event.request.url, e);\n return fetch(event.request);\n })\n );\n }\n }\n});\n\n\n\n\n\n\n\n"]} \ No newline at end of file diff --git a/shrinkwrap.yaml b/shrinkwrap.yaml index 1d6e66e..608802f 100644 --- a/shrinkwrap.yaml +++ b/shrinkwrap.yaml @@ -7,16 +7,10 @@ dependencies: babel-preset-es2017@^6.24.1: 6.24.1 babel-preset-latest@^6.24.1: 6.24.1 babelify@^7.3.0: 7.3.0 -<<<<<<< HEAD - browserify@^14.1.0: 14.3.0 - chai@^3.5.0: 3.5.0 - cssnano@^3.10.0: 3.10.0 - gulp-htmlmin@^3.0.0: 3.0.0 -======= browserify@^14.3.0: 14.3.0 chai@^3.5.0: 3.5.0 cssnano@^3.10.0: 3.10.0 ->>>>>>> most of first sw done + gulp-htmlmin@^3.0.0: 3.0.0 gulp-livereload@^3.8.1: 3.8.1 gulp-postcss@^6.4.0: 6.4.0 gulp-sass@^3.1.0: 3.1.0 @@ -30,10 +24,7 @@ dependencies: localforage@^1.5.0: 1.5.0 rollup-stream@^1.19.0: 1.19.0 static-eval@^1.1.1: 1.1.1 -<<<<<<< HEAD -======= sw-precache@^5.1.1: 5.1.1 ->>>>>>> most of first sw done uglifyify@^3.0.4: 3.0.4 vinyl-buffer@^1.0.0: 1.0.0 vinyl-source-stream@^1.1.0: 1.1.0 @@ -868,13 +859,10 @@ packages: base64-js: 1.2.0 ieee754: 1.1.8 resolution: 2ea669f7eec0b6eda05b08f8b5ff661b28573588 -<<<<<<< HEAD /bufferstreams/1.1.1: dependencies: readable-stream: 2.2.9 resolution: 0161373060ac5988eff99058731114f6e195d51e -======= ->>>>>>> most of first sw done /builtin-modules/1.1.1: 270f076c5a72c02f5b65a47df94c5fe3a278892f /builtin-status-codes/3.0.0: 85982878e21b98e1c66425e03d0174788f569ee8 /bytes/2.2.0: fd35464a403f6f9117c2de3609ecff9cae000588 @@ -899,14 +887,11 @@ packages: callsites: 0.2.0 resolution: 94085ef63581ecd3daa92444a8fe94e82577751f /callsites/0.2.0: afab96262910a7f33c19a5775825c69f34e350ca -<<<<<<< HEAD /camel-case/3.0.0: dependencies: no-case: 2.3.1 upper-case: 1.1.3 resolution: ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73 -======= ->>>>>>> most of first sw done /camelcase-keys/2.1.0: dependencies: camelcase: 2.1.1 @@ -981,13 +966,10 @@ packages: dependencies: chalk: 1.1.3 resolution: b3bd36e93dd4cbfb395a3c26896352445265c05b -<<<<<<< HEAD /clean-css/4.0.12: dependencies: source-map: 0.5.6 resolution: a02e61707f1840bd3338f54dbc9acbda4e772fa3 -======= ->>>>>>> most of first sw done /clean-stack/1.1.1: a1b3711122df162df7c7cb9b3c0470f28cb58adb /clean-yaml-object/0.1.0: 63fb110dc2ce1a84dc21f6d9334876d010ae8b68 /cli-boxes/1.0.0: 4fa917c3e59c94a004cd61f8ee509da651687143 @@ -1368,13 +1350,10 @@ packages: esutils: 2.0.2 isarray: 1.0.0 resolution: c73d8d2909d22291e1a007a395804da8b665fe63 -<<<<<<< HEAD -======= /dom-urls/1.1.0: dependencies: urijs: 1.18.10 resolution: 001ddf81628cd1e706125c7176f53ccec55d918e ->>>>>>> most of first sw done /domain-browser/1.1.7: 867aa4b093faa05f1de08c06f4d7b21fdf8698bc /dot-prop/3.0.0: dependencies: @@ -1455,10 +1434,7 @@ packages: es6-symbol: 3.1.1 event-emitter: 0.3.5 resolution: 9136e0503dcc06a301690f0bb14ff4e364e949f0 -<<<<<<< HEAD -======= /es6-promise/4.1.0: dda03ca8f9f89bc597e689842929de7ba8cebdf0 ->>>>>>> most of first sw done /es6-set/0.1.5: dependencies: d: 1.0.0 @@ -1985,7 +1961,6 @@ packages: resolution: 7613c778a1afea62f25c630a086d7f3acbbdd818 /graceful-fs/4.1.11: 0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658 /graceful-readlink/1.0.1: 4cafad76bc62f02fa039b2f94e9a3dd3a391a725 -<<<<<<< HEAD /gulp-htmlmin/3.0.0: dependencies: bufferstreams: 1.1.1 @@ -1995,8 +1970,6 @@ packages: readable-stream: 2.2.9 tryit: 1.0.3 resolution: 19ea8002d1231d6b1f18a12d20f2a66a77770fb3 -======= ->>>>>>> most of first sw done /gulp-livereload/3.8.1: dependencies: chalk: 0.5.1 @@ -2130,10 +2103,7 @@ packages: hoek: 2.16.3 sntp: 1.0.9 resolution: 078444bd7c1640b0fe540d2c9b73d59678e8e1c4 -<<<<<<< HEAD /he/1.1.1: 93410fd21b009735151f8868c2f271f3427e23fd -======= ->>>>>>> most of first sw done /hmac-drbg/1.0.1: dependencies: hash.js: 1.0.3 @@ -2152,7 +2122,6 @@ packages: resolution: 4c2bbc8a758998feebf5ed68580f76d46768b4bc /hosted-git-info/2.4.2: 0076b9f46a270506ddbaaea56496897460612a67 /html-comment-regex/1.1.1: 668b93776eaae55ebde8f3ad464b307a4963625e -<<<<<<< HEAD /html-minifier/3.4.3: dependencies: camel-case: 3.0.0 @@ -2164,8 +2133,6 @@ packages: relateurl: 0.2.7 uglify-js: 2.8.22 resolution: eb3a7297c804611f470454eeebe0aacc427e424a -======= ->>>>>>> most of first sw done /htmlescape/1.1.1: 3a03edc2214bca3b66424a3e7959349509cb0351 /http-errors/1.3.1: dependencies: @@ -2623,10 +2590,7 @@ packages: /lodash.clonedeep/4.5.0: e23f3f9c4f8fbdde872529c1071857a086e5ccef /lodash.cond/4.5.2: f471a1da486be60f6ab955d17115523dd1d255d5 /lodash.debounce/4.0.8: 82d79bff30a67c4005ffd5e2515300ad9ca4d7af -<<<<<<< HEAD -======= /lodash.defaults/4.2.0: d09178716ffea4dde9e5fb7b37f6f0802274580c ->>>>>>> most of first sw done /lodash.difference/4.5.0: 9ccb4e505d486b91651345772885a2df27fd017c /lodash.escape/3.2.0: dependencies: @@ -2665,26 +2629,20 @@ packages: lodash.restparam: 3.6.1 lodash.templatesettings: 3.1.1 resolution: f8cdecc6169a255be9098ae8b0c53d378931d14f -<<<<<<< HEAD -======= /lodash.template/4.4.0: dependencies: lodash._reinterpolate: 3.0.0 lodash.templatesettings: 4.1.0 resolution: e73a0385c8355591746e020b99679c690e68fba0 ->>>>>>> most of first sw done /lodash.templatesettings/3.1.1: dependencies: lodash._reinterpolate: 3.0.0 lodash.escape: 3.2.0 resolution: fb307844753b66b9f1afa54e262c745307dba8e5 -<<<<<<< HEAD -======= /lodash.templatesettings/4.1.0: dependencies: lodash._reinterpolate: 3.0.0 resolution: 2b4d4e95ba440d915ff08bc899e4553666713316 ->>>>>>> most of first sw done /lodash.uniq/4.5.0: d0225373aeb652adc1bc82e4945339a842754773 /lodash.upperfirst/4.3.1: 1365edf431480481ef0d1c68957a5ed99d49f7ce /lodash/1.0.2: 8f57560c83b59fc270bd3d561b690043430e2551 @@ -2709,10 +2667,7 @@ packages: currently-unhandled: 0.4.1 signal-exit: 3.0.2 resolution: 5b46f80147edee578870f086d04821cf998e551f -<<<<<<< HEAD /lower-case/1.1.4: 9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac -======= ->>>>>>> most of first sw done /lowercase-keys/1.0.0: 4e3366b39e7f5457e35f1324bdf6f88d0bfc7306 /lru-cache/2.7.3: 6d4524e8b955f95d4f5b58851ce21dd72fb4e952 /lru-cache/4.0.2: @@ -2850,7 +2805,6 @@ packages: /nan/2.6.2: e4ff34e6c95fdfb5aecc08de6596f43605a7db45 /natives/1.1.0: e9ff841418a6b2ec7a495e939984f78f163e6e31 /natural-compare/1.4.0: 4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7 -<<<<<<< HEAD /ncname/1.0.0: dependencies: xml-char-classes: 1.0.0 @@ -2859,8 +2813,6 @@ packages: dependencies: lower-case: 1.1.4 resolution: 7aeba1c73a52184265554b7dc03baf720df80081 -======= ->>>>>>> most of first sw done /node-gyp/3.6.1: dependencies: fstream: 1.0.11 @@ -3052,13 +3004,10 @@ packages: semver: 5.3.0 resolution: 8869a0401253661c4c4ca3da6c2121ed555f5eed /pako/0.2.9: f3f7522f4ef782348da8161bad9ecfd51bf83a75 -<<<<<<< HEAD /param-case/2.1.1: dependencies: no-case: 2.3.1 resolution: df94fd8cf6531ecf75e6bef9a0858fbc72be2247 -======= ->>>>>>> most of first sw done /parents/1.0.1: dependencies: path-platform: 0.11.15 @@ -3109,13 +3058,10 @@ packages: dependencies: path-root-regex: 0.1.2 resolution: 9a4a6814cac1c0cd73360a95f32083c8ea4745b7 -<<<<<<< HEAD -======= /path-to-regexp/1.7.0: dependencies: isarray: 0.0.1 resolution: 59fde0f435badacba103a84e9d3bc64e96b9937d ->>>>>>> most of first sw done /path-type/1.1.0: dependencies: graceful-fs: 4.1.11 @@ -3336,10 +3282,7 @@ packages: /prelude-ls/1.1.2: 21932a549f5e52ffd9a827f570e04be62a97da54 /prepend-http/1.0.4: d4f4562b0ce3696e41ac52d0e002e57a635dc6dc /preserve/0.2.0: 815ed1f6ebc65926f865b310c0713bcb3315ce4b -<<<<<<< HEAD -======= /pretty-bytes/4.0.2: b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9 ->>>>>>> most of first sw done /pretty-format/18.1.0: dependencies: ansi-styles: 2.2.1 @@ -3537,10 +3480,7 @@ packages: dependencies: jsesc: 0.5.0 resolution: 7ee8f84dc6fa792d3fd0ae228d24bd949ead205c -<<<<<<< HEAD /relateurl/0.2.7: 54dbf377e51440aca90a4cd274600d3ff2d888a9 -======= ->>>>>>> most of first sw done /remove-trailing-separator/1.0.1: 615ebb96af559552d4bf4057c8436d486ab63cc4 /repeat-element/1.1.2: ef089a178d1483baae4d93eb98b4f9e4e11d990a /repeat-string/1.6.1: 8dcae470e1c88abc2d600fff4a776286da75e637 @@ -3658,10 +3598,7 @@ packages: /semver/4.3.6: 300bc6e0e86374f7ba61068b5b1ecd57fc6532da /semver/5.3.0: 9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f /sequencify/0.0.7: 90cff19d02e07027fd767f5ead3e7b95d1e7380c -<<<<<<< HEAD -======= /serviceworker-cache-polyfill/4.0.0: de19ee73bef21ab3c0740a37b33db62464babdeb ->>>>>>> most of first sw done /set-blocking/2.0.0: 045f9782d011ae9a6803ddd382b24392b3d890f7 /set-immediate-shim/1.0.1: 4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61 /sha.js/2.4.8: @@ -3875,8 +3812,6 @@ packages: sax: 1.2.2 whet.extend: 0.9.9 resolution: 9f5772413952135c6fefbf40afe6a4faa88b4bb5 -<<<<<<< HEAD -======= /sw-precache/5.1.1: dependencies: dom-urls: 1.1.0 @@ -3895,7 +3830,6 @@ packages: path-to-regexp: 1.7.0 serviceworker-cache-polyfill: 4.0.0 resolution: 26df1d1c70348658e4dea2884319149b7b3183b5 ->>>>>>> most of first sw done /symbol-observable/0.2.4: 95a83db26186d6af7e7a18dbd9760a2f86d08f40 /symbol-observable/1.0.4: 29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d /syntax-error/1.3.0: @@ -4046,11 +3980,8 @@ packages: semver-diff: 2.1.0 xdg-basedir: 3.0.0 resolution: ec0c1e53536b76647a24b77cb83966d9315123d9 -<<<<<<< HEAD /upper-case/1.1.3: f6b4501c2ec4cdd26ba78be7222961de77621598 -======= /urijs/1.18.10: b94463eaba59a1a796036a467bb633c667f221ab ->>>>>>> most of first sw done /urix/0.1.0: da937f7a62e21fec1fd18d49b35c2935067a6c72 /url-parse-lax/1.0.0: dependencies: @@ -4199,10 +4130,7 @@ packages: os-homedir: 1.0.2 resolution: edbc903cc385fc04523d966a335504b5504d1bd2 /xdg-basedir/3.0.0: 496b2cc109eca8dbacfe2dc72b603c17c5870ad4 -<<<<<<< HEAD /xml-char-classes/1.0.0: 64657848a20ffc5df583a42ad8a277b4512bbc4d -======= ->>>>>>> most of first sw done /xo-init/0.5.0: dependencies: arrify: 1.0.1 diff --git a/src/html/404.html b/src/404.html similarity index 100% rename from src/html/404.html rename to src/404.html diff --git a/src/html/index.html b/src/index.html similarity index 98% rename from src/html/index.html rename to src/index.html index 8d926f7..550a33e 100644 --- a/src/html/index.html +++ b/src/index.html @@ -80,6 +80,7 @@

CODE OUTPUT

+ \ No newline at end of file +Practice JavaScript

Practice JavaScript!

TEST ERRORS

CODE OUTPUT

\ No newline at end of file diff --git a/public/launch-icon.svg b/public/launch-icon.svg new file mode 100644 index 0000000..e60aefe --- /dev/null +++ b/public/launch-icon.svg @@ -0,0 +1 @@ +Layer 1 \ No newline at end of file diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..17513cf --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,14 @@ +{ + "short_name": "PracticeJS", + "name": "Practice JavaScript with this fun game", + "background_color": "#0C141F", + "theme_color": "#0C141F", + "display": "standalone", + "icons": [ + { + "src": "launcher-icon.svg", + "sizes": "256x256" + } + ], + "start_url": "index.html?utm_source=homescreen" +} diff --git a/public/service-worker.js b/public/service-worker.js index b0dc1b5..6fb870d 100644 --- a/public/service-worker.js +++ b/public/service-worker.js @@ -1,2 +1,2 @@ -"use strict";function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}var precacheConfig=[["/dist/css/style.css","d70e1325f89dcb315caf497e339674ac"],["/dist/img/back.svg","898ada2a32ec64bd5b6959c22e8f231d"],["/dist/img/monitor.svg","348592da5567b5a3c46acfb5dcd341bc"],["/dist/img/next.svg","045593410b9f51390e750b9e1e7fff15"],["/dist/img/reload.svg","a0ab1b765280e4d22e6fb747042f6503"],["/dist/img/shuffle.svg","3a5e3c1bf04eb3493d8a2ffa547aa58f"],["/dist/js/bundle.min.js","3e56c92d7228ef0fa5542d11c2750382"],["/dist/js/loadJS.js","72c55936069f60560a386e46f462c73a"],["/dist/js/sw-registration.js","677217d8e642c1ccff69fc01c96b4431"],["/index.html","cd2e2477bddecc148969493027dc769a"]],cacheName="sw-precache-v3--"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){var s=new URL(e);return r&&s.pathname.match(r)||(s.search+=(s.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),s.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.hash="",n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),s=createCacheKey(r,hashParamName,n,!1);return[r.toString(),s]}));self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var r=new Request(n,{credentials:"same-origin"});return fetch(r).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);t=urlsToCacheKeys.has(n);t||(n=addDirectoryIndex(n,"index.html"),t=urlsToCacheKeys.has(n));t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}}); +"use strict";function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}var precacheConfig=[["/dist/css/style.css","ba4d66c91d1ed66848154a34ab4948cf"],["/dist/img/back.svg","898ada2a32ec64bd5b6959c22e8f231d"],["/dist/img/monitor.svg","348592da5567b5a3c46acfb5dcd341bc"],["/dist/img/next.svg","045593410b9f51390e750b9e1e7fff15"],["/dist/img/reload.svg","a0ab1b765280e4d22e6fb747042f6503"],["/dist/img/shuffle.svg","3a5e3c1bf04eb3493d8a2ffa547aa58f"],["/dist/js/bundle.min.js","3e56c92d7228ef0fa5542d11c2750382"],["/dist/js/loadJS.js","72c55936069f60560a386e46f462c73a"],["/dist/js/sw-registration.js","677217d8e642c1ccff69fc01c96b4431"],["/index.html","7b0fd165f7ac1581a43a6efa1d7f382a"]],cacheName="sw-precache-v3--"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){var a=new URL(e);return r&&a.pathname.match(r)||(a.search+=(a.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),a.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.hash="",n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),a=createCacheKey(r,hashParamName,n,!1);return[r.toString(),a]}));self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var r=new Request(n,{credentials:"same-origin"});return fetch(r).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);t=urlsToCacheKeys.has(n);t||(n=addDirectoryIndex(n,"index.html"),t=urlsToCacheKeys.has(n));t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}}); //# sourceMappingURL=service-worker.js.map diff --git a/public/service-worker.js.map b/public/service-worker.js.map index 6ee0fd1..b27f990 100644 --- a/public/service-worker.js.map +++ b/public/service-worker.js.map @@ -1 +1 @@ -{"version":3,"sources":["service-worker.js"],"names":["setOfCachedUrls","cache","keys","then","requests","map","request","url","urls","Set","precacheConfig","cacheName","self","registration","scope","ignoreUrlParametersMatching","addDirectoryIndex","originalUrl","index","URL","pathname","slice","toString","cleanResponse","originalResponse","redirected","Promise","resolve","body","blob","Response","headers","status","statusText","createCacheKey","paramName","paramValue","dontCacheBustUrlsMatching","match","search","encodeURIComponent","isPathWhitelisted","whitelist","absoluteUrlString","length","path","some","whitelistedPathRegex","stripIgnoredUrlParameters","hash","split","kv","filter","every","ignoredRegex","test","join","hashParamName","urlsToCacheKeys","Map","item","relativeUrl","absoluteUrl","location","cacheKey","addEventListener","event","waitUntil","caches","open","cachedUrls","all","Array","from","values","has","Request","credentials","fetch","response","ok","Error","responseToCache","put","skipWaiting","setOfExpectedUrls","existingRequests","existingRequest","delete","clients","claim","method","shouldRespond","respondWith","get","catch","e","console","warn"],"mappings":"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","file":"service-worker.js","sourcesContent":["/**\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n*/\n\n// DO NOT EDIT THIS GENERATED OUTPUT DIRECTLY!\n// This file should be overwritten as part of your build process.\n// If you need to extend the behavior of the generated service worker, the best approach is to write\n// additional code and include it using the importScripts option:\n// https://github.com/GoogleChrome/sw-precache#importscripts-arraystring\n//\n// Alternatively, it's possible to make changes to the underlying template file and then use that as the\n// new base for generating output, via the templateFilePath option:\n// https://github.com/GoogleChrome/sw-precache#templatefilepath-string\n//\n// If you go that route, make sure that whenever you update your sw-precache dependency, you reconcile any\n// changes made to this original template file with your modified copy.\n\n// This generated service worker JavaScript will precache your site's resources.\n// The code needs to be saved in a .js file at the top-level of your site, and registered\n// from your pages in order to be used. See\n// https://github.com/googlechrome/sw-precache/blob/master/demo/app/js/service-worker-registration.js\n// for an example of how you can register this script and handle various service worker events.\n\n/* eslint-env worker, serviceworker */\n/* eslint-disable indent, no-unused-vars, no-multiple-empty-lines, max-nested-callbacks, space-before-function-paren, quotes, comma-spacing */\n'use strict';\n\nvar precacheConfig = [[\"/dist/css/style.css\",\"d70e1325f89dcb315caf497e339674ac\"],[\"/dist/img/back.svg\",\"898ada2a32ec64bd5b6959c22e8f231d\"],[\"/dist/img/monitor.svg\",\"348592da5567b5a3c46acfb5dcd341bc\"],[\"/dist/img/next.svg\",\"045593410b9f51390e750b9e1e7fff15\"],[\"/dist/img/reload.svg\",\"a0ab1b765280e4d22e6fb747042f6503\"],[\"/dist/img/shuffle.svg\",\"3a5e3c1bf04eb3493d8a2ffa547aa58f\"],[\"/dist/js/bundle.min.js\",\"3e56c92d7228ef0fa5542d11c2750382\"],[\"/dist/js/loadJS.js\",\"72c55936069f60560a386e46f462c73a\"],[\"/dist/js/sw-registration.js\",\"677217d8e642c1ccff69fc01c96b4431\"],[\"/index.html\",\"cd2e2477bddecc148969493027dc769a\"]];\nvar cacheName = 'sw-precache-v3--' + (self.registration ? self.registration.scope : '');\n\n\nvar ignoreUrlParametersMatching = [/^utm_/];\n\n\n\nvar addDirectoryIndex = function (originalUrl, index) {\n var url = new URL(originalUrl);\n if (url.pathname.slice(-1) === '/') {\n url.pathname += index;\n }\n return url.toString();\n };\n\nvar cleanResponse = function (originalResponse) {\n // If this is not a redirected response, then we don't have to do anything.\n if (!originalResponse.redirected) {\n return Promise.resolve(originalResponse);\n }\n\n // Firefox 50 and below doesn't support the Response.body stream, so we may\n // need to read the entire body to memory as a Blob.\n var bodyPromise = 'body' in originalResponse ?\n Promise.resolve(originalResponse.body) :\n originalResponse.blob();\n\n return bodyPromise.then(function(body) {\n // new Response() is happy when passed either a stream or a Blob.\n return new Response(body, {\n headers: originalResponse.headers,\n status: originalResponse.status,\n statusText: originalResponse.statusText\n });\n });\n };\n\nvar createCacheKey = function (originalUrl, paramName, paramValue,\n dontCacheBustUrlsMatching) {\n // Create a new URL object to avoid modifying originalUrl.\n var url = new URL(originalUrl);\n\n // If dontCacheBustUrlsMatching is not set, or if we don't have a match,\n // then add in the extra cache-busting URL parameter.\n if (!dontCacheBustUrlsMatching ||\n !(url.pathname.match(dontCacheBustUrlsMatching))) {\n url.search += (url.search ? '&' : '') +\n encodeURIComponent(paramName) + '=' + encodeURIComponent(paramValue);\n }\n\n return url.toString();\n };\n\nvar isPathWhitelisted = function (whitelist, absoluteUrlString) {\n // If the whitelist is empty, then consider all URLs to be whitelisted.\n if (whitelist.length === 0) {\n return true;\n }\n\n // Otherwise compare each path regex to the path of the URL passed in.\n var path = (new URL(absoluteUrlString)).pathname;\n return whitelist.some(function(whitelistedPathRegex) {\n return path.match(whitelistedPathRegex);\n });\n };\n\nvar stripIgnoredUrlParameters = function (originalUrl,\n ignoreUrlParametersMatching) {\n var url = new URL(originalUrl);\n // Remove the hash; see https://github.com/GoogleChrome/sw-precache/issues/290\n url.hash = '';\n\n url.search = url.search.slice(1) // Exclude initial '?'\n .split('&') // Split into an array of 'key=value' strings\n .map(function(kv) {\n return kv.split('='); // Split each 'key=value' string into a [key, value] array\n })\n .filter(function(kv) {\n return ignoreUrlParametersMatching.every(function(ignoredRegex) {\n return !ignoredRegex.test(kv[0]); // Return true iff the key doesn't match any of the regexes.\n });\n })\n .map(function(kv) {\n return kv.join('='); // Join each [key, value] array into a 'key=value' string\n })\n .join('&'); // Join the array of 'key=value' strings into a string with '&' in between each\n\n return url.toString();\n };\n\n\nvar hashParamName = '_sw-precache';\nvar urlsToCacheKeys = new Map(\n precacheConfig.map(function(item) {\n var relativeUrl = item[0];\n var hash = item[1];\n var absoluteUrl = new URL(relativeUrl, self.location);\n var cacheKey = createCacheKey(absoluteUrl, hashParamName, hash, false);\n return [absoluteUrl.toString(), cacheKey];\n })\n);\n\nfunction setOfCachedUrls(cache) {\n return cache.keys().then(function(requests) {\n return requests.map(function(request) {\n return request.url;\n });\n }).then(function(urls) {\n return new Set(urls);\n });\n}\n\nself.addEventListener('install', function(event) {\n event.waitUntil(\n caches.open(cacheName).then(function(cache) {\n return setOfCachedUrls(cache).then(function(cachedUrls) {\n return Promise.all(\n Array.from(urlsToCacheKeys.values()).map(function(cacheKey) {\n // If we don't have a key matching url in the cache already, add it.\n if (!cachedUrls.has(cacheKey)) {\n var request = new Request(cacheKey, {credentials: 'same-origin'});\n return fetch(request).then(function(response) {\n // Bail out of installation unless we get back a 200 OK for\n // every request.\n if (!response.ok) {\n throw new Error('Request for ' + cacheKey + ' returned a ' +\n 'response with status ' + response.status);\n }\n\n return cleanResponse(response).then(function(responseToCache) {\n return cache.put(cacheKey, responseToCache);\n });\n });\n }\n })\n );\n });\n }).then(function() {\n \n // Force the SW to transition from installing -> active state\n return self.skipWaiting();\n \n })\n );\n});\n\nself.addEventListener('activate', function(event) {\n var setOfExpectedUrls = new Set(urlsToCacheKeys.values());\n\n event.waitUntil(\n caches.open(cacheName).then(function(cache) {\n return cache.keys().then(function(existingRequests) {\n return Promise.all(\n existingRequests.map(function(existingRequest) {\n if (!setOfExpectedUrls.has(existingRequest.url)) {\n return cache.delete(existingRequest);\n }\n })\n );\n });\n }).then(function() {\n \n return self.clients.claim();\n \n })\n );\n});\n\n\nself.addEventListener('fetch', function(event) {\n if (event.request.method === 'GET') {\n // Should we call event.respondWith() inside this fetch event handler?\n // This needs to be determined synchronously, which will give other fetch\n // handlers a chance to handle the request if need be.\n var shouldRespond;\n\n // First, remove all the ignored parameters and hash fragment, and see if we\n // have that URL in our cache. If so, great! shouldRespond will be true.\n var url = stripIgnoredUrlParameters(event.request.url, ignoreUrlParametersMatching);\n shouldRespond = urlsToCacheKeys.has(url);\n\n // If shouldRespond is false, check again, this time with 'index.html'\n // (or whatever the directoryIndex option is set to) at the end.\n var directoryIndex = 'index.html';\n if (!shouldRespond && directoryIndex) {\n url = addDirectoryIndex(url, directoryIndex);\n shouldRespond = urlsToCacheKeys.has(url);\n }\n\n // If shouldRespond is still false, check to see if this is a navigation\n // request, and if so, whether the URL matches navigateFallbackWhitelist.\n var navigateFallback = '';\n if (!shouldRespond &&\n navigateFallback &&\n (event.request.mode === 'navigate') &&\n isPathWhitelisted([], event.request.url)) {\n url = new URL(navigateFallback, self.location).toString();\n shouldRespond = urlsToCacheKeys.has(url);\n }\n\n // If shouldRespond was set to true at any point, then call\n // event.respondWith(), using the appropriate cache key.\n if (shouldRespond) {\n event.respondWith(\n caches.open(cacheName).then(function(cache) {\n return cache.match(urlsToCacheKeys.get(url)).then(function(response) {\n if (response) {\n return response;\n }\n throw Error('The cached response that was expected is missing.');\n });\n }).catch(function(e) {\n // Fall back to just fetch()ing the request if some unexpected error\n // prevented the cached response from being valid.\n console.warn('Couldn\\'t serve response for \"%s\" from cache: %O', event.request.url, e);\n return fetch(event.request);\n })\n );\n }\n }\n});\n\n\n\n\n\n\n\n"]} \ No newline at end of file +{"version":3,"sources":["service-worker.js"],"names":["setOfCachedUrls","cache","keys","then","requests","map","request","url","urls","Set","precacheConfig","cacheName","self","registration","scope","ignoreUrlParametersMatching","addDirectoryIndex","originalUrl","index","URL","pathname","slice","toString","cleanResponse","originalResponse","redirected","Promise","resolve","body","blob","Response","headers","status","statusText","createCacheKey","paramName","paramValue","dontCacheBustUrlsMatching","match","search","encodeURIComponent","isPathWhitelisted","whitelist","absoluteUrlString","length","path","some","whitelistedPathRegex","stripIgnoredUrlParameters","hash","split","kv","filter","every","ignoredRegex","test","join","hashParamName","urlsToCacheKeys","Map","item","relativeUrl","absoluteUrl","location","cacheKey","addEventListener","event","waitUntil","caches","open","cachedUrls","all","Array","from","values","has","Request","credentials","fetch","response","ok","Error","responseToCache","put","skipWaiting","setOfExpectedUrls","existingRequests","existingRequest","delete","clients","claim","method","shouldRespond","respondWith","get","catch","e","console","warn"],"mappings":"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","file":"service-worker.js","sourcesContent":["/**\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n*/\n\n// DO NOT EDIT THIS GENERATED OUTPUT DIRECTLY!\n// This file should be overwritten as part of your build process.\n// If you need to extend the behavior of the generated service worker, the best approach is to write\n// additional code and include it using the importScripts option:\n// https://github.com/GoogleChrome/sw-precache#importscripts-arraystring\n//\n// Alternatively, it's possible to make changes to the underlying template file and then use that as the\n// new base for generating output, via the templateFilePath option:\n// https://github.com/GoogleChrome/sw-precache#templatefilepath-string\n//\n// If you go that route, make sure that whenever you update your sw-precache dependency, you reconcile any\n// changes made to this original template file with your modified copy.\n\n// This generated service worker JavaScript will precache your site's resources.\n// The code needs to be saved in a .js file at the top-level of your site, and registered\n// from your pages in order to be used. See\n// https://github.com/googlechrome/sw-precache/blob/master/demo/app/js/service-worker-registration.js\n// for an example of how you can register this script and handle various service worker events.\n\n/* eslint-env worker, serviceworker */\n/* eslint-disable indent, no-unused-vars, no-multiple-empty-lines, max-nested-callbacks, space-before-function-paren, quotes, comma-spacing */\n'use strict';\n\nvar precacheConfig = [[\"/dist/css/style.css\",\"ba4d66c91d1ed66848154a34ab4948cf\"],[\"/dist/img/back.svg\",\"898ada2a32ec64bd5b6959c22e8f231d\"],[\"/dist/img/monitor.svg\",\"348592da5567b5a3c46acfb5dcd341bc\"],[\"/dist/img/next.svg\",\"045593410b9f51390e750b9e1e7fff15\"],[\"/dist/img/reload.svg\",\"a0ab1b765280e4d22e6fb747042f6503\"],[\"/dist/img/shuffle.svg\",\"3a5e3c1bf04eb3493d8a2ffa547aa58f\"],[\"/dist/js/bundle.min.js\",\"3e56c92d7228ef0fa5542d11c2750382\"],[\"/dist/js/loadJS.js\",\"72c55936069f60560a386e46f462c73a\"],[\"/dist/js/sw-registration.js\",\"677217d8e642c1ccff69fc01c96b4431\"],[\"/index.html\",\"7b0fd165f7ac1581a43a6efa1d7f382a\"]];\nvar cacheName = 'sw-precache-v3--' + (self.registration ? self.registration.scope : '');\n\n\nvar ignoreUrlParametersMatching = [/^utm_/];\n\n\n\nvar addDirectoryIndex = function (originalUrl, index) {\n var url = new URL(originalUrl);\n if (url.pathname.slice(-1) === '/') {\n url.pathname += index;\n }\n return url.toString();\n };\n\nvar cleanResponse = function (originalResponse) {\n // If this is not a redirected response, then we don't have to do anything.\n if (!originalResponse.redirected) {\n return Promise.resolve(originalResponse);\n }\n\n // Firefox 50 and below doesn't support the Response.body stream, so we may\n // need to read the entire body to memory as a Blob.\n var bodyPromise = 'body' in originalResponse ?\n Promise.resolve(originalResponse.body) :\n originalResponse.blob();\n\n return bodyPromise.then(function(body) {\n // new Response() is happy when passed either a stream or a Blob.\n return new Response(body, {\n headers: originalResponse.headers,\n status: originalResponse.status,\n statusText: originalResponse.statusText\n });\n });\n };\n\nvar createCacheKey = function (originalUrl, paramName, paramValue,\n dontCacheBustUrlsMatching) {\n // Create a new URL object to avoid modifying originalUrl.\n var url = new URL(originalUrl);\n\n // If dontCacheBustUrlsMatching is not set, or if we don't have a match,\n // then add in the extra cache-busting URL parameter.\n if (!dontCacheBustUrlsMatching ||\n !(url.pathname.match(dontCacheBustUrlsMatching))) {\n url.search += (url.search ? '&' : '') +\n encodeURIComponent(paramName) + '=' + encodeURIComponent(paramValue);\n }\n\n return url.toString();\n };\n\nvar isPathWhitelisted = function (whitelist, absoluteUrlString) {\n // If the whitelist is empty, then consider all URLs to be whitelisted.\n if (whitelist.length === 0) {\n return true;\n }\n\n // Otherwise compare each path regex to the path of the URL passed in.\n var path = (new URL(absoluteUrlString)).pathname;\n return whitelist.some(function(whitelistedPathRegex) {\n return path.match(whitelistedPathRegex);\n });\n };\n\nvar stripIgnoredUrlParameters = function (originalUrl,\n ignoreUrlParametersMatching) {\n var url = new URL(originalUrl);\n // Remove the hash; see https://github.com/GoogleChrome/sw-precache/issues/290\n url.hash = '';\n\n url.search = url.search.slice(1) // Exclude initial '?'\n .split('&') // Split into an array of 'key=value' strings\n .map(function(kv) {\n return kv.split('='); // Split each 'key=value' string into a [key, value] array\n })\n .filter(function(kv) {\n return ignoreUrlParametersMatching.every(function(ignoredRegex) {\n return !ignoredRegex.test(kv[0]); // Return true iff the key doesn't match any of the regexes.\n });\n })\n .map(function(kv) {\n return kv.join('='); // Join each [key, value] array into a 'key=value' string\n })\n .join('&'); // Join the array of 'key=value' strings into a string with '&' in between each\n\n return url.toString();\n };\n\n\nvar hashParamName = '_sw-precache';\nvar urlsToCacheKeys = new Map(\n precacheConfig.map(function(item) {\n var relativeUrl = item[0];\n var hash = item[1];\n var absoluteUrl = new URL(relativeUrl, self.location);\n var cacheKey = createCacheKey(absoluteUrl, hashParamName, hash, false);\n return [absoluteUrl.toString(), cacheKey];\n })\n);\n\nfunction setOfCachedUrls(cache) {\n return cache.keys().then(function(requests) {\n return requests.map(function(request) {\n return request.url;\n });\n }).then(function(urls) {\n return new Set(urls);\n });\n}\n\nself.addEventListener('install', function(event) {\n event.waitUntil(\n caches.open(cacheName).then(function(cache) {\n return setOfCachedUrls(cache).then(function(cachedUrls) {\n return Promise.all(\n Array.from(urlsToCacheKeys.values()).map(function(cacheKey) {\n // If we don't have a key matching url in the cache already, add it.\n if (!cachedUrls.has(cacheKey)) {\n var request = new Request(cacheKey, {credentials: 'same-origin'});\n return fetch(request).then(function(response) {\n // Bail out of installation unless we get back a 200 OK for\n // every request.\n if (!response.ok) {\n throw new Error('Request for ' + cacheKey + ' returned a ' +\n 'response with status ' + response.status);\n }\n\n return cleanResponse(response).then(function(responseToCache) {\n return cache.put(cacheKey, responseToCache);\n });\n });\n }\n })\n );\n });\n }).then(function() {\n \n // Force the SW to transition from installing -> active state\n return self.skipWaiting();\n \n })\n );\n});\n\nself.addEventListener('activate', function(event) {\n var setOfExpectedUrls = new Set(urlsToCacheKeys.values());\n\n event.waitUntil(\n caches.open(cacheName).then(function(cache) {\n return cache.keys().then(function(existingRequests) {\n return Promise.all(\n existingRequests.map(function(existingRequest) {\n if (!setOfExpectedUrls.has(existingRequest.url)) {\n return cache.delete(existingRequest);\n }\n })\n );\n });\n }).then(function() {\n \n return self.clients.claim();\n \n })\n );\n});\n\n\nself.addEventListener('fetch', function(event) {\n if (event.request.method === 'GET') {\n // Should we call event.respondWith() inside this fetch event handler?\n // This needs to be determined synchronously, which will give other fetch\n // handlers a chance to handle the request if need be.\n var shouldRespond;\n\n // First, remove all the ignored parameters and hash fragment, and see if we\n // have that URL in our cache. If so, great! shouldRespond will be true.\n var url = stripIgnoredUrlParameters(event.request.url, ignoreUrlParametersMatching);\n shouldRespond = urlsToCacheKeys.has(url);\n\n // If shouldRespond is false, check again, this time with 'index.html'\n // (or whatever the directoryIndex option is set to) at the end.\n var directoryIndex = 'index.html';\n if (!shouldRespond && directoryIndex) {\n url = addDirectoryIndex(url, directoryIndex);\n shouldRespond = urlsToCacheKeys.has(url);\n }\n\n // If shouldRespond is still false, check to see if this is a navigation\n // request, and if so, whether the URL matches navigateFallbackWhitelist.\n var navigateFallback = '';\n if (!shouldRespond &&\n navigateFallback &&\n (event.request.mode === 'navigate') &&\n isPathWhitelisted([], event.request.url)) {\n url = new URL(navigateFallback, self.location).toString();\n shouldRespond = urlsToCacheKeys.has(url);\n }\n\n // If shouldRespond was set to true at any point, then call\n // event.respondWith(), using the appropriate cache key.\n if (shouldRespond) {\n event.respondWith(\n caches.open(cacheName).then(function(cache) {\n return cache.match(urlsToCacheKeys.get(url)).then(function(response) {\n if (response) {\n return response;\n }\n throw Error('The cached response that was expected is missing.');\n });\n }).catch(function(e) {\n // Fall back to just fetch()ing the request if some unexpected error\n // prevented the cached response from being valid.\n console.warn('Couldn\\'t serve response for \"%s\" from cache: %O', event.request.url, e);\n return fetch(event.request);\n })\n );\n }\n }\n});\n\n\n\n\n\n\n\n"]} \ No newline at end of file diff --git a/shrinkwrap.yaml b/shrinkwrap.yaml index 608802f..26a1a27 100644 --- a/shrinkwrap.yaml +++ b/shrinkwrap.yaml @@ -11,6 +11,7 @@ dependencies: chai@^3.5.0: 3.5.0 cssnano@^3.10.0: 3.10.0 gulp-htmlmin@^3.0.0: 3.0.0 + gulp-image@^2.8.0: 2.8.0 gulp-livereload@^3.8.1: 3.8.1 gulp-postcss@^6.4.0: 6.4.0 gulp-sass@^3.1.0: 3.1.0 @@ -119,6 +120,10 @@ packages: resolution: a3e52fa39168c825ff57b0248126ce5a8ff95507 /app-root-path/2.0.1: cd62dcf8e4fd5a417efc664d2e5b10653c651b46 /aproba/1.1.1: 95d3600f07710aa0e9298c726ad5ecf2eacbabab + /archive-type/3.2.0: + dependencies: + file-type: 3.9.0 + resolution: 9cd9c006957ebe95fadad5bd6098942a813737f6 /archy/1.0.0: f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40 /are-we-there-yet/1.1.4: dependencies: @@ -166,6 +171,7 @@ packages: dependencies: acorn: 4.0.11 resolution: 7bd41784d32493987aeb239b6b4e1c57a873b917 + /async-each-series/1.1.0: f42fd8155d38f21a5b8ea07c28e063ed1700b138 /async-each/1.0.1: 19d386a1d9edc6e7c1c85d388aedbcc56d33602d /async-foreach/0.1.3: 36121f845c0578172de419a97dbeb1d16ec34542 /asynckit/0.4.0: c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79 @@ -683,11 +689,49 @@ packages: tweetnacl: 0.14.5 resolution: 63bc5dcb61331b92bc05fd528953c33462a06f8d /beeper/1.1.1: e6d5ea8c5dad001304a70b22638447f69cb2f809 + /bin-build/2.2.0: + dependencies: + archive-type: 3.2.0 + decompress: 3.0.0 + download: 4.4.3 + exec-series: 1.0.3 + rimraf: 2.6.1 + tempfile: 1.1.1 + url-regex: 3.2.0 + resolution: 11f8dd61f70ffcfa2bdcaa5b46f5e8fedd4221cc + /bin-check/2.0.0: + dependencies: + executable: 1.1.0 + resolution: 86f8e6f4253893df60dc316957f5af02acb05930 + /bin-version-check/2.1.0: + dependencies: + bin-version: 1.0.4 + minimist: 1.2.0 + semver: 4.3.6 + semver-truncate: 1.1.2 + resolution: e4e5df290b9069f7d111324031efc13fdd11a5b0 + /bin-version/1.0.4: + dependencies: + find-versions: 1.2.1 + resolution: 9eb498ee6fd76f7ab9a7c160436f89579435d78e + /bin-wrapper/3.0.2: + dependencies: + bin-check: 2.0.0 + bin-version-check: 2.1.0 + download: 4.4.3 + each-async: 1.1.1 + lazy-req: 1.1.0 + os-filter-obj: 1.0.3 + resolution: 67d3306262e4b1a5f2f88ee23464f6a655677aeb /binary-extensions/1.8.0: 48ec8d16df4377eae5fa5884682480af4d95c774 /bl/0.9.5: dependencies: readable-stream: 1.0.34 resolution: c06b797af085ea00bc527afc8efcf11de2232054 + /bl/1.2.1: + dependencies: + readable-stream: 2.2.9 + resolution: cac328f7bee45730d404b692203fcb590e172d5e /block-stream/0.0.9: dependencies: inherits: 2.0.3 @@ -852,7 +896,15 @@ packages: electron-to-chromium: 1.3.9 resolution: 0bd76704258be829b2398bb50e4b62d1a166b0b9 /buf-compare/1.0.1: fef28da8b8113a0a0db4430b0b6467b69730b34a + /buffer-crc32/0.2.13: 0d333e3f00eac50aa1454abd30ef8c2a5d9a7242 /buffer-shims/1.0.0: 9978ce317388c649ad8793028c3477ef044a8b51 + /buffer-to-vinyl/1.1.0: + dependencies: + file-type: 3.9.0 + readable-stream: 2.2.9 + uuid: 2.0.3 + vinyl: 1.2.0 + resolution: 00f15faee3ab7a1dda2cde6d9121bffdd07b2262 /buffer-xor/1.0.3: 26e61ed1422fb70dd42e6e36729ed51d855fe8d9 /buffer/5.0.6: dependencies: @@ -911,6 +963,13 @@ packages: /caniuse-db/1.0.30000665: e84f4277935f295f546f8533cb0b410a8415b972 /capture-stack-trace/1.0.0: 4a6fa07399c26bba47f0b2496b4d0fb408c5550d /caseless/0.12.0: 1b681c21ff84033c826543090689420d187151dc + /caw/1.2.0: + dependencies: + get-proxy: 1.1.0 + is-obj: 1.0.1 + object-assign: 3.0.0 + tunnel-agent: 0.4.3 + resolution: ffb226fe7efc547288dc62ee3e97073c212d1034 /center-align/0.1.3: dependencies: align-text: 0.1.4 @@ -1008,6 +1067,7 @@ packages: dependencies: pinkie-promise: 1.0.0 resolution: 413e7db6f5893a60b942cf492c4bec93db415ab7 + /co/3.1.0: 4ea54ea5a08938153185e15210c68d9092bc1b78 /co/4.6.0: 6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184 /coa/1.0.1: dependencies: @@ -1051,6 +1111,10 @@ packages: dependencies: delayed-stream: 1.0.0 resolution: 938370a57b4a51dea2c77c15d5c5fdf895164009 + /commander/2.8.1: + dependencies: + graceful-readlink: 1.0.1 + resolution: 06be367febfda0c330aa1e2a072d3dc9762425d4 /commander/2.9.0: dependencies: graceful-readlink: 1.0.1 @@ -1096,6 +1160,7 @@ packages: date-now: 0.1.4 resolution: f0241c45730a9fc6323b206dbf38edc741d0bb10 /console-control-strings/1.1.0: 3d7cf4464db6446ea644bf4b39507f9851008e8e + /console-stream/0.1.1: a095fe07b20465955f2fafd28b5d72bccd949d44 /constants-browserify/1.0.0: c20b96d8c617748aaf1c16021760cd27fcb8cb75 /contains-path/0.1.0: fe8cf184ff6670b6baef01a9d4861a5cbec4120a /content-type/1.0.2: b7d113aee7a8dd27bd21133c4dc2529df1721eed @@ -1273,6 +1338,56 @@ packages: ms: 0.7.3 resolution: a9fa6fbe9ca43cf1e79f73b75c0189cbb7d6db5a /decamelize/1.2.0: f6534d15148269b20352e7bee26f501f9a191290 + /decompress-tar/3.1.0: + dependencies: + is-tar: 1.0.0 + object-assign: 2.1.1 + strip-dirs: 1.1.1 + tar-stream: 1.5.2 + through2: 0.6.5 + vinyl: 0.4.6 + resolution: 217c789f9b94450efaadc5c5e537978fc333c466 + /decompress-tarbz2/3.1.0: + dependencies: + is-bzip2: 1.0.0 + object-assign: 2.1.1 + seek-bzip: 1.0.5 + strip-dirs: 1.1.1 + tar-stream: 1.5.2 + through2: 0.6.5 + vinyl: 0.4.6 + resolution: 8b23935681355f9f189d87256a0f8bdd96d9666d + /decompress-targz/3.1.0: + dependencies: + is-gzip: 1.0.0 + object-assign: 2.1.1 + strip-dirs: 1.1.1 + tar-stream: 1.5.2 + through2: 0.6.5 + vinyl: 0.4.6 + resolution: b2c13df98166268991b715d6447f642e9696f5a0 + /decompress-unzip/3.4.0: + dependencies: + is-zip: 1.0.0 + read-all-stream: 3.1.0 + stat-mode: 0.2.2 + strip-dirs: 1.1.1 + through2: 2.0.3 + vinyl: 1.2.0 + yauzl: 2.8.0 + resolution: 61475b4152066bbe3fee12f9d629d15fe6478eeb + /decompress/3.0.0: + dependencies: + buffer-to-vinyl: 1.1.0 + concat-stream: 1.6.0 + decompress-tar: 3.1.0 + decompress-tarbz2: 3.1.0 + decompress-targz: 3.1.0 + decompress-unzip: 3.4.0 + stream-combiner2: 1.1.1 + vinyl-assign: 1.2.1 + vinyl-fs: 2.4.4 + resolution: af1dd50d06e3bfc432461d37de11b38c0d991bed /deep-assign/1.0.0: dependencies: is-obj: 1.0.1 @@ -1363,6 +1478,24 @@ packages: dependencies: is-obj: 1.0.1 resolution: a8493f0b7b5eeec82525b5c7587fa7de7ca859c1 + /download/4.4.3: + dependencies: + caw: 1.2.0 + concat-stream: 1.6.0 + each-async: 1.1.1 + filenamify: 1.2.1 + got: 5.7.1 + gulp-decompress: 1.2.0 + gulp-rename: 1.2.2 + is-url: 1.2.2 + object-assign: 4.1.1 + read-all-stream: 3.1.0 + readable-stream: 2.2.9 + stream-combiner2: 1.1.1 + vinyl: 1.2.0 + vinyl-fs: 2.4.4 + ware: 1.3.0 + resolution: aa55fdad392d95d4b68e8c2be03e0c2aa21ba9ac /duplexer/0.1.1: ace6ff808c1ce66b57d1ebf97977acb02334cfc1 /duplexer2/0.0.2: dependencies: @@ -1373,6 +1506,18 @@ packages: readable-stream: 2.2.9 resolution: 8b12dab878c0d69e3e7891051662a32fc6bddcc1 /duplexer3/0.1.4: ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2 + /duplexify/3.5.0: + dependencies: + end-of-stream: 1.0.0 + inherits: 2.0.3 + readable-stream: 2.2.9 + stream-shift: 1.0.0 + resolution: 1aa773002e1578457e9d9d4a50b0ccaaebcbd604 + /each-async/1.1.1: + dependencies: + onetime: 1.1.0 + set-immediate-shim: 1.0.1 + resolution: dee5229bdf0ab6ba2012a395e1b869abf8813473 /ecc-jsbn/0.1.1: dependencies: jsbn: 0.1.1 @@ -1399,6 +1544,14 @@ packages: dependencies: once: 1.3.3 resolution: 8e177206c3c80837d85632e8b9359dfe8b2f6eaf + /end-of-stream/1.0.0: + dependencies: + once: 1.3.3 + resolution: d4596e702734a93e40e9af864319eabd99ff2f0e + /end-of-stream/1.4.0: + dependencies: + once: 1.4.0 + resolution: 7a90d833efda6cfa6eac0f4949dbb0fad3a63206 /enhance-visitors/1.0.0: dependencies: lodash: 4.17.4 @@ -1623,6 +1776,19 @@ packages: dependencies: create-hash: 1.1.2 resolution: 497b66ad9fef65cd7c08a6180824ba1476b66e53 + /exec-buffer/3.1.0: + dependencies: + execa: 0.5.1 + p-finally: 1.0.0 + pify: 2.3.0 + rimraf: 2.6.1 + tempfile: 1.1.1 + resolution: 851b46d062fca9bcbc6ff8781693e28e8da80402 + /exec-series/1.0.3: + dependencies: + async-each-series: 1.1.0 + object-assign: 4.1.1 + resolution: 6d257a9beac482a872c7783bc8615839fc77143a /execa/0.4.0: dependencies: cross-spawn-async: 2.2.5 @@ -1652,6 +1818,10 @@ packages: signal-exit: 3.0.2 strip-eof: 1.0.0 resolution: 57b69a594f081759c69e5370f0d17b9cb11658fe + /executable/1.1.0: + dependencies: + meow: 3.7.0 + resolution: 877980e9112f3391066da37265de7ad8434ab4d9 /exit-hook/1.1.1: f05ca233b48c05d54fff07765df8507e95c02ff8 /expand-brackets/0.1.5: dependencies: @@ -1665,6 +1835,10 @@ packages: dependencies: os-homedir: 1.0.2 resolution: 0b81eba897e5a3d31d1c3d102f8f01441e559449 + /extend-shallow/2.0.1: + dependencies: + is-extendable: 0.1.1 + resolution: 51af7d614ad9a9f610ea1bafbb989d6b1c56890f /extend/1.3.0: d1516fb0ff5624d2ebf9123ea1dac5a1994004f8 /extend/3.0.1: a755ea7bc1adfcc5a31ce7e762dbaadc5e636444 /extglob/0.3.2: @@ -1689,6 +1863,10 @@ packages: dependencies: websocket-driver: 0.6.5 resolution: cc4074c7f4a4dfd03af54dd65c354b135132ce11 + /fd-slicer/1.0.1: + dependencies: + pend: 1.2.0 + resolution: 8b5bcbd9ec327c5041bf9ab023fd6750f1177e65 /figures/1.7.0: dependencies: escape-string-regexp: 1.0.5 @@ -1703,7 +1881,16 @@ packages: flat-cache: 1.2.2 object-assign: 4.1.1 resolution: c392990c3e684783d838b8c84a45d8a048458361 + /file-type/3.9.0: 257a078384d1db8087bc449d107d52a52672b9e9 /filename-regex/2.0.1: c1c4b9bee3e09725ddb106b75c1e301fe2f18b26 + /filename-reserved-regex/1.0.0: e61cf805f0de1c984567d0386dc5df50ee5af7e4 + /filenamify/1.2.1: + dependencies: + filename-reserved-regex: 1.0.0 + strip-outer: 1.0.0 + trim-repeated: 1.0.0 + resolution: a9f2ffd11c503bed300015029272378f1f1365a5 + /filesize/3.5.9: 9e3dd8a9b124f5b2f1fb2ee9cd13a86c707bb222 /fill-range/2.2.3: dependencies: is-number: 2.1.0 @@ -1730,6 +1917,13 @@ packages: dependencies: locate-path: 2.0.0 resolution: 45d1b7e506c717ddd482775a2b77920a3c0c57a7 + /find-versions/1.2.1: + dependencies: + array-uniq: 1.0.3 + get-stdin: 4.0.1 + meow: 3.7.0 + semver-regex: 1.0.0 + resolution: cbde9f12e38575a0af1be1b9a2c5d5fd8f186b62 /findup-sync/0.4.3: dependencies: detect-file: 0.1.0 @@ -1815,6 +2009,10 @@ packages: dependencies: pinkie-promise: 2.0.1 resolution: 8783f9dcebd1eea495a334e1a6a251e78887ab1a + /get-proxy/1.1.0: + dependencies: + rc: 1.2.1 + resolution: 894854491bc591b0f147d7ae570f5c678b7256eb /get-set-props/0.1.0: 998475c178445686d0b32246da5df8dbcfbe8ea3 /get-stdin/4.0.1: b968c6b0a04384324902e8bf1a5df32579a450fe /get-stdin/5.0.1: 122e161591e21ff4c52530305693f20e6393a398 @@ -1828,6 +2026,12 @@ packages: dependencies: assert-plus: 1.0.0 resolution: 5eff8e3e684d569ae4cb2b1282604e8ba62149fa + /gifsicle/3.0.4: + dependencies: + bin-build: 2.2.0 + bin-wrapper: 3.0.2 + logalot: 2.1.0 + resolution: f45cb5ed10165b665dc929e0e9328b6c821dfa3b /glob-base/0.3.0: dependencies: glob-parent: 2.0.0 @@ -1837,6 +2041,11 @@ packages: dependencies: is-glob: 2.0.1 resolution: 81383d72db054fcccf5336daa902f182f6edbb28 + /glob-parent/3.1.0: + dependencies: + is-glob: 3.1.0 + path-dirname: 1.0.2 + resolution: 9e6af6299d8d3bd2bd40430832bd113df906c5ae /glob-stream/3.1.18: dependencies: glob: 4.5.3 @@ -1846,6 +2055,17 @@ packages: through2: 0.6.5 unique-stream: 1.0.0 resolution: 9170a5f12b790306fdfe598f313f8f7954fd143b + /glob-stream/5.3.5: + dependencies: + extend: 3.0.1 + glob: 5.0.15 + glob-parent: 3.1.0 + micromatch: 2.3.11 + ordered-read-streams: 0.3.0 + through2: 0.6.5 + to-absolute-glob: 0.1.1 + unique-stream: 2.2.1 + resolution: a55665a9a8ccdc41915a87c701e32d4e016fad22 /glob-watcher/0.0.6: dependencies: gaze: 0.5.2 @@ -1863,6 +2083,14 @@ packages: minimatch: 2.0.10 once: 1.4.0 resolution: c6cb73d3226c1efef04de3c56d012f03377ee15f + /glob/5.0.15: + dependencies: + inflight: 1.0.6 + inherits: 2.0.3 + minimatch: 3.0.3 + once: 1.4.0 + path-is-absolute: 1.0.1 + resolution: 1bc936b9e02f4a603fcc222ecf7633d30b8b93b1 /glob/7.1.1: dependencies: fs.realpath: 1.0.0 @@ -1961,6 +2189,19 @@ packages: resolution: 7613c778a1afea62f25c630a086d7f3acbbdd818 /graceful-fs/4.1.11: 0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658 /graceful-readlink/1.0.1: 4cafad76bc62f02fa039b2f94e9a3dd3a391a725 + /guetzli/1.0.1: + dependencies: + bin-build: 2.2.0 + bin-wrapper: 3.0.2 + logalot: 2.1.0 + resolution: 48cd01d18dbd60fb47318a1724a295a035d9b9f2 + /gulp-decompress/1.2.0: + dependencies: + archive-type: 3.2.0 + decompress: 3.0.0 + gulp-util: 3.0.8 + readable-stream: 2.2.9 + resolution: 8eeb65a5e015f8ed8532cafe28454960626f0dc7 /gulp-htmlmin/3.0.0: dependencies: bufferstreams: 1.1.1 @@ -1970,6 +2211,27 @@ packages: readable-stream: 2.2.9 tryit: 1.0.3 resolution: 19ea8002d1231d6b1f18a12d20f2a66a77770fb3 + /gulp-image/2.8.0: + dependencies: + exec-buffer: 3.1.0 + execa: 0.6.3 + filesize: 3.5.9 + gifsicle: 3.0.4 + guetzli: 1.0.1 + gulp-util: 3.0.8 + is-gif: 1.0.0 + is-jpg: 1.0.0 + is-png: 1.1.0 + is-svg: 2.1.0 + jpeg-recompress-bin: 3.0.1 + jpegoptim-bin: 3.0.0 + mozjpeg: 4.1.1 + optipng-bin: 3.1.4 + pngquant-bin: 3.1.1 + svgo: 0.7.2 + through2-concurrent: 1.1.1 + zopflipng-bin: 3.0.1 + resolution: 1f6d7db0cc27dede161da7070effb59149bef3e0 /gulp-livereload/3.8.1: dependencies: chalk: 0.5.1 @@ -1986,6 +2248,7 @@ packages: postcss-load-config: 1.2.0 vinyl-sourcemaps-apply: 0.2.1 resolution: 78a32e3c87aa6cdcec5ae1c905e196d478e8c5d5 + /gulp-rename/1.2.2: 3ad4428763f05e2764dec1c67d868db275687817 /gulp-sass/3.1.0: dependencies: gulp-util: 3.0.8 @@ -1994,6 +2257,14 @@ packages: through2: 2.0.3 vinyl-sourcemaps-apply: 0.2.1 resolution: 53dc4b68a1f5ddfe4424ab4c247655269a8b74b7 + /gulp-sourcemaps/1.6.0: + dependencies: + convert-source-map: 1.5.0 + graceful-fs: 4.1.11 + strip-bom: 2.0.0 + through2: 2.0.3 + vinyl: 1.2.0 + resolution: b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c /gulp-sourcemaps/2.6.0: dependencies: '@gulp-sourcemaps/identity-map': 1.0.1 @@ -2218,8 +2489,13 @@ packages: loose-envify: 1.3.1 resolution: 9e1f56ac0acdb6bf303306f338be3b204ae60360 /invert-kv/1.0.0: 104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6 + /ip-regex/1.0.3: dc589076f659f419c222039a33316f1c7387effd /irregular-plurals/1.2.0: 38f299834ba8c00c30be9c554e137269752ff3ac /is-absolute-url/2.1.0: 50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6 + /is-absolute/0.1.7: + dependencies: + is-relative: 0.1.3 + resolution: 847491119fccb5fb436217cc737f7faad50f603f /is-absolute/0.2.6: dependencies: is-relative: 0.2.1 @@ -2235,6 +2511,7 @@ packages: dependencies: builtin-modules: 1.1.1 resolution: 540572d34f7ac3119f8f76c30cbc1b1e037affbe + /is-bzip2/1.0.0: 5ee58eaa5a2e9c80e21407bedf23ae5ac091b3fc /is-ci/1.0.10: dependencies: ci-info: 1.0.0 @@ -2248,6 +2525,7 @@ packages: /is-error/2.2.1: 684a96d84076577c98f4cdb40c6d26a5123bf19c /is-extendable/0.1.1: 62b110e289a471418e3ec36a617d472e301dfc89 /is-extglob/1.0.0: ac468177c4943405a092fc8f29760c6ffc6206c0 + /is-extglob/2.1.1: a88c02535791f02ed37c76a1b9ea9773c833f8c2 /is-finite/1.0.2: dependencies: number-is-nan: 1.0.1 @@ -2263,10 +2541,17 @@ packages: get-set-props: 0.1.0 lowercase-keys: 1.0.0 resolution: 2731877e4d78a6a69edcce6bb9d68b0779e76312 + /is-gif/1.0.0: a6d2ae98893007bffa97a1d8c01d63205832097e /is-glob/2.0.1: dependencies: is-extglob: 1.0.0 resolution: d096f926a3ded5600f3fdfd91198cb0888c2d863 + /is-glob/3.1.0: + dependencies: + is-extglob: 2.1.1 + resolution: 7ba5ae24217804ac70707b96922567486cc3e84a + /is-gzip/1.0.0: 6ca8b07b99c77998025900e555ced8ed80879a83 + /is-jpg/1.0.0: 2959c17e73430db38264da75b90dd54f2d86da1c /is-js-type/2.0.0: dependencies: js-types: 1.0.0 @@ -2278,6 +2563,7 @@ packages: jsonpointer: 4.0.1 xtend: 4.0.1 resolution: f079dd9bfdae65ee2038aae8acbc86ab109e3693 + /is-natural-number/2.1.1: 7d4c5728377ef386c3e194a9911bf57c6dc335e7 /is-npm/1.0.0: f2fb63a65e4905b406c86072765a1a4dc793b9f4 /is-number/2.1.0: dependencies: @@ -2303,6 +2589,7 @@ packages: path-is-inside: 1.0.2 resolution: fc06e5a1683fbda13de667aff717bbc10a48f37f /is-plain-obj/1.1.0: 71a50c8429dfca773c92a390a4a03b39fcd51d3e + /is-png/1.1.0: d574b12bf275c0350455570b0e5b57ab062077ce /is-posix-bracket/0.1.1: 3334dc79774368e92f016e6fbc0a88f5cd6e6bc4 /is-primitive/2.0.0: 207bab91638499c07b2adf240a41a87210034575 /is-promise/2.1.0: 79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa @@ -2313,6 +2600,7 @@ packages: proto-props: 0.2.1 resolution: b3951f95c089924fb5d4fcda6542ab3e83e2b220 /is-redirect/1.0.0: 1d03dded53bd8db0f30c26e4f95d36fc7c87dc24 + /is-relative/0.1.3: 905fee8ae86f45b3ec614bc3c15c869df0876e82 /is-relative/0.2.1: dependencies: is-unc-path: 0.1.2 @@ -2327,6 +2615,7 @@ packages: dependencies: html-comment-regex: 1.1.1 resolution: cf61090da0d9efbcab8722deba6f032208dbb0e9 + /is-tar/1.0.0: 2f6b2e1792c1f5bb36519acaa9d65c0d26fe853d /is-typedarray/1.0.0: e479c80858df0c1b11ddda6940f96011fcda4a9a /is-unc-path/0.1.2: dependencies: @@ -2334,7 +2623,9 @@ packages: resolution: 6ab053a72573c10250ff416a3814c35178af39b9 /is-url/1.2.2: 498905a593bf47cc2d9e7f738372bbf7696c7f26 /is-utf8/0.2.1: 4b0da1442104d1b336340e80797e865cf39f7d72 + /is-valid-glob/0.3.0: d4b55c69f51886f9b65c70d6c2622d37e29f48fe /is-windows/0.2.0: de1aa6d63ea29dd248737b69f1ff8b8002d2108c + /is-zip/1.0.0: 47b0a8ff4d38a76431ccfd99a8e15a4c86ba2325 /isarray/0.0.1: 8a18acfca9a8f4177e09abfc6038939b05d1eedf /isarray/1.0.0: bb935d48582cba168c06834957a54a3e07124f11 /isexe/2.0.0: e8fbf374dc556ff8947a10dcb0572d633f2cfa10 @@ -2379,6 +2670,17 @@ packages: dependencies: jsbn: 0.1.1 resolution: 06d4912255093419477d425633606e0e90782967 + /jpeg-recompress-bin/3.0.1: + dependencies: + bin-wrapper: 3.0.2 + logalot: 2.1.0 + resolution: 46a3e7300ccab795b1b8db27ae802c27a28333a4 + /jpegoptim-bin/3.0.0: + dependencies: + bin-build: 2.2.0 + bin-wrapper: 3.0.2 + logalot: 2.1.0 + resolution: 9f7a05d83b302bd19913decf339a9dae1bda0c2b /js-base64/2.1.9: f0e80ae039a4bd654b5f281fc93f04a914a7fcce /js-tokens/3.0.1: 08e9f132484a2c45a30907e9dc4d5567b7f114d7 /js-types/1.0.0: d242e6494ed572ad3c92809fc8bed7f7687cbf03 @@ -2452,6 +2754,10 @@ packages: /lazy-cache/1.0.4: a1d78fc3a50474cb80845d3b3b6e1da49a446e8e /lazy-req/1.1.0: bdaebead30f8d824039ce0ce149d4daa07ba1fac /lazy-req/2.0.0: c9450a363ecdda2e6f0c70132ad4f37f8f06f2b4 + /lazystream/1.0.0: + dependencies: + readable-stream: 2.2.9 + resolution: f6995fe0f820392f61396be89462407bb77168e4 /lcid/1.0.0: dependencies: invert-kv: 1.0.0 @@ -2657,6 +2963,11 @@ packages: ansi-escapes: 1.4.0 cli-cursor: 1.0.2 resolution: 19929f64c4093d2d2e7075a1dad8af59c296b8d1 + /logalot/2.1.0: + dependencies: + figures: 1.7.0 + squeak: 1.3.0 + resolution: 5f8e8c90d304edf12530951a5554abb8c5e3f552 /longest/1.0.1: 30a0b2da38f73770e8294a0d22e6625ed77d0097 /loose-envify/1.3.1: dependencies: @@ -2669,6 +2980,14 @@ packages: resolution: 5b46f80147edee578870f086d04821cf998e551f /lower-case/1.1.4: 9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac /lowercase-keys/1.0.0: 4e3366b39e7f5457e35f1324bdf6f88d0bfc7306 + /lpad-align/1.1.0: + dependencies: + get-stdin: 4.0.1 + longest: 1.0.1 + lpad: 2.0.1 + meow: 3.7.0 + resolution: 27fa786bcb695fc434ea1500723eb8d0bdc82bf4 + /lpad/2.0.1: 28316b4e7b2015f511f6591459afc0e5944008ad /lru-cache/2.7.3: 6d4524e8b955f95d4f5b58851ce21dd72fb4e952 /lru-cache/4.0.2: dependencies: @@ -2713,6 +3032,10 @@ packages: redent: 1.0.0 trim-newlines: 1.0.0 resolution: 72cb668b425228290abbfa856892587308a801fb + /merge-stream/1.0.1: + dependencies: + readable-stream: 2.2.9 + resolution: 4041202d508a342ba00174008df0c251b8c135e1 /micromatch/2.3.11: dependencies: arr-diff: 2.0.0 @@ -2788,6 +3111,12 @@ packages: through2: 2.0.3 xtend: 4.0.1 resolution: 23215833f1da13fd606ccb8087b44852dcb821fd + /mozjpeg/4.1.1: + dependencies: + bin-build: 2.2.0 + bin-wrapper: 3.0.2 + logalot: 2.1.0 + resolution: 859030b24f689a53db9b40f0160d89195b88fd50 /ms/0.7.1: 9cd13c03adbff25b65effde7ce864ee952017098 /ms/0.7.3: 708155a5e44e33f5fd0fc53e81d0d40a91be1fff /multimatch/2.1.0: @@ -2904,6 +3233,7 @@ packages: /number-is-nan/1.0.1: 097b602b53422a522c1afb8790318336941a011d /oauth-sign/0.8.2: 46a6ab7f0aead8deae9ec0565780b7d4efeb9d43 /obj-props/1.1.0: 626313faa442befd4a44e9a02c3cb6bde937b511 + /object-assign/2.1.1: 43c36e5d569ff8e4816c4efa8be02d26967c18aa /object-assign/3.0.0: 9bedd5ca0897949bca47e7ff408062d549f587f2 /object-assign/4.1.0: 7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0 /object-assign/4.1.1: 2109adc7965887cfc05cbbd442cac8bfbb360863 @@ -2948,6 +3278,12 @@ packages: type-check: 0.3.2 wordwrap: 1.0.0 resolution: 364c5e409d3f4d6301d6c0b4c05bba50180aeb64 + /optipng-bin/3.1.4: + dependencies: + bin-build: 2.2.0 + bin-wrapper: 3.0.2 + logalot: 2.1.0 + resolution: 95d34f2c488704f6fd70606bfea0c659f1d95d84 /ora/0.2.3: dependencies: chalk: 1.1.3 @@ -2962,7 +3298,13 @@ packages: stream-consume: 0.1.0 resolution: 14e7e9e2764f7315fbac184e506c7aa6df94ad7e /ordered-read-streams/0.1.0: fd565a9af8eb4473ba69b6ed8a34352cb552f126 + /ordered-read-streams/0.3.0: + dependencies: + is-stream: 1.1.0 + readable-stream: 2.2.9 + resolution: 7137e69b3298bb342247a1bbee3881c80e2fd78b /os-browserify/0.1.2: 49ca0293e0b19590a5f5de10c7f265a617d8fe54 + /os-filter-obj/1.0.3: 5915330d90eced557d2d938a31c6dd214d9c63ad /os-homedir/1.0.2: ffbc4988336e0e833de0c168c7ef152121aa7fb3 /os-locale/1.4.0: dependencies: @@ -3042,6 +3384,7 @@ packages: /parse-passwd/1.0.0: 6d5b934a456993b23d37f40a382d6f1666a8e5c6 /parseurl/1.3.1: c8ab8c9223ba34888aa64a297b28853bec18da56 /path-browserify/0.0.0: a0b870729aae214005b7d5032ec2cbbb0fb4451a + /path-dirname/1.0.2: cc33d24d525e099a5388c0336c6e32b9160609e0 /path-exists/2.1.0: dependencies: pinkie-promise: 2.0.1 @@ -3080,6 +3423,7 @@ packages: dependencies: create-hmac: 1.1.4 resolution: f2c4b25a600058b3c3773c086c37dbbee1ffe693 + /pend/1.2.0: 7a57eb550a6783f9115331fcf4663d5c8e007a50 /performance-now/0.2.0: 33ef30c5c77d4ea21c5a53869d91b56d8f2555e5 /pify/2.3.0: ed141a6ac043a849ea588498e7dca8b15330e90c /pinkie-promise/1.0.0: @@ -3111,6 +3455,12 @@ packages: irregular-plurals: 1.2.0 resolution: 7482452c1a0f508e3e344eaec312c91c29dc655a /pluralize/1.2.1: d1a21483fd22bb41e58a12fa3421823140897c45 + /pngquant-bin/3.1.1: + dependencies: + bin-build: 2.2.0 + bin-wrapper: 3.0.2 + logalot: 2.1.0 + resolution: d124d98a75a9487f40c1640b4dbfcbb2bd5a1fd1 /postcss-calc/5.3.1: dependencies: postcss: 5.2.17 @@ -3591,10 +3941,19 @@ packages: js-base64: 2.1.9 source-map: 0.4.4 resolution: 07c0cc577bb7ab4d08fd900185adbf4bc844141d + /seek-bzip/1.0.5: + dependencies: + commander: 2.8.1 + resolution: cfe917cb3d274bcffac792758af53173eb1fabdc /semver-diff/2.1.0: dependencies: semver: 5.3.0 resolution: 4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36 + /semver-regex/1.0.0: 92a4969065f9c70c694753d55248fc68f8f652c9 + /semver-truncate/1.1.2: + dependencies: + semver: 5.3.0 + resolution: 57f41de69707a62709a7e0104ba2117109ea47e8 /semver/4.3.6: 300bc6e0e86374f7ba61068b5b1ecd57fc6532da /semver/5.3.0: 9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f /sequencify/0.0.7: 90cff19d02e07027fd767f5ead3e7b95d1e7380c @@ -3682,6 +4041,12 @@ packages: through: 2.3.8 resolution: cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f /sprintf-js/1.0.3: 04e6926f662895354f3dd015203633b857297e2c + /squeak/1.3.0: + dependencies: + chalk: 1.1.3 + console-stream: 0.1.1 + lpad-align: 1.1.0 + resolution: 33045037b64388b567674b84322a6521073916c3 /sshpk/1.13.0: dependencies: asn1: 0.2.3 @@ -3696,6 +4061,7 @@ packages: resolution: ff2a3e4fd04497555fed97b39a0fd82fafb3a33c /stack-utils/1.0.1: d4f33ab54e8e38778b0ca5cfd3b3afb12db68620 /staged-git-files/0.0.4: d797e1b551ca7a639dec0237dc6eb4bb9be17d35 + /stat-mode/0.2.2: e6c80b623123d7d80cf132ce538f346289072502 /static-eval/1.1.1: dependencies: escodegen: 1.8.1 @@ -3728,6 +4094,7 @@ packages: to-arraybuffer: 1.0.1 xtend: 4.0.1 resolution: cec1f4e3b494bc4a81b451808970f8b20b4ed5f6 + /stream-shift/1.0.0: d5c752825e5367e786f78e18e445ea223a155952 /stream-splicer/2.0.0: dependencies: inherits: 2.0.3 @@ -3765,6 +4132,11 @@ packages: dependencies: is-utf8: 0.2.1 resolution: 1cb45aaf57530f4caf86c7f75179d2c9a51dd572 + /strip-bom-stream/1.0.0: + dependencies: + first-chunk-stream: 1.0.0 + strip-bom: 2.0.0 + resolution: e7144398577d51a6bed0fa1994fa05f43fd988ee /strip-bom-string/1.0.0: e5211e9224369fbb81d633a2f00044dc8cedad92 /strip-bom/1.0.0: dependencies: @@ -3776,16 +4148,33 @@ packages: is-utf8: 0.2.1 resolution: 6219a85616520491f35788bdbf1447a99c7e6b0e /strip-bom/3.0.0: 2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3 + /strip-dirs/1.1.1: + dependencies: + chalk: 1.1.3 + get-stdin: 4.0.1 + is-absolute: 0.1.7 + is-natural-number: 2.1.1 + minimist: 1.2.0 + sum-up: 1.0.3 + resolution: 960bbd1287844f3975a4558aa103a8255e2456a0 /strip-eof/1.0.0: bb43ff5598a6eb05d89b59fcd129c983313606bf /strip-indent/1.0.1: dependencies: get-stdin: 4.0.1 resolution: 0c7962a6adefa7bbd4ac366460a638552ae1a0a2 /strip-json-comments/2.0.1: 3c531942e908c2697c0ec344858c286c7ca0a60a + /strip-outer/1.0.0: + dependencies: + escape-string-regexp: 1.0.5 + resolution: aac0ba60d2e90c5d4f275fd8869fd9a2d310ffb8 /subarg/1.0.0: dependencies: minimist: 1.2.0 resolution: f62cf17581e996b48fc965699f54c06ae268b8d2 + /sum-up/1.0.3: + dependencies: + chalk: 1.1.3 + resolution: 1c661f667057f63bcb7875aa1438bc162525156e /supports-color/0.2.0: d92de2694eb3f67323973d7ae3d8b55b4c22190a /supports-color/2.0.0: 535d045ce6b6363fa40117084629995e9df324c7 /supports-color/3.2.3: @@ -3845,12 +4234,24 @@ packages: slice-ansi: 0.0.4 string-width: 2.0.0 resolution: 2bbc542f0fda9861a755d3947fefd8b3f513855f + /tar-stream/1.5.2: + dependencies: + bl: 1.2.1 + end-of-stream: 1.4.0 + readable-stream: 2.2.9 + xtend: 4.0.1 + resolution: fbc6c6e83c1a19d4cb48c7d96171fc248effc7bf /tar/2.2.1: dependencies: block-stream: 0.0.9 fstream: 1.0.11 inherits: 2.0.3 resolution: 8e4d2a256c0e2185c6b18ad694aec968b83cb1d1 + /tempfile/1.1.1: + dependencies: + os-tmpdir: 1.0.2 + uuid: 2.0.3 + resolution: 5bcc4eaecc4ab2c707d8bc11d99ccc9a2cb287f2 /term-size/0.1.1: dependencies: execa: 0.4.0 @@ -3858,6 +4259,15 @@ packages: /text-table/0.2.0: 7f5ee823ae805207c00af2df4a84ec3fcfa570b4 /the-argv/1.0.0: 0084705005730dd84db755253c931ae398db9522 /through/2.3.8: 0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5 + /through2-concurrent/1.1.1: + dependencies: + through2: 2.0.3 + resolution: 11cb4ea4c9e31bca6e4c1e6dba48d1c728c3524b + /through2-filter/2.0.0: + dependencies: + through2: 2.0.3 + xtend: 4.0.1 + resolution: 60bc55a0dacb76085db1f9dae99ab43f83d622ec /through2/0.6.5: dependencies: readable-stream: 1.0.34 @@ -3886,6 +4296,10 @@ packages: dependencies: process: 0.11.10 resolution: c9c58b575be8407375cb5e2462dacee74359f41d + /to-absolute-glob/0.1.1: + dependencies: + extend-shallow: 2.0.1 + resolution: 1cdfa472a9ef50c239ee66999b662ca0eb39937f /to-arraybuffer/1.0.1: 7d229b1fcc637e466ca081180836a7aabff83f43 /to-fast-properties/1.0.3: b83571fa4d8c25b82e231b06e3a3055de4ca1a47 /tough-cookie/2.3.2: @@ -3893,9 +4307,14 @@ packages: punycode: 1.4.1 resolution: f081f76e4c85720e6c37a5faced737150d84072a /trim-newlines/1.0.0: 5887966bb582a4503a41eb524f7d35011815a613 + /trim-repeated/1.0.0: + dependencies: + escape-string-regexp: 1.0.5 + resolution: e3646a2ea4e891312bf7eace6cfb05380bc01c21 /trim-right/1.0.1: cb2e1203067e0c8de1f614094b9fe45704ea6003 /tryit/1.0.3: 393be730a9446fd1ead6da59a014308f36c289cb /tty-browserify/0.0.0: a157ba402da24e9bf957f9aa69d524eed42901a6 + /tunnel-agent/0.4.3: 6373db76909fe570e08d73583365ed828a74eeeb /tunnel-agent/0.6.0: dependencies: safe-buffer: 5.0.1 @@ -3939,6 +4358,11 @@ packages: resolution: 89220ddf6b751ae52b5f72484863528596bb84c1 /uniqs/2.0.0: ffede4b36b25290696e6e165d4a59edb998e6b02 /unique-stream/1.0.0: d59a4a75427447d9aa6c91e70263f8d26a4b104b + /unique-stream/2.2.1: + dependencies: + json-stable-stringify: 1.0.1 + through2-filter: 2.0.0 + resolution: 5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369 /unique-string/1.0.0: dependencies: crypto-random-string: 1.0.0 @@ -3987,6 +4411,10 @@ packages: dependencies: prepend-http: 1.0.4 resolution: 7af8f303645e9bd79a272e7a14ac68bc0609da73 + /url-regex/3.2.0: + dependencies: + ip-regex: 1.0.3 + resolution: dbad1e0c9e29e105dd0b1f09f6862f7fdb482724 /url/0.11.0: dependencies: punycode: 1.3.2 @@ -4008,6 +4436,7 @@ packages: dependencies: user-home: 1.1.1 resolution: aab1a1fa30d45f88dd321148875ac02c0b55e5b4 + /vali-date/1.0.0: 1b904a59609fb328ef078138420934f6b86709a6 /validate-npm-package-license/3.0.1: dependencies: spdx-correct: 1.0.2 @@ -4018,6 +4447,11 @@ packages: dependencies: extsprintf: 1.0.2 resolution: cff5df12946d297d2baaefaa2689e25be01c005c + /vinyl-assign/1.2.1: + dependencies: + object-assign: 4.1.1 + readable-stream: 2.2.9 + resolution: 4d198891b5515911d771a8cd9c5480a46a074a45 /vinyl-buffer/1.0.0: dependencies: bl: 0.9.5 @@ -4034,6 +4468,26 @@ packages: through2: 0.6.5 vinyl: 0.4.6 resolution: 9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6 + /vinyl-fs/2.4.4: + dependencies: + duplexify: 3.5.0 + glob-stream: 5.3.5 + graceful-fs: 4.1.11 + gulp-sourcemaps: 1.6.0 + is-valid-glob: 0.3.0 + lazystream: 1.0.0 + lodash.isequal: 4.5.0 + merge-stream: 1.0.1 + mkdirp: 0.5.1 + object-assign: 4.1.1 + readable-stream: 2.2.9 + strip-bom: 2.0.0 + strip-bom-stream: 1.0.0 + through2: 2.0.3 + through2-filter: 2.0.0 + vali-date: 1.0.0 + vinyl: 1.2.0 + resolution: be6ff3270cb55dfd7d3063640de81f25d7532239 /vinyl-source-stream/1.1.0: dependencies: through2: 0.6.5 @@ -4064,6 +4518,10 @@ packages: dependencies: indexof: 0.0.1 resolution: 5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73 + /ware/1.3.0: + dependencies: + wrap-fn: 0.1.5 + resolution: d1b14f39d2e2cb4ab8c4098f756fe4b164e473d4 /watchify/3.9.0: dependencies: anymatch: 1.3.0 @@ -4101,6 +4559,10 @@ packages: string-width: 1.0.2 strip-ansi: 3.0.1 resolution: d8fc3d284dd05794fe84973caecdd1cf824fdd85 + /wrap-fn/0.1.5: + dependencies: + co: 3.1.0 + resolution: f21b6e41016ff4a7e31720dbc63a09016bdf9845 /wrappy/1.0.2: b5243d8f3ec1aa35f1364605bc0d1036e30ab69f /write-file-atomic/1.3.4: dependencies: @@ -4199,5 +4661,16 @@ packages: y18n: 3.2.1 yargs-parser: 4.2.1 resolution: 782ec21ef403345f830a808ca3d513af56065208 + /yauzl/2.8.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.0.1 + resolution: 79450aff22b2a9c5a41ef54e02db907ccfbf9ee2 + /zopflipng-bin/3.0.1: + dependencies: + bin-build: 2.2.0 + bin-wrapper: 3.0.2 + logalot: 2.1.0 + resolution: 988203810fd152e4ed75f4476be0cdf2aadba758 registry: 'https://registry.npmjs.org/' version: 2 diff --git a/src/css/lib/defaults.scss b/src/css/lib/defaults.scss index b96fa6e..0ad0ede 100644 --- a/src/css/lib/defaults.scss +++ b/src/css/lib/defaults.scss @@ -34,3 +34,13 @@ a { .hidden { visibility: hidden; } +.visually-hidden { /*https://developer.yahoo.com/blogs/ydn/clip-hidden-content-better-accessibility-53456.html*/ + position: absolute !important; + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); + padding:0 !important; + border:0 !important; + height: 1px !important; + width: 1px !important; + overflow: hidden; +} diff --git a/src/img/social-banner.png b/src/img/social-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..b13e32869535ea7f11f9e554cb30b970e5c66ef4 GIT binary patch literal 77042 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

fS2{3)|2`q3(=|5M1sYAfX4{`#pHmiaD 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

G)~Ey`$FUXQUi+8V%V6T8GYQ`2TWPzI^U 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 JavaScript + + +

\ No newline at end of file +Practice JavaScript

Practice JavaScript!

TEST ERRORS

CODE OUTPUT

\ No newline at end of file diff --git a/public/manifest.json b/public/manifest.json index 17513cf..f3b4d6e 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -3,7 +3,7 @@ "name": "Practice JavaScript with this fun game", "background_color": "#0C141F", "theme_color": "#0C141F", - "display": "standalone", + "display": "minimal-ui", "icons": [ { "src": "launcher-icon.svg", diff --git a/public/service-worker.js b/public/service-worker.js index 6fb870d..69eb2ea 100644 --- a/public/service-worker.js +++ b/public/service-worker.js @@ -1,2 +1,2 @@ -"use strict";function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}var precacheConfig=[["/dist/css/style.css","ba4d66c91d1ed66848154a34ab4948cf"],["/dist/img/back.svg","898ada2a32ec64bd5b6959c22e8f231d"],["/dist/img/monitor.svg","348592da5567b5a3c46acfb5dcd341bc"],["/dist/img/next.svg","045593410b9f51390e750b9e1e7fff15"],["/dist/img/reload.svg","a0ab1b765280e4d22e6fb747042f6503"],["/dist/img/shuffle.svg","3a5e3c1bf04eb3493d8a2ffa547aa58f"],["/dist/js/bundle.min.js","3e56c92d7228ef0fa5542d11c2750382"],["/dist/js/loadJS.js","72c55936069f60560a386e46f462c73a"],["/dist/js/sw-registration.js","677217d8e642c1ccff69fc01c96b4431"],["/index.html","7b0fd165f7ac1581a43a6efa1d7f382a"]],cacheName="sw-precache-v3--"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){var a=new URL(e);return r&&a.pathname.match(r)||(a.search+=(a.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),a.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.hash="",n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),a=createCacheKey(r,hashParamName,n,!1);return[r.toString(),a]}));self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var r=new Request(n,{credentials:"same-origin"});return fetch(r).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);t=urlsToCacheKeys.has(n);t||(n=addDirectoryIndex(n,"index.html"),t=urlsToCacheKeys.has(n));t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}}); +"use strict";function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}var precacheConfig=[["/dist/css/style.css","ba4d66c91d1ed66848154a34ab4948cf"],["/dist/img/back.svg","898ada2a32ec64bd5b6959c22e8f231d"],["/dist/img/monitor.svg","348592da5567b5a3c46acfb5dcd341bc"],["/dist/img/next.svg","045593410b9f51390e750b9e1e7fff15"],["/dist/img/reload.svg","a0ab1b765280e4d22e6fb747042f6503"],["/dist/img/shuffle.svg","3a5e3c1bf04eb3493d8a2ffa547aa58f"],["/dist/img/social-banner.png","a70702eeea1dbe4a401b7c23189eb7d3"],["/dist/js/bundle.min.js","3e56c92d7228ef0fa5542d11c2750382"],["/dist/js/loadJS.js","72c55936069f60560a386e46f462c73a"],["/dist/js/sw-registration.js","677217d8e642c1ccff69fc01c96b4431"],["/index.html","51375259fa6d7a217d316d0a2dd190c1"]],cacheName="sw-precache-v3--"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){var a=new URL(e);return r&&a.pathname.match(r)||(a.search+=(a.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),a.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.hash="",n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),a=createCacheKey(r,hashParamName,n,!1);return[r.toString(),a]}));self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var r=new Request(n,{credentials:"same-origin"});return fetch(r).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);t=urlsToCacheKeys.has(n);t||(n=addDirectoryIndex(n,"index.html"),t=urlsToCacheKeys.has(n));t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}}); //# sourceMappingURL=service-worker.js.map diff --git a/public/service-worker.js.map b/public/service-worker.js.map index b27f990..858e560 100644 --- a/public/service-worker.js.map +++ b/public/service-worker.js.map @@ -1 +1 @@ -{"version":3,"sources":["service-worker.js"],"names":["setOfCachedUrls","cache","keys","then","requests","map","request","url","urls","Set","precacheConfig","cacheName","self","registration","scope","ignoreUrlParametersMatching","addDirectoryIndex","originalUrl","index","URL","pathname","slice","toString","cleanResponse","originalResponse","redirected","Promise","resolve","body","blob","Response","headers","status","statusText","createCacheKey","paramName","paramValue","dontCacheBustUrlsMatching","match","search","encodeURIComponent","isPathWhitelisted","whitelist","absoluteUrlString","length","path","some","whitelistedPathRegex","stripIgnoredUrlParameters","hash","split","kv","filter","every","ignoredRegex","test","join","hashParamName","urlsToCacheKeys","Map","item","relativeUrl","absoluteUrl","location","cacheKey","addEventListener","event","waitUntil","caches","open","cachedUrls","all","Array","from","values","has","Request","credentials","fetch","response","ok","Error","responseToCache","put","skipWaiting","setOfExpectedUrls","existingRequests","existingRequest","delete","clients","claim","method","shouldRespond","respondWith","get","catch","e","console","warn"],"mappings":"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","file":"service-worker.js","sourcesContent":["/**\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n*/\n\n// DO NOT EDIT THIS GENERATED OUTPUT DIRECTLY!\n// This file should be overwritten as part of your build process.\n// If you need to extend the behavior of the generated service worker, the best approach is to write\n// additional code and include it using the importScripts option:\n// https://github.com/GoogleChrome/sw-precache#importscripts-arraystring\n//\n// Alternatively, it's possible to make changes to the underlying template file and then use that as the\n// new base for generating output, via the templateFilePath option:\n// https://github.com/GoogleChrome/sw-precache#templatefilepath-string\n//\n// If you go that route, make sure that whenever you update your sw-precache dependency, you reconcile any\n// changes made to this original template file with your modified copy.\n\n// This generated service worker JavaScript will precache your site's resources.\n// The code needs to be saved in a .js file at the top-level of your site, and registered\n// from your pages in order to be used. See\n// https://github.com/googlechrome/sw-precache/blob/master/demo/app/js/service-worker-registration.js\n// for an example of how you can register this script and handle various service worker events.\n\n/* eslint-env worker, serviceworker */\n/* eslint-disable indent, no-unused-vars, no-multiple-empty-lines, max-nested-callbacks, space-before-function-paren, quotes, comma-spacing */\n'use strict';\n\nvar precacheConfig = [[\"/dist/css/style.css\",\"ba4d66c91d1ed66848154a34ab4948cf\"],[\"/dist/img/back.svg\",\"898ada2a32ec64bd5b6959c22e8f231d\"],[\"/dist/img/monitor.svg\",\"348592da5567b5a3c46acfb5dcd341bc\"],[\"/dist/img/next.svg\",\"045593410b9f51390e750b9e1e7fff15\"],[\"/dist/img/reload.svg\",\"a0ab1b765280e4d22e6fb747042f6503\"],[\"/dist/img/shuffle.svg\",\"3a5e3c1bf04eb3493d8a2ffa547aa58f\"],[\"/dist/js/bundle.min.js\",\"3e56c92d7228ef0fa5542d11c2750382\"],[\"/dist/js/loadJS.js\",\"72c55936069f60560a386e46f462c73a\"],[\"/dist/js/sw-registration.js\",\"677217d8e642c1ccff69fc01c96b4431\"],[\"/index.html\",\"7b0fd165f7ac1581a43a6efa1d7f382a\"]];\nvar cacheName = 'sw-precache-v3--' + (self.registration ? self.registration.scope : '');\n\n\nvar ignoreUrlParametersMatching = [/^utm_/];\n\n\n\nvar addDirectoryIndex = function (originalUrl, index) {\n var url = new URL(originalUrl);\n if (url.pathname.slice(-1) === '/') {\n url.pathname += index;\n }\n return url.toString();\n };\n\nvar cleanResponse = function (originalResponse) {\n // If this is not a redirected response, then we don't have to do anything.\n if (!originalResponse.redirected) {\n return Promise.resolve(originalResponse);\n }\n\n // Firefox 50 and below doesn't support the Response.body stream, so we may\n // need to read the entire body to memory as a Blob.\n var bodyPromise = 'body' in originalResponse ?\n Promise.resolve(originalResponse.body) :\n originalResponse.blob();\n\n return bodyPromise.then(function(body) {\n // new Response() is happy when passed either a stream or a Blob.\n return new Response(body, {\n headers: originalResponse.headers,\n status: originalResponse.status,\n statusText: originalResponse.statusText\n });\n });\n };\n\nvar createCacheKey = function (originalUrl, paramName, paramValue,\n dontCacheBustUrlsMatching) {\n // Create a new URL object to avoid modifying originalUrl.\n var url = new URL(originalUrl);\n\n // If dontCacheBustUrlsMatching is not set, or if we don't have a match,\n // then add in the extra cache-busting URL parameter.\n if (!dontCacheBustUrlsMatching ||\n !(url.pathname.match(dontCacheBustUrlsMatching))) {\n url.search += (url.search ? '&' : '') +\n encodeURIComponent(paramName) + '=' + encodeURIComponent(paramValue);\n }\n\n return url.toString();\n };\n\nvar isPathWhitelisted = function (whitelist, absoluteUrlString) {\n // If the whitelist is empty, then consider all URLs to be whitelisted.\n if (whitelist.length === 0) {\n return true;\n }\n\n // Otherwise compare each path regex to the path of the URL passed in.\n var path = (new URL(absoluteUrlString)).pathname;\n return whitelist.some(function(whitelistedPathRegex) {\n return path.match(whitelistedPathRegex);\n });\n };\n\nvar stripIgnoredUrlParameters = function (originalUrl,\n ignoreUrlParametersMatching) {\n var url = new URL(originalUrl);\n // Remove the hash; see https://github.com/GoogleChrome/sw-precache/issues/290\n url.hash = '';\n\n url.search = url.search.slice(1) // Exclude initial '?'\n .split('&') // Split into an array of 'key=value' strings\n .map(function(kv) {\n return kv.split('='); // Split each 'key=value' string into a [key, value] array\n })\n .filter(function(kv) {\n return ignoreUrlParametersMatching.every(function(ignoredRegex) {\n return !ignoredRegex.test(kv[0]); // Return true iff the key doesn't match any of the regexes.\n });\n })\n .map(function(kv) {\n return kv.join('='); // Join each [key, value] array into a 'key=value' string\n })\n .join('&'); // Join the array of 'key=value' strings into a string with '&' in between each\n\n return url.toString();\n };\n\n\nvar hashParamName = '_sw-precache';\nvar urlsToCacheKeys = new Map(\n precacheConfig.map(function(item) {\n var relativeUrl = item[0];\n var hash = item[1];\n var absoluteUrl = new URL(relativeUrl, self.location);\n var cacheKey = createCacheKey(absoluteUrl, hashParamName, hash, false);\n return [absoluteUrl.toString(), cacheKey];\n })\n);\n\nfunction setOfCachedUrls(cache) {\n return cache.keys().then(function(requests) {\n return requests.map(function(request) {\n return request.url;\n });\n }).then(function(urls) {\n return new Set(urls);\n });\n}\n\nself.addEventListener('install', function(event) {\n event.waitUntil(\n caches.open(cacheName).then(function(cache) {\n return setOfCachedUrls(cache).then(function(cachedUrls) {\n return Promise.all(\n Array.from(urlsToCacheKeys.values()).map(function(cacheKey) {\n // If we don't have a key matching url in the cache already, add it.\n if (!cachedUrls.has(cacheKey)) {\n var request = new Request(cacheKey, {credentials: 'same-origin'});\n return fetch(request).then(function(response) {\n // Bail out of installation unless we get back a 200 OK for\n // every request.\n if (!response.ok) {\n throw new Error('Request for ' + cacheKey + ' returned a ' +\n 'response with status ' + response.status);\n }\n\n return cleanResponse(response).then(function(responseToCache) {\n return cache.put(cacheKey, responseToCache);\n });\n });\n }\n })\n );\n });\n }).then(function() {\n \n // Force the SW to transition from installing -> active state\n return self.skipWaiting();\n \n })\n );\n});\n\nself.addEventListener('activate', function(event) {\n var setOfExpectedUrls = new Set(urlsToCacheKeys.values());\n\n event.waitUntil(\n caches.open(cacheName).then(function(cache) {\n return cache.keys().then(function(existingRequests) {\n return Promise.all(\n existingRequests.map(function(existingRequest) {\n if (!setOfExpectedUrls.has(existingRequest.url)) {\n return cache.delete(existingRequest);\n }\n })\n );\n });\n }).then(function() {\n \n return self.clients.claim();\n \n })\n );\n});\n\n\nself.addEventListener('fetch', function(event) {\n if (event.request.method === 'GET') {\n // Should we call event.respondWith() inside this fetch event handler?\n // This needs to be determined synchronously, which will give other fetch\n // handlers a chance to handle the request if need be.\n var shouldRespond;\n\n // First, remove all the ignored parameters and hash fragment, and see if we\n // have that URL in our cache. If so, great! shouldRespond will be true.\n var url = stripIgnoredUrlParameters(event.request.url, ignoreUrlParametersMatching);\n shouldRespond = urlsToCacheKeys.has(url);\n\n // If shouldRespond is false, check again, this time with 'index.html'\n // (or whatever the directoryIndex option is set to) at the end.\n var directoryIndex = 'index.html';\n if (!shouldRespond && directoryIndex) {\n url = addDirectoryIndex(url, directoryIndex);\n shouldRespond = urlsToCacheKeys.has(url);\n }\n\n // If shouldRespond is still false, check to see if this is a navigation\n // request, and if so, whether the URL matches navigateFallbackWhitelist.\n var navigateFallback = '';\n if (!shouldRespond &&\n navigateFallback &&\n (event.request.mode === 'navigate') &&\n isPathWhitelisted([], event.request.url)) {\n url = new URL(navigateFallback, self.location).toString();\n shouldRespond = urlsToCacheKeys.has(url);\n }\n\n // If shouldRespond was set to true at any point, then call\n // event.respondWith(), using the appropriate cache key.\n if (shouldRespond) {\n event.respondWith(\n caches.open(cacheName).then(function(cache) {\n return cache.match(urlsToCacheKeys.get(url)).then(function(response) {\n if (response) {\n return response;\n }\n throw Error('The cached response that was expected is missing.');\n });\n }).catch(function(e) {\n // Fall back to just fetch()ing the request if some unexpected error\n // prevented the cached response from being valid.\n console.warn('Couldn\\'t serve response for \"%s\" from cache: %O', event.request.url, e);\n return fetch(event.request);\n })\n );\n }\n }\n});\n\n\n\n\n\n\n\n"]} \ No newline at end of file +{"version":3,"sources":["service-worker.js"],"names":["setOfCachedUrls","cache","keys","then","requests","map","request","url","urls","Set","precacheConfig","cacheName","self","registration","scope","ignoreUrlParametersMatching","addDirectoryIndex","originalUrl","index","URL","pathname","slice","toString","cleanResponse","originalResponse","redirected","Promise","resolve","body","blob","Response","headers","status","statusText","createCacheKey","paramName","paramValue","dontCacheBustUrlsMatching","match","search","encodeURIComponent","isPathWhitelisted","whitelist","absoluteUrlString","length","path","some","whitelistedPathRegex","stripIgnoredUrlParameters","hash","split","kv","filter","every","ignoredRegex","test","join","hashParamName","urlsToCacheKeys","Map","item","relativeUrl","absoluteUrl","location","cacheKey","addEventListener","event","waitUntil","caches","open","cachedUrls","all","Array","from","values","has","Request","credentials","fetch","response","ok","Error","responseToCache","put","skipWaiting","setOfExpectedUrls","existingRequests","existingRequest","delete","clients","claim","method","shouldRespond","respondWith","get","catch","e","console","warn"],"mappings":"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","file":"service-worker.js","sourcesContent":["/**\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n*/\n\n// DO NOT EDIT THIS GENERATED OUTPUT DIRECTLY!\n// This file should be overwritten as part of your build process.\n// If you need to extend the behavior of the generated service worker, the best approach is to write\n// additional code and include it using the importScripts option:\n// https://github.com/GoogleChrome/sw-precache#importscripts-arraystring\n//\n// Alternatively, it's possible to make changes to the underlying template file and then use that as the\n// new base for generating output, via the templateFilePath option:\n// https://github.com/GoogleChrome/sw-precache#templatefilepath-string\n//\n// If you go that route, make sure that whenever you update your sw-precache dependency, you reconcile any\n// changes made to this original template file with your modified copy.\n\n// This generated service worker JavaScript will precache your site's resources.\n// The code needs to be saved in a .js file at the top-level of your site, and registered\n// from your pages in order to be used. See\n// https://github.com/googlechrome/sw-precache/blob/master/demo/app/js/service-worker-registration.js\n// for an example of how you can register this script and handle various service worker events.\n\n/* eslint-env worker, serviceworker */\n/* eslint-disable indent, no-unused-vars, no-multiple-empty-lines, max-nested-callbacks, space-before-function-paren, quotes, comma-spacing */\n'use strict';\n\nvar precacheConfig = [[\"/dist/css/style.css\",\"ba4d66c91d1ed66848154a34ab4948cf\"],[\"/dist/img/back.svg\",\"898ada2a32ec64bd5b6959c22e8f231d\"],[\"/dist/img/monitor.svg\",\"348592da5567b5a3c46acfb5dcd341bc\"],[\"/dist/img/next.svg\",\"045593410b9f51390e750b9e1e7fff15\"],[\"/dist/img/reload.svg\",\"a0ab1b765280e4d22e6fb747042f6503\"],[\"/dist/img/shuffle.svg\",\"3a5e3c1bf04eb3493d8a2ffa547aa58f\"],[\"/dist/img/social-banner.png\",\"a70702eeea1dbe4a401b7c23189eb7d3\"],[\"/dist/js/bundle.min.js\",\"3e56c92d7228ef0fa5542d11c2750382\"],[\"/dist/js/loadJS.js\",\"72c55936069f60560a386e46f462c73a\"],[\"/dist/js/sw-registration.js\",\"677217d8e642c1ccff69fc01c96b4431\"],[\"/index.html\",\"51375259fa6d7a217d316d0a2dd190c1\"]];\nvar cacheName = 'sw-precache-v3--' + (self.registration ? self.registration.scope : '');\n\n\nvar ignoreUrlParametersMatching = [/^utm_/];\n\n\n\nvar addDirectoryIndex = function (originalUrl, index) {\n var url = new URL(originalUrl);\n if (url.pathname.slice(-1) === '/') {\n url.pathname += index;\n }\n return url.toString();\n };\n\nvar cleanResponse = function (originalResponse) {\n // If this is not a redirected response, then we don't have to do anything.\n if (!originalResponse.redirected) {\n return Promise.resolve(originalResponse);\n }\n\n // Firefox 50 and below doesn't support the Response.body stream, so we may\n // need to read the entire body to memory as a Blob.\n var bodyPromise = 'body' in originalResponse ?\n Promise.resolve(originalResponse.body) :\n originalResponse.blob();\n\n return bodyPromise.then(function(body) {\n // new Response() is happy when passed either a stream or a Blob.\n return new Response(body, {\n headers: originalResponse.headers,\n status: originalResponse.status,\n statusText: originalResponse.statusText\n });\n });\n };\n\nvar createCacheKey = function (originalUrl, paramName, paramValue,\n dontCacheBustUrlsMatching) {\n // Create a new URL object to avoid modifying originalUrl.\n var url = new URL(originalUrl);\n\n // If dontCacheBustUrlsMatching is not set, or if we don't have a match,\n // then add in the extra cache-busting URL parameter.\n if (!dontCacheBustUrlsMatching ||\n !(url.pathname.match(dontCacheBustUrlsMatching))) {\n url.search += (url.search ? '&' : '') +\n encodeURIComponent(paramName) + '=' + encodeURIComponent(paramValue);\n }\n\n return url.toString();\n };\n\nvar isPathWhitelisted = function (whitelist, absoluteUrlString) {\n // If the whitelist is empty, then consider all URLs to be whitelisted.\n if (whitelist.length === 0) {\n return true;\n }\n\n // Otherwise compare each path regex to the path of the URL passed in.\n var path = (new URL(absoluteUrlString)).pathname;\n return whitelist.some(function(whitelistedPathRegex) {\n return path.match(whitelistedPathRegex);\n });\n };\n\nvar stripIgnoredUrlParameters = function (originalUrl,\n ignoreUrlParametersMatching) {\n var url = new URL(originalUrl);\n // Remove the hash; see https://github.com/GoogleChrome/sw-precache/issues/290\n url.hash = '';\n\n url.search = url.search.slice(1) // Exclude initial '?'\n .split('&') // Split into an array of 'key=value' strings\n .map(function(kv) {\n return kv.split('='); // Split each 'key=value' string into a [key, value] array\n })\n .filter(function(kv) {\n return ignoreUrlParametersMatching.every(function(ignoredRegex) {\n return !ignoredRegex.test(kv[0]); // Return true iff the key doesn't match any of the regexes.\n });\n })\n .map(function(kv) {\n return kv.join('='); // Join each [key, value] array into a 'key=value' string\n })\n .join('&'); // Join the array of 'key=value' strings into a string with '&' in between each\n\n return url.toString();\n };\n\n\nvar hashParamName = '_sw-precache';\nvar urlsToCacheKeys = new Map(\n precacheConfig.map(function(item) {\n var relativeUrl = item[0];\n var hash = item[1];\n var absoluteUrl = new URL(relativeUrl, self.location);\n var cacheKey = createCacheKey(absoluteUrl, hashParamName, hash, false);\n return [absoluteUrl.toString(), cacheKey];\n })\n);\n\nfunction setOfCachedUrls(cache) {\n return cache.keys().then(function(requests) {\n return requests.map(function(request) {\n return request.url;\n });\n }).then(function(urls) {\n return new Set(urls);\n });\n}\n\nself.addEventListener('install', function(event) {\n event.waitUntil(\n caches.open(cacheName).then(function(cache) {\n return setOfCachedUrls(cache).then(function(cachedUrls) {\n return Promise.all(\n Array.from(urlsToCacheKeys.values()).map(function(cacheKey) {\n // If we don't have a key matching url in the cache already, add it.\n if (!cachedUrls.has(cacheKey)) {\n var request = new Request(cacheKey, {credentials: 'same-origin'});\n return fetch(request).then(function(response) {\n // Bail out of installation unless we get back a 200 OK for\n // every request.\n if (!response.ok) {\n throw new Error('Request for ' + cacheKey + ' returned a ' +\n 'response with status ' + response.status);\n }\n\n return cleanResponse(response).then(function(responseToCache) {\n return cache.put(cacheKey, responseToCache);\n });\n });\n }\n })\n );\n });\n }).then(function() {\n \n // Force the SW to transition from installing -> active state\n return self.skipWaiting();\n \n })\n );\n});\n\nself.addEventListener('activate', function(event) {\n var setOfExpectedUrls = new Set(urlsToCacheKeys.values());\n\n event.waitUntil(\n caches.open(cacheName).then(function(cache) {\n return cache.keys().then(function(existingRequests) {\n return Promise.all(\n existingRequests.map(function(existingRequest) {\n if (!setOfExpectedUrls.has(existingRequest.url)) {\n return cache.delete(existingRequest);\n }\n })\n );\n });\n }).then(function() {\n \n return self.clients.claim();\n \n })\n );\n});\n\n\nself.addEventListener('fetch', function(event) {\n if (event.request.method === 'GET') {\n // Should we call event.respondWith() inside this fetch event handler?\n // This needs to be determined synchronously, which will give other fetch\n // handlers a chance to handle the request if need be.\n var shouldRespond;\n\n // First, remove all the ignored parameters and hash fragment, and see if we\n // have that URL in our cache. If so, great! shouldRespond will be true.\n var url = stripIgnoredUrlParameters(event.request.url, ignoreUrlParametersMatching);\n shouldRespond = urlsToCacheKeys.has(url);\n\n // If shouldRespond is false, check again, this time with 'index.html'\n // (or whatever the directoryIndex option is set to) at the end.\n var directoryIndex = 'index.html';\n if (!shouldRespond && directoryIndex) {\n url = addDirectoryIndex(url, directoryIndex);\n shouldRespond = urlsToCacheKeys.has(url);\n }\n\n // If shouldRespond is still false, check to see if this is a navigation\n // request, and if so, whether the URL matches navigateFallbackWhitelist.\n var navigateFallback = '';\n if (!shouldRespond &&\n navigateFallback &&\n (event.request.mode === 'navigate') &&\n isPathWhitelisted([], event.request.url)) {\n url = new URL(navigateFallback, self.location).toString();\n shouldRespond = urlsToCacheKeys.has(url);\n }\n\n // If shouldRespond was set to true at any point, then call\n // event.respondWith(), using the appropriate cache key.\n if (shouldRespond) {\n event.respondWith(\n caches.open(cacheName).then(function(cache) {\n return cache.match(urlsToCacheKeys.get(url)).then(function(response) {\n if (response) {\n return response;\n }\n throw Error('The cached response that was expected is missing.');\n });\n }).catch(function(e) {\n // Fall back to just fetch()ing the request if some unexpected error\n // prevented the cached response from being valid.\n console.warn('Couldn\\'t serve response for \"%s\" from cache: %O', event.request.url, e);\n return fetch(event.request);\n })\n );\n }\n }\n});\n\n\n\n\n\n\n\n"]} \ No newline at end of file diff --git a/shrinkwrap.yaml b/shrinkwrap.yaml deleted file mode 100644 index 26a1a27..0000000 --- a/shrinkwrap.yaml +++ /dev/null @@ -1,4676 +0,0 @@ -dependencies: - autoprefixer@^6.7.7: 6.7.7 - ava@^0.18.2: 0.18.2 - babel-core@^6.24.0: 6.24.1 - babel-preset-env@^1.4.0: 1.4.0 - babel-preset-es2015@^6.24.1: 6.24.1 - babel-preset-es2017@^6.24.1: 6.24.1 - babel-preset-latest@^6.24.1: 6.24.1 - babelify@^7.3.0: 7.3.0 - browserify@^14.3.0: 14.3.0 - chai@^3.5.0: 3.5.0 - cssnano@^3.10.0: 3.10.0 - gulp-htmlmin@^3.0.0: 3.0.0 - gulp-image@^2.8.0: 2.8.0 - gulp-livereload@^3.8.1: 3.8.1 - gulp-postcss@^6.4.0: 6.4.0 - gulp-sass@^3.1.0: 3.1.0 - gulp-sourcemaps@^2.5.1: 2.6.0 - gulp-svgo@^1.0.3: 1.0.3 - gulp-uglify@^2.1.2: 2.1.2 - gulp-util@^3.0.8: 3.0.8 - gulp@^3.9.1: 3.9.1 - husky@^0.13.3: 0.13.3 - lint-staged@^3.4.0: 3.4.1 - localforage@^1.5.0: 1.5.0 - rollup-stream@^1.19.0: 1.19.0 - static-eval@^1.1.1: 1.1.1 - sw-precache@^5.1.1: 5.1.1 - uglifyify@^3.0.4: 3.0.4 - vinyl-buffer@^1.0.0: 1.0.0 - vinyl-source-stream@^1.1.0: 1.1.0 - watchify@^3.9.0: 3.9.0 - xo@^0.18.1: 0.18.2 -packages: - /@ava/babel-preset-stage-4/1.0.0: - dependencies: - babel-plugin-check-es2015-constants: 6.22.0 - babel-plugin-syntax-trailing-function-commas: 6.22.0 - babel-plugin-transform-async-to-generator: 6.24.1 - babel-plugin-transform-es2015-destructuring: 6.23.0 - babel-plugin-transform-es2015-function-name: 6.24.1 - babel-plugin-transform-es2015-modules-commonjs: 6.24.1 - babel-plugin-transform-es2015-parameters: 6.24.1 - babel-plugin-transform-es2015-spread: 6.22.0 - babel-plugin-transform-es2015-sticky-regex: 6.24.1 - babel-plugin-transform-es2015-unicode-regex: 6.24.1 - babel-plugin-transform-exponentiation-operator: 6.24.1 - package-hash: 1.2.0 - resolution: a613b5e152f529305422546b072d47facfb26291 - /@ava/babel-preset-transform-test-files/2.0.1: - dependencies: - babel-plugin-ava-throws-helper: 1.0.0 - babel-plugin-espower: 2.3.2 - package-hash: 1.2.0 - resolution: d75232cc6d71dc9c7eae4b76a9004fd81501d0c1 - /@ava/pretty-format/1.1.0: - dependencies: - ansi-styles: 2.2.1 - esutils: 2.0.2 - resolution: d0a57d25eb9aeab9643bdd1a030642b91c123e28 - /@gulp-sourcemaps/identity-map/1.0.1: - dependencies: - acorn: 5.0.3 - css: 2.2.1 - normalize-path: 2.1.1 - source-map: 0.5.6 - through2: 2.0.3 - resolution: cfa23bc5840f9104ce32a65e74db7e7a974bbee1 - /@gulp-sourcemaps/map-sources/1.0.0: - dependencies: - normalize-path: 2.1.1 - through2: 2.0.3 - resolution: 890ae7c5d8c877f6d384860215ace9d7ec945bda - /JSONStream/1.3.1: - dependencies: - jsonparse: 1.3.0 - through: 2.3.8 - resolution: 707f761e01dae9e16f1bcf93703b78c70966579a - /abbrev/1.1.0: d0554c2256636e2f56e7c2e5ad183f859428d81f - /acorn-jsx/3.0.1: - dependencies: - acorn: 3.3.0 - resolution: afdf9488fb1ecefc8348f6fb22f464e32a58b36b - /acorn/1.2.2: c8ce27de0acc76d896d2b1fad3df588d9e82f014 - /acorn/3.3.0: 45e37fb39e8da3f25baee3ff5369e2bb5f22017a - /acorn/4.0.11: edcda3bd937e7556410d42ed5860f67399c794c0 - /acorn/5.0.3: c460df08491463f028ccb82eab3730bf01087b3d - /ajv-keywords/1.5.1: 314dd0a4b3368fad3dfcdc54ede6171b886daf3c - /ajv/4.11.8: - dependencies: - co: 4.6.0 - json-stable-stringify: 1.0.1 - resolution: 82ffb02b29e662ae53bdc20af15947706739c536 - /align-text/0.1.4: - dependencies: - kind-of: 3.2.0 - longest: 1.0.1 - repeat-string: 1.6.1 - resolution: 0cd90a561093f35d0a99256c22b7069433fad117 - /alphanum-sort/1.0.2: 97a1119649b211ad33691d9f9f486a8ec9fbe0a3 - /amdefine/1.0.1: 4a5282ac164729e93619bcfd3ad151f817ce91f5 - /ansi-align/1.1.0: - dependencies: - string-width: 1.0.2 - resolution: 2f0c1658829739add5ebb15e6b0c6e3423f016ba - /ansi-align/2.0.0: - dependencies: - string-width: 2.0.0 - resolution: c36aeccba563b89ceb556f3690f0b1d9e3547f7f - /ansi-escapes/1.4.0: d3a8a83b319aa67793662b13e761c7911422306e - /ansi-regex/0.2.1: 0d8e946967a3d8143f93e24e298525fc1b2235f9 - /ansi-regex/2.1.1: c3b33ab5ee360d86e0e628f0468ae7ef27d654df - /ansi-styles/1.0.0: cb102df1c56f5123eab8b67cd7b98027a0279178 - /ansi-styles/1.1.0: eaecbf66cd706882760b2f4691582b8f55d7a7de - /ansi-styles/2.2.1: b432dd3358b634cf75e1e4664368240533c1ddbe - /anymatch/1.3.0: - dependencies: - arrify: 1.0.1 - micromatch: 2.3.11 - resolution: a3e52fa39168c825ff57b0248126ce5a8ff95507 - /app-root-path/2.0.1: cd62dcf8e4fd5a417efc664d2e5b10653c651b46 - /aproba/1.1.1: 95d3600f07710aa0e9298c726ad5ecf2eacbabab - /archive-type/3.2.0: - dependencies: - file-type: 3.9.0 - resolution: 9cd9c006957ebe95fadad5bd6098942a813737f6 - /archy/1.0.0: f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40 - /are-we-there-yet/1.1.4: - dependencies: - delegates: 1.0.0 - readable-stream: 2.2.9 - resolution: bb5dca382bb94f05e15194373d16fd3ba1ca110d - /argparse/1.0.9: - dependencies: - sprintf-js: 1.0.3 - resolution: 73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86 - /arr-diff/2.0.0: - dependencies: - arr-flatten: 1.0.3 - resolution: 8f3b827f955a8bd669697e4a4256ac3ceae356cf - /arr-exclude/1.0.0: dfc7c2e552a270723ccda04cf3128c8cbfe5c631 - /arr-flatten/1.0.3: a274ed85ac08849b6bd7847c4580745dc51adfb1 - /array-differ/1.0.0: eff52e3758249d33be402b8bb8e564bb2b5d4031 - /array-filter/0.0.1: 7da8cf2e26628ed732803581fd21f67cacd2eeec - /array-find-index/1.0.2: df010aa1287e164bbda6f9723b0a96a1ec4187a1 - /array-map/0.0.0: 88a2bab73d1cf7bcd5c1b118a003f66f665fa662 - /array-reduce/0.0.0: 173899d3ffd1c7d9383e4479525dbe278cab5f2b - /array-union/1.0.2: - dependencies: - array-uniq: 1.0.3 - resolution: 9a34410e4f4e3da23dea375be5be70f24778ec39 - /array-uniq/1.0.3: af6ac877a25cc7f74e058894753858dfdb24fdb6 - /array-unique/0.2.1: a1d97ccafcbc2625cc70fadceb36a50c58b01a53 - /arrify/1.0.1: 898508da2226f380df904728456849c1501a4b0d - /asn1.js/4.9.1: - dependencies: - bn.js: 4.11.6 - inherits: 2.0.3 - minimalistic-assert: 1.0.0 - resolution: 48ba240b45a9280e94748990ba597d216617fd40 - /asn1/0.2.3: dac8787713c9966849fc8180777ebe9c1ddf3b86 - /assert-plus/0.2.0: d74e1b87e7affc0db8aadb7021f3fe48101ab234 - /assert-plus/1.0.0: f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525 - /assert/1.4.1: - dependencies: - util: 0.10.3 - resolution: 99912d591836b5a6f5b345c0f07eefc08fc65d91 - /assertion-error/1.0.2: 13ca515d86206da0bac66e834dd397d87581094c - /ast-types/0.8.15: 8eef0827f04dff0ec8857ba925abe3fea6194e52 - /astw/2.2.0: - dependencies: - acorn: 4.0.11 - resolution: 7bd41784d32493987aeb239b6b4e1c57a873b917 - /async-each-series/1.1.0: f42fd8155d38f21a5b8ea07c28e063ed1700b138 - /async-each/1.0.1: 19d386a1d9edc6e7c1c85d388aedbcc56d33602d - /async-foreach/0.1.3: 36121f845c0578172de419a97dbeb1d16ec34542 - /asynckit/0.4.0: c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79 - /atob/1.1.3: 95f13629b12c3a51a5d215abdce2aa9f32f80773 - /auto-bind/1.1.0: 93b864dc7ee01a326281775d5c75ca0a751e5961 - /autoprefixer/6.7.7: - dependencies: - browserslist: 1.7.7 - caniuse-db: 1.0.30000665 - normalize-range: 0.1.2 - num2fraction: 1.2.2 - postcss: 5.2.17 - postcss-value-parser: 3.3.0 - resolution: 1dbd1c835658e35ce3f9984099db00585c782014 - /ava-init/0.2.0: - dependencies: - arr-exclude: 1.0.0 - execa: 0.5.1 - has-yarn: 1.0.0 - read-pkg-up: 2.0.0 - write-pkg: 2.1.0 - resolution: 9304c8b4c357d66e3dfdae1fbff47b1199d5c55d - /ava/0.18.2: - dependencies: - '@ava/babel-preset-stage-4': 1.0.0 - '@ava/babel-preset-transform-test-files': 2.0.1 - '@ava/pretty-format': 1.1.0 - arr-flatten: 1.0.3 - array-union: 1.0.2 - array-uniq: 1.0.3 - arrify: 1.0.1 - auto-bind: 1.1.0 - ava-init: 0.2.0 - babel-code-frame: 6.22.0 - babel-core: 6.24.1 - bluebird: 3.5.0 - caching-transform: 1.0.1 - chalk: 1.1.3 - chokidar: 1.6.1 - clean-stack: 1.1.1 - clean-yaml-object: 0.1.0 - cli-cursor: 2.1.0 - cli-spinners: 1.0.0 - cli-truncate: 0.2.1 - co-with-promise: 4.6.0 - code-excerpt: 2.1.0 - common-path-prefix: 1.0.0 - convert-source-map: 1.5.0 - core-assert: 0.2.1 - currently-unhandled: 0.4.1 - debug: 2.6.6 - diff: 3.2.0 - dot-prop: 4.1.1 - empower-core: 0.6.1 - equal-length: 1.0.1 - figures: 2.0.0 - find-cache-dir: 0.1.1 - fn-name: 2.0.1 - get-port: 2.1.0 - globby: 6.1.0 - has-flag: 2.0.0 - ignore-by-default: 1.0.1 - indent-string: 3.1.0 - is-ci: 1.0.10 - is-generator-fn: 1.0.0 - is-obj: 1.0.1 - is-observable: 0.2.0 - is-promise: 2.1.0 - jest-snapshot: 18.1.0 - last-line-stream: 1.0.0 - lodash.debounce: 4.0.8 - lodash.difference: 4.5.0 - lodash.flatten: 4.4.0 - lodash.isequal: 4.5.0 - loud-rejection: 1.6.0 - matcher: 0.1.2 - max-timeout: 1.0.0 - md5-hex: 2.0.0 - meow: 3.7.0 - ms: 0.7.3 - multimatch: 2.1.0 - observable-to-promise: 0.4.0 - option-chain: 0.1.1 - package-hash: 1.2.0 - pkg-conf: 2.0.0 - plur: 2.1.2 - pretty-ms: 2.1.0 - require-precompiled: 0.1.0 - resolve-cwd: 1.0.0 - slash: 1.0.0 - source-map-support: 0.4.15 - stack-utils: 1.0.1 - strip-ansi: 3.0.1 - strip-bom-buf: 1.0.0 - time-require: 0.1.2 - unique-temp-dir: 1.0.0 - update-notifier: 1.0.3 - resolution: 79253d1636077034a2780bb55b5c3e6c3d7f312f - /aws-sign2/0.6.0: 14342dd38dbcc94d0e5b87d763cd63612c0e794f - /aws4/1.6.0: 83ef5ca860b2b32e4a0deedee8c771b9db57471e - /babel-code-frame/6.22.0: - dependencies: - chalk: 1.1.3 - esutils: 2.0.2 - js-tokens: 3.0.1 - resolution: 027620bee567a88c32561574e7fd0801d33118e4 - /babel-core/6.24.1: - dependencies: - babel-code-frame: 6.22.0 - babel-generator: 6.24.1 - babel-helpers: 6.24.1 - babel-messages: 6.23.0 - babel-register: 6.24.1 - babel-runtime: 6.23.0 - babel-template: 6.24.1 - babel-traverse: 6.24.1 - babel-types: 6.24.1 - babylon: 6.17.0 - convert-source-map: 1.5.0 - debug: 2.6.6 - json5: 0.5.1 - lodash: 4.17.4 - minimatch: 3.0.3 - path-is-absolute: 1.0.1 - private: 0.1.7 - slash: 1.0.0 - source-map: 0.5.6 - resolution: 8c428564dce1e1f41fb337ec34f4c3b022b5ad83 - /babel-generator/6.24.1: - dependencies: - babel-messages: 6.23.0 - babel-runtime: 6.23.0 - babel-types: 6.24.1 - detect-indent: 4.0.0 - jsesc: 1.3.0 - lodash: 4.17.4 - source-map: 0.5.6 - trim-right: 1.0.1 - resolution: e715f486c58ded25649d888944d52aa07c5d9497 - /babel-helper-builder-binary-assignment-operator-visitor/6.24.1: - dependencies: - babel-helper-explode-assignable-expression: 6.24.1 - babel-runtime: 6.23.0 - babel-types: 6.24.1 - resolution: cce4517ada356f4220bcae8a02c2b346f9a56664 - /babel-helper-call-delegate/6.24.1: - dependencies: - babel-helper-hoist-variables: 6.24.1 - babel-runtime: 6.23.0 - babel-traverse: 6.24.1 - babel-types: 6.24.1 - resolution: ece6aacddc76e41c3461f88bfc575bd0daa2df8d - /babel-helper-define-map/6.24.1: - dependencies: - babel-helper-function-name: 6.24.1 - babel-runtime: 6.23.0 - babel-types: 6.24.1 - lodash: 4.17.4 - resolution: 7a9747f258d8947d32d515f6aa1c7bd02204a080 - /babel-helper-explode-assignable-expression/6.24.1: - dependencies: - babel-runtime: 6.23.0 - babel-traverse: 6.24.1 - babel-types: 6.24.1 - resolution: f25b82cf7dc10433c55f70592d5746400ac22caa - /babel-helper-function-name/6.24.1: - dependencies: - babel-helper-get-function-arity: 6.24.1 - babel-runtime: 6.23.0 - babel-template: 6.24.1 - babel-traverse: 6.24.1 - babel-types: 6.24.1 - resolution: d3475b8c03ed98242a25b48351ab18399d3580a9 - /babel-helper-get-function-arity/6.24.1: - dependencies: - babel-runtime: 6.23.0 - babel-types: 6.24.1 - resolution: 8f7782aa93407c41d3aa50908f89b031b1b6853d - /babel-helper-hoist-variables/6.24.1: - dependencies: - babel-runtime: 6.23.0 - babel-types: 6.24.1 - resolution: 1ecb27689c9d25513eadbc9914a73f5408be7a76 - /babel-helper-optimise-call-expression/6.24.1: - dependencies: - babel-runtime: 6.23.0 - babel-types: 6.24.1 - resolution: f7a13427ba9f73f8f4fa993c54a97882d1244257 - /babel-helper-regex/6.24.1: - dependencies: - babel-runtime: 6.23.0 - babel-types: 6.24.1 - lodash: 4.17.4 - resolution: d36e22fab1008d79d88648e32116868128456ce8 - /babel-helper-remap-async-to-generator/6.24.1: - dependencies: - babel-helper-function-name: 6.24.1 - babel-runtime: 6.23.0 - babel-template: 6.24.1 - babel-traverse: 6.24.1 - babel-types: 6.24.1 - resolution: 5ec581827ad723fecdd381f1c928390676e4551b - /babel-helper-replace-supers/6.24.1: - dependencies: - babel-helper-optimise-call-expression: 6.24.1 - babel-messages: 6.23.0 - babel-runtime: 6.23.0 - babel-template: 6.24.1 - babel-traverse: 6.24.1 - babel-types: 6.24.1 - resolution: bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a - /babel-helpers/6.24.1: - dependencies: - babel-runtime: 6.23.0 - babel-template: 6.24.1 - resolution: 3471de9caec388e5c850e597e58a26ddf37602b2 - /babel-messages/6.23.0: - dependencies: - babel-runtime: 6.23.0 - resolution: f3cdf4703858035b2a2951c6ec5edf6c62f2630e - /babel-plugin-ava-throws-helper/1.0.0: - dependencies: - babel-template: 6.24.1 - babel-types: 6.24.1 - resolution: 8fe6e79d2fd19838b5c3649f89cfb03fd563e241 - /babel-plugin-check-es2015-constants/6.22.0: - dependencies: - babel-runtime: 6.23.0 - resolution: 35157b101426fd2ffd3da3f75c7d1e91835bbf8a - /babel-plugin-espower/2.3.2: - dependencies: - babel-generator: 6.24.1 - babylon: 6.17.0 - call-matcher: 1.0.1 - core-js: 2.4.1 - espower-location-detector: 1.0.0 - espurify: 1.7.0 - estraverse: 4.2.0 - resolution: 5516b8fcdb26c9f0e1d8160749f6e4c65e71271e - /babel-plugin-syntax-async-functions/6.13.0: cad9cad1191b5ad634bf30ae0872391e0647be95 - /babel-plugin-syntax-exponentiation-operator/6.13.0: 9ee7e8337290da95288201a6a57f4170317830de - /babel-plugin-syntax-trailing-function-commas/6.22.0: ba0360937f8d06e40180a43fe0d5616fff532cf3 - /babel-plugin-transform-async-to-generator/6.24.1: - dependencies: - babel-helper-remap-async-to-generator: 6.24.1 - babel-plugin-syntax-async-functions: 6.13.0 - babel-runtime: 6.23.0 - resolution: 6536e378aff6cb1d5517ac0e40eb3e9fc8d08761 - /babel-plugin-transform-es2015-arrow-functions/6.22.0: - dependencies: - babel-runtime: 6.23.0 - resolution: 452692cb711d5f79dc7f85e440ce41b9f244d221 - /babel-plugin-transform-es2015-block-scoped-functions/6.22.0: - dependencies: - babel-runtime: 6.23.0 - resolution: bbc51b49f964d70cb8d8e0b94e820246ce3a6141 - /babel-plugin-transform-es2015-block-scoping/6.24.1: - dependencies: - babel-runtime: 6.23.0 - babel-template: 6.24.1 - babel-traverse: 6.24.1 - babel-types: 6.24.1 - lodash: 4.17.4 - resolution: 76c295dc3a4741b1665adfd3167215dcff32a576 - /babel-plugin-transform-es2015-classes/6.24.1: - dependencies: - babel-helper-define-map: 6.24.1 - babel-helper-function-name: 6.24.1 - babel-helper-optimise-call-expression: 6.24.1 - babel-helper-replace-supers: 6.24.1 - babel-messages: 6.23.0 - babel-runtime: 6.23.0 - babel-template: 6.24.1 - babel-traverse: 6.24.1 - babel-types: 6.24.1 - resolution: 5a4c58a50c9c9461e564b4b2a3bfabc97a2584db - /babel-plugin-transform-es2015-computed-properties/6.24.1: - dependencies: - babel-runtime: 6.23.0 - babel-template: 6.24.1 - resolution: 6fe2a8d16895d5634f4cd999b6d3480a308159b3 - /babel-plugin-transform-es2015-destructuring/6.23.0: - dependencies: - babel-runtime: 6.23.0 - resolution: 997bb1f1ab967f682d2b0876fe358d60e765c56d - /babel-plugin-transform-es2015-duplicate-keys/6.24.1: - dependencies: - babel-runtime: 6.23.0 - babel-types: 6.24.1 - resolution: 73eb3d310ca969e3ef9ec91c53741a6f1576423e - /babel-plugin-transform-es2015-for-of/6.23.0: - dependencies: - babel-runtime: 6.23.0 - resolution: f47c95b2b613df1d3ecc2fdb7573623c75248691 - /babel-plugin-transform-es2015-function-name/6.24.1: - dependencies: - babel-helper-function-name: 6.24.1 - babel-runtime: 6.23.0 - babel-types: 6.24.1 - resolution: 834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b - /babel-plugin-transform-es2015-literals/6.22.0: - dependencies: - babel-runtime: 6.23.0 - resolution: 4f54a02d6cd66cf915280019a31d31925377ca2e - /babel-plugin-transform-es2015-modules-amd/6.24.1: - dependencies: - babel-plugin-transform-es2015-modules-commonjs: 6.24.1 - babel-runtime: 6.23.0 - babel-template: 6.24.1 - resolution: 3b3e54017239842d6d19c3011c4bd2f00a00d154 - /babel-plugin-transform-es2015-modules-commonjs/6.24.1: - dependencies: - babel-plugin-transform-strict-mode: 6.24.1 - babel-runtime: 6.23.0 - babel-template: 6.24.1 - babel-types: 6.24.1 - resolution: d3e310b40ef664a36622200097c6d440298f2bfe - /babel-plugin-transform-es2015-modules-systemjs/6.24.1: - dependencies: - babel-helper-hoist-variables: 6.24.1 - babel-runtime: 6.23.0 - babel-template: 6.24.1 - resolution: ff89a142b9119a906195f5f106ecf305d9407d23 - /babel-plugin-transform-es2015-modules-umd/6.24.1: - dependencies: - babel-plugin-transform-es2015-modules-amd: 6.24.1 - babel-runtime: 6.23.0 - babel-template: 6.24.1 - resolution: ac997e6285cd18ed6176adb607d602344ad38468 - /babel-plugin-transform-es2015-object-super/6.24.1: - dependencies: - babel-helper-replace-supers: 6.24.1 - babel-runtime: 6.23.0 - resolution: 24cef69ae21cb83a7f8603dad021f572eb278f8d - /babel-plugin-transform-es2015-parameters/6.24.1: - dependencies: - babel-helper-call-delegate: 6.24.1 - babel-helper-get-function-arity: 6.24.1 - babel-runtime: 6.23.0 - babel-template: 6.24.1 - babel-traverse: 6.24.1 - babel-types: 6.24.1 - resolution: 57ac351ab49caf14a97cd13b09f66fdf0a625f2b - /babel-plugin-transform-es2015-shorthand-properties/6.24.1: - dependencies: - babel-runtime: 6.23.0 - babel-types: 6.24.1 - resolution: 24f875d6721c87661bbd99a4622e51f14de38aa0 - /babel-plugin-transform-es2015-spread/6.22.0: - dependencies: - babel-runtime: 6.23.0 - resolution: d6d68a99f89aedc4536c81a542e8dd9f1746f8d1 - /babel-plugin-transform-es2015-sticky-regex/6.24.1: - dependencies: - babel-helper-regex: 6.24.1 - babel-runtime: 6.23.0 - babel-types: 6.24.1 - resolution: 00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc - /babel-plugin-transform-es2015-template-literals/6.22.0: - dependencies: - babel-runtime: 6.23.0 - resolution: a84b3450f7e9f8f1f6839d6d687da84bb1236d8d - /babel-plugin-transform-es2015-typeof-symbol/6.23.0: - dependencies: - babel-runtime: 6.23.0 - resolution: dec09f1cddff94b52ac73d505c84df59dcceb372 - /babel-plugin-transform-es2015-unicode-regex/6.24.1: - dependencies: - babel-helper-regex: 6.24.1 - babel-runtime: 6.23.0 - regexpu-core: 2.0.0 - resolution: d38b12f42ea7323f729387f18a7c5ae1faeb35e9 - /babel-plugin-transform-exponentiation-operator/6.24.1: - dependencies: - babel-helper-builder-binary-assignment-operator-visitor: 6.24.1 - babel-plugin-syntax-exponentiation-operator: 6.13.0 - babel-runtime: 6.23.0 - resolution: 2ab0c9c7f3098fa48907772bb813fe41e8de3a0e - /babel-plugin-transform-regenerator/6.24.1: - dependencies: - regenerator-transform: 0.9.11 - resolution: b8da305ad43c3c99b4848e4fe4037b770d23c418 - /babel-plugin-transform-strict-mode/6.24.1: - dependencies: - babel-runtime: 6.23.0 - babel-types: 6.24.1 - resolution: d5faf7aa578a65bbe591cf5edae04a0c67020758 - /babel-preset-env/1.4.0: - dependencies: - babel-plugin-check-es2015-constants: 6.22.0 - babel-plugin-syntax-trailing-function-commas: 6.22.0 - babel-plugin-transform-async-to-generator: 6.24.1 - babel-plugin-transform-es2015-arrow-functions: 6.22.0 - babel-plugin-transform-es2015-block-scoped-functions: 6.22.0 - babel-plugin-transform-es2015-block-scoping: 6.24.1 - babel-plugin-transform-es2015-classes: 6.24.1 - babel-plugin-transform-es2015-computed-properties: 6.24.1 - babel-plugin-transform-es2015-destructuring: 6.23.0 - babel-plugin-transform-es2015-duplicate-keys: 6.24.1 - babel-plugin-transform-es2015-for-of: 6.23.0 - babel-plugin-transform-es2015-function-name: 6.24.1 - babel-plugin-transform-es2015-literals: 6.22.0 - babel-plugin-transform-es2015-modules-amd: 6.24.1 - babel-plugin-transform-es2015-modules-commonjs: 6.24.1 - babel-plugin-transform-es2015-modules-systemjs: 6.24.1 - babel-plugin-transform-es2015-modules-umd: 6.24.1 - babel-plugin-transform-es2015-object-super: 6.24.1 - babel-plugin-transform-es2015-parameters: 6.24.1 - babel-plugin-transform-es2015-shorthand-properties: 6.24.1 - babel-plugin-transform-es2015-spread: 6.22.0 - babel-plugin-transform-es2015-sticky-regex: 6.24.1 - babel-plugin-transform-es2015-template-literals: 6.22.0 - babel-plugin-transform-es2015-typeof-symbol: 6.23.0 - babel-plugin-transform-es2015-unicode-regex: 6.24.1 - babel-plugin-transform-exponentiation-operator: 6.24.1 - babel-plugin-transform-regenerator: 6.24.1 - browserslist: 1.7.7 - invariant: 2.2.2 - resolution: c8e02a3bcc7792f23cded68e0355b9d4c28f0f7a - /babel-preset-es2015/6.24.1: - dependencies: - babel-plugin-check-es2015-constants: 6.22.0 - babel-plugin-transform-es2015-arrow-functions: 6.22.0 - babel-plugin-transform-es2015-block-scoped-functions: 6.22.0 - babel-plugin-transform-es2015-block-scoping: 6.24.1 - babel-plugin-transform-es2015-classes: 6.24.1 - babel-plugin-transform-es2015-computed-properties: 6.24.1 - babel-plugin-transform-es2015-destructuring: 6.23.0 - babel-plugin-transform-es2015-duplicate-keys: 6.24.1 - babel-plugin-transform-es2015-for-of: 6.23.0 - babel-plugin-transform-es2015-function-name: 6.24.1 - babel-plugin-transform-es2015-literals: 6.22.0 - babel-plugin-transform-es2015-modules-amd: 6.24.1 - babel-plugin-transform-es2015-modules-commonjs: 6.24.1 - babel-plugin-transform-es2015-modules-systemjs: 6.24.1 - babel-plugin-transform-es2015-modules-umd: 6.24.1 - babel-plugin-transform-es2015-object-super: 6.24.1 - babel-plugin-transform-es2015-parameters: 6.24.1 - babel-plugin-transform-es2015-shorthand-properties: 6.24.1 - babel-plugin-transform-es2015-spread: 6.22.0 - babel-plugin-transform-es2015-sticky-regex: 6.24.1 - babel-plugin-transform-es2015-template-literals: 6.22.0 - babel-plugin-transform-es2015-typeof-symbol: 6.23.0 - babel-plugin-transform-es2015-unicode-regex: 6.24.1 - babel-plugin-transform-regenerator: 6.24.1 - resolution: d44050d6bc2c9feea702aaf38d727a0210538939 - /babel-preset-es2016/6.24.1: - dependencies: - babel-plugin-transform-exponentiation-operator: 6.24.1 - resolution: f900bf93e2ebc0d276df9b8ab59724ebfd959f8b - /babel-preset-es2017/6.24.1: - dependencies: - babel-plugin-syntax-trailing-function-commas: 6.22.0 - babel-plugin-transform-async-to-generator: 6.24.1 - resolution: 597beadfb9f7f208bcfd8a12e9b2b29b8b2f14d1 - /babel-preset-latest/6.24.1: - dependencies: - babel-preset-es2015: 6.24.1 - babel-preset-es2016: 6.24.1 - babel-preset-es2017: 6.24.1 - resolution: 677de069154a7485c2d25c577c02f624b85b85e8 - /babel-register/6.24.1: - dependencies: - babel-core: 6.24.1 - babel-runtime: 6.23.0 - core-js: 2.4.1 - home-or-tmp: 2.0.0 - lodash: 4.17.4 - mkdirp: 0.5.1 - source-map-support: 0.4.15 - resolution: 7e10e13a2f71065bdfad5a1787ba45bca6ded75f - /babel-runtime/6.23.0: - dependencies: - core-js: 2.4.1 - regenerator-runtime: 0.10.5 - resolution: 0a9489f144de70efb3ce4300accdb329e2fc543b - /babel-template/6.24.1: - dependencies: - babel-runtime: 6.23.0 - babel-traverse: 6.24.1 - babel-types: 6.24.1 - babylon: 6.17.0 - lodash: 4.17.4 - resolution: 04ae514f1f93b3a2537f2a0f60a5a45fb8308333 - /babel-traverse/6.24.1: - dependencies: - babel-code-frame: 6.22.0 - babel-messages: 6.23.0 - babel-runtime: 6.23.0 - babel-types: 6.24.1 - babylon: 6.17.0 - debug: 2.6.6 - globals: 9.17.0 - invariant: 2.2.2 - lodash: 4.17.4 - resolution: ab36673fd356f9a0948659e7b338d5feadb31695 - /babel-types/6.24.1: - dependencies: - babel-runtime: 6.23.0 - esutils: 2.0.2 - lodash: 4.17.4 - to-fast-properties: 1.0.3 - resolution: a136879dc15b3606bda0d90c1fc74304c2ff0975 - /babelify/7.3.0: - dependencies: - babel-core: 6.24.1 - object-assign: 4.1.1 - resolution: aa56aede7067fd7bd549666ee16dc285087e88e5 - /babylon/6.17.0: 37da948878488b9c4e3c4038893fa3314b3fc932 - /balanced-match/0.4.2: cb3f3e3c732dc0f01ee70b403f302e61d7709838 - /base62/0.1.1: 7b4174c2f94449753b11c2651c083da841a7b084 - /base64-js/1.2.0: a39992d723584811982be5e290bb6a53d86700f1 - /bcrypt-pbkdf/1.0.1: - dependencies: - tweetnacl: 0.14.5 - resolution: 63bc5dcb61331b92bc05fd528953c33462a06f8d - /beeper/1.1.1: e6d5ea8c5dad001304a70b22638447f69cb2f809 - /bin-build/2.2.0: - dependencies: - archive-type: 3.2.0 - decompress: 3.0.0 - download: 4.4.3 - exec-series: 1.0.3 - rimraf: 2.6.1 - tempfile: 1.1.1 - url-regex: 3.2.0 - resolution: 11f8dd61f70ffcfa2bdcaa5b46f5e8fedd4221cc - /bin-check/2.0.0: - dependencies: - executable: 1.1.0 - resolution: 86f8e6f4253893df60dc316957f5af02acb05930 - /bin-version-check/2.1.0: - dependencies: - bin-version: 1.0.4 - minimist: 1.2.0 - semver: 4.3.6 - semver-truncate: 1.1.2 - resolution: e4e5df290b9069f7d111324031efc13fdd11a5b0 - /bin-version/1.0.4: - dependencies: - find-versions: 1.2.1 - resolution: 9eb498ee6fd76f7ab9a7c160436f89579435d78e - /bin-wrapper/3.0.2: - dependencies: - bin-check: 2.0.0 - bin-version-check: 2.1.0 - download: 4.4.3 - each-async: 1.1.1 - lazy-req: 1.1.0 - os-filter-obj: 1.0.3 - resolution: 67d3306262e4b1a5f2f88ee23464f6a655677aeb - /binary-extensions/1.8.0: 48ec8d16df4377eae5fa5884682480af4d95c774 - /bl/0.9.5: - dependencies: - readable-stream: 1.0.34 - resolution: c06b797af085ea00bc527afc8efcf11de2232054 - /bl/1.2.1: - dependencies: - readable-stream: 2.2.9 - resolution: cac328f7bee45730d404b692203fcb590e172d5e - /block-stream/0.0.9: - dependencies: - inherits: 2.0.3 - resolution: 13ebfe778a03205cfe03751481ebb4b3300c126a - /bluebird/3.5.0: 791420d7f551eea2897453a8a77653f96606d67c - /bn.js/4.11.6: 53344adb14617a13f6e8dd2ce28905d1c0ba3215 - /body-parser/1.14.2: - dependencies: - bytes: 2.2.0 - content-type: 1.0.2 - debug: 2.2.0 - depd: 1.1.0 - http-errors: 1.3.1 - iconv-lite: 0.4.13 - on-finished: 2.3.0 - qs: 5.2.0 - raw-body: 2.1.7 - type-is: 1.6.15 - resolution: 1015cb1fe2c443858259581db53332f8d0cf50f9 - /boom/2.10.1: - dependencies: - hoek: 2.16.3 - resolution: 39c8918ceff5799f83f9492a848f625add0c766f - /boxen/0.6.0: - dependencies: - ansi-align: 1.1.0 - camelcase: 2.1.1 - chalk: 1.1.3 - cli-boxes: 1.0.0 - filled-array: 1.1.0 - object-assign: 4.1.1 - repeating: 2.0.1 - string-width: 1.0.2 - widest-line: 1.0.0 - resolution: 8364d4248ac34ff0ef1b2f2bf49a6c60ce0d81b6 - /boxen/1.1.0: - dependencies: - ansi-align: 2.0.0 - camelcase: 4.1.0 - chalk: 1.1.3 - cli-boxes: 1.0.0 - string-width: 2.0.0 - term-size: 0.1.1 - widest-line: 1.0.0 - resolution: b1b69dd522305e807a99deee777dbd6e5167b102 - /brace-expansion/1.1.7: - dependencies: - balanced-match: 0.4.2 - concat-map: 0.0.1 - resolution: 3effc3c50e000531fb720eaff80f0ae8ef23cf59 - /braces/1.8.5: - dependencies: - expand-range: 1.8.2 - preserve: 0.2.0 - repeat-element: 1.1.2 - resolution: ba77962e12dff969d6b76711e914b737857bf6a7 - /brorand/1.1.0: 12c25efe40a45e3c323eb8675a0a0ce57b22371f - /browser-pack/6.0.2: - dependencies: - JSONStream: 1.3.1 - combine-source-map: 0.7.2 - defined: 1.0.0 - through2: 2.0.3 - umd: 3.0.1 - resolution: f86cd6cef4f5300c8e63e07a4d512f65fbff4531 - /browser-resolve/1.11.2: - dependencies: - resolve: 1.1.7 - resolution: 8ff09b0a2c421718a1051c260b32e48f442938ce - /browserify-aes/1.0.6: - dependencies: - buffer-xor: 1.0.3 - cipher-base: 1.0.3 - create-hash: 1.1.2 - evp_bytestokey: 1.0.0 - inherits: 2.0.3 - resolution: 5e7725dbdef1fd5930d4ebab48567ce451c48a0a - /browserify-cipher/1.0.0: - dependencies: - browserify-aes: 1.0.6 - browserify-des: 1.0.0 - evp_bytestokey: 1.0.0 - resolution: 9988244874bf5ed4e28da95666dcd66ac8fc363a - /browserify-des/1.0.0: - dependencies: - cipher-base: 1.0.3 - des.js: 1.0.0 - inherits: 2.0.3 - resolution: daa277717470922ed2fe18594118a175439721dd - /browserify-rsa/4.0.1: - dependencies: - bn.js: 4.11.6 - randombytes: 2.0.3 - resolution: 21e0abfaf6f2029cf2fafb133567a701d4135524 - /browserify-sign/4.0.4: - dependencies: - bn.js: 4.11.6 - browserify-rsa: 4.0.1 - create-hash: 1.1.2 - create-hmac: 1.1.4 - elliptic: 6.4.0 - inherits: 2.0.3 - parse-asn1: 5.1.0 - resolution: aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298 - /browserify-zlib/0.1.4: - dependencies: - pako: 0.2.9 - resolution: bb35f8a519f600e0fa6b8485241c979d0141fb2d - /browserify/14.3.0: - dependencies: - JSONStream: 1.3.1 - assert: 1.4.1 - browser-pack: 6.0.2 - browser-resolve: 1.11.2 - browserify-zlib: 0.1.4 - buffer: 5.0.6 - cached-path-relative: 1.0.1 - concat-stream: 1.5.2 - console-browserify: 1.1.0 - constants-browserify: 1.0.0 - crypto-browserify: 3.11.0 - defined: 1.0.0 - deps-sort: 2.0.0 - domain-browser: 1.1.7 - duplexer2: 0.1.4 - events: 1.1.1 - glob: 7.1.1 - has: 1.0.1 - htmlescape: 1.1.1 - https-browserify: 1.0.0 - inherits: 2.0.3 - insert-module-globals: 7.0.1 - labeled-stream-splicer: 2.0.0 - module-deps: 4.1.1 - os-browserify: 0.1.2 - parents: 1.0.1 - path-browserify: 0.0.0 - process: 0.11.10 - punycode: 1.4.1 - querystring-es3: 0.2.1 - read-only-stream: 2.0.0 - readable-stream: 2.2.9 - resolve: 1.3.3 - shasum: 1.0.2 - shell-quote: 1.6.1 - stream-browserify: 2.0.1 - stream-http: 2.7.0 - string_decoder: 0.10.31 - subarg: 1.0.0 - syntax-error: 1.3.0 - through2: 2.0.3 - timers-browserify: 1.4.2 - tty-browserify: 0.0.0 - url: 0.11.0 - util: 0.10.3 - vm-browserify: 0.0.4 - xtend: 4.0.1 - resolution: fd003a2386ac1aec127f097885a3cc6373b745c4 - /browserslist/1.7.7: - dependencies: - caniuse-db: 1.0.30000665 - electron-to-chromium: 1.3.9 - resolution: 0bd76704258be829b2398bb50e4b62d1a166b0b9 - /buf-compare/1.0.1: fef28da8b8113a0a0db4430b0b6467b69730b34a - /buffer-crc32/0.2.13: 0d333e3f00eac50aa1454abd30ef8c2a5d9a7242 - /buffer-shims/1.0.0: 9978ce317388c649ad8793028c3477ef044a8b51 - /buffer-to-vinyl/1.1.0: - dependencies: - file-type: 3.9.0 - readable-stream: 2.2.9 - uuid: 2.0.3 - vinyl: 1.2.0 - resolution: 00f15faee3ab7a1dda2cde6d9121bffdd07b2262 - /buffer-xor/1.0.3: 26e61ed1422fb70dd42e6e36729ed51d855fe8d9 - /buffer/5.0.6: - dependencies: - base64-js: 1.2.0 - ieee754: 1.1.8 - resolution: 2ea669f7eec0b6eda05b08f8b5ff661b28573588 - /bufferstreams/1.1.1: - dependencies: - readable-stream: 2.2.9 - resolution: 0161373060ac5988eff99058731114f6e195d51e - /builtin-modules/1.1.1: 270f076c5a72c02f5b65a47df94c5fe3a278892f - /builtin-status-codes/3.0.0: 85982878e21b98e1c66425e03d0174788f569ee8 - /bytes/2.2.0: fd35464a403f6f9117c2de3609ecff9cae000588 - /bytes/2.4.0: 7d97196f9d5baf7f6935e25985549edd2a6c2339 - /cached-path-relative/1.0.1: d09c4b52800aa4c078e2dd81a869aac90d2e54e7 - /caching-transform/1.0.1: - dependencies: - md5-hex: 1.3.0 - mkdirp: 0.5.1 - write-file-atomic: 1.3.4 - resolution: 6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1 - /call-matcher/1.0.1: - dependencies: - core-js: 2.4.1 - deep-equal: 1.0.1 - espurify: 1.7.0 - estraverse: 4.2.0 - resolution: 5134d077984f712a54dad3cbf62de28dce416ca8 - /call-signature/0.0.2: a84abc825a55ef4cb2b028bd74e205a65b9a4996 - /caller-path/0.1.0: - dependencies: - callsites: 0.2.0 - resolution: 94085ef63581ecd3daa92444a8fe94e82577751f - /callsites/0.2.0: afab96262910a7f33c19a5775825c69f34e350ca - /camel-case/3.0.0: - dependencies: - no-case: 2.3.1 - upper-case: 1.1.3 - resolution: ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73 - /camelcase-keys/2.1.0: - dependencies: - camelcase: 2.1.1 - map-obj: 1.0.1 - resolution: 308beeaffdf28119051efa1d932213c91b8f92e7 - /camelcase/1.2.1: 9bb5304d2e0b56698b2c758b08a3eaa9daa58a39 - /camelcase/2.1.1: 7c1d16d679a1bbe59ca02cacecfb011e201f5a1f - /camelcase/3.0.0: 32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a - /camelcase/4.1.0: d545635be1e33c542649c69173e5de6acfae34dd - /caniuse-api/1.6.1: - dependencies: - browserslist: 1.7.7 - caniuse-db: 1.0.30000665 - lodash.memoize: 4.1.2 - lodash.uniq: 4.5.0 - resolution: b534e7c734c4f81ec5fbe8aca2ad24354b962c6c - /caniuse-db/1.0.30000665: e84f4277935f295f546f8533cb0b410a8415b972 - /capture-stack-trace/1.0.0: 4a6fa07399c26bba47f0b2496b4d0fb408c5550d - /caseless/0.12.0: 1b681c21ff84033c826543090689420d187151dc - /caw/1.2.0: - dependencies: - get-proxy: 1.1.0 - is-obj: 1.0.1 - object-assign: 3.0.0 - tunnel-agent: 0.4.3 - resolution: ffb226fe7efc547288dc62ee3e97073c212d1034 - /center-align/0.1.3: - dependencies: - align-text: 0.1.4 - lazy-cache: 1.0.4 - resolution: aa0d32629b6ee972200411cbd4461c907bc2b7ad - /chai/3.5.0: - dependencies: - assertion-error: 1.0.2 - deep-eql: 0.1.3 - type-detect: 1.0.0 - resolution: 4d02637b067fe958bdbfdd3a40ec56fef7373247 - /chalk/0.4.0: - dependencies: - ansi-styles: 1.0.0 - has-color: 0.1.7 - strip-ansi: 0.1.1 - resolution: 5199a3ddcd0c1efe23bc08c1b027b06176e0c64f - /chalk/0.5.1: - dependencies: - ansi-styles: 1.1.0 - escape-string-regexp: 1.0.5 - has-ansi: 0.1.0 - strip-ansi: 0.3.0 - supports-color: 0.2.0 - resolution: 663b3a648b68b55d04690d49167aa837858f2174 - /chalk/1.1.3: - dependencies: - ansi-styles: 2.2.1 - escape-string-regexp: 1.0.5 - has-ansi: 2.0.0 - strip-ansi: 3.0.1 - supports-color: 2.0.0 - resolution: a8115c55e4a702fe4d150abd3872822a7e09fc98 - /chokidar/1.6.1: - dependencies: - anymatch: 1.3.0 - async-each: 1.0.1 - fsevents: 1.1.1 - glob-parent: 2.0.0 - inherits: 2.0.3 - is-binary-path: 1.0.1 - is-glob: 2.0.1 - path-is-absolute: 1.0.1 - readdirp: 2.1.0 - resolution: 2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2 - /ci-info/1.0.0: dc5285f2b4e251821683681c381c3388f46ec534 - /cipher-base/1.0.3: - dependencies: - inherits: 2.0.3 - resolution: eeabf194419ce900da3018c207d212f2a6df0a07 - /circular-json/0.3.1: be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d - /clap/1.1.3: - dependencies: - chalk: 1.1.3 - resolution: b3bd36e93dd4cbfb395a3c26896352445265c05b - /clean-css/4.0.12: - dependencies: - source-map: 0.5.6 - resolution: a02e61707f1840bd3338f54dbc9acbda4e772fa3 - /clean-stack/1.1.1: a1b3711122df162df7c7cb9b3c0470f28cb58adb - /clean-yaml-object/0.1.0: 63fb110dc2ce1a84dc21f6d9334876d010ae8b68 - /cli-boxes/1.0.0: 4fa917c3e59c94a004cd61f8ee509da651687143 - /cli-cursor/1.0.2: - dependencies: - restore-cursor: 1.0.1 - resolution: 64da3f7d56a54412e59794bd62dc35295e8f2987 - /cli-cursor/2.1.0: - dependencies: - restore-cursor: 2.0.0 - resolution: b35dac376479facc3e94747d41d0d0f5238ffcb5 - /cli-spinners/0.1.2: bb764d88e185fb9e1e6a2a1f19772318f605e31c - /cli-spinners/1.0.0: ef987ed3d48391ac3dab9180b406a742180d6e6a - /cli-truncate/0.2.1: - dependencies: - slice-ansi: 0.0.4 - string-width: 1.0.2 - resolution: 9f15cfbb0705005369216c626ac7d05ab90dd574 - /cli-width/2.1.0: b234ca209b29ef66fc518d9b98d5847b00edf00a - /cliui/2.1.0: - dependencies: - center-align: 0.1.3 - right-align: 0.1.3 - wordwrap: 0.0.2 - resolution: 4b475760ff80264c762c3a1719032e91c7fea0d1 - /cliui/3.2.0: - dependencies: - string-width: 1.0.2 - strip-ansi: 3.0.1 - wrap-ansi: 2.1.0 - resolution: 120601537a916d29940f934da3b48d585a39213d - /clone-stats/0.0.1: b88f94a82cf38b8791d58046ea4029ad88ca99d1 - /clone/0.2.0: c6126a90ad4f72dbf5acdb243cc37724fe93fc1f - /clone/1.0.2: 260b7a99ebb1edfe247538175f783243cb19d149 - /co-with-promise/4.6.0: - dependencies: - pinkie-promise: 1.0.0 - resolution: 413e7db6f5893a60b942cf492c4bec93db415ab7 - /co/3.1.0: 4ea54ea5a08938153185e15210c68d9092bc1b78 - /co/4.6.0: 6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184 - /coa/1.0.1: - dependencies: - q: 1.5.0 - resolution: 7f959346cfc8719e3f7233cd6852854a7c67d8a3 - /code-excerpt/2.1.0: - dependencies: - convert-to-spaces: 1.0.2 - resolution: 5dcc081e88f4a7e3b554e9e35d7ef232d47f8147 - /code-point-at/1.1.0: 0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77 - /color-convert/1.9.0: - dependencies: - color-name: 1.1.2 - resolution: 1accf97dd739b983bf994d56fec8f95853641b7a - /color-name/1.1.2: 5c8ab72b64bd2215d617ae9559ebb148475cf98d - /color-string/0.3.0: - dependencies: - color-name: 1.1.2 - resolution: 27d46fb67025c5c2fa25993bfbf579e47841b991 - /color/0.11.4: - dependencies: - clone: 1.0.2 - color-convert: 1.9.0 - color-string: 0.3.0 - resolution: 6d7b5c74fb65e841cd48792ad1ed5e07b904d764 - /colormin/1.1.2: - dependencies: - color: 0.11.4 - css-color-names: 0.0.4 - has: 1.0.1 - resolution: ea2f7420a72b96881a38aae59ec124a6f7298133 - /colors/1.1.2: 168a4701756b6a7f51a12ce0c97bfa28c084ed63 - /combine-source-map/0.7.2: - dependencies: - convert-source-map: 1.1.3 - inline-source-map: 0.6.2 - lodash.memoize: 3.0.4 - source-map: 0.5.6 - resolution: 0870312856b307a87cc4ac486f3a9a62aeccc09e - /combined-stream/1.0.5: - dependencies: - delayed-stream: 1.0.0 - resolution: 938370a57b4a51dea2c77c15d5c5fdf895164009 - /commander/2.8.1: - dependencies: - graceful-readlink: 1.0.1 - resolution: 06be367febfda0c330aa1e2a072d3dc9762425d4 - /commander/2.9.0: - dependencies: - graceful-readlink: 1.0.1 - resolution: 9c99094176e12240cb22d6c5146098400fe0f7d4 - /common-path-prefix/1.0.0: cd52f6f0712e0baab97d6f9732874f22f47752c0 - /commondir/1.0.1: ddd800da0c66127393cca5950ea968a3aaf1253b - /concat-map/0.0.1: d8a96bd77fd68df7793a73036a3ba0d5405d477b - /concat-stream/1.5.2: - dependencies: - inherits: 2.0.3 - readable-stream: 2.0.6 - typedarray: 0.0.6 - resolution: 708978624d856af41a5a741defdd261da752c266 - /concat-stream/1.6.0: - dependencies: - inherits: 2.0.3 - readable-stream: 2.2.9 - typedarray: 0.0.6 - resolution: 0aac662fd52be78964d5532f694784e70110acf7 - /configstore/2.1.0: - dependencies: - dot-prop: 3.0.0 - graceful-fs: 4.1.11 - mkdirp: 0.5.1 - object-assign: 4.1.1 - os-tmpdir: 1.0.2 - osenv: 0.1.4 - uuid: 2.0.3 - write-file-atomic: 1.3.4 - xdg-basedir: 2.0.0 - resolution: 737a3a7036e9886102aa6099e47bb33ab1aba1a1 - /configstore/3.0.0: - dependencies: - dot-prop: 4.1.1 - graceful-fs: 4.1.11 - mkdirp: 0.5.1 - unique-string: 1.0.0 - write-file-atomic: 1.3.4 - xdg-basedir: 3.0.0 - resolution: e1b8669c1803ccc50b545e92f8e6e79aa80e0196 - /console-browserify/1.1.0: - dependencies: - date-now: 0.1.4 - resolution: f0241c45730a9fc6323b206dbf38edc741d0bb10 - /console-control-strings/1.1.0: 3d7cf4464db6446ea644bf4b39507f9851008e8e - /console-stream/0.1.1: a095fe07b20465955f2fafd28b5d72bccd949d44 - /constants-browserify/1.0.0: c20b96d8c617748aaf1c16021760cd27fcb8cb75 - /contains-path/0.1.0: fe8cf184ff6670b6baef01a9d4861a5cbec4120a - /content-type/1.0.2: b7d113aee7a8dd27bd21133c4dc2529df1721eed - /convert-source-map/1.1.3: 4829c877e9fe49b3161f3bf3673888e204699860 - /convert-source-map/1.5.0: 9acd70851c6d5dfdd93d9282e5edf94a03ff46b5 - /convert-to-spaces/1.0.2: 7e3e48bbe6d997b1417ddca2868204b4d3d85715 - /core-assert/0.2.1: - dependencies: - buf-compare: 1.0.1 - is-error: 2.2.1 - resolution: f85e2cf9bfed28f773cc8b3fa5c5b69bdc02fe3f - /core-js/2.4.1: 4de911e667b0eae9124e34254b53aea6fc618d3e - /core-util-is/1.0.2: b5fd54220aa2bc5ab57aab7140c940754503c1a7 - /cosmiconfig/1.1.0: - dependencies: - graceful-fs: 4.1.11 - js-yaml: 3.8.3 - minimist: 1.2.0 - object-assign: 4.1.1 - os-homedir: 1.0.2 - parse-json: 2.2.0 - pinkie-promise: 2.0.1 - require-from-string: 1.2.1 - resolution: 0dea0f9804efdfb929fbb1b188e25553ea053d37 - /cosmiconfig/2.1.3: - dependencies: - is-directory: 0.3.1 - js-yaml: 3.8.3 - minimist: 1.2.0 - object-assign: 4.1.1 - os-homedir: 1.0.2 - parse-json: 2.2.0 - require-from-string: 1.2.1 - resolution: 952771eb0dddc1cb3fa2f6fbe51a522e93b3ee0a - /create-ecdh/4.0.0: - dependencies: - bn.js: 4.11.6 - elliptic: 6.4.0 - resolution: 888c723596cdf7612f6498233eebd7a35301737d - /create-error-class/3.0.2: - dependencies: - capture-stack-trace: 1.0.0 - resolution: 06be7abef947a3f14a30fd610671d401bca8b7b6 - /create-hash/1.1.2: - dependencies: - cipher-base: 1.0.3 - inherits: 2.0.3 - ripemd160: 1.0.1 - sha.js: 2.4.8 - resolution: 51210062d7bb7479f6c65bb41a92208b1d61abad - /create-hmac/1.1.4: - dependencies: - create-hash: 1.1.2 - inherits: 2.0.3 - resolution: d3fb4ba253eb8b3f56e39ea2fbcb8af747bd3170 - /cross-spawn-async/2.2.5: - dependencies: - lru-cache: 4.0.2 - which: 1.2.14 - resolution: 845ff0c0834a3ded9d160daca6d390906bb288cc - /cross-spawn/3.0.1: - dependencies: - lru-cache: 4.0.2 - which: 1.2.14 - resolution: 1256037ecb9f0c5f79e3d6ef135e30770184b982 - /cross-spawn/4.0.2: - dependencies: - lru-cache: 4.0.2 - which: 1.2.14 - resolution: 7b9247621c23adfdd3856004a823cbe397424d41 - /cross-spawn/5.1.0: - dependencies: - lru-cache: 4.0.2 - shebang-command: 1.2.0 - which: 1.2.14 - resolution: e8bd0efee58fcff6f8f94510a0a554bbfa235449 - /cryptiles/2.0.5: - dependencies: - boom: 2.10.1 - resolution: 3bdfecdc608147c1c67202fa291e7dca59eaa3b8 - /crypto-browserify/3.11.0: - dependencies: - browserify-cipher: 1.0.0 - browserify-sign: 4.0.4 - create-ecdh: 4.0.0 - create-hash: 1.1.2 - create-hmac: 1.1.4 - diffie-hellman: 5.0.2 - inherits: 2.0.3 - pbkdf2: 3.0.9 - public-encrypt: 4.0.0 - randombytes: 2.0.3 - resolution: 3652a0906ab9b2a7e0c3ce66a408e957a2485522 - /crypto-random-string/1.0.0: a230f64f568310e1498009940790ec99545bca7e - /css-color-names/0.0.4: 808adc2e79cf84738069b646cb20ec27beb629e0 - /css/2.2.1: - dependencies: - inherits: 2.0.3 - source-map: 0.1.43 - source-map-resolve: 0.3.1 - urix: 0.1.0 - resolution: 73a4c81de85db664d4ee674f7d47085e3b2d55dc - /cssnano/3.10.0: - dependencies: - autoprefixer: 6.7.7 - decamelize: 1.2.0 - defined: 1.0.0 - has: 1.0.1 - object-assign: 4.1.1 - postcss: 5.2.17 - postcss-calc: 5.3.1 - postcss-colormin: 2.2.2 - postcss-convert-values: 2.6.1 - postcss-discard-comments: 2.0.4 - postcss-discard-duplicates: 2.1.0 - postcss-discard-empty: 2.1.0 - postcss-discard-overridden: 0.1.1 - postcss-discard-unused: 2.2.3 - postcss-filter-plugins: 2.0.2 - postcss-merge-idents: 2.1.7 - postcss-merge-longhand: 2.0.2 - postcss-merge-rules: 2.1.2 - postcss-minify-font-values: 1.0.5 - postcss-minify-gradients: 1.0.5 - postcss-minify-params: 1.2.2 - postcss-minify-selectors: 2.1.1 - postcss-normalize-charset: 1.1.1 - postcss-normalize-url: 3.0.8 - postcss-ordered-values: 2.2.3 - postcss-reduce-idents: 2.4.0 - postcss-reduce-initial: 1.0.1 - postcss-reduce-transforms: 1.0.4 - postcss-svgo: 2.1.6 - postcss-unique-selectors: 2.0.2 - postcss-value-parser: 3.3.0 - postcss-zindex: 2.2.0 - resolution: 4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38 - /csso/2.0.0: - dependencies: - clap: 1.1.3 - source-map: 0.5.6 - resolution: 178b43a44621221c27756086f531e02f42900ee8 - /csso/2.3.2: - dependencies: - clap: 1.1.3 - source-map: 0.5.6 - resolution: ddd52c587033f49e94b71fc55569f252e8ff5f85 - /currently-unhandled/0.4.1: - dependencies: - array-find-index: 1.0.2 - resolution: 988df33feab191ef799a61369dd76c17adf957ea - /d/1.0.0: - dependencies: - es5-ext: 0.10.15 - resolution: 754bb5bfe55451da69a58b94d45f4c5b0462d58f - /dashdash/1.14.1: - dependencies: - assert-plus: 1.0.0 - resolution: 853cfa0f7cbe2fed5de20326b8dd581035f6e2f0 - /date-fns/1.28.4: 7938aec34ba31fc8bd134d2344bc2e0bbfd95165 - /date-now/0.1.4: eaf439fd4d4848ad74e5cc7dbef200672b9e345b - /date-time/0.1.1: ed2f6d93d9790ce2fd66d5b5ff3edd5bbcbf3b07 - /dateformat/2.0.0: 2743e3abb5c3fc2462e527dca445e04e9f4dee17 - /debug-fabulous/0.1.0: - dependencies: - debug: 2.6.6 - object-assign: 4.1.0 - resolution: ad0ea07a5d519324fb55842a8f34ee59c7f8ff6c - /debug/2.2.0: - dependencies: - ms: 0.7.1 - resolution: f87057e995b1a1f6ae6a4960664137bc56f039da - /debug/2.6.6: - dependencies: - ms: 0.7.3 - resolution: a9fa6fbe9ca43cf1e79f73b75c0189cbb7d6db5a - /decamelize/1.2.0: f6534d15148269b20352e7bee26f501f9a191290 - /decompress-tar/3.1.0: - dependencies: - is-tar: 1.0.0 - object-assign: 2.1.1 - strip-dirs: 1.1.1 - tar-stream: 1.5.2 - through2: 0.6.5 - vinyl: 0.4.6 - resolution: 217c789f9b94450efaadc5c5e537978fc333c466 - /decompress-tarbz2/3.1.0: - dependencies: - is-bzip2: 1.0.0 - object-assign: 2.1.1 - seek-bzip: 1.0.5 - strip-dirs: 1.1.1 - tar-stream: 1.5.2 - through2: 0.6.5 - vinyl: 0.4.6 - resolution: 8b23935681355f9f189d87256a0f8bdd96d9666d - /decompress-targz/3.1.0: - dependencies: - is-gzip: 1.0.0 - object-assign: 2.1.1 - strip-dirs: 1.1.1 - tar-stream: 1.5.2 - through2: 0.6.5 - vinyl: 0.4.6 - resolution: b2c13df98166268991b715d6447f642e9696f5a0 - /decompress-unzip/3.4.0: - dependencies: - is-zip: 1.0.0 - read-all-stream: 3.1.0 - stat-mode: 0.2.2 - strip-dirs: 1.1.1 - through2: 2.0.3 - vinyl: 1.2.0 - yauzl: 2.8.0 - resolution: 61475b4152066bbe3fee12f9d629d15fe6478eeb - /decompress/3.0.0: - dependencies: - buffer-to-vinyl: 1.1.0 - concat-stream: 1.6.0 - decompress-tar: 3.1.0 - decompress-tarbz2: 3.1.0 - decompress-targz: 3.1.0 - decompress-unzip: 3.4.0 - stream-combiner2: 1.1.1 - vinyl-assign: 1.2.1 - vinyl-fs: 2.4.4 - resolution: af1dd50d06e3bfc432461d37de11b38c0d991bed - /deep-assign/1.0.0: - dependencies: - is-obj: 1.0.1 - resolution: b092743be8427dc621ea0067cdec7e70dd19f37b - /deep-eql/0.1.3: - dependencies: - type-detect: 0.1.1 - resolution: ef558acab8de25206cd713906d74e56930eb69f2 - /deep-equal/1.0.1: f5d260292b660e084eff4cdbc9f08ad3247448b5 - /deep-extend/0.4.1: efe4113d08085f4e6f9687759810f807469e2253 - /deep-is/0.1.3: b369d6fb5dbc13eecf524f91b070feedc357cf34 - /deep-strict-equal/0.2.0: - dependencies: - core-assert: 0.2.1 - resolution: 4a078147a8ab57f6a0d4f5547243cd22f44eb4e4 - /defaults/1.0.3: - dependencies: - clone: 1.0.2 - resolution: c656051e9817d9ff08ed881477f3fe4019f3ef7d - /defined/1.0.0: c98d9bcef75674188e110969151199e39b1fa693 - /del/2.2.2: - dependencies: - globby: 5.0.0 - is-path-cwd: 1.0.0 - is-path-in-cwd: 1.0.0 - object-assign: 4.1.1 - pify: 2.3.0 - pinkie-promise: 2.0.1 - rimraf: 2.6.1 - resolution: c12c981d067846c84bcaf862cff930d907ffd1a8 - /delayed-stream/1.0.0: df3ae199acadfb7d440aaae0b29e2272b24ec619 - /delegates/1.0.0: 84c6e159b81904fdca59a0ef44cd870d31250f9a - /depd/1.1.0: e1bd82c6aab6ced965b97b88b17ed3e528ca18c3 - /deprecated/0.0.1: f9c9af5464afa1e7a971458a8bdef2aa94d5bb19 - /deps-sort/2.0.0: - dependencies: - JSONStream: 1.3.1 - shasum: 1.0.2 - subarg: 1.0.0 - through2: 2.0.3 - resolution: 091724902e84658260eb910748cccd1af6e21fb5 - /des.js/1.0.0: - dependencies: - inherits: 2.0.3 - minimalistic-assert: 1.0.0 - resolution: c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc - /detect-file/0.1.0: - dependencies: - fs-exists-sync: 0.1.0 - resolution: 4935dedfd9488648e006b0129566e9386711ea63 - /detect-indent/4.0.0: - dependencies: - repeating: 2.0.1 - resolution: f76d064352cdf43a1cb6ce619c4ee3a9475de208 - /detect-newline/2.1.0: f41f1c10be4b00e87b5f13da680759f2c5bfd3e2 - /detective/4.5.0: - dependencies: - acorn: 4.0.11 - defined: 1.0.0 - resolution: 6e5a8c6b26e6c7a254b1c6b6d7490d98ec91edd1 - /diff/3.2.0: c9ce393a4b7cbd0b058a725c93df299027868ff9 - /diffie-hellman/5.0.2: - dependencies: - bn.js: 4.11.6 - miller-rabin: 4.0.0 - randombytes: 2.0.3 - resolution: b5835739270cfe26acf632099fded2a07f209e5e - /doctrine/1.5.0: - dependencies: - esutils: 2.0.2 - isarray: 1.0.0 - resolution: 379dce730f6166f76cefa4e6707a159b02c5a6fa - /doctrine/2.0.0: - dependencies: - esutils: 2.0.2 - isarray: 1.0.0 - resolution: c73d8d2909d22291e1a007a395804da8b665fe63 - /dom-urls/1.1.0: - dependencies: - urijs: 1.18.10 - resolution: 001ddf81628cd1e706125c7176f53ccec55d918e - /domain-browser/1.1.7: 867aa4b093faa05f1de08c06f4d7b21fdf8698bc - /dot-prop/3.0.0: - dependencies: - is-obj: 1.0.1 - resolution: 1b708af094a49c9a0e7dbcad790aba539dac1177 - /dot-prop/4.1.1: - dependencies: - is-obj: 1.0.1 - resolution: a8493f0b7b5eeec82525b5c7587fa7de7ca859c1 - /download/4.4.3: - dependencies: - caw: 1.2.0 - concat-stream: 1.6.0 - each-async: 1.1.1 - filenamify: 1.2.1 - got: 5.7.1 - gulp-decompress: 1.2.0 - gulp-rename: 1.2.2 - is-url: 1.2.2 - object-assign: 4.1.1 - read-all-stream: 3.1.0 - readable-stream: 2.2.9 - stream-combiner2: 1.1.1 - vinyl: 1.2.0 - vinyl-fs: 2.4.4 - ware: 1.3.0 - resolution: aa55fdad392d95d4b68e8c2be03e0c2aa21ba9ac - /duplexer/0.1.1: ace6ff808c1ce66b57d1ebf97977acb02334cfc1 - /duplexer2/0.0.2: - dependencies: - readable-stream: 1.1.14 - resolution: c614dcf67e2fb14995a91711e5a617e8a60a31db - /duplexer2/0.1.4: - dependencies: - readable-stream: 2.2.9 - resolution: 8b12dab878c0d69e3e7891051662a32fc6bddcc1 - /duplexer3/0.1.4: ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2 - /duplexify/3.5.0: - dependencies: - end-of-stream: 1.0.0 - inherits: 2.0.3 - readable-stream: 2.2.9 - stream-shift: 1.0.0 - resolution: 1aa773002e1578457e9d9d4a50b0ccaaebcbd604 - /each-async/1.1.1: - dependencies: - onetime: 1.1.0 - set-immediate-shim: 1.0.1 - resolution: dee5229bdf0ab6ba2012a395e1b869abf8813473 - /ecc-jsbn/0.1.1: - dependencies: - jsbn: 0.1.1 - resolution: 0fc73a9ed5f0d53c38193398523ef7e543777505 - /ee-first/1.1.1: 590c61156b0ae2f4f0255732a158b266bc56b21d - /electron-to-chromium/1.3.9: db1cba2a26aebcca2f7f5b8b034554468609157d - /elegant-spinner/1.0.1: db043521c95d7e303fd8f345bedc3349cfb0729e - /elliptic/6.4.0: - dependencies: - bn.js: 4.11.6 - brorand: 1.1.0 - hash.js: 1.0.3 - hmac-drbg: 1.0.1 - inherits: 2.0.3 - minimalistic-assert: 1.0.0 - minimalistic-crypto-utils: 1.0.1 - resolution: cac9af8762c85836187003c8dfe193e5e2eae5df - /empower-core/0.6.1: - dependencies: - call-signature: 0.0.2 - core-js: 2.4.1 - resolution: 6c187f502fcef7554d57933396aac655483772b1 - /end-of-stream/0.1.5: - dependencies: - once: 1.3.3 - resolution: 8e177206c3c80837d85632e8b9359dfe8b2f6eaf - /end-of-stream/1.0.0: - dependencies: - once: 1.3.3 - resolution: d4596e702734a93e40e9af864319eabd99ff2f0e - /end-of-stream/1.4.0: - dependencies: - once: 1.4.0 - resolution: 7a90d833efda6cfa6eac0f4949dbb0fad3a63206 - /enhance-visitors/1.0.0: - dependencies: - lodash: 4.17.4 - resolution: aa945d05da465672a1ebd38fee2ed3da8518e95a - /equal-length/1.0.1: 21ca112d48ab24b4e1e7ffc0e5339d31fdfc274c - /error-ex/1.3.1: - dependencies: - is-arrayish: 0.2.1 - resolution: f855a86ce61adc4e8621c3cda21e7a7612c3a8dc - /es3ify/0.1.4: - dependencies: - esprima-fb: 3001.1.0-dev-harmony-fb - jstransform: 3.0.0 - through: 2.3.8 - resolution: ad9fa5df1ae34f3f31e1211b5818b2d51078dfd1 - /es5-ext/0.10.15: - dependencies: - es6-iterator: 2.0.1 - es6-symbol: 3.1.1 - resolution: c330a5934c1ee21284a7c081a86e5fd937c91ea6 - /es6-iterator/2.0.1: - dependencies: - d: 1.0.0 - es5-ext: 0.10.15 - es6-symbol: 3.1.1 - resolution: 8e319c9f0453bf575d374940a655920e59ca5512 - /es6-map/0.1.5: - dependencies: - d: 1.0.0 - es5-ext: 0.10.15 - es6-iterator: 2.0.1 - es6-set: 0.1.5 - es6-symbol: 3.1.1 - event-emitter: 0.3.5 - resolution: 9136e0503dcc06a301690f0bb14ff4e364e949f0 - /es6-promise/4.1.0: dda03ca8f9f89bc597e689842929de7ba8cebdf0 - /es6-set/0.1.5: - dependencies: - d: 1.0.0 - es5-ext: 0.10.15 - es6-iterator: 2.0.1 - es6-symbol: 3.1.1 - event-emitter: 0.3.5 - resolution: d2b3ec5d4d800ced818db538d28974db0a73ccb1 - /es6-symbol/3.1.1: - dependencies: - d: 1.0.0 - es5-ext: 0.10.15 - resolution: bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77 - /es6-weak-map/2.0.2: - dependencies: - d: 1.0.0 - es5-ext: 0.10.15 - es6-iterator: 2.0.1 - es6-symbol: 3.1.1 - resolution: 5e3ab32251ffd1538a1f8e5ffa1357772f92d96f - /escape-string-regexp/1.0.5: 1b61c0562190a8dff6ae3bb2cf0200ca130b86d4 - /escodegen/1.8.1: - dependencies: - esprima: 2.7.3 - estraverse: 1.9.3 - esutils: 2.0.2 - optionator: 0.8.2 - source-map: 0.2.0 - resolution: 5a5b53af4693110bebb0867aa3430dd3b70a1018 - /escope/3.6.0: - dependencies: - es6-map: 0.1.5 - es6-weak-map: 2.0.2 - esrecurse: 4.1.0 - estraverse: 4.2.0 - resolution: e01975e812781a163a6dadfdd80398dc64c889c3 - /eslint-config-xo/0.18.1: f3bc873b33b2c82513d881eacb2ee3428407ad33 - /eslint-formatter-pretty/1.1.0: - dependencies: - ansi-escapes: 1.4.0 - chalk: 1.1.3 - log-symbols: 1.0.2 - plur: 2.1.2 - string-width: 2.0.0 - resolution: ab4d06da02fed8c13ae9f0dc540a433ef7ed6f5e - /eslint-import-resolver-node/0.2.3: - dependencies: - debug: 2.6.6 - object-assign: 4.1.1 - resolve: 1.3.3 - resolution: 5add8106e8c928db2cba232bcd9efa846e3da16c - /eslint-module-utils/2.0.0: - dependencies: - debug: 2.2.0 - pkg-dir: 1.0.0 - resolution: a6f8c21d901358759cdc35dbac1982ae1ee58bce - /eslint-plugin-ava/4.2.0: - dependencies: - arrify: 1.0.1 - deep-strict-equal: 0.2.0 - enhance-visitors: 1.0.0 - espree: 3.4.3 - espurify: 1.7.0 - multimatch: 2.1.0 - pkg-up: 1.0.0 - req-all: 1.0.0 - resolution: 12e4664659c1fae7895fa3f346c313ceb8907c77 - /eslint-plugin-import/2.2.0: - dependencies: - builtin-modules: 1.1.1 - contains-path: 0.1.0 - debug: 2.6.6 - doctrine: 1.5.0 - eslint-import-resolver-node: 0.2.3 - eslint-module-utils: 2.0.0 - has: 1.0.1 - lodash.cond: 4.5.2 - minimatch: 3.0.3 - pkg-up: 1.0.0 - resolution: 72ba306fad305d67c4816348a4699a4229ac8b4e - /eslint-plugin-no-use-extend-native/0.3.12: - dependencies: - is-get-set-prop: 1.0.0 - is-js-type: 2.0.0 - is-obj-prop: 1.0.0 - is-proto-prop: 1.0.0 - resolution: 3ad9a00c2df23b5d7f7f6be91550985a4ab701ea - /eslint-plugin-promise/3.5.0: 78fbb6ffe047201627569e85a6c5373af2a68fca - /eslint-plugin-unicorn/2.1.1: - dependencies: - lodash.camelcase: 4.3.0 - lodash.kebabcase: 4.1.1 - lodash.snakecase: 4.1.1 - lodash.upperfirst: 4.3.1 - req-all: 1.0.0 - resolution: 3e9294366799b715e16a6df89159495b68930cb3 - /eslint/3.19.0: - dependencies: - babel-code-frame: 6.22.0 - chalk: 1.1.3 - concat-stream: 1.6.0 - debug: 2.6.6 - doctrine: 2.0.0 - escope: 3.6.0 - espree: 3.4.3 - esquery: 1.0.0 - estraverse: 4.2.0 - esutils: 2.0.2 - file-entry-cache: 2.0.0 - glob: 7.1.1 - globals: 9.17.0 - ignore: 3.3.0 - imurmurhash: 0.1.4 - inquirer: 0.12.0 - is-my-json-valid: 2.16.0 - is-resolvable: 1.0.0 - js-yaml: 3.8.3 - json-stable-stringify: 1.0.1 - levn: 0.3.0 - lodash: 4.17.4 - mkdirp: 0.5.1 - natural-compare: 1.4.0 - optionator: 0.8.2 - path-is-inside: 1.0.2 - pluralize: 1.2.1 - progress: 1.1.8 - require-uncached: 1.0.3 - shelljs: 0.7.7 - strip-bom: 3.0.0 - strip-json-comments: 2.0.1 - table: 3.8.3 - text-table: 0.2.0 - user-home: 2.0.0 - resolution: c8fc6201c7f40dd08941b87c085767386a679acc - /esmangle-evaluator/1.0.1: 620d866ef4861b3311f75766d52a8572bb3c6336 - /espower-location-detector/1.0.0: - dependencies: - is-url: 1.2.2 - path-is-absolute: 1.0.1 - source-map: 0.5.6 - xtend: 4.0.1 - resolution: a17b7ecc59d30e179e2bef73fb4137704cb331b5 - /espree/3.4.3: - dependencies: - acorn: 5.0.3 - acorn-jsx: 3.0.1 - resolution: 2910b5ccd49ce893c2ffffaab4fd8b3a31b82374 - /esprima-fb/15001.1001.0-dev-harmony-fb: 43beb57ec26e8cf237d3dd8b33e42533577f2659 - /esprima-fb/3001.1.0-dev-harmony-fb: b77d37abcd38ea0b77426bb8bc2922ce6b426411 - /esprima/2.7.3: 96e3b70d5779f6ad49cd032673d1c312767ba581 - /esprima/3.1.3: fdca51cee6133895e3c88d535ce49dbff62a4633 - /espurify/1.7.0: - dependencies: - core-js: 2.4.1 - resolution: 1c5cf6cbccc32e6f639380bd4f991fab9ba9d226 - /esquery/1.0.0: - dependencies: - estraverse: 4.2.0 - resolution: cfba8b57d7fba93f17298a8a006a04cda13d80fa - /esrecurse/4.1.0: - dependencies: - estraverse: 4.1.1 - object-assign: 4.1.1 - resolution: 4713b6536adf7f2ac4f327d559e7756bff648220 - /estraverse/1.9.3: af67f2dc922582415950926091a4005d29c9bb44 - /estraverse/4.1.1: f6caca728933a850ef90661d0e17982ba47111a2 - /estraverse/4.2.0: 0dee3fed31fcd469618ce7342099fc1afa0bdb13 - /esutils/2.0.2: 0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b - /event-emitter/0.3.5: - dependencies: - d: 1.0.0 - es5-ext: 0.10.15 - resolution: df8c69eef1647923c7157b9ce83840610b02cc39 - /event-stream/3.3.4: - dependencies: - duplexer: 0.1.1 - from: 0.1.7 - map-stream: 0.1.0 - pause-stream: 0.0.11 - split: 0.3.3 - stream-combiner: 0.0.4 - through: 2.3.8 - resolution: 4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571 - /events/1.1.1: 9ebdb7635ad099c70dcc4c2a1f5004288e8bd924 - /evp_bytestokey/1.0.0: - dependencies: - create-hash: 1.1.2 - resolution: 497b66ad9fef65cd7c08a6180824ba1476b66e53 - /exec-buffer/3.1.0: - dependencies: - execa: 0.5.1 - p-finally: 1.0.0 - pify: 2.3.0 - rimraf: 2.6.1 - tempfile: 1.1.1 - resolution: 851b46d062fca9bcbc6ff8781693e28e8da80402 - /exec-series/1.0.3: - dependencies: - async-each-series: 1.1.0 - object-assign: 4.1.1 - resolution: 6d257a9beac482a872c7783bc8615839fc77143a - /execa/0.4.0: - dependencies: - cross-spawn-async: 2.2.5 - is-stream: 1.1.0 - npm-run-path: 1.0.0 - object-assign: 4.1.1 - path-key: 1.0.0 - strip-eof: 1.0.0 - resolution: 4eb6467a36a095fabb2970ff9d5e3fb7bce6ebc3 - /execa/0.5.1: - dependencies: - cross-spawn: 4.0.2 - get-stream: 2.3.1 - is-stream: 1.1.0 - npm-run-path: 2.0.2 - p-finally: 1.0.0 - signal-exit: 3.0.2 - strip-eof: 1.0.0 - resolution: de3fb85cb8d6e91c85bcbceb164581785cb57b36 - /execa/0.6.3: - dependencies: - cross-spawn: 5.1.0 - get-stream: 3.0.0 - is-stream: 1.1.0 - npm-run-path: 2.0.2 - p-finally: 1.0.0 - signal-exit: 3.0.2 - strip-eof: 1.0.0 - resolution: 57b69a594f081759c69e5370f0d17b9cb11658fe - /executable/1.1.0: - dependencies: - meow: 3.7.0 - resolution: 877980e9112f3391066da37265de7ad8434ab4d9 - /exit-hook/1.1.1: f05ca233b48c05d54fff07765df8507e95c02ff8 - /expand-brackets/0.1.5: - dependencies: - is-posix-bracket: 0.1.1 - resolution: df07284e342a807cd733ac5af72411e581d1177b - /expand-range/1.8.2: - dependencies: - fill-range: 2.2.3 - resolution: a299effd335fe2721ebae8e257ec79644fc85337 - /expand-tilde/1.2.2: - dependencies: - os-homedir: 1.0.2 - resolution: 0b81eba897e5a3d31d1c3d102f8f01441e559449 - /extend-shallow/2.0.1: - dependencies: - is-extendable: 0.1.1 - resolution: 51af7d614ad9a9f610ea1bafbb989d6b1c56890f - /extend/1.3.0: d1516fb0ff5624d2ebf9123ea1dac5a1994004f8 - /extend/3.0.1: a755ea7bc1adfcc5a31ce7e762dbaadc5e636444 - /extglob/0.3.2: - dependencies: - is-extglob: 1.0.0 - resolution: 2e18ff3d2f49ab2765cec9023f011daa8d8349a1 - /extsprintf/1.0.2: e1080e0658e300b06294990cc70e1502235fd550 - /falafel/1.2.0: - dependencies: - acorn: 1.2.2 - foreach: 2.0.5 - isarray: 0.0.1 - object-keys: 1.0.11 - resolution: c18d24ef5091174a497f318cd24b026a25cddab4 - /fancy-log/1.3.0: - dependencies: - chalk: 1.1.3 - time-stamp: 1.0.1 - resolution: 45be17d02bb9917d60ccffd4995c999e6c8c9948 - /fast-levenshtein/2.0.6: 3d8a5c66883a16a30ca8643e851f19baa7797917 - /faye-websocket/0.7.3: - dependencies: - websocket-driver: 0.6.5 - resolution: cc4074c7f4a4dfd03af54dd65c354b135132ce11 - /fd-slicer/1.0.1: - dependencies: - pend: 1.2.0 - resolution: 8b5bcbd9ec327c5041bf9ab023fd6750f1177e65 - /figures/1.7.0: - dependencies: - escape-string-regexp: 1.0.5 - object-assign: 4.1.1 - resolution: cbe1e3affcf1cd44b80cadfed28dc793a9701d2e - /figures/2.0.0: - dependencies: - escape-string-regexp: 1.0.5 - resolution: 3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962 - /file-entry-cache/2.0.0: - dependencies: - flat-cache: 1.2.2 - object-assign: 4.1.1 - resolution: c392990c3e684783d838b8c84a45d8a048458361 - /file-type/3.9.0: 257a078384d1db8087bc449d107d52a52672b9e9 - /filename-regex/2.0.1: c1c4b9bee3e09725ddb106b75c1e301fe2f18b26 - /filename-reserved-regex/1.0.0: e61cf805f0de1c984567d0386dc5df50ee5af7e4 - /filenamify/1.2.1: - dependencies: - filename-reserved-regex: 1.0.0 - strip-outer: 1.0.0 - trim-repeated: 1.0.0 - resolution: a9f2ffd11c503bed300015029272378f1f1365a5 - /filesize/3.5.9: 9e3dd8a9b124f5b2f1fb2ee9cd13a86c707bb222 - /fill-range/2.2.3: - dependencies: - is-number: 2.1.0 - isobject: 2.1.0 - randomatic: 1.1.6 - repeat-element: 1.1.2 - repeat-string: 1.6.1 - resolution: 50b77dfd7e469bc7492470963699fe7a8485a723 - /filled-array/1.1.0: c3c4f6c663b923459a9aa29912d2d031f1507f84 - /find-cache-dir/0.1.1: - dependencies: - commondir: 1.0.1 - mkdirp: 0.5.1 - pkg-dir: 1.0.0 - resolution: c8defae57c8a52a8a784f9e31c57c742e993a0b9 - /find-index/0.1.1: 675d358b2ca3892d795a1ab47232f8b6e2e0dde4 - /find-parent-dir/0.3.0: 33c44b429ab2b2f0646299c5f9f718f376ff8d54 - /find-up/1.1.2: - dependencies: - path-exists: 2.1.0 - pinkie-promise: 2.0.1 - resolution: 6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f - /find-up/2.1.0: - dependencies: - locate-path: 2.0.0 - resolution: 45d1b7e506c717ddd482775a2b77920a3c0c57a7 - /find-versions/1.2.1: - dependencies: - array-uniq: 1.0.3 - get-stdin: 4.0.1 - meow: 3.7.0 - semver-regex: 1.0.0 - resolution: cbde9f12e38575a0af1be1b9a2c5d5fd8f186b62 - /findup-sync/0.4.3: - dependencies: - detect-file: 0.1.0 - is-glob: 2.0.1 - micromatch: 2.3.11 - resolve-dir: 0.1.1 - resolution: 40043929e7bc60adf0b7f4827c4c6e75a0deca12 - /fined/1.0.2: - dependencies: - expand-tilde: 1.2.2 - lodash.assignwith: 4.2.0 - lodash.isempty: 4.4.0 - lodash.isplainobject: 4.0.6 - lodash.isstring: 4.0.1 - lodash.pick: 4.4.0 - parse-filepath: 1.0.1 - resolution: 5b28424b760d7598960b7ef8480dff8ad3660e97 - /first-chunk-stream/1.0.0: 59bfb50cd905f60d7c394cd3d9acaab4e6ad934e - /flagged-respawn/0.3.2: ff191eddcd7088a675b2610fffc976be9b8074b5 - /flat-cache/1.2.2: - dependencies: - circular-json: 0.3.1 - del: 2.2.2 - graceful-fs: 4.1.11 - write: 0.2.1 - resolution: fa86714e72c21db88601761ecf2f555d1abc6b96 - /flatten/1.0.2: dae46a9d78fbe25292258cc1e780a41d95c03782 - /fn-name/2.0.1: 5214d7537a4d06a4a301c0cc262feb84188002e7 - /for-in/1.0.2: 81068d295a8142ec0ac726c6e2200c30fb6d5e80 - /for-own/0.1.5: - dependencies: - for-in: 1.0.2 - resolution: 5265c681a4f294dabbf17c9509b6763aa84510ce - /foreach/2.0.5: 0bee005018aeb260d0a3af3ae658dd0136ec1b99 - /forever-agent/0.6.1: fbc71f0c41adeb37f96c577ad1ed42d8fdacca91 - /form-data/2.1.4: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.5 - mime-types: 2.1.15 - resolution: 33c183acf193276ecaa98143a69e94bfee1750d1 - /from/0.1.7: 83c60afc58b9c56997007ed1a768b3ab303a44fe - /fs-exists-sync/0.1.0: 982d6893af918e72d08dec9e8673ff2b5a8d6add - /fs.realpath/1.0.0: 1504ad2523158caa40db4a2787cb01411994ea4f - /fsevents/1.1.1: - dependencies: - nan: 2.6.2 - resolution: f19fd28f43eeaf761680e519a203c4d0b3d31aff - /fstream/1.0.11: - dependencies: - graceful-fs: 4.1.11 - inherits: 2.0.3 - mkdirp: 0.5.1 - rimraf: 2.6.1 - resolution: 5c1fb1f117477114f0632a0eb4b71b3cb0fd3171 - /function-bind/1.1.0: 16176714c801798e4e8f2cf7f7529467bb4a5771 - /gauge/2.7.4: - dependencies: - aproba: 1.1.1 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - object-assign: 4.1.1 - signal-exit: 3.0.2 - string-width: 1.0.2 - strip-ansi: 3.0.1 - wide-align: 1.1.0 - resolution: 2c03405c7538c39d7eb37b317022e325fb018bf7 - /gaze/0.5.2: - dependencies: - globule: 0.1.0 - resolution: 40b709537d24d1d45767db5a908689dfe69ac44f - /gaze/1.1.2: - dependencies: - globule: 1.1.0 - resolution: 847224677adb8870d679257ed3388fdb61e40105 - /generate-function/2.0.0: 6858fe7c0969b7d4e9093337647ac79f60dfbe74 - /generate-object-property/1.2.0: - dependencies: - is-property: 1.0.2 - resolution: 9c0e1c40308ce804f4783618b937fa88f99d50d0 - /get-caller-file/1.0.2: f702e63127e7e231c160a80c1554acb70d5047e5 - /get-port/2.1.0: - dependencies: - pinkie-promise: 2.0.1 - resolution: 8783f9dcebd1eea495a334e1a6a251e78887ab1a - /get-proxy/1.1.0: - dependencies: - rc: 1.2.1 - resolution: 894854491bc591b0f147d7ae570f5c678b7256eb - /get-set-props/0.1.0: 998475c178445686d0b32246da5df8dbcfbe8ea3 - /get-stdin/4.0.1: b968c6b0a04384324902e8bf1a5df32579a450fe - /get-stdin/5.0.1: 122e161591e21ff4c52530305693f20e6393a398 - /get-stream/2.3.1: - dependencies: - object-assign: 4.1.1 - pinkie-promise: 2.0.1 - resolution: 5f38f93f346009666ee0150a054167f91bdd95de - /get-stream/3.0.0: 8e943d1358dc37555054ecbe2edb05aa174ede14 - /getpass/0.1.7: - dependencies: - assert-plus: 1.0.0 - resolution: 5eff8e3e684d569ae4cb2b1282604e8ba62149fa - /gifsicle/3.0.4: - dependencies: - bin-build: 2.2.0 - bin-wrapper: 3.0.2 - logalot: 2.1.0 - resolution: f45cb5ed10165b665dc929e0e9328b6c821dfa3b - /glob-base/0.3.0: - dependencies: - glob-parent: 2.0.0 - is-glob: 2.0.1 - resolution: dbb164f6221b1c0b1ccf82aea328b497df0ea3c4 - /glob-parent/2.0.0: - dependencies: - is-glob: 2.0.1 - resolution: 81383d72db054fcccf5336daa902f182f6edbb28 - /glob-parent/3.1.0: - dependencies: - is-glob: 3.1.0 - path-dirname: 1.0.2 - resolution: 9e6af6299d8d3bd2bd40430832bd113df906c5ae - /glob-stream/3.1.18: - dependencies: - glob: 4.5.3 - glob2base: 0.0.12 - minimatch: 2.0.10 - ordered-read-streams: 0.1.0 - through2: 0.6.5 - unique-stream: 1.0.0 - resolution: 9170a5f12b790306fdfe598f313f8f7954fd143b - /glob-stream/5.3.5: - dependencies: - extend: 3.0.1 - glob: 5.0.15 - glob-parent: 3.1.0 - micromatch: 2.3.11 - ordered-read-streams: 0.3.0 - through2: 0.6.5 - to-absolute-glob: 0.1.1 - unique-stream: 2.2.1 - resolution: a55665a9a8ccdc41915a87c701e32d4e016fad22 - /glob-watcher/0.0.6: - dependencies: - gaze: 0.5.2 - resolution: b95b4a8df74b39c83298b0c05c978b4d9a3b710b - /glob/3.1.21: - dependencies: - graceful-fs: 1.2.3 - inherits: 1.0.2 - minimatch: 0.2.14 - resolution: d29e0a055dea5138f4d07ed40e8982e83c2066cd - /glob/4.5.3: - dependencies: - inflight: 1.0.6 - inherits: 2.0.3 - minimatch: 2.0.10 - once: 1.4.0 - resolution: c6cb73d3226c1efef04de3c56d012f03377ee15f - /glob/5.0.15: - dependencies: - inflight: 1.0.6 - inherits: 2.0.3 - minimatch: 3.0.3 - once: 1.4.0 - path-is-absolute: 1.0.1 - resolution: 1bc936b9e02f4a603fcc222ecf7633d30b8b93b1 - /glob/7.1.1: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.3 - minimatch: 3.0.3 - once: 1.4.0 - path-is-absolute: 1.0.1 - resolution: 805211df04faaf1c63a3600306cdf5ade50b2ec8 - /glob2base/0.0.12: - dependencies: - find-index: 0.1.1 - resolution: 9d419b3e28f12e83a362164a277055922c9c0d56 - /global-modules/0.2.3: - dependencies: - global-prefix: 0.1.5 - is-windows: 0.2.0 - resolution: ea5a3bed42c6d6ce995a4f8a1269b5dae223828d - /global-prefix/0.1.5: - dependencies: - homedir-polyfill: 1.0.1 - ini: 1.3.4 - is-windows: 0.2.0 - which: 1.2.14 - resolution: 8d3bc6b8da3ca8112a160d8d496ff0462bfef78f - /globals/9.17.0: 0c0ca696d9b9bb694d2e5470bd37777caad50286 - /globby/5.0.0: - dependencies: - array-union: 1.0.2 - arrify: 1.0.1 - glob: 7.1.1 - object-assign: 4.1.1 - pify: 2.3.0 - pinkie-promise: 2.0.1 - resolution: ebd84667ca0dbb330b99bcfc68eac2bc54370e0d - /globby/6.1.0: - dependencies: - array-union: 1.0.2 - glob: 7.1.1 - object-assign: 4.1.1 - pify: 2.3.0 - pinkie-promise: 2.0.1 - resolution: f5a6d70e8395e21c858fb0489d64df02424d506c - /globule/0.1.0: - dependencies: - glob: 3.1.21 - lodash: 1.0.2 - minimatch: 0.2.14 - resolution: d9c8edde1da79d125a151b79533b978676346ae5 - /globule/1.1.0: - dependencies: - glob: 7.1.1 - lodash: 4.16.6 - minimatch: 3.0.3 - resolution: c49352e4dc183d85893ee825385eb994bb6df45f - /glogg/1.0.0: - dependencies: - sparkles: 1.0.0 - resolution: 7fe0f199f57ac906cf512feead8f90ee4a284fc5 - /got/5.7.1: - dependencies: - create-error-class: 3.0.2 - duplexer2: 0.1.4 - is-redirect: 1.0.0 - is-retry-allowed: 1.1.0 - is-stream: 1.1.0 - lowercase-keys: 1.0.0 - node-status-codes: 1.0.0 - object-assign: 4.1.1 - parse-json: 2.2.0 - pinkie-promise: 2.0.1 - read-all-stream: 3.1.0 - readable-stream: 2.2.9 - timed-out: 3.1.3 - unzip-response: 1.0.2 - url-parse-lax: 1.0.0 - resolution: 5f81635a61e4a6589f180569ea4e381680a51f35 - /got/6.7.1: - dependencies: - create-error-class: 3.0.2 - duplexer3: 0.1.4 - get-stream: 3.0.0 - is-redirect: 1.0.0 - is-retry-allowed: 1.1.0 - is-stream: 1.1.0 - lowercase-keys: 1.0.0 - safe-buffer: 5.0.1 - timed-out: 4.0.1 - unzip-response: 2.0.1 - url-parse-lax: 1.0.0 - resolution: 240cd05785a9a18e561dc1b44b41c763ef1e8db0 - /graceful-fs/1.2.3: 15a4806a57547cb2d2dbf27f42e89a8c3451b364 - /graceful-fs/3.0.11: - dependencies: - natives: 1.1.0 - resolution: 7613c778a1afea62f25c630a086d7f3acbbdd818 - /graceful-fs/4.1.11: 0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658 - /graceful-readlink/1.0.1: 4cafad76bc62f02fa039b2f94e9a3dd3a391a725 - /guetzli/1.0.1: - dependencies: - bin-build: 2.2.0 - bin-wrapper: 3.0.2 - logalot: 2.1.0 - resolution: 48cd01d18dbd60fb47318a1724a295a035d9b9f2 - /gulp-decompress/1.2.0: - dependencies: - archive-type: 3.2.0 - decompress: 3.0.0 - gulp-util: 3.0.8 - readable-stream: 2.2.9 - resolution: 8eeb65a5e015f8ed8532cafe28454960626f0dc7 - /gulp-htmlmin/3.0.0: - dependencies: - bufferstreams: 1.1.1 - gulp-util: 3.0.8 - html-minifier: 3.4.3 - object-assign: 4.1.1 - readable-stream: 2.2.9 - tryit: 1.0.3 - resolution: 19ea8002d1231d6b1f18a12d20f2a66a77770fb3 - /gulp-image/2.8.0: - dependencies: - exec-buffer: 3.1.0 - execa: 0.6.3 - filesize: 3.5.9 - gifsicle: 3.0.4 - guetzli: 1.0.1 - gulp-util: 3.0.8 - is-gif: 1.0.0 - is-jpg: 1.0.0 - is-png: 1.1.0 - is-svg: 2.1.0 - jpeg-recompress-bin: 3.0.1 - jpegoptim-bin: 3.0.0 - mozjpeg: 4.1.1 - optipng-bin: 3.1.4 - pngquant-bin: 3.1.1 - svgo: 0.7.2 - through2-concurrent: 1.1.1 - zopflipng-bin: 3.0.1 - resolution: 1f6d7db0cc27dede161da7070effb59149bef3e0 - /gulp-livereload/3.8.1: - dependencies: - chalk: 0.5.1 - debug: 2.6.6 - event-stream: 3.3.4 - gulp-util: 3.0.8 - lodash.assign: 3.2.0 - mini-lr: 0.1.9 - resolution: 00f744b2d749d3e9e3746589c8a44acac779b50f - /gulp-postcss/6.4.0: - dependencies: - gulp-util: 3.0.8 - postcss: 5.2.17 - postcss-load-config: 1.2.0 - vinyl-sourcemaps-apply: 0.2.1 - resolution: 78a32e3c87aa6cdcec5ae1c905e196d478e8c5d5 - /gulp-rename/1.2.2: 3ad4428763f05e2764dec1c67d868db275687817 - /gulp-sass/3.1.0: - dependencies: - gulp-util: 3.0.8 - lodash.clonedeep: 4.5.0 - node-sass: 4.5.2 - through2: 2.0.3 - vinyl-sourcemaps-apply: 0.2.1 - resolution: 53dc4b68a1f5ddfe4424ab4c247655269a8b74b7 - /gulp-sourcemaps/1.6.0: - dependencies: - convert-source-map: 1.5.0 - graceful-fs: 4.1.11 - strip-bom: 2.0.0 - through2: 2.0.3 - vinyl: 1.2.0 - resolution: b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c - /gulp-sourcemaps/2.6.0: - dependencies: - '@gulp-sourcemaps/identity-map': 1.0.1 - '@gulp-sourcemaps/map-sources': 1.0.0 - acorn: 4.0.11 - convert-source-map: 1.5.0 - css: 2.2.1 - debug-fabulous: 0.1.0 - detect-newline: 2.1.0 - graceful-fs: 4.1.11 - source-map: 0.5.6 - strip-bom-string: 1.0.0 - through2: 2.0.3 - vinyl: 1.2.0 - resolution: 7ccce899a8a3bfca1593a3348d0fbf41dd3f51e5 - /gulp-svgo/1.0.3: - dependencies: - svgo: 0.6.6 - resolution: f6ad219f281cdc9ac3e0e6c173d5c77bba8cd692 - /gulp-uglify/2.1.2: - dependencies: - gulplog: 1.0.0 - has-gulplog: 0.1.0 - lodash: 4.17.4 - make-error-cause: 1.2.2 - through2: 2.0.3 - uglify-js: 2.8.22 - uglify-save-license: 0.4.1 - vinyl-sourcemaps-apply: 0.2.1 - resolution: 6db85b1d0ee63d18058592b658649d65c2ec4541 - /gulp-util/3.0.8: - dependencies: - array-differ: 1.0.0 - array-uniq: 1.0.3 - beeper: 1.1.1 - chalk: 1.1.3 - dateformat: 2.0.0 - fancy-log: 1.3.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.6.2 - minimist: 1.2.0 - multipipe: 0.1.2 - object-assign: 3.0.0 - replace-ext: 0.0.1 - through2: 2.0.3 - vinyl: 0.5.3 - resolution: 0054e1e744502e27c04c187c3ecc505dd54bbb4f - /gulp/3.9.1: - dependencies: - archy: 1.0.0 - chalk: 1.1.3 - deprecated: 0.0.1 - gulp-util: 3.0.8 - interpret: 1.0.3 - liftoff: 2.3.0 - minimist: 1.2.0 - orchestrator: 0.3.8 - pretty-hrtime: 1.0.3 - semver: 4.3.6 - tildify: 1.2.0 - v8flags: 2.1.1 - vinyl-fs: 0.3.14 - resolution: 571ce45928dd40af6514fc4011866016c13845b4 - /gulplog/1.0.0: - dependencies: - glogg: 1.0.0 - resolution: e28c4d45d05ecbbed818363ce8f9c5926229ffe5 - /har-schema/1.0.5: d263135f43307c02c602afc8fe95970c0151369e - /har-validator/4.2.1: - dependencies: - ajv: 4.11.8 - har-schema: 1.0.5 - resolution: 33481d0f1bbff600dd203d75812a6a5fba002e2a - /has-ansi/0.1.0: - dependencies: - ansi-regex: 0.2.1 - resolution: 84f265aae8c0e6a88a12d7022894b7568894c62e - /has-ansi/2.0.0: - dependencies: - ansi-regex: 2.1.1 - resolution: 34f5049ce1ecdf2b0649af3ef24e45ed35416d91 - /has-color/0.1.7: 67144a5260c34fc3cca677d041daf52fe7b78b2f - /has-flag/1.0.0: 9d9e793165ce017a00f00418c43f942a7b1d11fa - /has-flag/2.0.0: e8207af1cc7b30d446cc70b734b5e8be18f88d51 - /has-gulplog/0.1.0: - dependencies: - sparkles: 1.0.0 - resolution: 6414c82913697da51590397dafb12f22967811ce - /has-unicode/2.0.1: e0e6fe6a28cf51138855e086d1691e771de2a8b9 - /has-yarn/1.0.0: 89e25db604b725c8f5976fff0addc921b828a5a7 - /has/1.0.1: - dependencies: - function-bind: 1.1.0 - resolution: 8461733f538b0837c9361e39a9ab9e9704dc2f28 - /hash.js/1.0.3: - dependencies: - inherits: 2.0.3 - resolution: 1332ff00156c0a0ffdd8236013d07b77a0451573 - /hawk/3.1.3: - dependencies: - boom: 2.10.1 - cryptiles: 2.0.5 - hoek: 2.16.3 - sntp: 1.0.9 - resolution: 078444bd7c1640b0fe540d2c9b73d59678e8e1c4 - /he/1.1.1: 93410fd21b009735151f8868c2f271f3427e23fd - /hmac-drbg/1.0.1: - dependencies: - hash.js: 1.0.3 - minimalistic-assert: 1.0.0 - minimalistic-crypto-utils: 1.0.1 - resolution: d2745701025a6c775a6c545793ed502fc0c649a1 - /hoek/2.16.3: 20bb7403d3cea398e91dc4710a8ff1b8274a25ed - /home-or-tmp/2.0.0: - dependencies: - os-homedir: 1.0.2 - os-tmpdir: 1.0.2 - resolution: e36c3f2d2cae7d746a857e38d18d5f32a7882db8 - /homedir-polyfill/1.0.1: - dependencies: - parse-passwd: 1.0.0 - resolution: 4c2bbc8a758998feebf5ed68580f76d46768b4bc - /hosted-git-info/2.4.2: 0076b9f46a270506ddbaaea56496897460612a67 - /html-comment-regex/1.1.1: 668b93776eaae55ebde8f3ad464b307a4963625e - /html-minifier/3.4.3: - dependencies: - camel-case: 3.0.0 - clean-css: 4.0.12 - commander: 2.9.0 - he: 1.1.1 - ncname: 1.0.0 - param-case: 2.1.1 - relateurl: 0.2.7 - uglify-js: 2.8.22 - resolution: eb3a7297c804611f470454eeebe0aacc427e424a - /htmlescape/1.1.1: 3a03edc2214bca3b66424a3e7959349509cb0351 - /http-errors/1.3.1: - dependencies: - inherits: 2.0.3 - statuses: 1.3.1 - resolution: 197e22cdebd4198585e8694ef6786197b91ed942 - /http-signature/1.1.1: - dependencies: - assert-plus: 0.2.0 - jsprim: 1.4.0 - sshpk: 1.13.0 - resolution: df72e267066cd0ac67fb76adf8e134a8fbcf91bf - /https-browserify/1.0.0: ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73 - /husky/0.13.3: - dependencies: - chalk: 1.1.3 - find-parent-dir: 0.3.0 - is-ci: 1.0.10 - normalize-path: 1.0.0 - resolution: bc2066080badc8b8fe3516e881f5bc68a57052ff - /iconv-lite/0.4.13: 1f88aba4ab0b1508e8312acc39345f36e992e2f2 - /ieee754/1.1.8: be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4 - /ignore-by-default/1.0.1: 48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09 - /ignore/3.3.0: 3812d22cbe9125f2c2b4915755a1b8abd745a001 - /immediate/3.0.6: 9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b - /imurmurhash/0.1.4: 9218b9b2b928a238b13dc4fb6b6d576f231453ea - /in-publish/2.0.0: e20ff5e3a2afc2690320b6dc552682a9c7fadf51 - /indent-string/2.1.0: - dependencies: - repeating: 2.0.1 - resolution: 8e2d48348742121b4a8218b7a137e9a52049dc80 - /indent-string/3.1.0: 08ff4334603388399b329e6b9538dc7a3cf5de7d - /indexes-of/1.0.1: f30f716c8e2bd346c7b67d3df3915566a7c05607 - /indexof/0.0.1: 82dc336d232b9062179d05ab3293a66059fd435d - /inflight/1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - resolution: 49bd6331d7d02d0c09bc910a1075ba8165b56df9 - /inherits/1.0.2: ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b - /inherits/2.0.1: b17d08d326b4423e568eff719f91b0b1cbdf69f1 - /inherits/2.0.3: 633c2c83e3da42a502f52466022480f4208261de - /ini/1.3.4: 0537cb79daf59b59a1a517dff706c86ec039162e - /inline-process-browser/1.0.0: - dependencies: - falafel: 1.2.0 - through2: 0.6.5 - resolution: 46a61b153dd3c9b1624b1a00626edb4f7f414f22 - /inline-source-map/0.6.2: - dependencies: - source-map: 0.5.6 - resolution: f9393471c18a79d1724f863fa38b586370ade2a5 - /inquirer/0.12.0: - dependencies: - ansi-escapes: 1.4.0 - ansi-regex: 2.1.1 - chalk: 1.1.3 - cli-cursor: 1.0.2 - cli-width: 2.1.0 - figures: 1.7.0 - lodash: 4.17.4 - readline2: 1.0.1 - run-async: 0.1.0 - rx-lite: 3.1.2 - string-width: 1.0.2 - strip-ansi: 3.0.1 - through: 2.3.8 - resolution: 1ef2bfd63504df0bc75785fff8c2c41df12f077e - /insert-module-globals/7.0.1: - dependencies: - JSONStream: 1.3.1 - combine-source-map: 0.7.2 - concat-stream: 1.5.2 - is-buffer: 1.1.5 - lexical-scope: 1.2.0 - process: 0.11.10 - through2: 2.0.3 - xtend: 4.0.1 - resolution: c03bf4e01cb086d5b5e5ace8ad0afe7889d638c3 - /interpret/1.0.3: cbc35c62eeee73f19ab7b10a801511401afc0f90 - /invariant/2.2.2: - dependencies: - loose-envify: 1.3.1 - resolution: 9e1f56ac0acdb6bf303306f338be3b204ae60360 - /invert-kv/1.0.0: 104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6 - /ip-regex/1.0.3: dc589076f659f419c222039a33316f1c7387effd - /irregular-plurals/1.2.0: 38f299834ba8c00c30be9c554e137269752ff3ac - /is-absolute-url/2.1.0: 50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6 - /is-absolute/0.1.7: - dependencies: - is-relative: 0.1.3 - resolution: 847491119fccb5fb436217cc737f7faad50f603f - /is-absolute/0.2.6: - dependencies: - is-relative: 0.2.1 - is-windows: 0.2.0 - resolution: 20de69f3db942ef2d87b9c2da36f172235b1b5eb - /is-arrayish/0.2.1: 77c99840527aa8ecb1a8ba697b80645a7a926a9d - /is-binary-path/1.0.1: - dependencies: - binary-extensions: 1.8.0 - resolution: 75f16642b480f187a711c814161fd3a4a7655898 - /is-buffer/1.1.5: 1f3b26ef613b214b88cbca23cc6c01d87961eecc - /is-builtin-module/1.0.0: - dependencies: - builtin-modules: 1.1.1 - resolution: 540572d34f7ac3119f8f76c30cbc1b1e037affbe - /is-bzip2/1.0.0: 5ee58eaa5a2e9c80e21407bedf23ae5ac091b3fc - /is-ci/1.0.10: - dependencies: - ci-info: 1.0.0 - resolution: f739336b2632365061a9d48270cd56ae3369318e - /is-directory/0.3.1: 61339b6f2475fc772fd9c9d83f5c8575dc154ae1 - /is-dotfile/1.0.2: 2c132383f39199f8edc268ca01b9b007d205cc4d - /is-equal-shallow/0.1.3: - dependencies: - is-primitive: 2.0.0 - resolution: 2238098fc221de0bcfa5d9eac4c45d638aa1c534 - /is-error/2.2.1: 684a96d84076577c98f4cdb40c6d26a5123bf19c - /is-extendable/0.1.1: 62b110e289a471418e3ec36a617d472e301dfc89 - /is-extglob/1.0.0: ac468177c4943405a092fc8f29760c6ffc6206c0 - /is-extglob/2.1.1: a88c02535791f02ed37c76a1b9ea9773c833f8c2 - /is-finite/1.0.2: - dependencies: - number-is-nan: 1.0.1 - resolution: cc6677695602be550ef11e8b4aa6305342b6d0aa - /is-fullwidth-code-point/1.0.0: - dependencies: - number-is-nan: 1.0.1 - resolution: ef9e31386f031a7f0d643af82fde50c457ef00cb - /is-fullwidth-code-point/2.0.0: a3b30a5c4f199183167aaab93beefae3ddfb654f - /is-generator-fn/1.0.0: 969d49e1bb3329f6bb7f09089be26578b2ddd46a - /is-get-set-prop/1.0.0: - dependencies: - get-set-props: 0.1.0 - lowercase-keys: 1.0.0 - resolution: 2731877e4d78a6a69edcce6bb9d68b0779e76312 - /is-gif/1.0.0: a6d2ae98893007bffa97a1d8c01d63205832097e - /is-glob/2.0.1: - dependencies: - is-extglob: 1.0.0 - resolution: d096f926a3ded5600f3fdfd91198cb0888c2d863 - /is-glob/3.1.0: - dependencies: - is-extglob: 2.1.1 - resolution: 7ba5ae24217804ac70707b96922567486cc3e84a - /is-gzip/1.0.0: 6ca8b07b99c77998025900e555ced8ed80879a83 - /is-jpg/1.0.0: 2959c17e73430db38264da75b90dd54f2d86da1c - /is-js-type/2.0.0: - dependencies: - js-types: 1.0.0 - resolution: 73617006d659b4eb4729bba747d28782df0f7e22 - /is-my-json-valid/2.16.0: - dependencies: - generate-function: 2.0.0 - generate-object-property: 1.2.0 - jsonpointer: 4.0.1 - xtend: 4.0.1 - resolution: f079dd9bfdae65ee2038aae8acbc86ab109e3693 - /is-natural-number/2.1.1: 7d4c5728377ef386c3e194a9911bf57c6dc335e7 - /is-npm/1.0.0: f2fb63a65e4905b406c86072765a1a4dc793b9f4 - /is-number/2.1.0: - dependencies: - kind-of: 3.2.0 - resolution: 01fcbbb393463a548f2f466cce16dece49db908f - /is-obj-prop/1.0.0: - dependencies: - lowercase-keys: 1.0.0 - obj-props: 1.1.0 - resolution: b34de79c450b8d7c73ab2cdf67dc875adb85f80e - /is-obj/1.0.1: 3e4729ac1f5fde025cd7d83a896dab9f4f67db0f - /is-observable/0.2.0: - dependencies: - symbol-observable: 0.2.4 - resolution: b361311d83c6e5d726cabf5e250b0237106f5ae2 - /is-path-cwd/1.0.0: d225ec23132e89edd38fda767472e62e65f1106d - /is-path-in-cwd/1.0.0: - dependencies: - is-path-inside: 1.0.0 - resolution: 6477582b8214d602346094567003be8a9eac04dc - /is-path-inside/1.0.0: - dependencies: - path-is-inside: 1.0.2 - resolution: fc06e5a1683fbda13de667aff717bbc10a48f37f - /is-plain-obj/1.1.0: 71a50c8429dfca773c92a390a4a03b39fcd51d3e - /is-png/1.1.0: d574b12bf275c0350455570b0e5b57ab062077ce - /is-posix-bracket/0.1.1: 3334dc79774368e92f016e6fbc0a88f5cd6e6bc4 - /is-primitive/2.0.0: 207bab91638499c07b2adf240a41a87210034575 - /is-promise/2.1.0: 79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa - /is-property/1.0.2: 57fe1c4e48474edd65b09911f26b1cd4095dda84 - /is-proto-prop/1.0.0: - dependencies: - lowercase-keys: 1.0.0 - proto-props: 0.2.1 - resolution: b3951f95c089924fb5d4fcda6542ab3e83e2b220 - /is-redirect/1.0.0: 1d03dded53bd8db0f30c26e4f95d36fc7c87dc24 - /is-relative/0.1.3: 905fee8ae86f45b3ec614bc3c15c869df0876e82 - /is-relative/0.2.1: - dependencies: - is-unc-path: 0.1.2 - resolution: d27f4c7d516d175fb610db84bbeef23c3bc97aa5 - /is-resolvable/1.0.0: - dependencies: - tryit: 1.0.3 - resolution: 8df57c61ea2e3c501408d100fb013cf8d6e0cc62 - /is-retry-allowed/1.1.0: 11a060568b67339444033d0125a61a20d564fb34 - /is-stream/1.1.0: 12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44 - /is-svg/2.1.0: - dependencies: - html-comment-regex: 1.1.1 - resolution: cf61090da0d9efbcab8722deba6f032208dbb0e9 - /is-tar/1.0.0: 2f6b2e1792c1f5bb36519acaa9d65c0d26fe853d - /is-typedarray/1.0.0: e479c80858df0c1b11ddda6940f96011fcda4a9a - /is-unc-path/0.1.2: - dependencies: - unc-path-regex: 0.1.2 - resolution: 6ab053a72573c10250ff416a3814c35178af39b9 - /is-url/1.2.2: 498905a593bf47cc2d9e7f738372bbf7696c7f26 - /is-utf8/0.2.1: 4b0da1442104d1b336340e80797e865cf39f7d72 - /is-valid-glob/0.3.0: d4b55c69f51886f9b65c70d6c2622d37e29f48fe - /is-windows/0.2.0: de1aa6d63ea29dd248737b69f1ff8b8002d2108c - /is-zip/1.0.0: 47b0a8ff4d38a76431ccfd99a8e15a4c86ba2325 - /isarray/0.0.1: 8a18acfca9a8f4177e09abfc6038939b05d1eedf - /isarray/1.0.0: bb935d48582cba168c06834957a54a3e07124f11 - /isexe/2.0.0: e8fbf374dc556ff8947a10dcb0572d633f2cfa10 - /isobject/2.1.0: - dependencies: - isarray: 1.0.0 - resolution: f065561096a3f1da2ef46272f815c840d87e0c89 - /isstream/0.1.2: 47e63f7af55afa6f92e1500e690eb8b8529c099a - /jest-diff/18.1.0: - dependencies: - chalk: 1.1.3 - diff: 3.2.0 - jest-matcher-utils: 18.1.0 - pretty-format: 18.1.0 - resolution: 4ff79e74dd988c139195b365dc65d87f606f4803 - /jest-file-exists/17.0.0: 7f63eb73a1c43a13f461be261768b45af2cdd169 - /jest-matcher-utils/18.1.0: - dependencies: - chalk: 1.1.3 - pretty-format: 18.1.0 - resolution: 1ac4651955ee2a60cef1e7fcc98cdfd773c0f932 - /jest-mock/18.0.0: 5c248846ea33fa558b526f5312ab4a6765e489b3 - /jest-snapshot/18.1.0: - dependencies: - jest-diff: 18.1.0 - jest-file-exists: 17.0.0 - jest-matcher-utils: 18.1.0 - jest-util: 18.1.0 - natural-compare: 1.4.0 - pretty-format: 18.1.0 - resolution: 55b96d2ee639c9bce76f87f2a3fd40b71c7a5916 - /jest-util/18.1.0: - dependencies: - chalk: 1.1.3 - diff: 3.2.0 - graceful-fs: 4.1.11 - jest-file-exists: 17.0.0 - jest-mock: 18.0.0 - mkdirp: 0.5.1 - resolution: 3a99c32114ab17f84be094382527006e6d4bfc6a - /jodid25519/1.0.2: - dependencies: - jsbn: 0.1.1 - resolution: 06d4912255093419477d425633606e0e90782967 - /jpeg-recompress-bin/3.0.1: - dependencies: - bin-wrapper: 3.0.2 - logalot: 2.1.0 - resolution: 46a3e7300ccab795b1b8db27ae802c27a28333a4 - /jpegoptim-bin/3.0.0: - dependencies: - bin-build: 2.2.0 - bin-wrapper: 3.0.2 - logalot: 2.1.0 - resolution: 9f7a05d83b302bd19913decf339a9dae1bda0c2b - /js-base64/2.1.9: f0e80ae039a4bd654b5f281fc93f04a914a7fcce - /js-tokens/3.0.1: 08e9f132484a2c45a30907e9dc4d5567b7f114d7 - /js-types/1.0.0: d242e6494ed572ad3c92809fc8bed7f7687cbf03 - /js-yaml/3.6.1: - dependencies: - argparse: 1.0.9 - esprima: 2.7.3 - resolution: 6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30 - /js-yaml/3.7.0: - dependencies: - argparse: 1.0.9 - esprima: 2.7.3 - resolution: 5c967ddd837a9bfdca5f2de84253abe8a1c03b80 - /js-yaml/3.8.3: - dependencies: - argparse: 1.0.9 - esprima: 3.1.3 - resolution: 33a05ec481c850c8875929166fe1beb61c728766 - /jsbn/0.1.1: a5e654c2e5a2deb5f201d96cefbca80c0ef2f513 - /jsesc/0.5.0: e7dee66e35d6fc16f710fe91d5cf69f70f08911d - /jsesc/1.3.0: 46c3fec8c1892b12b0833db9bc7622176dbab34b - /json-schema/0.2.3: b480c892e59a2f05954ce727bd3f2a4e882f9e13 - /json-stable-stringify/0.0.1: - dependencies: - jsonify: 0.0.0 - resolution: 611c23e814db375527df851193db59dd2af27f45 - /json-stable-stringify/1.0.1: - dependencies: - jsonify: 0.0.0 - resolution: 9a759d39c5f2ff503fd5300646ed445f88c4f9af - /json-stringify-safe/5.0.1: 1296a2d58fd45f19a0f6ce01d65701e2c735b6eb - /json5/0.5.1: 1eade7acc012034ad84e2396767ead9fa5495821 - /jsonify/0.0.0: 2c74b6ee41d93ca51b7b5aaee8f503631d252a73 - /jsonparse/1.3.0: 85fc245b1d9259acc6941960b905adf64e7de0e8 - /jsonpointer/4.0.1: 4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9 - /jsprim/1.4.0: - dependencies: - assert-plus: 1.0.0 - extsprintf: 1.0.2 - json-schema: 0.2.3 - verror: 1.3.6 - resolution: a3b87e40298d8c380552d8cc7628a0bb95a22918 - /jstransform/3.0.0: - dependencies: - base62: 0.1.1 - esprima-fb: 3001.1.0-dev-harmony-fb - source-map: 0.1.31 - resolution: a2591ab6cee8d97bf3be830dbfa2313b87cd640b - /kind-of/3.2.0: - dependencies: - is-buffer: 1.1.5 - resolution: b58abe4d5c044ad33726a8c1525b48cf891bff07 - /labeled-stream-splicer/2.0.0: - dependencies: - inherits: 2.0.3 - isarray: 0.0.1 - stream-splicer: 2.0.0 - resolution: a52e1d138024c00b86b1c0c91f677918b8ae0a59 - /last-line-stream/1.0.0: - dependencies: - through2: 2.0.3 - resolution: d1b64d69f86ff24af2d04883a2ceee14520a5600 - /latest-version/2.0.0: - dependencies: - package-json: 2.4.0 - resolution: 56f8d6139620847b8017f8f1f4d78e211324168b - /latest-version/3.1.0: - dependencies: - package-json: 4.0.1 - resolution: a205383fea322b33b5ae3b18abee0dc2f356ee15 - /lazy-cache/1.0.4: a1d78fc3a50474cb80845d3b3b6e1da49a446e8e - /lazy-req/1.1.0: bdaebead30f8d824039ce0ce149d4daa07ba1fac - /lazy-req/2.0.0: c9450a363ecdda2e6f0c70132ad4f37f8f06f2b4 - /lazystream/1.0.0: - dependencies: - readable-stream: 2.2.9 - resolution: f6995fe0f820392f61396be89462407bb77168e4 - /lcid/1.0.0: - dependencies: - invert-kv: 1.0.0 - resolution: 308accafa0bc483a3867b4b6f2b9506251d1b835 - /levn/0.3.0: - dependencies: - prelude-ls: 1.1.2 - type-check: 0.3.2 - resolution: 3b09924edf9f083c0490fdd4c0bc4421e04764ee - /lexical-scope/1.2.0: - dependencies: - astw: 2.2.0 - resolution: fcea5edc704a4b3a8796cdca419c3a0afaf22df4 - /lie/3.0.2: - dependencies: - es3ify: 0.1.4 - immediate: 3.0.6 - inline-process-browser: 1.0.0 - unreachable-branch-transform: 0.3.0 - resolution: ffda21d7bba26f377cad865d3649b2fc8ce39fea - /liftoff/2.3.0: - dependencies: - extend: 3.0.1 - findup-sync: 0.4.3 - fined: 1.0.2 - flagged-respawn: 0.3.2 - lodash.isplainobject: 4.0.6 - lodash.isstring: 4.0.1 - lodash.mapvalues: 4.6.0 - rechoir: 0.6.2 - resolve: 1.3.3 - resolution: a98f2ff67183d8ba7cfaca10548bd7ff0550b385 - /lint-staged/3.4.1: - dependencies: - app-root-path: 2.0.1 - cosmiconfig: 1.1.0 - execa: 0.6.3 - listr: 0.12.0 - minimatch: 3.0.3 - npm-which: 3.0.1 - staged-git-files: 0.0.4 - resolution: 96cd1cf7a1ac92d81662643c37d1cca28b91b046 - /listr-silent-renderer/1.1.1: 924b5a3757153770bf1a8e3fbf74b8bbf3f9242e - /listr-update-renderer/0.2.0: - dependencies: - chalk: 1.1.3 - cli-truncate: 0.2.1 - elegant-spinner: 1.0.1 - figures: 1.7.0 - indent-string: 3.1.0 - log-symbols: 1.0.2 - log-update: 1.0.2 - strip-ansi: 3.0.1 - resolution: ca80e1779b4e70266807e8eed1ad6abe398550f9 - /listr-verbose-renderer/0.4.0: - dependencies: - chalk: 1.1.3 - cli-cursor: 1.0.2 - date-fns: 1.28.4 - figures: 1.7.0 - resolution: 44dc01bb0c34a03c572154d4d08cde9b1dc5620f - /listr/0.12.0: - dependencies: - chalk: 1.1.3 - cli-truncate: 0.2.1 - figures: 1.7.0 - indent-string: 2.1.0 - is-promise: 2.1.0 - is-stream: 1.1.0 - listr-silent-renderer: 1.1.1 - listr-update-renderer: 0.2.0 - listr-verbose-renderer: 0.4.0 - log-symbols: 1.0.2 - log-update: 1.0.2 - ora: 0.2.3 - p-map: 1.1.1 - rxjs: 5.3.1 - stream-to-observable: 0.1.0 - strip-ansi: 3.0.1 - resolution: 6bce2c0f5603fa49580ea17cd6a00cc0e5fa451a - /livereload-js/2.2.2: 6c87257e648ab475bc24ea257457edcc1f8d0bc2 - /load-json-file/1.1.0: - dependencies: - graceful-fs: 4.1.11 - parse-json: 2.2.0 - pify: 2.3.0 - pinkie-promise: 2.0.1 - strip-bom: 2.0.0 - resolution: 956905708d58b4bab4c2261b04f59f31c99374c0 - /load-json-file/2.0.0: - dependencies: - graceful-fs: 4.1.11 - parse-json: 2.2.0 - pify: 2.3.0 - strip-bom: 3.0.0 - resolution: 7947e42149af80d696cbf797bcaabcfe1fe29ca8 - /localforage/1.5.0: - dependencies: - lie: 3.0.2 - resolution: 6b994e19b56611fa85df3992df397ac4ab66e815 - /locate-path/2.0.0: - dependencies: - p-locate: 2.0.0 - path-exists: 3.0.0 - resolution: 2b568b265eec944c6d9c0de9c3dbbbca0354cd8e - /lodash._baseassign/3.2.0: - dependencies: - lodash._basecopy: 3.0.1 - lodash.keys: 3.1.2 - resolution: 8c38a099500f215ad09e59f1722fd0c52bfe0a4e - /lodash._basecopy/3.0.1: 8da0e6a876cf344c0ad8a54882111dd3c5c7ca36 - /lodash._basetostring/3.0.1: d1861d877f824a52f669832dcaf3ee15566a07d5 - /lodash._basevalues/3.0.0: 5b775762802bde3d3297503e26300820fdf661b7 - /lodash._bindcallback/3.0.1: e531c27644cf8b57a99e17ed95b35c748789392e - /lodash._createassigner/3.1.1: - dependencies: - lodash._bindcallback: 3.0.1 - lodash._isiterateecall: 3.0.9 - lodash.restparam: 3.6.1 - resolution: 838a5bae2fdaca63ac22dee8e19fa4e6d6970b11 - /lodash._getnative/3.9.1: 570bc7dede46d61cdcde687d65d3eecbaa3aaff5 - /lodash._isiterateecall/3.0.9: 5203ad7ba425fae842460e696db9cf3e6aac057c - /lodash._reescape/3.0.0: 2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a - /lodash._reevaluate/3.0.0: 58bc74c40664953ae0b124d806996daca431e2ed - /lodash._reinterpolate/3.0.0: 0ccf2d89166af03b3663c796538b75ac6e114d9d - /lodash._root/3.0.1: fba1c4524c19ee9a5f8136b4609f017cf4ded692 - /lodash.assign/3.2.0: - dependencies: - lodash._baseassign: 3.2.0 - lodash._createassigner: 3.1.1 - lodash.keys: 3.1.2 - resolution: 3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa - /lodash.assign/4.2.0: 0d99f3ccd7a6d261d19bdaeb9245005d285808e7 - /lodash.assignwith/4.2.0: 127a97f02adc41751a954d24b0de17e100e038eb - /lodash.camelcase/4.3.0: b28aa6288a2b9fc651035c7711f65ab6190331a6 - /lodash.clonedeep/4.5.0: e23f3f9c4f8fbdde872529c1071857a086e5ccef - /lodash.cond/4.5.2: f471a1da486be60f6ab955d17115523dd1d255d5 - /lodash.debounce/4.0.8: 82d79bff30a67c4005ffd5e2515300ad9ca4d7af - /lodash.defaults/4.2.0: d09178716ffea4dde9e5fb7b37f6f0802274580c - /lodash.difference/4.5.0: 9ccb4e505d486b91651345772885a2df27fd017c - /lodash.escape/3.2.0: - dependencies: - lodash._root: 3.0.1 - resolution: 995ee0dc18c1b48cc92effae71a10aab5b487698 - /lodash.flatten/4.4.0: f31c22225a9632d2bbf8e4addbef240aa765a61f - /lodash.isarguments/3.1.0: 2f573d85c6a24289ff00663b491c1d338ff3458a - /lodash.isarray/3.0.4: 79e4eb88c36a8122af86f844aa9bcd851b5fbb55 - /lodash.isempty/4.4.0: 6f86cbedd8be4ec987be9aaf33c9684db1b31e7e - /lodash.isequal/4.5.0: 415c4478f2bcc30120c22ce10ed3226f7d3e18e0 - /lodash.isplainobject/4.0.6: 7c526a52d89b45c45cc690b88163be0497f550cb - /lodash.isstring/4.0.1: d527dfb5456eca7cc9bb95d5daeaf88ba54a5451 - /lodash.kebabcase/4.1.1: 8489b1cb0d29ff88195cceca448ff6d6cc295c36 - /lodash.keys/3.1.2: - dependencies: - lodash._getnative: 3.9.1 - lodash.isarguments: 3.1.0 - lodash.isarray: 3.0.4 - resolution: 4dbc0472b156be50a0b286855d1bd0b0c656098a - /lodash.mapvalues/4.6.0: 1bafa5005de9dd6f4f26668c30ca37230cc9689c - /lodash.memoize/3.0.4: 2dcbd2c287cbc0a55cc42328bd0c736150d53e3f - /lodash.memoize/4.1.2: bcc6c49a42a2840ed997f323eada5ecd182e0bfe - /lodash.mergewith/4.6.0: 150cf0a16791f5903b8891eab154609274bdea55 - /lodash.pick/4.4.0: 52f05610fff9ded422611441ed1fc123a03001b3 - /lodash.restparam/3.6.1: 936a4e309ef330a7645ed4145986c85ae5b20805 - /lodash.snakecase/4.1.1: 39d714a35357147837aefd64b5dcbb16becd8f8d - /lodash.template/3.6.2: - dependencies: - lodash._basecopy: 3.0.1 - lodash._basetostring: 3.0.1 - lodash._basevalues: 3.0.0 - lodash._isiterateecall: 3.0.9 - lodash._reinterpolate: 3.0.0 - lodash.escape: 3.2.0 - lodash.keys: 3.1.2 - lodash.restparam: 3.6.1 - lodash.templatesettings: 3.1.1 - resolution: f8cdecc6169a255be9098ae8b0c53d378931d14f - /lodash.template/4.4.0: - dependencies: - lodash._reinterpolate: 3.0.0 - lodash.templatesettings: 4.1.0 - resolution: e73a0385c8355591746e020b99679c690e68fba0 - /lodash.templatesettings/3.1.1: - dependencies: - lodash._reinterpolate: 3.0.0 - lodash.escape: 3.2.0 - resolution: fb307844753b66b9f1afa54e262c745307dba8e5 - /lodash.templatesettings/4.1.0: - dependencies: - lodash._reinterpolate: 3.0.0 - resolution: 2b4d4e95ba440d915ff08bc899e4553666713316 - /lodash.uniq/4.5.0: d0225373aeb652adc1bc82e4945339a842754773 - /lodash.upperfirst/4.3.1: 1365edf431480481ef0d1c68957a5ed99d49f7ce - /lodash/1.0.2: 8f57560c83b59fc270bd3d561b690043430e2551 - /lodash/4.16.6: d22c9ac660288f3843e16ba7d2b5d06cca27d777 - /lodash/4.17.4: 78203a4d1c328ae1d86dca6460e369b57f4055ae - /log-symbols/1.0.2: - dependencies: - chalk: 1.1.3 - resolution: 376ff7b58ea3086a0f09facc74617eca501e1a18 - /log-update/1.0.2: - dependencies: - ansi-escapes: 1.4.0 - cli-cursor: 1.0.2 - resolution: 19929f64c4093d2d2e7075a1dad8af59c296b8d1 - /logalot/2.1.0: - dependencies: - figures: 1.7.0 - squeak: 1.3.0 - resolution: 5f8e8c90d304edf12530951a5554abb8c5e3f552 - /longest/1.0.1: 30a0b2da38f73770e8294a0d22e6625ed77d0097 - /loose-envify/1.3.1: - dependencies: - js-tokens: 3.0.1 - resolution: d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848 - /loud-rejection/1.6.0: - dependencies: - currently-unhandled: 0.4.1 - signal-exit: 3.0.2 - resolution: 5b46f80147edee578870f086d04821cf998e551f - /lower-case/1.1.4: 9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac - /lowercase-keys/1.0.0: 4e3366b39e7f5457e35f1324bdf6f88d0bfc7306 - /lpad-align/1.1.0: - dependencies: - get-stdin: 4.0.1 - longest: 1.0.1 - lpad: 2.0.1 - meow: 3.7.0 - resolution: 27fa786bcb695fc434ea1500723eb8d0bdc82bf4 - /lpad/2.0.1: 28316b4e7b2015f511f6591459afc0e5944008ad - /lru-cache/2.7.3: 6d4524e8b955f95d4f5b58851ce21dd72fb4e952 - /lru-cache/4.0.2: - dependencies: - pseudomap: 1.0.2 - yallist: 2.1.2 - resolution: 1d17679c069cda5d040991a09dbc2c0db377e55e - /macaddress/0.2.8: 5904dc537c39ec6dbefeae902327135fa8511f12 - /make-error-cause/1.2.2: - dependencies: - make-error: 1.2.3 - resolution: df0388fcd0b37816dff0a5fb8108939777dcbc9d - /make-error/1.2.3: 6c4402df732e0977ac6faf754a5074b3d2b1d19d - /map-cache/0.2.2: c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf - /map-obj/1.0.1: d933ceb9205d82bdcf4886f6742bdc2b4dea146d - /map-stream/0.1.0: e56aa94c4c8055a16404a0674b78f215f7c8e194 - /matcher/0.1.2: - dependencies: - escape-string-regexp: 1.0.5 - resolution: ef20cbde64c24c50cc61af5b83ee0b1b8ff00101 - /math-expression-evaluator/1.2.17: de819fdbcd84dccd8fae59c6aeb79615b9d266ac - /max-timeout/1.0.0: b68f69a2f99e0b476fd4cb23e2059ca750715e1f - /md5-hex/1.3.0: - dependencies: - md5-o-matic: 0.1.1 - resolution: d2c4afe983c4370662179b8cad145219135046c4 - /md5-hex/2.0.0: - dependencies: - md5-o-matic: 0.1.1 - resolution: d0588e9f1c74954492ecd24ac0ac6ce997d92e33 - /md5-o-matic/0.1.1: 822bccd65e117c514fab176b25945d54100a03c3 - /media-typer/0.3.0: 8710d7af0aa626f8fffa1ce00168545263255748 - /meow/3.7.0: - dependencies: - camelcase-keys: 2.1.0 - decamelize: 1.2.0 - loud-rejection: 1.6.0 - map-obj: 1.0.1 - minimist: 1.2.0 - normalize-package-data: 2.3.8 - object-assign: 4.1.1 - read-pkg-up: 1.0.1 - redent: 1.0.0 - trim-newlines: 1.0.0 - resolution: 72cb668b425228290abbfa856892587308a801fb - /merge-stream/1.0.1: - dependencies: - readable-stream: 2.2.9 - resolution: 4041202d508a342ba00174008df0c251b8c135e1 - /micromatch/2.3.11: - dependencies: - arr-diff: 2.0.0 - array-unique: 0.2.1 - braces: 1.8.5 - expand-brackets: 0.1.5 - extglob: 0.3.2 - filename-regex: 2.0.1 - is-extglob: 1.0.0 - is-glob: 2.0.1 - kind-of: 3.2.0 - normalize-path: 2.1.1 - object.omit: 2.0.1 - parse-glob: 3.0.4 - regex-cache: 0.4.3 - resolution: 86677c97d1720b363431d04d0d15293bd38c1565 - /miller-rabin/4.0.0: - dependencies: - bn.js: 4.11.6 - brorand: 1.1.0 - resolution: 4a62fb1d42933c05583982f4c716f6fb9e6c6d3d - /mime-db/1.27.0: 820f572296bbd20ec25ed55e5b5de869e5436eb1 - /mime-types/2.1.15: - dependencies: - mime-db: 1.27.0 - resolution: a4ebf5064094569237b8cf70046776d09fc92aed - /mimic-fn/1.1.0: e667783d92e89dbd342818b5230b9d62a672ad18 - /mini-lr/0.1.9: - dependencies: - body-parser: 1.14.2 - debug: 2.6.6 - faye-websocket: 0.7.3 - livereload-js: 2.2.2 - parseurl: 1.3.1 - qs: 2.2.5 - resolution: 02199d27347953d1fd1d6dbded4261f187b2d0f6 - /minimalistic-assert/1.0.0: 702be2dda6b37f4836bcb3f5db56641b64a1d3d3 - /minimalistic-crypto-utils/1.0.1: f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a - /minimatch/0.2.14: - dependencies: - lru-cache: 2.7.3 - sigmund: 1.0.1 - resolution: c74e780574f63c6f9a090e90efbe6ef53a6a756a - /minimatch/2.0.10: - dependencies: - brace-expansion: 1.1.7 - resolution: 8d087c39c6b38c001b97fca7ce6d0e1e80afbac7 - /minimatch/3.0.3: - dependencies: - brace-expansion: 1.1.7 - resolution: 2a4e4090b96b2db06a9d7df01055a62a77c9b774 - /minimist/0.0.8: 857fcabfc3397d2625b8228262e86aa7a011b05d - /minimist/1.2.0: a35008b20f41383eec1fb914f4cd5df79a264284 - /mkdirp/0.5.1: - dependencies: - minimist: 0.0.8 - resolution: 30057438eac6cf7f8c4767f38648d6697d75c903 - /module-deps/4.1.1: - dependencies: - JSONStream: 1.3.1 - browser-resolve: 1.11.2 - cached-path-relative: 1.0.1 - concat-stream: 1.5.2 - defined: 1.0.0 - detective: 4.5.0 - duplexer2: 0.1.4 - inherits: 2.0.3 - parents: 1.0.1 - readable-stream: 2.2.9 - resolve: 1.3.3 - stream-combiner2: 1.1.1 - subarg: 1.0.0 - through2: 2.0.3 - xtend: 4.0.1 - resolution: 23215833f1da13fd606ccb8087b44852dcb821fd - /mozjpeg/4.1.1: - dependencies: - bin-build: 2.2.0 - bin-wrapper: 3.0.2 - logalot: 2.1.0 - resolution: 859030b24f689a53db9b40f0160d89195b88fd50 - /ms/0.7.1: 9cd13c03adbff25b65effde7ce864ee952017098 - /ms/0.7.3: 708155a5e44e33f5fd0fc53e81d0d40a91be1fff - /multimatch/2.1.0: - dependencies: - array-differ: 1.0.0 - array-union: 1.0.2 - arrify: 1.0.1 - minimatch: 3.0.3 - resolution: 9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b - /multipipe/0.1.2: - dependencies: - duplexer2: 0.0.2 - resolution: 2a8f2ddf70eed564dff2d57f1e1a137d9f05078b - /mute-stream/0.0.5: 8fbfabb0a98a253d3184331f9e8deb7372fac6c0 - /nan/2.6.2: e4ff34e6c95fdfb5aecc08de6596f43605a7db45 - /natives/1.1.0: e9ff841418a6b2ec7a495e939984f78f163e6e31 - /natural-compare/1.4.0: 4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7 - /ncname/1.0.0: - dependencies: - xml-char-classes: 1.0.0 - resolution: 5b57ad18b1ca092864ef62b0b1ed8194f383b71c - /no-case/2.3.1: - dependencies: - lower-case: 1.1.4 - resolution: 7aeba1c73a52184265554b7dc03baf720df80081 - /node-gyp/3.6.1: - dependencies: - fstream: 1.0.11 - glob: 7.1.1 - graceful-fs: 4.1.11 - minimatch: 3.0.3 - mkdirp: 0.5.1 - nopt: 3.0.6 - npmlog: 4.1.0 - osenv: 0.1.4 - request: 2.81.0 - rimraf: 2.6.1 - semver: 5.3.0 - tar: 2.2.1 - which: 1.2.14 - resolution: 19561067ff185464aded478212681f47fd578cbc - /node-sass/4.5.2: - dependencies: - async-foreach: 0.1.3 - chalk: 1.1.3 - cross-spawn: 3.0.1 - gaze: 1.1.2 - get-stdin: 4.0.1 - glob: 7.1.1 - in-publish: 2.0.0 - lodash.assign: 4.2.0 - lodash.clonedeep: 4.5.0 - lodash.mergewith: 4.6.0 - meow: 3.7.0 - mkdirp: 0.5.1 - nan: 2.6.2 - node-gyp: 3.6.1 - npmlog: 4.1.0 - request: 2.81.0 - sass-graph: 2.2.2 - stdout-stream: 1.4.0 - resolution: 4012fa2bd129b1d6365117e88d9da0500d99da64 - /node-status-codes/1.0.0: 5ae5541d024645d32a58fcddc9ceecea7ae3ac2f - /nopt/3.0.6: - dependencies: - abbrev: 1.1.0 - resolution: c6465dbf08abcd4db359317f79ac68a646b28ff9 - /normalize-package-data/2.3.8: - dependencies: - hosted-git-info: 2.4.2 - is-builtin-module: 1.0.0 - semver: 5.3.0 - validate-npm-package-license: 3.0.1 - resolution: d819eda2a9dedbd1ffa563ea4071d936782295bb - /normalize-path/1.0.0: 32d0e472f91ff345701c15a8311018d3b0a90379 - /normalize-path/2.1.1: - dependencies: - remove-trailing-separator: 1.0.1 - resolution: 1ab28b556e198363a8c1a6f7e6fa20137fe6aed9 - /normalize-range/0.1.2: 2d10c06bdfd312ea9777695a4d28439456b75942 - /normalize-url/1.9.1: - dependencies: - object-assign: 4.1.1 - prepend-http: 1.0.4 - query-string: 4.3.4 - sort-keys: 1.1.2 - resolution: 2cc0d66b31ea23036458436e3620d85954c66c3c - /npm-path/2.0.3: - dependencies: - which: 1.2.14 - resolution: 15cff4e1c89a38da77f56f6055b24f975dfb2bbe - /npm-run-path/1.0.0: - dependencies: - path-key: 1.0.0 - resolution: f5c32bf595fe81ae927daec52e82f8b000ac3c8f - /npm-run-path/2.0.2: - dependencies: - path-key: 2.0.1 - resolution: 35a9232dfa35d7067b4cb2ddf2357b1871536c5f - /npm-which/3.0.1: - dependencies: - commander: 2.9.0 - npm-path: 2.0.3 - which: 1.2.14 - resolution: 9225f26ec3a285c209cae67c3b11a6b4ab7140aa - /npmlog/4.1.0: - dependencies: - are-we-there-yet: 1.1.4 - console-control-strings: 1.1.0 - gauge: 2.7.4 - set-blocking: 2.0.0 - resolution: dc59bee85f64f00ed424efb2af0783df25d1c0b5 - /num2fraction/1.2.2: 6f682b6a027a4e9ddfa4564cd2589d1d4e669ede - /number-is-nan/1.0.1: 097b602b53422a522c1afb8790318336941a011d - /oauth-sign/0.8.2: 46a6ab7f0aead8deae9ec0565780b7d4efeb9d43 - /obj-props/1.1.0: 626313faa442befd4a44e9a02c3cb6bde937b511 - /object-assign/2.1.1: 43c36e5d569ff8e4816c4efa8be02d26967c18aa - /object-assign/3.0.0: 9bedd5ca0897949bca47e7ff408062d549f587f2 - /object-assign/4.1.0: 7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0 - /object-assign/4.1.1: 2109adc7965887cfc05cbbd442cac8bfbb360863 - /object-keys/1.0.11: c54601778ad560f1142ce0e01bcca8b56d13426d - /object.omit/2.0.1: - dependencies: - for-own: 0.1.5 - is-extendable: 0.1.1 - resolution: 1a9c744829f39dbb858c76ca3579ae2a54ebd1fa - /observable-to-promise/0.4.0: - dependencies: - is-observable: 0.2.0 - symbol-observable: 0.2.4 - resolution: 28afe71645308f2d41d71f47ad3fece1a377e52b - /on-finished/2.3.0: - dependencies: - ee-first: 1.1.1 - resolution: 20f1336481b083cd75337992a16971aa2d906947 - /once/1.3.3: - dependencies: - wrappy: 1.0.2 - resolution: b2e261557ce4c314ec8304f3fa82663e4297ca20 - /once/1.4.0: - dependencies: - wrappy: 1.0.2 - resolution: 583b1aa775961d4b113ac17d9c50baef9dd76bd1 - /onetime/1.1.0: a1f7838f8314c516f05ecefcbc4ccfe04b4ed789 - /onetime/2.0.1: - dependencies: - mimic-fn: 1.1.0 - resolution: 067428230fd67443b2794b22bba528b6867962d4 - /option-chain/0.1.1: - dependencies: - object-assign: 4.1.1 - resolution: e9b811e006f1c0f54802f28295bfc8970f8dcfbd - /optionator/0.8.2: - dependencies: - deep-is: 0.1.3 - fast-levenshtein: 2.0.6 - levn: 0.3.0 - prelude-ls: 1.1.2 - type-check: 0.3.2 - wordwrap: 1.0.0 - resolution: 364c5e409d3f4d6301d6c0b4c05bba50180aeb64 - /optipng-bin/3.1.4: - dependencies: - bin-build: 2.2.0 - bin-wrapper: 3.0.2 - logalot: 2.1.0 - resolution: 95d34f2c488704f6fd70606bfea0c659f1d95d84 - /ora/0.2.3: - dependencies: - chalk: 1.1.3 - cli-cursor: 1.0.2 - cli-spinners: 0.1.2 - object-assign: 4.1.1 - resolution: 37527d220adcd53c39b73571d754156d5db657a4 - /orchestrator/0.3.8: - dependencies: - end-of-stream: 0.1.5 - sequencify: 0.0.7 - stream-consume: 0.1.0 - resolution: 14e7e9e2764f7315fbac184e506c7aa6df94ad7e - /ordered-read-streams/0.1.0: fd565a9af8eb4473ba69b6ed8a34352cb552f126 - /ordered-read-streams/0.3.0: - dependencies: - is-stream: 1.1.0 - readable-stream: 2.2.9 - resolution: 7137e69b3298bb342247a1bbee3881c80e2fd78b - /os-browserify/0.1.2: 49ca0293e0b19590a5f5de10c7f265a617d8fe54 - /os-filter-obj/1.0.3: 5915330d90eced557d2d938a31c6dd214d9c63ad - /os-homedir/1.0.2: ffbc4988336e0e833de0c168c7ef152121aa7fb3 - /os-locale/1.4.0: - dependencies: - lcid: 1.0.0 - resolution: 20f9f17ae29ed345e8bde583b13d2009803c14d9 - /os-tmpdir/1.0.2: bbe67406c79aa85c5cfec766fe5734555dfa1274 - /osenv/0.1.4: - dependencies: - os-homedir: 1.0.2 - os-tmpdir: 1.0.2 - resolution: 42fe6d5953df06c8064be6f176c3d05aaaa34644 - /outpipe/1.1.1: - dependencies: - shell-quote: 1.6.1 - resolution: 50cf8616365e87e031e29a5ec9339a3da4725fa2 - /p-finally/1.0.0: 3fbcfb15b899a44123b34b6dcc18b724336a2cae - /p-limit/1.1.0: b07ff2d9a5d88bec806035895a2bab66a27988bc - /p-locate/2.0.0: - dependencies: - p-limit: 1.1.0 - resolution: 20a0103b222a70c8fd39cc2e580680f3dde5ec43 - /p-map/1.1.1: 05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a - /package-hash/1.2.0: - dependencies: - md5-hex: 1.3.0 - resolution: 003e56cd57b736a6ed6114cc2b81542672770e44 - /package-json/2.4.0: - dependencies: - got: 5.7.1 - registry-auth-token: 3.3.1 - registry-url: 3.1.0 - semver: 5.3.0 - resolution: 0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb - /package-json/4.0.1: - dependencies: - got: 6.7.1 - registry-auth-token: 3.3.1 - registry-url: 3.1.0 - semver: 5.3.0 - resolution: 8869a0401253661c4c4ca3da6c2121ed555f5eed - /pako/0.2.9: f3f7522f4ef782348da8161bad9ecfd51bf83a75 - /param-case/2.1.1: - dependencies: - no-case: 2.3.1 - resolution: df94fd8cf6531ecf75e6bef9a0858fbc72be2247 - /parents/1.0.1: - dependencies: - path-platform: 0.11.15 - resolution: fedd4d2bf193a77745fe71e371d73c3307d9c751 - /parse-asn1/5.1.0: - dependencies: - asn1.js: 4.9.1 - browserify-aes: 1.0.6 - create-hash: 1.1.2 - evp_bytestokey: 1.0.0 - pbkdf2: 3.0.9 - resolution: 37c4f9b7ed3ab65c74817b5f2480937fbf97c712 - /parse-filepath/1.0.1: - dependencies: - is-absolute: 0.2.6 - map-cache: 0.2.2 - path-root: 0.1.1 - resolution: 159d6155d43904d16c10ef698911da1e91969b73 - /parse-glob/3.0.4: - dependencies: - glob-base: 0.3.0 - is-dotfile: 1.0.2 - is-extglob: 1.0.0 - is-glob: 2.0.1 - resolution: b2c376cfb11f35513badd173ef0bb6e3a388391c - /parse-json/2.2.0: - dependencies: - error-ex: 1.3.1 - resolution: f480f40434ef80741f8469099f8dea18f55a4dc9 - /parse-ms/0.1.2: dd3fa25ed6c2efc7bdde12ad9b46c163aa29224e - /parse-ms/1.0.1: 56346d4749d78f23430ca0c713850aef91aa361d - /parse-passwd/1.0.0: 6d5b934a456993b23d37f40a382d6f1666a8e5c6 - /parseurl/1.3.1: c8ab8c9223ba34888aa64a297b28853bec18da56 - /path-browserify/0.0.0: a0b870729aae214005b7d5032ec2cbbb0fb4451a - /path-dirname/1.0.2: cc33d24d525e099a5388c0336c6e32b9160609e0 - /path-exists/2.1.0: - dependencies: - pinkie-promise: 2.0.1 - resolution: 0feb6c64f0fc518d9a754dd5efb62c7022761f4b - /path-exists/3.0.0: ce0ebeaa5f78cb18925ea7d810d7b59b010fd515 - /path-is-absolute/1.0.1: 174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f - /path-is-inside/1.0.2: 365417dede44430d1c11af61027facf074bdfc53 - /path-key/1.0.0: 5d53d578019646c0d68800db4e146e6bdc2ac7af - /path-key/2.0.1: 411cadb574c5a140d3a4b1910d40d80cc9f40b40 - /path-parse/1.0.5: 3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1 - /path-platform/0.11.15: e864217f74c36850f0852b78dc7bf7d4a5721bf2 - /path-root-regex/0.1.2: bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d - /path-root/0.1.1: - dependencies: - path-root-regex: 0.1.2 - resolution: 9a4a6814cac1c0cd73360a95f32083c8ea4745b7 - /path-to-regexp/1.7.0: - dependencies: - isarray: 0.0.1 - resolution: 59fde0f435badacba103a84e9d3bc64e96b9937d - /path-type/1.1.0: - dependencies: - graceful-fs: 4.1.11 - pify: 2.3.0 - pinkie-promise: 2.0.1 - resolution: 59c44f7ee491da704da415da5a4070ba4f8fe441 - /path-type/2.0.0: - dependencies: - pify: 2.3.0 - resolution: f012ccb8415b7096fc2daa1054c3d72389594c73 - /pause-stream/0.0.11: - dependencies: - through: 2.3.8 - resolution: fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445 - /pbkdf2/3.0.9: - dependencies: - create-hmac: 1.1.4 - resolution: f2c4b25a600058b3c3773c086c37dbbee1ffe693 - /pend/1.2.0: 7a57eb550a6783f9115331fcf4663d5c8e007a50 - /performance-now/0.2.0: 33ef30c5c77d4ea21c5a53869d91b56d8f2555e5 - /pify/2.3.0: ed141a6ac043a849ea588498e7dca8b15330e90c - /pinkie-promise/1.0.0: - dependencies: - pinkie: 1.0.0 - resolution: d1da67f5482563bb7cf57f286ae2822ecfbf3670 - /pinkie-promise/2.0.1: - dependencies: - pinkie: 2.0.4 - resolution: 2135d6dfa7a358c069ac9b178776288228450ffa - /pinkie/1.0.0: 5a47f28ba1015d0201bda7bf0f358e47bec8c7e4 - /pinkie/2.0.4: 72556b80cfa0d48a974e80e77248e80ed4f7f870 - /pkg-conf/2.0.0: - dependencies: - find-up: 2.1.0 - load-json-file: 2.0.0 - resolution: 071c87650403bccfb9c627f58751bfe47c067279 - /pkg-dir/1.0.0: - dependencies: - find-up: 1.1.2 - resolution: 7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4 - /pkg-up/1.0.0: - dependencies: - find-up: 1.1.2 - resolution: 3e08fb461525c4421624a33b9f7e6d0af5b05a26 - /plur/1.0.0: db85c6814f5e5e5a3b49efc28d604fec62975156 - /plur/2.1.2: - dependencies: - irregular-plurals: 1.2.0 - resolution: 7482452c1a0f508e3e344eaec312c91c29dc655a - /pluralize/1.2.1: d1a21483fd22bb41e58a12fa3421823140897c45 - /pngquant-bin/3.1.1: - dependencies: - bin-build: 2.2.0 - bin-wrapper: 3.0.2 - logalot: 2.1.0 - resolution: d124d98a75a9487f40c1640b4dbfcbb2bd5a1fd1 - /postcss-calc/5.3.1: - dependencies: - postcss: 5.2.17 - postcss-message-helpers: 2.0.0 - reduce-css-calc: 1.3.0 - resolution: 77bae7ca928ad85716e2fda42f261bf7c1d65b5e - /postcss-colormin/2.2.2: - dependencies: - colormin: 1.1.2 - postcss: 5.2.17 - postcss-value-parser: 3.3.0 - resolution: 6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b - /postcss-convert-values/2.6.1: - dependencies: - postcss: 5.2.17 - postcss-value-parser: 3.3.0 - resolution: bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d - /postcss-discard-comments/2.0.4: - dependencies: - postcss: 5.2.17 - resolution: befe89fafd5b3dace5ccce51b76b81514be00e3d - /postcss-discard-duplicates/2.1.0: - dependencies: - postcss: 5.2.17 - resolution: b9abf27b88ac188158a5eb12abcae20263b91932 - /postcss-discard-empty/2.1.0: - dependencies: - postcss: 5.2.17 - resolution: d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5 - /postcss-discard-overridden/0.1.1: - dependencies: - postcss: 5.2.17 - resolution: 8b1eaf554f686fb288cd874c55667b0aa3668d58 - /postcss-discard-unused/2.2.3: - dependencies: - postcss: 5.2.17 - uniqs: 2.0.0 - resolution: bce30b2cc591ffc634322b5fb3464b6d934f4433 - /postcss-filter-plugins/2.0.2: - dependencies: - postcss: 5.2.17 - uniqid: 4.1.1 - resolution: 6d85862534d735ac420e4a85806e1f5d4286d84c - /postcss-load-config/1.2.0: - dependencies: - cosmiconfig: 2.1.3 - object-assign: 4.1.1 - postcss-load-options: 1.2.0 - postcss-load-plugins: 2.3.0 - resolution: 539e9afc9ddc8620121ebf9d8c3673e0ce50d28a - /postcss-load-options/1.2.0: - dependencies: - cosmiconfig: 2.1.3 - object-assign: 4.1.1 - resolution: b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c - /postcss-load-plugins/2.3.0: - dependencies: - cosmiconfig: 2.1.3 - object-assign: 4.1.1 - resolution: 745768116599aca2f009fad426b00175049d8d92 - /postcss-merge-idents/2.1.7: - dependencies: - has: 1.0.1 - postcss: 5.2.17 - postcss-value-parser: 3.3.0 - resolution: 4c5530313c08e1d5b3bbf3d2bbc747e278eea270 - /postcss-merge-longhand/2.0.2: - dependencies: - postcss: 5.2.17 - resolution: 23d90cd127b0a77994915332739034a1a4f3d658 - /postcss-merge-rules/2.1.2: - dependencies: - browserslist: 1.7.7 - caniuse-api: 1.6.1 - postcss: 5.2.17 - postcss-selector-parser: 2.2.3 - vendors: 1.0.1 - resolution: d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721 - /postcss-message-helpers/2.0.0: a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e - /postcss-minify-font-values/1.0.5: - dependencies: - object-assign: 4.1.1 - postcss: 5.2.17 - postcss-value-parser: 3.3.0 - resolution: 4b58edb56641eba7c8474ab3526cafd7bbdecb69 - /postcss-minify-gradients/1.0.5: - dependencies: - postcss: 5.2.17 - postcss-value-parser: 3.3.0 - resolution: 5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1 - /postcss-minify-params/1.2.2: - dependencies: - alphanum-sort: 1.0.2 - postcss: 5.2.17 - postcss-value-parser: 3.3.0 - uniqs: 2.0.0 - resolution: ad2ce071373b943b3d930a3fa59a358c28d6f1f3 - /postcss-minify-selectors/2.1.1: - dependencies: - alphanum-sort: 1.0.2 - has: 1.0.1 - postcss: 5.2.17 - postcss-selector-parser: 2.2.3 - resolution: b2c6a98c0072cf91b932d1a496508114311735bf - /postcss-normalize-charset/1.1.1: - dependencies: - postcss: 5.2.17 - resolution: ef9ee71212d7fe759c78ed162f61ed62b5cb93f1 - /postcss-normalize-url/3.0.8: - dependencies: - is-absolute-url: 2.1.0 - normalize-url: 1.9.1 - postcss: 5.2.17 - postcss-value-parser: 3.3.0 - resolution: 108f74b3f2fcdaf891a2ffa3ea4592279fc78222 - /postcss-ordered-values/2.2.3: - dependencies: - postcss: 5.2.17 - postcss-value-parser: 3.3.0 - resolution: eec6c2a67b6c412a8db2042e77fe8da43f95c11d - /postcss-reduce-idents/2.4.0: - dependencies: - postcss: 5.2.17 - postcss-value-parser: 3.3.0 - resolution: c2c6d20cc958284f6abfbe63f7609bf409059ad3 - /postcss-reduce-initial/1.0.1: - dependencies: - postcss: 5.2.17 - resolution: 68f80695f045d08263a879ad240df8dd64f644ea - /postcss-reduce-transforms/1.0.4: - dependencies: - has: 1.0.1 - postcss: 5.2.17 - postcss-value-parser: 3.3.0 - resolution: ff76f4d8212437b31c298a42d2e1444025771ae1 - /postcss-selector-parser/2.2.3: - dependencies: - flatten: 1.0.2 - indexes-of: 1.0.1 - uniq: 1.0.1 - resolution: f9437788606c3c9acee16ffe8d8b16297f27bb90 - /postcss-svgo/2.1.6: - dependencies: - is-svg: 2.1.0 - postcss: 5.2.17 - postcss-value-parser: 3.3.0 - svgo: 0.7.2 - resolution: b6df18aa613b666e133f08adb5219c2684ac108d - /postcss-unique-selectors/2.0.2: - dependencies: - alphanum-sort: 1.0.2 - postcss: 5.2.17 - uniqs: 2.0.0 - resolution: 981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d - /postcss-value-parser/3.3.0: 87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15 - /postcss-zindex/2.2.0: - dependencies: - has: 1.0.1 - postcss: 5.2.17 - uniqs: 2.0.0 - resolution: d2109ddc055b91af67fc4cb3b025946639d2af22 - /postcss/5.2.17: - dependencies: - chalk: 1.1.3 - js-base64: 2.1.9 - source-map: 0.5.6 - supports-color: 3.2.3 - resolution: cf4f597b864d65c8a492b2eabe9d706c879c388b - /prelude-ls/1.1.2: 21932a549f5e52ffd9a827f570e04be62a97da54 - /prepend-http/1.0.4: d4f4562b0ce3696e41ac52d0e002e57a635dc6dc - /preserve/0.2.0: 815ed1f6ebc65926f865b310c0713bcb3315ce4b - /pretty-bytes/4.0.2: b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9 - /pretty-format/18.1.0: - dependencies: - ansi-styles: 2.2.1 - resolution: fb65a86f7a7f9194963eee91865c1bcf1039e284 - /pretty-hrtime/1.0.3: b7e3ea42435a4c9b2759d99e0f201eb195802ee1 - /pretty-ms/0.2.2: - dependencies: - parse-ms: 0.1.2 - resolution: da879a682ff33a37011046f13d627f67c73b84f6 - /pretty-ms/2.1.0: - dependencies: - is-finite: 1.0.2 - parse-ms: 1.0.1 - plur: 1.0.0 - resolution: 4257c256df3fb0b451d6affaab021884126981dc - /private/0.1.7: 68ce5e8a1ef0a23bb570cc28537b5332aba63ef1 - /process-nextick-args/1.0.7: 150e20b756590ad3f91093f25a4f2ad8bff30ba3 - /process/0.11.10: 7332300e840161bda3e69a1d1d91a7d4bc16f182 - /progress/1.1.8: e260c78f6161cdd9b0e56cc3e0a85de17c7a57be - /proto-props/0.2.1: 5e01dc2675a0de9abfa76e799dfa334d6f483f4b - /pseudomap/1.0.2: f052a28da70e618917ef0a8ac34c1ae5a68286b3 - /public-encrypt/4.0.0: - dependencies: - bn.js: 4.11.6 - browserify-rsa: 4.0.1 - create-hash: 1.1.2 - parse-asn1: 5.1.0 - randombytes: 2.0.3 - resolution: 39f699f3a46560dd5ebacbca693caf7c65c18cc6 - /punycode/1.3.2: 9653a036fb7c1ee42342f2325cceefea3926c48d - /punycode/1.4.1: c0d5a63b2718800ad8e1eb0fa5269c84dd41845e - /q/1.5.0: dd01bac9d06d30e6f219aecb8253ee9ebdc308f1 - /qs/2.2.5: 1088abaf9dcc0ae5ae45b709e6c6b5888b23923c - /qs/5.2.0: a9f31142af468cb72b25b30136ba2456834916be - /qs/6.4.0: 13e26d28ad6b0ffaa91312cd3bf708ed351e7233 - /query-string/4.3.4: - dependencies: - object-assign: 4.1.1 - strict-uri-encode: 1.1.0 - resolution: bbb693b9ca915c232515b228b1a02b609043dbeb - /querystring-es3/0.2.1: 9ec61f79049875707d69414596fd907a4d711e73 - /querystring/0.2.0: b209849203bb25df820da756e747005878521620 - /randomatic/1.1.6: - dependencies: - is-number: 2.1.0 - kind-of: 3.2.0 - resolution: 110dcabff397e9dcff7c0789ccc0a49adf1ec5bb - /randombytes/2.0.3: 674c99760901c3c4112771a31e521dc349cc09ec - /raw-body/2.1.7: - dependencies: - bytes: 2.4.0 - iconv-lite: 0.4.13 - unpipe: 1.0.0 - resolution: adfeace2e4fb3098058014d08c072dcc59758774 - /rc/1.2.1: - dependencies: - deep-extend: 0.4.1 - ini: 1.3.4 - minimist: 1.2.0 - strip-json-comments: 2.0.1 - resolution: 2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95 - /read-all-stream/3.1.0: - dependencies: - pinkie-promise: 2.0.1 - readable-stream: 2.2.9 - resolution: 35c3e177f2078ef789ee4bfafa4373074eaef4fa - /read-only-stream/2.0.0: - dependencies: - readable-stream: 2.2.9 - resolution: 2724fd6a8113d73764ac288d4386270c1dbf17f0 - /read-pkg-up/1.0.1: - dependencies: - find-up: 1.1.2 - read-pkg: 1.1.0 - resolution: 9d63c13276c065918d57f002a57f40a1b643fb02 - /read-pkg-up/2.0.0: - dependencies: - find-up: 2.1.0 - read-pkg: 2.0.0 - resolution: 6b72a8048984e0c41e79510fd5e9fa99b3b549be - /read-pkg/1.1.0: - dependencies: - load-json-file: 1.1.0 - normalize-package-data: 2.3.8 - path-type: 1.1.0 - resolution: f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28 - /read-pkg/2.0.0: - dependencies: - load-json-file: 2.0.0 - normalize-package-data: 2.3.8 - path-type: 2.0.0 - resolution: 8ef1c0623c6a6db0dc6713c4bfac46332b2368f8 - /readable-stream/1.0.34: - dependencies: - core-util-is: 1.0.2 - inherits: 2.0.3 - isarray: 0.0.1 - string_decoder: 0.10.31 - resolution: 125820e34bc842d2f2aaafafe4c2916ee32c157c - /readable-stream/1.1.14: - dependencies: - core-util-is: 1.0.2 - inherits: 2.0.3 - isarray: 0.0.1 - string_decoder: 0.10.31 - resolution: 7cf4c54ef648e3813084c636dd2079e166c081d9 - /readable-stream/2.0.6: - dependencies: - core-util-is: 1.0.2 - inherits: 2.0.3 - isarray: 1.0.0 - process-nextick-args: 1.0.7 - string_decoder: 0.10.31 - util-deprecate: 1.0.2 - resolution: 8f90341e68a53ccc928788dacfcd11b36eb9b78e - /readable-stream/2.2.9: - dependencies: - buffer-shims: 1.0.0 - core-util-is: 1.0.2 - inherits: 2.0.3 - isarray: 1.0.0 - process-nextick-args: 1.0.7 - string_decoder: 1.0.0 - util-deprecate: 1.0.2 - resolution: cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8 - /readdirp/2.1.0: - dependencies: - graceful-fs: 4.1.11 - minimatch: 3.0.3 - readable-stream: 2.2.9 - set-immediate-shim: 1.0.1 - resolution: 4ed0ad060df3073300c48440373f72d1cc642d78 - /readline2/1.0.1: - dependencies: - code-point-at: 1.1.0 - is-fullwidth-code-point: 1.0.0 - mute-stream: 0.0.5 - resolution: 41059608ffc154757b715d9989d199ffbf372e35 - /recast/0.10.43: - dependencies: - ast-types: 0.8.15 - esprima-fb: 15001.1001.0-dev-harmony-fb - private: 0.1.7 - source-map: 0.5.6 - resolution: b95d50f6d60761a5f6252e15d80678168491ce7f - /rechoir/0.6.2: - dependencies: - resolve: 1.3.3 - resolution: 85204b54dba82d5742e28c96756ef43af50e3384 - /redent/1.0.0: - dependencies: - indent-string: 2.1.0 - strip-indent: 1.0.1 - resolution: cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde - /reduce-css-calc/1.3.0: - dependencies: - balanced-match: 0.4.2 - math-expression-evaluator: 1.2.17 - reduce-function-call: 1.0.2 - resolution: 747c914e049614a4c9cfbba629871ad1d2927716 - /reduce-function-call/1.0.2: - dependencies: - balanced-match: 0.4.2 - resolution: 5a200bf92e0e37751752fe45b0ab330fd4b6be99 - /regenerate/1.3.2: d1941c67bad437e1be76433add5b385f95b19260 - /regenerator-runtime/0.10.5: 336c3efc1220adcedda2c9fab67b5a7955a33658 - /regenerator-transform/0.9.11: - dependencies: - babel-runtime: 6.23.0 - babel-types: 6.24.1 - private: 0.1.7 - resolution: 3a7d067520cb7b7176769eb5ff868691befe1283 - /regex-cache/0.4.3: - dependencies: - is-equal-shallow: 0.1.3 - is-primitive: 2.0.0 - resolution: 9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145 - /regexpu-core/2.0.0: - dependencies: - regenerate: 1.3.2 - regjsgen: 0.2.0 - regjsparser: 0.1.5 - resolution: 49d038837b8dcf8bfa5b9a42139938e6ea2ae240 - /registry-auth-token/3.3.1: - dependencies: - rc: 1.2.1 - safe-buffer: 5.0.1 - resolution: fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006 - /registry-url/3.1.0: - dependencies: - rc: 1.2.1 - resolution: 3d4ef870f73dde1d77f0cf9a381432444e174942 - /regjsgen/0.2.0: 6c016adeac554f75823fe37ac05b92d5a4edb1f7 - /regjsparser/0.1.5: - dependencies: - jsesc: 0.5.0 - resolution: 7ee8f84dc6fa792d3fd0ae228d24bd949ead205c - /relateurl/0.2.7: 54dbf377e51440aca90a4cd274600d3ff2d888a9 - /remove-trailing-separator/1.0.1: 615ebb96af559552d4bf4057c8436d486ab63cc4 - /repeat-element/1.1.2: ef089a178d1483baae4d93eb98b4f9e4e11d990a - /repeat-string/1.6.1: 8dcae470e1c88abc2d600fff4a776286da75e637 - /repeating/2.0.1: - dependencies: - is-finite: 1.0.2 - resolution: 5214c53a926d3552707527fbab415dbc08d06dda - /replace-ext/0.0.1: 29bbd92078a739f0bcce2b4ee41e837953522924 - /req-all/1.0.0: d128569451c340b432409c656cf166260cd2628d - /request/2.81.0: - dependencies: - aws-sign2: 0.6.0 - aws4: 1.6.0 - caseless: 0.12.0 - combined-stream: 1.0.5 - extend: 3.0.1 - forever-agent: 0.6.1 - form-data: 2.1.4 - har-validator: 4.2.1 - hawk: 3.1.3 - http-signature: 1.1.1 - is-typedarray: 1.0.0 - isstream: 0.1.2 - json-stringify-safe: 5.0.1 - mime-types: 2.1.15 - oauth-sign: 0.8.2 - performance-now: 0.2.0 - qs: 6.4.0 - safe-buffer: 5.0.1 - stringstream: 0.0.5 - tough-cookie: 2.3.2 - tunnel-agent: 0.6.0 - uuid: 3.0.1 - resolution: c6928946a0e06c5f8d6f8a9333469ffda46298a0 - /require-directory/2.1.1: 8c64ad5fd30dab1c976e2344ffe7f792a6a6df42 - /require-from-string/1.2.1: 529c9ccef27380adfec9a2f965b649bbee636418 - /require-main-filename/1.0.1: 97f717b69d48784f5f526a6c5aa8ffdda055a4d1 - /require-precompiled/0.1.0: 5a1b52eb70ebed43eb982e974c85ab59571e56fa - /require-uncached/1.0.3: - dependencies: - caller-path: 0.1.0 - resolve-from: 1.0.1 - resolution: 4e0d56d6c9662fd31e43011c4b95aa49955421d3 - /resolve-cwd/1.0.0: - dependencies: - resolve-from: 2.0.0 - resolution: 4eaeea41ed040d1702457df64a42b2b07d246f9f - /resolve-dir/0.1.1: - dependencies: - expand-tilde: 1.2.2 - global-modules: 0.2.3 - resolution: b219259a5602fac5c5c496ad894a6e8cc430261e - /resolve-from/1.0.1: 26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226 - /resolve-from/2.0.0: 9480ab20e94ffa1d9e80a804c7ea147611966b57 - /resolve-url/0.2.1: 2c637fe77c893afd2a663fe21aa9080068e2052a - /resolve/1.1.7: 203114d82ad2c5ed9e8e0411b3932875e889e97b - /resolve/1.3.3: - dependencies: - path-parse: 1.0.5 - resolution: 655907c3469a8680dc2de3a275a8fdd69691f0e5 - /restore-cursor/1.0.1: - dependencies: - exit-hook: 1.1.1 - onetime: 1.1.0 - resolution: 34661f46886327fed2991479152252df92daa541 - /restore-cursor/2.0.0: - dependencies: - onetime: 2.0.1 - signal-exit: 3.0.2 - resolution: 9f7ee287f82fd326d4fd162923d62129eee0dfaf - /right-align/0.1.3: - dependencies: - align-text: 0.1.4 - resolution: 61339b722fe6a3515689210d24e14c96148613ef - /rimraf/2.6.1: - dependencies: - glob: 7.1.1 - resolution: c2338ec643df7a1b7fe5c54fa86f57428a55f33d - /ripemd160/1.0.1: 93a4bbd4942bc574b69a8fa57c71de10ecca7d6e - /rollup-stream/1.19.0: - dependencies: - rollup: 0.41.6 - resolution: 8ab70d3970d8ec8529f1c1d7a688d8d65f90599a - /rollup/0.41.6: - dependencies: - source-map-support: 0.4.15 - resolution: e0d05497877a398c104d816d2733a718a7a94e2a - /run-async/0.1.0: - dependencies: - once: 1.4.0 - resolution: c8ad4a5e110661e402a7d21b530e009f25f8e389 - /rx-lite/3.1.2: 19ce502ca572665f3b647b10939f97fd1615f102 - /rxjs/5.3.1: - dependencies: - symbol-observable: 1.0.4 - resolution: 9ecc9e722247e4f4490d30a878577a3740fd0cb7 - /safe-buffer/5.0.1: d263ca54696cd8a306b5ca6551e92de57918fbe7 - /sass-graph/2.2.2: - dependencies: - glob: 7.1.1 - lodash: 4.17.4 - scss-tokenizer: 0.2.1 - yargs: 6.6.0 - resolution: f4d6c95b546ea2a09d14176d0fc1a07ee2b48354 - /sax/1.2.2: fd8631a23bc7826bef5d871bdb87378c95647828 - /scss-tokenizer/0.2.1: - dependencies: - js-base64: 2.1.9 - source-map: 0.4.4 - resolution: 07c0cc577bb7ab4d08fd900185adbf4bc844141d - /seek-bzip/1.0.5: - dependencies: - commander: 2.8.1 - resolution: cfe917cb3d274bcffac792758af53173eb1fabdc - /semver-diff/2.1.0: - dependencies: - semver: 5.3.0 - resolution: 4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36 - /semver-regex/1.0.0: 92a4969065f9c70c694753d55248fc68f8f652c9 - /semver-truncate/1.1.2: - dependencies: - semver: 5.3.0 - resolution: 57f41de69707a62709a7e0104ba2117109ea47e8 - /semver/4.3.6: 300bc6e0e86374f7ba61068b5b1ecd57fc6532da - /semver/5.3.0: 9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f - /sequencify/0.0.7: 90cff19d02e07027fd767f5ead3e7b95d1e7380c - /serviceworker-cache-polyfill/4.0.0: de19ee73bef21ab3c0740a37b33db62464babdeb - /set-blocking/2.0.0: 045f9782d011ae9a6803ddd382b24392b3d890f7 - /set-immediate-shim/1.0.1: 4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61 - /sha.js/2.4.8: - dependencies: - inherits: 2.0.3 - resolution: 37068c2c476b6baf402d14a49c67f597921f634f - /shasum/1.0.2: - dependencies: - json-stable-stringify: 0.0.1 - sha.js: 2.4.8 - resolution: e7012310d8f417f4deb5712150e5678b87ae565f - /shebang-command/1.2.0: - dependencies: - shebang-regex: 1.0.0 - resolution: 44aac65b695b03398968c39f363fee5deafdf1ea - /shebang-regex/1.0.0: da42f49740c0b42db2ca9728571cb190c98efea3 - /shell-quote/1.6.1: - dependencies: - array-filter: 0.0.1 - array-map: 0.0.0 - array-reduce: 0.0.0 - jsonify: 0.0.0 - resolution: f4781949cce402697127430ea3b3c5476f481767 - /shelljs/0.7.7: - dependencies: - glob: 7.1.1 - interpret: 1.0.3 - rechoir: 0.6.2 - resolution: b2f5c77ef97148f4b4f6e22682e10bba8667cff1 - /sigmund/1.0.1: 3ff21f198cad2175f9f3b781853fd94d0d19b590 - /signal-exit/3.0.2: b5fdc08f1287ea1178628e415e25132b73646c6d - /slash/1.0.0: c41f2f6c39fc16d1cd17ad4b5d896114ae470d55 - /slice-ansi/0.0.4: edbf8903f66f7ce2f8eafd6ceed65e264c831b35 - /slide/1.1.6: 56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707 - /sntp/1.0.9: - dependencies: - hoek: 2.16.3 - resolution: 6541184cc90aeea6c6e7b35e2659082443c66198 - /sort-keys/1.1.2: - dependencies: - is-plain-obj: 1.1.0 - resolution: 441b6d4d346798f1b4e49e8920adfba0e543f9ad - /source-map-resolve/0.3.1: - dependencies: - atob: 1.1.3 - resolve-url: 0.2.1 - source-map-url: 0.3.0 - urix: 0.1.0 - resolution: 610f6122a445b8dd51535a2a71b783dfc1248761 - /source-map-support/0.4.15: - dependencies: - source-map: 0.5.6 - resolution: 03202df65c06d2bd8c7ec2362a193056fef8d3b1 - /source-map-url/0.3.0: 7ecaf13b57bcd09da8a40c5d269db33799d4aaf9 - /source-map/0.1.31: - dependencies: - amdefine: 1.0.1 - resolution: 9f704d0d69d9e138a81badf6ebb4fde33d151c61 - /source-map/0.1.43: - dependencies: - amdefine: 1.0.1 - resolution: c24bc146ca517c1471f5dacbe2571b2b7f9e3346 - /source-map/0.2.0: - dependencies: - amdefine: 1.0.1 - resolution: dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d - /source-map/0.4.4: - dependencies: - amdefine: 1.0.1 - resolution: eba4f5da9c0dc999de68032d8b4f76173652036b - /source-map/0.5.6: 75ce38f52bf0733c5a7f0c118d81334a2bb5f412 - /sparkles/1.0.0: 1acbbfb592436d10bbe8f785b7cc6f82815012c3 - /spdx-correct/1.0.2: - dependencies: - spdx-license-ids: 1.2.2 - resolution: 4b3073d933ff51f3912f03ac5519498a4150db40 - /spdx-expression-parse/1.0.4: 9bdf2f20e1f40ed447fbe273266191fced51626c - /spdx-license-ids/1.2.2: c9df7a3424594ade6bd11900d596696dc06bac57 - /split/0.3.3: - dependencies: - through: 2.3.8 - resolution: cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f - /sprintf-js/1.0.3: 04e6926f662895354f3dd015203633b857297e2c - /squeak/1.3.0: - dependencies: - chalk: 1.1.3 - console-stream: 0.1.1 - lpad-align: 1.1.0 - resolution: 33045037b64388b567674b84322a6521073916c3 - /sshpk/1.13.0: - dependencies: - asn1: 0.2.3 - assert-plus: 1.0.0 - bcrypt-pbkdf: 1.0.1 - dashdash: 1.14.1 - ecc-jsbn: 0.1.1 - getpass: 0.1.7 - jodid25519: 1.0.2 - jsbn: 0.1.1 - tweetnacl: 0.14.5 - resolution: ff2a3e4fd04497555fed97b39a0fd82fafb3a33c - /stack-utils/1.0.1: d4f33ab54e8e38778b0ca5cfd3b3afb12db68620 - /staged-git-files/0.0.4: d797e1b551ca7a639dec0237dc6eb4bb9be17d35 - /stat-mode/0.2.2: e6c80b623123d7d80cf132ce538f346289072502 - /static-eval/1.1.1: - dependencies: - escodegen: 1.8.1 - resolution: ca8130210354cf13d9a722bc7e923778457bb192 - /statuses/1.3.1: faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e - /stdout-stream/1.4.0: - dependencies: - readable-stream: 2.2.9 - resolution: a2c7c8587e54d9427ea9edb3ac3f2cd522df378b - /stream-browserify/2.0.1: - dependencies: - inherits: 2.0.3 - readable-stream: 2.2.9 - resolution: 66266ee5f9bdb9940a4e4514cafb43bb71e5c9db - /stream-combiner/0.0.4: - dependencies: - duplexer: 0.1.1 - resolution: 4d5e433c185261dde623ca3f44c586bcf5c4ad14 - /stream-combiner2/1.1.1: - dependencies: - duplexer2: 0.1.4 - readable-stream: 2.2.9 - resolution: fb4d8a1420ea362764e21ad4780397bebcb41cbe - /stream-consume/0.1.0: a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f - /stream-http/2.7.0: - dependencies: - builtin-status-codes: 3.0.0 - inherits: 2.0.3 - readable-stream: 2.2.9 - to-arraybuffer: 1.0.1 - xtend: 4.0.1 - resolution: cec1f4e3b494bc4a81b451808970f8b20b4ed5f6 - /stream-shift/1.0.0: d5c752825e5367e786f78e18e445ea223a155952 - /stream-splicer/2.0.0: - dependencies: - inherits: 2.0.3 - readable-stream: 2.2.9 - resolution: 1b63be438a133e4b671cc1935197600175910d83 - /stream-to-observable/0.1.0: 45bf1d9f2d7dc09bed81f1c307c430e68b84cffe - /strict-uri-encode/1.1.0: 279b225df1d582b1f54e65addd4352e18faa0713 - /string-width/1.0.2: - dependencies: - code-point-at: 1.1.0 - is-fullwidth-code-point: 1.0.0 - strip-ansi: 3.0.1 - resolution: 118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3 - /string-width/2.0.0: - dependencies: - is-fullwidth-code-point: 2.0.0 - strip-ansi: 3.0.1 - resolution: 635c5436cc72a6e0c387ceca278d4e2eec52687e - /string_decoder/0.10.31: 62e203bc41766c6c28c9fc84301dab1c5310fa94 - /string_decoder/1.0.0: - dependencies: - buffer-shims: 1.0.0 - resolution: f06f41157b664d86069f84bdbdc9b0d8ab281667 - /stringstream/0.0.5: 4e484cd4de5a0bbbee18e46307710a8a81621878 - /strip-ansi/0.1.1: 39e8a98d044d150660abe4a6808acf70bb7bc991 - /strip-ansi/0.3.0: - dependencies: - ansi-regex: 0.2.1 - resolution: 25f48ea22ca79187f3174a4db8759347bb126220 - /strip-ansi/3.0.1: - dependencies: - ansi-regex: 2.1.1 - resolution: 6a385fb8853d952d5ff05d0e8aaf94278dc63dcf - /strip-bom-buf/1.0.0: - dependencies: - is-utf8: 0.2.1 - resolution: 1cb45aaf57530f4caf86c7f75179d2c9a51dd572 - /strip-bom-stream/1.0.0: - dependencies: - first-chunk-stream: 1.0.0 - strip-bom: 2.0.0 - resolution: e7144398577d51a6bed0fa1994fa05f43fd988ee - /strip-bom-string/1.0.0: e5211e9224369fbb81d633a2f00044dc8cedad92 - /strip-bom/1.0.0: - dependencies: - first-chunk-stream: 1.0.0 - is-utf8: 0.2.1 - resolution: 85b8862f3844b5a6d5ec8467a93598173a36f794 - /strip-bom/2.0.0: - dependencies: - is-utf8: 0.2.1 - resolution: 6219a85616520491f35788bdbf1447a99c7e6b0e - /strip-bom/3.0.0: 2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3 - /strip-dirs/1.1.1: - dependencies: - chalk: 1.1.3 - get-stdin: 4.0.1 - is-absolute: 0.1.7 - is-natural-number: 2.1.1 - minimist: 1.2.0 - sum-up: 1.0.3 - resolution: 960bbd1287844f3975a4558aa103a8255e2456a0 - /strip-eof/1.0.0: bb43ff5598a6eb05d89b59fcd129c983313606bf - /strip-indent/1.0.1: - dependencies: - get-stdin: 4.0.1 - resolution: 0c7962a6adefa7bbd4ac366460a638552ae1a0a2 - /strip-json-comments/2.0.1: 3c531942e908c2697c0ec344858c286c7ca0a60a - /strip-outer/1.0.0: - dependencies: - escape-string-regexp: 1.0.5 - resolution: aac0ba60d2e90c5d4f275fd8869fd9a2d310ffb8 - /subarg/1.0.0: - dependencies: - minimist: 1.2.0 - resolution: f62cf17581e996b48fc965699f54c06ae268b8d2 - /sum-up/1.0.3: - dependencies: - chalk: 1.1.3 - resolution: 1c661f667057f63bcb7875aa1438bc162525156e - /supports-color/0.2.0: d92de2694eb3f67323973d7ae3d8b55b4c22190a - /supports-color/2.0.0: 535d045ce6b6363fa40117084629995e9df324c7 - /supports-color/3.2.3: - dependencies: - has-flag: 1.0.0 - resolution: 65ac0504b3954171d8a64946b2ae3cbb8a5f54f6 - /svgo/0.6.6: - dependencies: - coa: 1.0.1 - colors: 1.1.2 - csso: 2.0.0 - js-yaml: 3.6.1 - mkdirp: 0.5.1 - sax: 1.2.2 - whet.extend: 0.9.9 - resolution: b340889036f20f9b447543077d0f5573ed044c08 - /svgo/0.7.2: - dependencies: - coa: 1.0.1 - colors: 1.1.2 - csso: 2.3.2 - js-yaml: 3.7.0 - mkdirp: 0.5.1 - sax: 1.2.2 - whet.extend: 0.9.9 - resolution: 9f5772413952135c6fefbf40afe6a4faa88b4bb5 - /sw-precache/5.1.1: - dependencies: - dom-urls: 1.1.0 - es6-promise: 4.1.0 - glob: 7.1.1 - lodash.defaults: 4.2.0 - lodash.template: 4.4.0 - meow: 3.7.0 - mkdirp: 0.5.1 - pretty-bytes: 4.0.2 - sw-toolbox: 3.6.0 - update-notifier: 1.0.3 - resolution: 928720957463e55ed56777e177c4699f35ec59b6 - /sw-toolbox/3.6.0: - dependencies: - path-to-regexp: 1.7.0 - serviceworker-cache-polyfill: 4.0.0 - resolution: 26df1d1c70348658e4dea2884319149b7b3183b5 - /symbol-observable/0.2.4: 95a83db26186d6af7e7a18dbd9760a2f86d08f40 - /symbol-observable/1.0.4: 29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d - /syntax-error/1.3.0: - dependencies: - acorn: 4.0.11 - resolution: 1ed9266c4d40be75dc55bf9bb1cb77062bb96ca1 - /table/3.8.3: - dependencies: - ajv: 4.11.8 - ajv-keywords: 1.5.1 - chalk: 1.1.3 - lodash: 4.17.4 - slice-ansi: 0.0.4 - string-width: 2.0.0 - resolution: 2bbc542f0fda9861a755d3947fefd8b3f513855f - /tar-stream/1.5.2: - dependencies: - bl: 1.2.1 - end-of-stream: 1.4.0 - readable-stream: 2.2.9 - xtend: 4.0.1 - resolution: fbc6c6e83c1a19d4cb48c7d96171fc248effc7bf - /tar/2.2.1: - dependencies: - block-stream: 0.0.9 - fstream: 1.0.11 - inherits: 2.0.3 - resolution: 8e4d2a256c0e2185c6b18ad694aec968b83cb1d1 - /tempfile/1.1.1: - dependencies: - os-tmpdir: 1.0.2 - uuid: 2.0.3 - resolution: 5bcc4eaecc4ab2c707d8bc11d99ccc9a2cb287f2 - /term-size/0.1.1: - dependencies: - execa: 0.4.0 - resolution: 87360b96396cab5760963714cda0d0cbeecad9ca - /text-table/0.2.0: 7f5ee823ae805207c00af2df4a84ec3fcfa570b4 - /the-argv/1.0.0: 0084705005730dd84db755253c931ae398db9522 - /through/2.3.8: 0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5 - /through2-concurrent/1.1.1: - dependencies: - through2: 2.0.3 - resolution: 11cb4ea4c9e31bca6e4c1e6dba48d1c728c3524b - /through2-filter/2.0.0: - dependencies: - through2: 2.0.3 - xtend: 4.0.1 - resolution: 60bc55a0dacb76085db1f9dae99ab43f83d622ec - /through2/0.6.5: - dependencies: - readable-stream: 1.0.34 - xtend: 4.0.1 - resolution: 41ab9c67b29d57209071410e1d7a7a968cd3ad48 - /through2/2.0.3: - dependencies: - readable-stream: 2.2.9 - xtend: 4.0.1 - resolution: 0004569b37c7c74ba39c43f3ced78d1ad94140be - /tildify/1.2.0: - dependencies: - os-homedir: 1.0.2 - resolution: dcec03f55dca9b7aa3e5b04f21817eb56e63588a - /time-require/0.1.2: - dependencies: - chalk: 0.4.0 - date-time: 0.1.1 - pretty-ms: 0.2.2 - text-table: 0.2.0 - resolution: f9e12cb370fc2605e11404582ba54ef5ca2b2d98 - /time-stamp/1.0.1: 9f4bd23559c9365966f3302dbba2b07c6b99b151 - /timed-out/3.1.3: 95860bfcc5c76c277f8f8326fd0f5b2e20eba217 - /timed-out/4.0.1: f32eacac5a175bea25d7fab565ab3ed8741ef56f - /timers-browserify/1.4.2: - dependencies: - process: 0.11.10 - resolution: c9c58b575be8407375cb5e2462dacee74359f41d - /to-absolute-glob/0.1.1: - dependencies: - extend-shallow: 2.0.1 - resolution: 1cdfa472a9ef50c239ee66999b662ca0eb39937f - /to-arraybuffer/1.0.1: 7d229b1fcc637e466ca081180836a7aabff83f43 - /to-fast-properties/1.0.3: b83571fa4d8c25b82e231b06e3a3055de4ca1a47 - /tough-cookie/2.3.2: - dependencies: - punycode: 1.4.1 - resolution: f081f76e4c85720e6c37a5faced737150d84072a - /trim-newlines/1.0.0: 5887966bb582a4503a41eb524f7d35011815a613 - /trim-repeated/1.0.0: - dependencies: - escape-string-regexp: 1.0.5 - resolution: e3646a2ea4e891312bf7eace6cfb05380bc01c21 - /trim-right/1.0.1: cb2e1203067e0c8de1f614094b9fe45704ea6003 - /tryit/1.0.3: 393be730a9446fd1ead6da59a014308f36c289cb - /tty-browserify/0.0.0: a157ba402da24e9bf957f9aa69d524eed42901a6 - /tunnel-agent/0.4.3: 6373db76909fe570e08d73583365ed828a74eeeb - /tunnel-agent/0.6.0: - dependencies: - safe-buffer: 5.0.1 - resolution: 27a5dea06b36b04a0a9966774b290868f0fc40fd - /tweetnacl/0.14.5: 5ae68177f192d4456269d108afa93ff8743f4f64 - /type-check/0.3.2: - dependencies: - prelude-ls: 1.1.2 - resolution: 5884cab512cf1d355e3fb784f30804b2b520db72 - /type-detect/0.1.1: 0ba5ec2a885640e470ea4e8505971900dac58822 - /type-detect/1.0.0: 762217cc06db258ec48908a1298e8b95121e8ea2 - /type-is/1.6.15: - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.15 - resolution: cab10fb4909e441c82842eafe1ad646c81804410 - /typedarray/0.0.6: 867ac74e3864187b1d3d47d996a78ec5c8830777 - /uglify-js/2.8.22: - dependencies: - source-map: 0.5.6 - uglify-to-browserify: 1.0.2 - yargs: 3.10.0 - resolution: d54934778a8da14903fa29a326fb24c0ab51a1a0 - /uglify-save-license/0.4.1: 95726c17cc6fd171c3617e3bf4d8d82aa8c4cce1 - /uglify-to-browserify/1.0.2: 6e0924d6bda6b5afe349e39a6d632850a0f882b7 - /uglifyify/3.0.4: - dependencies: - convert-source-map: 1.1.3 - extend: 1.3.0 - minimatch: 3.0.3 - through: 2.3.8 - uglify-js: 2.8.22 - resolution: 487e080a5a7798880e68e90def9b06681fb13bd2 - /uid2/0.0.3: 483126e11774df2f71b8b639dcd799c376162b82 - /umd/3.0.1: 8ae556e11011f63c2596708a8837259f01b3d60e - /unc-path-regex/0.1.2: e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa - /uniq/1.0.1: b31c5ae8254844a3a8281541ce2b04b865a734ff - /uniqid/4.1.1: - dependencies: - macaddress: 0.2.8 - resolution: 89220ddf6b751ae52b5f72484863528596bb84c1 - /uniqs/2.0.0: ffede4b36b25290696e6e165d4a59edb998e6b02 - /unique-stream/1.0.0: d59a4a75427447d9aa6c91e70263f8d26a4b104b - /unique-stream/2.2.1: - dependencies: - json-stable-stringify: 1.0.1 - through2-filter: 2.0.0 - resolution: 5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369 - /unique-string/1.0.0: - dependencies: - crypto-random-string: 1.0.0 - resolution: 9e1057cca851abb93398f8b33ae187b99caec11a - /unique-temp-dir/1.0.0: - dependencies: - mkdirp: 0.5.1 - os-tmpdir: 1.0.2 - uid2: 0.0.3 - resolution: 6dce95b2681ca003eebfb304a415f9cbabcc5385 - /unpipe/1.0.0: b2bf4ee8514aae6165b4817829d21b2ef49904ec - /unreachable-branch-transform/0.3.0: - dependencies: - esmangle-evaluator: 1.0.1 - recast: 0.10.43 - through2: 0.6.5 - resolution: d99cc4c6e746d264928845b611db54b0f3474caa - /unzip-response/1.0.2: b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe - /unzip-response/2.0.1: d2f0f737d16b0615e72a6935ed04214572d56f97 - /update-notifier/1.0.3: - dependencies: - boxen: 0.6.0 - chalk: 1.1.3 - configstore: 2.1.0 - is-npm: 1.0.0 - latest-version: 2.0.0 - lazy-req: 1.1.0 - semver-diff: 2.1.0 - xdg-basedir: 2.0.0 - resolution: 8f92c515482bd6831b7c93013e70f87552c7cf5a - /update-notifier/2.1.0: - dependencies: - boxen: 1.1.0 - chalk: 1.1.3 - configstore: 3.0.0 - is-npm: 1.0.0 - latest-version: 3.1.0 - lazy-req: 2.0.0 - semver-diff: 2.1.0 - xdg-basedir: 3.0.0 - resolution: ec0c1e53536b76647a24b77cb83966d9315123d9 - /upper-case/1.1.3: f6b4501c2ec4cdd26ba78be7222961de77621598 - /urijs/1.18.10: b94463eaba59a1a796036a467bb633c667f221ab - /urix/0.1.0: da937f7a62e21fec1fd18d49b35c2935067a6c72 - /url-parse-lax/1.0.0: - dependencies: - prepend-http: 1.0.4 - resolution: 7af8f303645e9bd79a272e7a14ac68bc0609da73 - /url-regex/3.2.0: - dependencies: - ip-regex: 1.0.3 - resolution: dbad1e0c9e29e105dd0b1f09f6862f7fdb482724 - /url/0.11.0: - dependencies: - punycode: 1.3.2 - querystring: 0.2.0 - resolution: 3838e97cfc60521eb73c525a8e55bfdd9e2e28f1 - /user-home/1.1.1: 2b5be23a32b63a7c9deb8d0f28d485724a3df190 - /user-home/2.0.0: - dependencies: - os-homedir: 1.0.2 - resolution: 9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f - /util-deprecate/1.0.2: 450d4dc9fa70de732762fbd2d4a28981419a0ccf - /util/0.10.3: - dependencies: - inherits: 2.0.1 - resolution: 7afb1afe50805246489e3db7fe0ed379336ac0f9 - /uuid/2.0.3: 67e2e863797215530dff318e5bf9dcebfd47b21a - /uuid/3.0.1: 6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1 - /v8flags/2.1.1: - dependencies: - user-home: 1.1.1 - resolution: aab1a1fa30d45f88dd321148875ac02c0b55e5b4 - /vali-date/1.0.0: 1b904a59609fb328ef078138420934f6b86709a6 - /validate-npm-package-license/3.0.1: - dependencies: - spdx-correct: 1.0.2 - spdx-expression-parse: 1.0.4 - resolution: 2804babe712ad3379459acfbe24746ab2c303fbc - /vendors/1.0.1: 37ad73c8ee417fb3d580e785312307d274847f22 - /verror/1.3.6: - dependencies: - extsprintf: 1.0.2 - resolution: cff5df12946d297d2baaefaa2689e25be01c005c - /vinyl-assign/1.2.1: - dependencies: - object-assign: 4.1.1 - readable-stream: 2.2.9 - resolution: 4d198891b5515911d771a8cd9c5480a46a074a45 - /vinyl-buffer/1.0.0: - dependencies: - bl: 0.9.5 - through2: 0.6.5 - resolution: ca067ea08431d507722b1de5083f602616ebc234 - /vinyl-fs/0.3.14: - dependencies: - defaults: 1.0.3 - glob-stream: 3.1.18 - glob-watcher: 0.0.6 - graceful-fs: 3.0.11 - mkdirp: 0.5.1 - strip-bom: 1.0.0 - through2: 0.6.5 - vinyl: 0.4.6 - resolution: 9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6 - /vinyl-fs/2.4.4: - dependencies: - duplexify: 3.5.0 - glob-stream: 5.3.5 - graceful-fs: 4.1.11 - gulp-sourcemaps: 1.6.0 - is-valid-glob: 0.3.0 - lazystream: 1.0.0 - lodash.isequal: 4.5.0 - merge-stream: 1.0.1 - mkdirp: 0.5.1 - object-assign: 4.1.1 - readable-stream: 2.2.9 - strip-bom: 2.0.0 - strip-bom-stream: 1.0.0 - through2: 2.0.3 - through2-filter: 2.0.0 - vali-date: 1.0.0 - vinyl: 1.2.0 - resolution: be6ff3270cb55dfd7d3063640de81f25d7532239 - /vinyl-source-stream/1.1.0: - dependencies: - through2: 0.6.5 - vinyl: 0.4.6 - resolution: 44cbe5108205279deb0c5653c094a2887938b1ab - /vinyl-sourcemaps-apply/0.2.1: - dependencies: - source-map: 0.5.6 - resolution: ab6549d61d172c2b1b87be5c508d239c8ef87705 - /vinyl/0.4.6: - dependencies: - clone: 0.2.0 - clone-stats: 0.0.1 - resolution: 2f356c87a550a255461f36bbeb2a5ba8bf784847 - /vinyl/0.5.3: - dependencies: - clone: 1.0.2 - clone-stats: 0.0.1 - replace-ext: 0.0.1 - resolution: b0455b38fc5e0cf30d4325132e461970c2091cde - /vinyl/1.2.0: - dependencies: - clone: 1.0.2 - clone-stats: 0.0.1 - replace-ext: 0.0.1 - resolution: 5c88036cf565e5df05558bfc911f8656df218884 - /vm-browserify/0.0.4: - dependencies: - indexof: 0.0.1 - resolution: 5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73 - /ware/1.3.0: - dependencies: - wrap-fn: 0.1.5 - resolution: d1b14f39d2e2cb4ab8c4098f756fe4b164e473d4 - /watchify/3.9.0: - dependencies: - anymatch: 1.3.0 - browserify: 14.3.0 - chokidar: 1.6.1 - defined: 1.0.0 - outpipe: 1.1.1 - through2: 2.0.3 - xtend: 4.0.1 - resolution: f075fd2e8a86acde84cedba6e5c2a0bedd523d9e - /websocket-driver/0.6.5: - dependencies: - websocket-extensions: 0.1.1 - resolution: 5cb2556ceb85f4373c6d8238aa691c8454e13a36 - /websocket-extensions/0.1.1: 76899499c184b6ef754377c2dbb0cd6cb55d29e7 - /whet.extend/0.9.9: f877d5bf648c97e5aa542fadc16d6a259b9c11a1 - /which-module/1.0.0: bba63ca861948994ff307736089e3b96026c2a4f - /which/1.2.14: - dependencies: - isexe: 2.0.0 - resolution: 9a87c4378f03e827cecaf1acdf56c736c01c14e5 - /wide-align/1.1.0: - dependencies: - string-width: 1.0.2 - resolution: 40edde802a71fea1f070da3e62dcda2e7add96ad - /widest-line/1.0.0: - dependencies: - string-width: 1.0.2 - resolution: 0c09c85c2a94683d0d7eaf8ee097d564bf0e105c - /window-size/0.1.0: 5438cd2ea93b202efa3a19fe8887aee7c94f9c9d - /wordwrap/0.0.2: b79669bb42ecb409f83d583cad52ca17eaa1643f - /wordwrap/1.0.0: 27584810891456a4171c8d0226441ade90cbcaeb - /wrap-ansi/2.1.0: - dependencies: - string-width: 1.0.2 - strip-ansi: 3.0.1 - resolution: d8fc3d284dd05794fe84973caecdd1cf824fdd85 - /wrap-fn/0.1.5: - dependencies: - co: 3.1.0 - resolution: f21b6e41016ff4a7e31720dbc63a09016bdf9845 - /wrappy/1.0.2: b5243d8f3ec1aa35f1364605bc0d1036e30ab69f - /write-file-atomic/1.3.4: - dependencies: - graceful-fs: 4.1.11 - imurmurhash: 0.1.4 - slide: 1.1.6 - resolution: f807a4f0b1d9e913ae7a48112e6cc3af1991b45f - /write-json-file/2.0.0: - dependencies: - graceful-fs: 4.1.11 - mkdirp: 0.5.1 - pify: 2.3.0 - sort-keys: 1.1.2 - write-file-atomic: 1.3.4 - resolution: 0eaec981fcf9288dbc2806cbd26e06ab9bdca4ed - /write-pkg/2.1.0: - dependencies: - sort-keys: 1.1.2 - write-json-file: 2.0.0 - resolution: 353aa44c39c48c21440f5c08ce6abd46141c9c08 - /write/0.2.1: - dependencies: - mkdirp: 0.5.1 - resolution: 5fc03828e264cea3fe91455476f7a3c566cb0757 - /xdg-basedir/2.0.0: - dependencies: - os-homedir: 1.0.2 - resolution: edbc903cc385fc04523d966a335504b5504d1bd2 - /xdg-basedir/3.0.0: 496b2cc109eca8dbacfe2dc72b603c17c5870ad4 - /xml-char-classes/1.0.0: 64657848a20ffc5df583a42ad8a277b4512bbc4d - /xo-init/0.5.0: - dependencies: - arrify: 1.0.1 - execa: 0.5.1 - minimist: 1.2.0 - path-exists: 3.0.0 - read-pkg-up: 2.0.0 - the-argv: 1.0.0 - write-pkg: 2.1.0 - resolution: 8e28dec79676cc5e042fde5fd8f710e2646b0e36 - /xo/0.18.2: - dependencies: - arrify: 1.0.1 - debug: 2.6.6 - deep-assign: 1.0.0 - eslint: 3.19.0 - eslint-config-xo: 0.18.1 - eslint-formatter-pretty: 1.1.0 - eslint-plugin-ava: 4.2.0 - eslint-plugin-import: 2.2.0 - eslint-plugin-no-use-extend-native: 0.3.12 - eslint-plugin-promise: 3.5.0 - eslint-plugin-unicorn: 2.1.1 - get-stdin: 5.0.1 - globby: 6.1.0 - has-flag: 2.0.0 - ignore: 3.3.0 - lodash.isequal: 4.5.0 - meow: 3.7.0 - multimatch: 2.1.0 - path-exists: 3.0.0 - pkg-conf: 2.0.0 - resolve-cwd: 1.0.0 - resolve-from: 2.0.0 - slash: 1.0.0 - update-notifier: 2.1.0 - xo-init: 0.5.0 - resolution: 92a42eb02a4fb149dfea5518021914f5aac84ff0 - /xtend/4.0.1: a5c6d532be656e23db820efb943a1f04998d63af - /y18n/3.2.1: 6d15fba884c08679c0d77e88e7759e811e07fa41 - /yallist/2.1.2: 1c11f9218f076089a47dd512f93c6699a6a81d52 - /yargs-parser/4.2.1: - dependencies: - camelcase: 3.0.0 - resolution: 29cceac0dc4f03c6c87b4a9f217dd18c9f74871c - /yargs/3.10.0: - dependencies: - camelcase: 1.2.1 - cliui: 2.1.0 - decamelize: 1.2.0 - window-size: 0.1.0 - resolution: f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1 - /yargs/6.6.0: - dependencies: - camelcase: 3.0.0 - cliui: 3.2.0 - decamelize: 1.2.0 - get-caller-file: 1.0.2 - os-locale: 1.4.0 - read-pkg-up: 1.0.1 - require-directory: 2.1.1 - require-main-filename: 1.0.1 - set-blocking: 2.0.0 - string-width: 1.0.2 - which-module: 1.0.0 - y18n: 3.2.1 - yargs-parser: 4.2.1 - resolution: 782ec21ef403345f830a808ca3d513af56065208 - /yauzl/2.8.0: - dependencies: - buffer-crc32: 0.2.13 - fd-slicer: 1.0.1 - resolution: 79450aff22b2a9c5a41ef54e02db907ccfbf9ee2 - /zopflipng-bin/3.0.1: - dependencies: - bin-build: 2.2.0 - bin-wrapper: 3.0.2 - logalot: 2.1.0 - resolution: 988203810fd152e4ed75f4476be0cdf2aadba758 -registry: 'https://registry.npmjs.org/' -version: 2 diff --git a/src/index.html b/src/index.html index bd47c26..e15d692 100644 --- a/src/index.html +++ b/src/index.html @@ -1,12 +1,25 @@ - Practice JavaScript + Practice JavaScript + + + + + + + + + + + + +