{"bugs":{"url":"https://github.com/NekR/offline-plugin/issues"},"dist":{"shasum":"1c89bbfc79a375075a9758a6db6f2b3599584705","tarball":"https://registry.npmjs.org/offline-plugin/-/offline-plugin-5.0.0-0.tgz","fileCount":22,"integrity":"sha512-m4tr8dWJ/QN5361IIjK3nxBp8a1p4LrPZD9k65IcBRIlMgFmhO2czeZuZOJU1xHlESrc/yz/1l8C8iqj3p/rOg==","signatures":[{"sig":"MEYCIQCYRKMhEgTxXOae8M1E29QBhfskNWDFY501M+UyWIFx+AIhAO6sHN2CLYhZ7l819jCL+HiP9iXN16YHhuW6W2Zw4s/c","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":109559},"main":"lib/index.js","name":"offline-plugin","_from":".","files":["lib/","tpls/","runtime.js","runtime.d.ts"],"author":{"name":"Arthur Stolyar","email":"nekr.fabula@gmail.com"},"readme":"﻿<div align=\"center\">\n  <a href=\"https://offline-plugin.now.sh/\"><img src=\"https://rawgit.com/NekR/offline-plugin/master/logo/logo.svg\" width=\"120\" alt=\"offline-plugin logo\"></a>\n\n  <h1><code>offline-plugin</code> for webpack</h1>\n\n  <a href=\"#backers\"><img src=\"https://opencollective.com/offline-plugin/backers/badge.svg\" alt=\"backers\" /></a>\n  <a href=\"#sponsors\"><img src=\"https://opencollective.com/offline-plugin/sponsors/badge.svg\" alt=\"sponsors\" /></a>\n  <a href=\"https://www.npmjs.com/package/offline-plugin\"><img src=\"https://img.shields.io/npm/v/offline-plugin.svg?maxAge=3600&v4\" alt=\"npm\"></a>\n  <a href=\"https://www.npmjs.com/package/offline-plugin\"><img src=\"https://img.shields.io/npm/dm/offline-plugin.svg?maxAge=3600\" alt=\"npm\"></a>\n</div>\n<br>\n\nThis plugin is intended to provide an offline experience for **webpack** projects. It uses **ServiceWorker**, and **AppCache** as a fallback under the hood. Simply include this plugin in your ``webpack.config``, and the accompanying runtime in your client script, and your project will become offline ready by caching all (or some) of the webpack output assets.\n\n<div align=\"center\">\n  <strong>Demo:<br><a href=\"https://offline-plugin.now.sh/\"> Progressive Web App built with <code>offline-plugin</code></a></strong><br>\n  <div>(<a href=\"https://github.com/NekR/offline-plugin-pwa\"><i>source code</i></a>)</div>\n</div>\n\n<div align=\"center\">\n  <h1>Sponsors</h1>\n  \n  <a href=\"https://opencollective.com/offline-plugin/sponsor/0/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/0/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/1/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/1/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/2/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/2/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/3/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/3/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/4/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/4/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/5/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/5/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/6/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/6/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/7/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/7/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/8/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/8/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/9/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/9/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/10/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/10/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/11/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/11/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/12/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/12/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/13/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/13/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/14/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/14/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/15/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/15/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/16/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/16/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/17/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/17/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/18/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/18/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/19/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/19/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/20/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/20/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/21/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/21/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/22/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/22/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/23/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/23/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/24/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/24/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/25/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/25/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/26/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/26/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/27/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/27/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/28/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/28/avatar.svg\"></a>\n  <a href=\"https://opencollective.com/offline-plugin/sponsor/29/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/sponsor/29/avatar.svg\"></a>\n  \n  Become a sponsor and get your logo on our README on Github with a link to your site.<br>\n  <strong><a href=\"https://opencollective.com/offline-plugin#sponsor\">Become a sponsor</a></strong>\n</div>\n\n## Install\n\n`npm install offline-plugin [--save-dev]`\n\n## Setup\n\nFirst, instantiate the plugin with [options](docs/options.md) in your `webpack.config`:\n\n```js\n// webpack.config.js example\n\nvar OfflinePlugin = require('offline-plugin');\n\nmodule.exports = {\n  // ...\n\n  plugins: [\n    // ... other plugins\n    // it's always better if OfflinePlugin is the last plugin added\n    new OfflinePlugin()\n  ]\n  // ...\n}\n\n```\n\nThen, add the [runtime](docs/runtime.md) into your entry file (typically main entry):\n\n```js\nrequire('offline-plugin/runtime').install();\n```\n\nES6/Babel/TypeScript\n```js\nimport * as OfflinePluginRuntime from 'offline-plugin/runtime';\nOfflinePluginRuntime.install();\n```\n\n> For more details of usage with `TypeScript` see [here](docs/typescript.md)\n\n## Docs\n\n* [Caches](docs/caches.md)\n* [Update process](docs/updates.md)\n* [Cache Maps](docs/cache-maps.md)\n* [Runtime API](docs/runtime.md)\n* [Configuration options](docs/options.md)\n* [FAQ](docs/FAQ.md)\n* [Troubleshooting](docs/troubleshooting.md)\n\n## Examples\n\n* [Single Page Application](docs/examples/SPA.md)\n\n## Articles\n\n* [Easy Offline First Apps With Webpack's Offline Plugin](https://dev.to/kayis/easy-offline-first-apps-with-webpacks-offline-plugin)\n* [Handling Client Side App Updates (with Service Workers)](https://zach.codes/handling-client-side-app-updates-with-service-workers/)\n\n## Options\n\nAll options are optional and `offline-plugin` can be used without specifying them.\n\n#### [See all available options here.](docs/options.md)\n\n## Who is using `offline-plugin`\n\n### Projects\n\n* [React Boilerplate](https://github.com/mxstbr/react-boilerplate)\n* [Phenomic](https://phenomic.io)\n* [React, Universally](https://github.com/ctrlplusb/react-universally)\n\n### PWAs\n\n* [`offline-plugin` PWA](https://offline-plugin.now.sh/)\n* [Offline Kanban](https://offline-kanban.herokuapp.com) ([source](https://github.com/sarmadsangi/offline-kanban))\n* [Preact](https://preactjs.com/) ([source](https://github.com/developit/preact-www))\n* [Omroep West (_Proof of Concept_)](https://omroep-west.now.sh/)\n* [Online Board](https://onlineboard.sonnywebdesign.com/) ([source](https://github.com/andreasonny83/online-board))\n* [CodePan](https://codepan.net) ([source](https://github.com/egoist/codepan))\n\n\n_If you are using `offline-plugin`, feel free to submit a PR to add your project to this list._\n\n## Like `offline-plugin`?\n\nSupport it by giving [feedback](https://github.com/NekR/offline-plugin/issues), [contributing](CONTIBUTING.md), becoming a [backer/sponsor](https://opencollective.com/offline-plugin) or just by 🌟 starring the project!\n\n\n## Backers\n\nSupport us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/offline-plugin#backer)]\n\n<a href=\"https://opencollective.com/offline-plugin/backer/0/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/0/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/1/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/1/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/2/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/2/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/3/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/3/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/4/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/4/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/5/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/5/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/6/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/6/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/7/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/7/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/8/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/8/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/9/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/9/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/10/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/10/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/11/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/11/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/12/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/12/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/13/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/13/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/14/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/14/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/15/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/15/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/16/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/16/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/17/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/17/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/18/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/18/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/19/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/19/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/20/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/20/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/21/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/21/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/22/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/22/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/23/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/23/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/24/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/24/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/25/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/25/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/26/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/26/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/27/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/27/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/28/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/28/avatar.svg\"></a>\n<a href=\"https://opencollective.com/offline-plugin/backer/29/website\" target=\"_blank\"><img src=\"https://opencollective.com/offline-plugin/backer/29/avatar.svg\"></a>\n\n## Contribution\n\nSee [CONTRIBUTING](CONTRIBUTING.md)\n\n## License\n\n[MIT](LICENSE.md)  \n[Logo](logo/LICENSE.md)\n\n## CHANGELOG\n\n[CHANGELOG](CHANGELOG.md)\n","_shasum":"1c89bbfc79a375075a9758a6db6f2b3599584705","gitHead":"55d2e3e704ec05cf35209daef04a666b9961633c","license":"MIT","scripts":{"tag":"git push && git push --tags","test":"node tests/legacy/run && eslint -c configs/eslint.tests.json 'tests/legacy/**.js'","build":"babel src/ -d lib/","watch":"npm run build -- --watch","test:ci_all":"npm run test:ci_fixtures && npm run test:ci_browser","publish:next":"npm publish --tag=next","test:browser":"node tests/run-browser-tests.js","publish:latest":"npm publish","test:ci_browser":"npm run install:browser-tests && npm run test:browser","test:ci_fixtures":"npm run test","install:build-deps":"node build/install-build-deps.js","release:next:major":"npm --no-git-tag-version version premajor && npm run publish:next","release:next:minor":"npm --no-git-tag-version version preminor && npm run publish:next","release:next:patch":"npm --no-git-tag-version version prepatch && npm run publish:next","release:next:update":"npm --no-git-tag-version version prerelease && npm run publish:next","release:latest:major":"npm version major && npm run tag && npm run publish:latest","release:latest:minor":"npm version minor && npm run tag && npm run publish:latest","release:latest:patch":"npm version patch && npm run tag && npm run publish:latest","install:browser-tests":"node build/install-browser-tests.js"},"_npmUser":{"name":"nekr","email":"nekr.fabula@gmail.com"},"homepage":"https://github.com/NekR/offline-plugin","keywords":["webpack","plugin","offline","cache","caching","storage","service-worker","serviceworker","appcache","application cache","pwa","progressive web apps","app-shell","appshell"],"collective":{"url":"https://opencollective.com/offline-plugin","logo":"https://opencollective.com/offline-plugin/logo.txt?variant=binary&reverse=true","type":"opencollective"},"repository":{"url":"git+https://github.com/NekR/offline-plugin.git","type":"git"},"_npmVersion":"3.10.10","description":"offline-plugin for webpack","directories":{},"maintainers":[{"name":"nekr","email":"nekr.fabula@gmail.com"}],"_nodeVersion":"8.9.0","dependencies":{"ejs":"^2.3.4","slash":"^1.0.0","minimatch":"^3.0.3","deep-extend":"^0.4.0","loader-utils":"0.2.x"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"del":"^2.2.2","diff":"^3.0.1","glob":"^7.1.2","chalk":"^1.1.3","mocha":"^4.0.1","eslint":"^3.14.1","express":"^4.16.2","webpack":"4.1.0","dir-compare":"^1.1.0","cli-highlight":"^1.1.4","on-build-webpack":"^0.1.0","copy-webpack-plugin":"^4.2.0"},"buildDependencies":{"babel":"^5.8.23"},"_npmOperationalInternal":{"tmp":"tmp/offline-plugin_5.0.0-0_1520607662138_0.04271249659900245","host":"s3://npm-registry-packages"},"testsBrowserDependencies":{"puppeteer":"^1.1.1"},"_id":"offline-plugin@5.0.0-0","version":"5.0.0-0"}