{"_id":"@afspeirs/service-worker","_rev":"9-a51679122506658bc2def50cb1446c7d","name":"@afspeirs/service-worker","dist-tags":{"latest":"1.1.2"},"versions":{"1.0.0":{"name":"@afspeirs/service-worker","version":"1.0.0","author":{"name":"AFSpeirs"},"license":"ISC","_id":"@afspeirs/service-worker@1.0.0","maintainers":[{"name":"afspeirs","email":"andy@speirs.dev"}],"dist":{"shasum":"fb2b94e9f89bbcdab99ca1ce7e083ee7c6a3e63b","tarball":"https://registry.npmjs.org/@afspeirs/service-worker/-/service-worker-1.0.0.tgz","fileCount":6,"integrity":"sha512-zzycoFcgBeBBQRderGAtFx84E6TfTyNIQyNijhizqj9q3jKxqBr9MmDJcxH5qf/jBstsptkdi9dZ/HCd4JyyGg==","signatures":[{"sig":"MEYCIQCL9AD9H1gWRR7ad8QUPSHw7cG7Y+u1CXeh5RVvIlJM9wIhALu0cNebb9ytmEfzkfPeqCjfp6SB62TRDuTZqcVV1wkJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14197},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"048967b577aaf4bcd304890a2f2322e9d079c33f","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsup"},"_npmUser":{"name":"afspeirs","email":"andy@speirs.dev"},"_npmVersion":"9.6.7","description":"","directories":{},"_nodeVersion":"18.17.0","dependencies":{"workbox-window":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","typescript":"^5.3.3"},"peerDependencies":{"workbox-cli":"^7.0.0"},"peerDependenciesMeta":{"workbox-cli":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/service-worker_1.0.0_1708992149954_0.847216343015029","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@afspeirs/service-worker","version":"1.0.1","author":{"name":"AFSpeirs"},"license":"ISC","_id":"@afspeirs/service-worker@1.0.1","maintainers":[{"name":"afspeirs","email":"andy@speirs.dev"}],"dist":{"shasum":"54f6a8822612adb71f2a6fac8ba982b69231b2e8","tarball":"https://registry.npmjs.org/@afspeirs/service-worker/-/service-worker-1.0.1.tgz","fileCount":7,"integrity":"sha512-/d+PI2nyiyF7BMREd24O5R2QxTxOQIr/4a7zmNVlTXmva12uFqeeHqGSPl3CJSDnJBBmYunFF4Jil7bX7lIH9w==","signatures":[{"sig":"MEQCIGEpNsCPy37Dd27ZQIEjKXKoOT30RrgthvtBCh7PANtiAiAM9nHi67cDG5PgKDm8/eKtdFJOD0Gf+ummAMUamNmRIw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8535},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"3189a075b4376592b3b367865bb68554aa3a35b4","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsup"},"_npmUser":{"name":"afspeirs","email":"andy@speirs.dev"},"_npmVersion":"9.6.7","description":"","directories":{},"_nodeVersion":"18.17.0","dependencies":{"workbox-window":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","typescript":"^5.3.3"},"peerDependencies":{"workbox-cli":"^7.0.0"},"peerDependenciesMeta":{"workbox-cli":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/service-worker_1.0.1_1708993018685_0.014916982760120545","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@afspeirs/service-worker","version":"1.0.2","author":{"name":"AFSpeirs"},"license":"ISC","_id":"@afspeirs/service-worker@1.0.2","maintainers":[{"name":"afspeirs","email":"andy@speirs.dev"}],"dist":{"shasum":"73a73acafa51a053b19f82abe97857b3d20b0695","tarball":"https://registry.npmjs.org/@afspeirs/service-worker/-/service-worker-1.0.2.tgz","fileCount":9,"integrity":"sha512-KOAI4QHUBzcmRYU+pimj9/Pgwo56mrFT3v2c9Yo9u4Ny7xZxgUTUJYZNNEf0iBL3rKPl7ibY8XPG13OC2MJEAA==","signatures":[{"sig":"MEYCIQCoHjiiZLW0Y0t6PAHl2Cir04npGyS+6vqiWomL9sMaLAIhAI367Xps0i1fvLJztqXX4XlliyqdeiJS8Es2hmM98ecE","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13402},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"13aaf1e05d4a0149c374135022383e7b5341c10f","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsup"},"_npmUser":{"name":"afspeirs","email":"andy@speirs.dev"},"_npmVersion":"9.6.7","description":"[![NPM Version][npm-version-shield]][npm-url] [![NPM Bundle Size][npm-bundle-size-shield]][npm-url]","directories":{},"_nodeVersion":"18.17.0","dependencies":{"workbox-window":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","typescript":"^5.3.3"},"peerDependencies":{"workbox-cli":"^7.0.0"},"peerDependenciesMeta":{"workbox-cli":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/service-worker_1.0.2_1709068847296_0.7708235621273569","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@afspeirs/service-worker","version":"1.0.3","author":{"name":"AFSpeirs"},"license":"ISC","_id":"@afspeirs/service-worker@1.0.3","maintainers":[{"name":"afspeirs","email":"andy@speirs.dev"}],"dist":{"shasum":"fe4a91b6c21ea66b8b7c1f870158165a6ab38a16","tarball":"https://registry.npmjs.org/@afspeirs/service-worker/-/service-worker-1.0.3.tgz","fileCount":9,"integrity":"sha512-un22Hy3pJdPJgEEJ0Ti33pTJ/G+siVCuRaOcu2CE+LDHj9xvvU5SUFrUR9ZJnf26ZZU3eeIZbXsB1aKKVicy/A==","signatures":[{"sig":"MEUCIQCQKXYDTDUPpn15zFfd3hZ9WWLcjs34lBALKaelbUy19AIgRlzYkWQNbLzrhnaVVve2z0VNOx3SbIB9zeYXyHXaorI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14605},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"491d402c34bb22bdaf350f3b031f513dcf1956c7","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsup"},"_npmUser":{"name":"afspeirs","email":"andy@speirs.dev"},"_npmVersion":"9.6.7","description":"[![NPM Version][npm-version-shield]][npm-url] [![NPM Bundle Size][npm-bundle-size-shield]][npm-url]","directories":{},"_nodeVersion":"18.17.0","dependencies":{"workbox-window":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","typescript":"^5.3.3"},"peerDependencies":{"workbox-cli":"^7.0.0"},"peerDependenciesMeta":{"workbox-cli":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/service-worker_1.0.3_1709077064904_0.8246769382644255","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@afspeirs/service-worker","version":"1.0.4","author":{"name":"AFSpeirs"},"license":"ISC","_id":"@afspeirs/service-worker@1.0.4","dist":{"shasum":"5b164fb6e2e083fe505cfaceab9ab44966e73f4e","tarball":"https://registry.npmjs.org/@afspeirs/service-worker/-/service-worker-1.0.4.tgz","fileCount":9,"integrity":"sha512-xfIY/BgQtWd2BoCrpaQS5Cuzg/Rz1ELztPk/NxZRNs06o4cLPUAybSeblte89QdvFKZuOrCRq1dw34gsymetEg==","signatures":[{"sig":"MEQCIDeBRoG41wky9wto2o9ovbc2GyQUhTTUlw3Tg9lyGo8BAiBJj2XuoZCDZROt23KDJGJ6tQhUWkSxsDEbzEBEht0sGA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15209},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"71bb9ce183aa0f8455007cf0098bccfb401e0ee0","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsup"},"_npmUser":{"name":"afspeirs","email":"andy@speirs.dev"},"_npmVersion":"10.2.4","description":"[![NPM Version][npm-version-shield]][npm-url] [![NPM Bundle Size][npm-bundle-size-shield]][npm-url]","directories":{},"_nodeVersion":"20.11.1","dependencies":{"workbox-window":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","typescript":"^5.3.3"},"peerDependencies":{"workbox-cli":"^7.0.0"},"peerDependenciesMeta":{"workbox-cli":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/service-worker_1.0.4_1719268015639_0.363460681595728","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"@afspeirs/service-worker","version":"1.0.5","author":{"name":"AFSpeirs"},"license":"ISC","_id":"@afspeirs/service-worker@1.0.5","dist":{"shasum":"88fd05b92aae8e4a86cd72dd80ede038e5363dda","tarball":"https://registry.npmjs.org/@afspeirs/service-worker/-/service-worker-1.0.5.tgz","fileCount":4,"integrity":"sha512-V58KZL2HTsPdF8hlG1XgfhmdW3CgfliBqACDZ/Dw8XwfIn4+oRV5w+tbIdXLnJL32qPyY3y9JR08A2nPrz4LVQ==","signatures":[{"sig":"MEQCIGA6rw7xV143ExRxGWNFvO+G8O0HX3sdIXydCzAJ1fRkAiBvllhKGJ5dmNrXUbCI6O5ajWng0vrNKEEXfuLHQM6FjA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7240},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"a673692d9699c71cbba9c4802823a7ac62647349","scripts":{"test":"echo \"Error: no test specified\" && exit 1","type":"tsc","build":"tsup","update":"npm run outdated -- -u","outdated":"npx npm-check-updates","update:minor":"npm run outdated:minor -- -u","outdated:minor":"npx npm-check-updates -t minor"},"_npmUser":{"name":"afspeirs","email":"andy@speirs.dev"},"_npmVersion":"10.7.0","description":"[![NPM Version][npm-version-shield]][npm-url] [![NPM Bundle Size][npm-bundle-size-shield]][npm-url]","directories":{},"_nodeVersion":"20.14.0","dependencies":{"workbox-window":"^7.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.15.7","tsup":"^8.1.0","typescript":"^5.5.2"},"peerDependencies":{"workbox-cli":"^7.1.0"},"peerDependenciesMeta":{"workbox-cli":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/service-worker_1.0.5_1719406273035_0.20899173684902173","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"@afspeirs/service-worker","version":"1.0.6","author":{"name":"AFSpeirs"},"license":"ISC","_id":"@afspeirs/service-worker@1.0.6","dist":{"shasum":"3524ecce45eafdbad27d31eb326b6a4ab9eb053a","tarball":"https://registry.npmjs.org/@afspeirs/service-worker/-/service-worker-1.0.6.tgz","fileCount":9,"integrity":"sha512-7H+SSlGHY0pX1uJtzwXEU8hqvYpanNH549587/Qp4feXYl/l9a5NjIrssfD/i4O97d4vTHXHa6JsSQx/bCYn0Q==","signatures":[{"sig":"MEUCIA7KaN1kCTdQfAFBKQwqPnIO7NP90mzL1Jes8uSob2YIAiEAy6Dtg7zCVxmibX5VHlKIUGQNVPS2sBJn3iR6/Ta2HJg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15358},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"b72a020cc297c177b1f5427014fc3d273f01397d","scripts":{"test":"echo \"Error: no test specified\" && exit 1","type":"tsc","build":"tsup","update":"npm run outdated -- -u","outdated":"npx npm-check-updates","update:minor":"npm run outdated:minor -- -u","outdated:minor":"npx npm-check-updates -t minor"},"_npmUser":{"name":"afspeirs","email":"andy@speirs.dev"},"_npmVersion":"10.7.0","description":"[![NPM Version][npm-version-shield]][npm-url] [![NPM Bundle Size][npm-bundle-size-shield]][npm-url]","directories":{},"_nodeVersion":"20.14.0","dependencies":{"workbox-window":"^7.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.15.7","tsup":"^8.1.0","typescript":"^5.5.2"},"peerDependencies":{"workbox-cli":"^7.1.0"},"peerDependenciesMeta":{"workbox-cli":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/service-worker_1.0.6_1719406537184_0.10943924705349106","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@afspeirs/service-worker","version":"1.1.0","author":{"name":"AFSpeirs"},"license":"ISC","_id":"@afspeirs/service-worker@1.1.0","maintainers":[{"name":"afspeirs","email":"andy@speirs.dev"}],"dist":{"shasum":"7e698f743ab17d609bb19de4a2ac87b120b83ddf","tarball":"https://registry.npmjs.org/@afspeirs/service-worker/-/service-worker-1.1.0.tgz","fileCount":9,"integrity":"sha512-x7ZrlpbCz1ACE/BFwF3bqLyKJvpUXcqdHvuLV66gSQrm3ZawqHSeDEHpC1gsAYk6Nb+zFbp4bqfBYsO+pREBVg==","signatures":[{"sig":"MEQCIBMPzqoZIq8UcCMv8U1bKSIzV5xq6Md3MbchLx1KpbhhAiArgj7MuwDNXK8mbmpJmLzLlOZFnkWIpx10yipxhbNUgQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15206},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"83d87b95b0fc6367c29ea26a8e69fd56002f1b03","scripts":{"test":"echo \"Error: no test specified\" && exit 1","type":"tsc","build":"tsup","update":"npm run outdated -- -u","publish":"npm run build && npm publish","outdated":"npx npm-check-updates","update:minor":"npm run outdated:minor -- -u","outdated:minor":"npx npm-check-updates -t minor"},"_npmUser":{"name":"afspeirs","email":"andy@speirs.dev"},"_npmVersion":"10.7.0","description":"[![NPM Version][npm-version-shield]][npm-url] [![NPM Bundle Size][npm-bundle-size-shield]][npm-url]","directories":{},"_nodeVersion":"20.14.0","dependencies":{"workbox-window":"^7.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.15.7","tsup":"^8.1.0","typescript":"^5.5.2"},"peerDependencies":{"workbox-cli":"^7.1.0"},"peerDependenciesMeta":{"workbox-cli":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/service-worker_1.1.0_1724777732382_0.4536545770642928","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@afspeirs/service-worker","version":"1.1.1","author":{"name":"AFSpeirs"},"license":"ISC","_id":"@afspeirs/service-worker@1.1.1","maintainers":[{"name":"afspeirs","email":"andy@speirs.dev"}],"dist":{"shasum":"fcb8303d465fd2a236905fa515fcff14074778c2","tarball":"https://registry.npmjs.org/@afspeirs/service-worker/-/service-worker-1.1.1.tgz","fileCount":3,"integrity":"sha512-UKqvP0P85NOMt9j8Omd1D0CecrdfthFWMlBi9Ie1W8otUqy4xT2l+DWhWmNIlAqwT/h1XWePGqy/Mv2RFi+YQA==","signatures":[{"sig":"MEQCICpLBC+8KiMs9sUHyQrsnjRyp+DYCIyAz83ge8g5cghzAiBA0GepwfHi6j6FBRHCo8f/6srL3MQQbJjOLipehNlCYg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6742},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"2a40309aa0c0f2de5673368fd8f46ea14da132fe","scripts":{"test":"echo \"Error: no test specified\" && exit 1","type":"tsc","build":"tsup","update":"npm run outdated -- -u","publish":"npm run build && npm publish","outdated":"npx npm-check-updates","update:minor":"npm run outdated:minor -- -u","outdated:minor":"npx npm-check-updates -t minor"},"_npmUser":{"name":"afspeirs","email":"andy@speirs.dev"},"_npmVersion":"10.8.2","description":"[![NPM Version][npm-version-shield]][npm-url] [![NPM Bundle Size][npm-bundle-size-shield]][npm-url]","directories":{},"_nodeVersion":"20.17.0","dependencies":{"workbox-window":"^7.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.15.7","tsup":"^8.1.0","typescript":"^5.5.2"},"peerDependencies":{"workbox-cli":"^7.1.0"},"peerDependenciesMeta":{"workbox-cli":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/service-worker_1.1.1_1725982099080_0.028800334125167915","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"@afspeirs/service-worker","version":"1.1.2","description":"[![NPM Version][npm-version-shield]][npm-url] [![NPM Bundle Size][npm-bundle-size-shield]][npm-url]","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","scripts":{"build":"tsup","test":"echo \"Error: no test specified\" && exit 1","type":"tsc","publish":"npm run build && npm publish","outdated":"npx npm-check-updates","outdated:minor":"npx npm-check-updates -t minor","update":"npm run outdated -- -u","update:minor":"npm run outdated:minor -- -u"},"author":{"name":"AFSpeirs"},"license":"ISC","devDependencies":{"tsup":"^8.1.0","tsx":"^4.15.7","typescript":"^5.5.2"},"dependencies":{"workbox-window":"^7.1.0"},"peerDependencies":{"workbox-cli":"^7.1.0"},"peerDependenciesMeta":{"workbox-cli":{"optional":false}},"_id":"@afspeirs/service-worker@1.1.2","gitHead":"ab0aac35c5ba8f8953e19e95001e1249286bcbe7","_nodeVersion":"20.17.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-NxURfAzfvDp7uZGCpUNcpbelDmS7K8rjj+lcumxTiWfJvNv1fXIVICEfpbfs+Z2nLYBCa7MdgVEpnHBojwPcKg==","shasum":"5f3a7be60d3a31b945cc5e6c109713e6f21c628a","tarball":"https://registry.npmjs.org/@afspeirs/service-worker/-/service-worker-1.1.2.tgz","fileCount":9,"unpackedSize":15158,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDK5V1Jw/5rEzCC9iMiOYjilQcQT0dNsUlLgwA3g9/o4AIgVuJOMZajehs8UhpPcdmy083H4QfS/b4xS0RmLXfhKsE="}]},"_npmUser":{"name":"afspeirs","email":"andy@speirs.dev"},"directories":{},"maintainers":[{"name":"afspeirs","email":"andy@speirs.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/service-worker_1.1.2_1725984611411_0.2520202451798159"},"_hasShrinkwrap":false}},"time":{"created":"2024-02-27T00:02:29.877Z","modified":"2024-09-10T16:10:11.797Z","1.0.0":"2024-02-27T00:02:30.109Z","1.0.1":"2024-02-27T00:16:58.878Z","1.0.2":"2024-02-27T21:20:47.487Z","1.0.3":"2024-02-27T23:37:45.084Z","1.0.4":"2024-06-24T22:26:55.791Z","1.0.5":"2024-06-26T12:51:13.201Z","1.0.6":"2024-06-26T12:55:37.342Z","1.1.0":"2024-08-27T16:55:32.529Z","1.1.1":"2024-09-10T15:28:19.214Z","1.1.2":"2024-09-10T16:10:11.622Z"},"author":{"name":"AFSpeirs"},"license":"ISC","description":"[![NPM Version][npm-version-shield]][npm-url] [![NPM Bundle Size][npm-bundle-size-shield]][npm-url]","maintainers":[{"name":"afspeirs","email":"andy@speirs.dev"}],"readme":"# @afspeirs/service-worker\n\n[![NPM Version][npm-version-shield]][npm-url]\n[![NPM Bundle Size][npm-bundle-size-shield]][npm-url]\n\n> Integrate a service-worker easily into your website\n\n## About The Project\n\nI am always using the same code across all of my web apps to install a service worker.\n\nSo I thought why not make it an npm package\n\nThis projects contains the code I use within every project to initialise the service worker and dispatch custom events to signal when there is an update available and when the assets have been cached.\n\n## Table of contents\n\n- [Getting Started](#getting-started)\n- [Prerequisites](#prerequisites)\n  - [Create config file](#create-config-file)\n  - [postbuild script](#postbuild-script)\n- [Installation](#installation)\n- [Usage](#usage)\n- [API](#api)\n  - [registerServiceWorker](#function-registerserviceworker)\n- [Custom Events](#custom-events)\n  - [sw:content-cached](#swcontent-cached)\n  - [sw:new-content-available](#swnew-content-available)\n- [Roadmap](#roadmap)\n- [License](#license)\n\n## Getting Started\n\nThese instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.\n\n## Prerequisites\n\nBecause we use workbox-window in this package. `workbox-cli` has been set as a peer dependency (which means that it will be installed in your project for you). This means that you can use `workbox-cli` commands within your builds scripts.\n\n### Create config file\n\nCreate a config file called `workbox.config.cjs` (The name doesn't really matter, you just need to enter the same filename in the [postbuild](#postbuild-script) step)\n\n```javascript\nmodule.exports = {\n  globDirectory: 'dist/',\n  globPatterns: [\n    '**/*.{css,js,png,html,webmanifest}',\n  ],\n  swDest: 'dist/service-worker.js',\n  skipWaiting: true,\n  clientsClaim: true,\n};\n```\n\n> For more information view the [documentation site for generateSW config options](https://developer.chrome.com/docs/workbox/modules/workbox-build#type-GenerateSWOptions)\n\n### `postbuild` script\n\nUpdate your package.json to have the following `postbuild` script so that the service-worker is generated:\n\n```json\n\"scripts\": {\n  ...\n  \"postbuild\": \"workbox generateSW workbox.config.cjs\"\n  ...\n}\n```\n\n> For more information view the [documentation site for generateSW](https://developer.chrome.com/docs/workbox/modules/workbox-cli#generatesw)\n\n## Installation\n\n**BEFORE YOU INSTALL:** please read the [prerequisites](#prerequisites)\n\nTo install and set up the library, run:\n\n```bash\nnpm i -S @afspeirs/service-worker\n```\n\n## Usage\n\nOnce installed in your project you can include import/require the code.\n\nFor example in a JavaScript project (using [Vite](https://vitejs.dev/)):\n\n```javascript\nimport { registerServiceWorker } from '@afspeirs/service-worker';\n\nregisterServiceWorker({\n  register: import.meta.env.PROD,\n});\n```\n\n## API\n\n### Function: `registerServiceWorker`\n\nRegisters a service worker using the Workbox library and dispatches custom events based on the service worker's installation status.\n\n| Parameter           | Type    | Default value          | Required | Description                                    |\n| ------------------- | ------- | ---------------------- | -------- | ---------------------------------------------- |\n| register            | boolean | N/A                    | Yes      | When to register the service worker            |\n| pathToServiceWorker | string  | `'/service-worker.js'` | No       | The path to where the service worker is stored |\n\nUsage Example:\n\n```javascript\nimport { registerServiceWorker } from '@afspeirs/service-worker';\n\nregisterServiceWorker({\n  register: true,\n  // register: import.meta.env.PROD,\n  // register: process.env.NODE_ENV === 'production',\n  pathToServiceWorker: '/custom-service-worker.js',\n});\n```\n\n## Custom Events\n\n### `sw:content-cached`\n\nThis event is dispatched (on the `window`) when the service worker is installed for the first time and the content is cached.\n\nUsage Example:\n\n```javascript\nwindow.addEventListener('sw:content-cached', () => {\n  console.log('Content has been cached for offline use.');\n});\n```\n\n### `sw:new-content-available`\n\nThis event is dispatched (on the `window`) when a new version of the service worker is installed and there is new content available.\n\nUsage Example:\n\n```javascript\nwindow.addEventListener('sw:new-content-available', () => {\n  console.log('New content is available. Please refresh the page.');\n});\n```\n\n### Roadmap\n\n- [ ] Simplify the prerequisite steps and make it so that it can be controlled by this package\n\n## License\n\n[ISC License](/LICENSE.txt) © Andrew Speirs\n\n<!-- MARKDOWN LINKS & IMAGES -->\n<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->\n[npm-url]: https://www.npmjs.com/package/@afspeirs/service-worker\n[npm-version-shield]: https://img.shields.io/npm/v/%40afspeirs%2Fservice-worker?style=for-the-badge&color=%23123abc\n[npm-bundle-size-shield]: https://img.shields.io/bundlephobia/min/%40afspeirs%2Fservice-worker?style=for-the-badge&color=%23123abc\n","readmeFilename":"README.md"}