{"_id":"@archetypical/scaffold","_rev":"4-52ea34be9836be9eff829a171b555092","name":"@archetypical/scaffold","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"@archetypical/scaffold","version":"1.0.0","description":"Service worker library modeled after the .NET core middleware pipeline","main":"index.js","scripts":{"test":"jest -config jestconfig.json","lint":"tslint -p tsconfig.json","build":"tsc","prepare":"npm run build && npm run lint","prepublishOnly":"npm test"},"author":{"name":"Archetypical.Software"},"license":"ISC","dependencies":{},"jest":{"testEnvironment":"node"},"devDependencies":{"@types/jest":"^24.0.6","jest":"^24.1.0","ts-jest":"^24.0.0","ts-loader":"^5.3.3","tslint":"^5.14.0","typedoc":"^0.14.2","typescript":"^3.3.3333"},"keywords":["service","worker","serviceworker","middleware","fetch","pipeline","dotnet","FetchEvent","offline","cache","caching","route","routing","activate","install","PWA","progressive","web","app","application"],"icon":"","repository":{"type":"git","url":"git+https://github.com/ArchetypicalSoftware/Scaffold.git"},"homepage":"https://archetypical.software/Product/Detail/Scaffold","gitHead":"159969aa604197448bfdb265167754a09c05505b","bugs":{"url":"https://github.com/ArchetypicalSoftware/Scaffold/issues"},"_id":"@archetypical/scaffold@1.0.0","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-E2DYiVhvprRbe4P61xioXjbCud7FMGPg8tp4ixgxvxR2Dy++7HFiC31OFky+QZFmxm+jo40sCd761c1w3HXOHQ==","shasum":"46891997e8a1aae3cedb9dfaf797c980be13f91e","tarball":"https://registry.npmjs.org/@archetypical/scaffold/-/scaffold-1.0.0.tgz","fileCount":91,"unpackedSize":151467,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc1YHnCRA9TVsSAnZWagAAtrgP/iKH8aNsMZEoGQzLKZ4M\nP2au1el99nZ0tPGBsFwP5WYOtf0E0Hp27XA5ezaySW9Wy/8hPKUCm3DflJzf\nGzUq0WU3mKMPcgPqqhmTHUMGHdLsUxUxsK9NgYf5h4WoZH+5i/X6wt2iMlqH\nhqO1+Z7xMCcbz/5s9UscbmqDJtqlA4eM3vxhWdvy3SiSBw5dv1uHNVWxVldJ\nMt1dJxb56HkkaIdoXHNOuD9tO4JW8k8TmrcMBCqEsT0Lwe/IU28xK0biYm/B\n2BjdJbbbsvxAOsKVyCLFOIfPRg3eaqH7/SkDRKiTT/GTlwz3J6Dg7gyojq/o\naUFpr53qd6RP7ohajYTc8jbOv6GJ6WXSqeV2D90e7h1BXqljztV8A/DCn5tL\nJaTIvlh4zfrlqMYsQt3HqPwGS1KzmAp/k5+3zeFFl1g8GgQyu1gPfdg7er5K\nTMx+0yvQs5dLmpem9b9B0Ekw/+Ceyr+m895k9IHLAh7DdkAcTu4O8ABIa/CR\nHuneck6v67hO8fv/ND/yZbpURzZK/me018HR72nmrw/zN6lWOoC3w48YSTQq\n5C/qUtd05pz/FJs/5eSi7CZ4z49zYGIpXo6UUDzzpkGiZSjJney2d5/SPJ2y\nwDW4FeFbqrlVKcbJZMq6Y6bbgSVQ9PoL0w8cKkg1IQll3hZR1Ar7APjYYzyj\nleDD\r\n=139g\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCw2fIlUUGZCj5TwAsSJjcxNI222uJI6eHydTbwOAK3xwIhANHpiAmREMaO8uenLnBZA4ChPQDsSjPuMizoTaRMvU5G"}]},"maintainers":[{"name":"justin-arch-sw","email":"justin@archetypical.software"}],"_npmUser":{"name":"justin-arch-sw","email":"justin@archetypical.software"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scaffold_1.0.0_1557496294868_0.46802822276329326"},"_hasShrinkwrap":false},"1.0.1":{"name":"@archetypical/scaffold","version":"1.0.1","description":"Service worker library modeled after the .NET core middleware pipeline","main":"index.js","scripts":{"test":"jest -config jestconfig.json","lint":"tslint -p tsconfig.json","build":"tsc","prepare":"npm run build && npm run lint","prepublishOnly":"npm test"},"author":{"name":"Archetypical.Software"},"license":"ISC","dependencies":{},"jest":{"testEnvironment":"node"},"devDependencies":{"@types/jest":"^24.0.6","jest":"^24.1.0","ts-jest":"^24.0.0","ts-loader":"^5.3.3","tslint":"^5.14.0","typedoc":"^0.14.2","typescript":"^3.3.3333"},"keywords":["service","worker","serviceworker","middleware","fetch","pipeline","dotnet","FetchEvent","offline","cache","caching","route","routing","activate","install","PWA","progressive","web","app","application"],"icon":"","repository":{"type":"git","url":"git+https://github.com/ArchetypicalSoftware/Scaffold.git"},"homepage":"https://archetypical.software/Product/Detail/Scaffold","gitHead":"fad585b590317ba9cfb76462cb9fe9e353c0ba3d","bugs":{"url":"https://github.com/ArchetypicalSoftware/Scaffold/issues"},"_id":"@archetypical/scaffold@1.0.1","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-UoW2Ni5vPFwqccH+vZ69s2bWmYMEo2iyCfjzEEuiik+ILdAEd7dT57Mtzs+1X77iARzACrU2F+mEYStyKJJPfw==","shasum":"ba3a8d1a8c1c52d2d05ea50c01ef2c4583ced5c3","tarball":"https://registry.npmjs.org/@archetypical/scaffold/-/scaffold-1.0.1.tgz","fileCount":91,"unpackedSize":152084,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc1YLDCRA9TVsSAnZWagAAc0YP/iB8Uvirp1ibFJv6JgNg\nLkneoupb+5zFHUn4xnGtguwvf33yE8jN6QYBPTw0nhFANPXubPfPjA0ocABL\n3gX5QLXOW5l0igE5XnB2fYNmy2XgcqT03+FYeYVrJQBsK9EQqYFRe0B8fuMo\n1RQ6unX8xGerbHhhgq9nI7E0NJkVGZ74DpKbkHUYjBq4NcklKjt12Q/1CaVk\npHYqNsqQmAXMTrjmaXW7dHHaB380Wz2x3yGyIf6Tmbu05iPrYYfY1+2S3uX3\nCY1M/BwtMe2TZSu+QNy1f8t1obvRkWj8k89+TUba/iK5gInDC2oFaXJbAmS1\nhdSJ4ALX8i7V+x+vUOmnNIv60UtfM9n9OLlcDce48+xftGLUpMk3RosBm4xP\nzXTTDrh6hXbYTrMoh5kvEzKJJ3PglledY5S96GpCMrrDh7YEgkOSS87kdJ99\nsj/SihhIzeFWLHWzSWTzR/2ho2SfZN1e+e7/RRtIEGuftCengIWHuyNp1zay\nTLNUDJlXg5hTw9sJZyqnON09A5J735Zya5AnfgZD86X1GgHttr9OxM5RqGWQ\njZMwte5G+eRjwJaVxH7Ushxcc2BOmS+9fmhxyRMN2GlQiXPKfoEtYaqwj9ZV\n5Lao6vSCEJWfmOsxsvZK8Bf3+3TdYRXCjLqDl5SsZLAam0igM2eggp3hbdhh\nxfrm\r\n=BIdL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0i8vY7iwnxD+RH2aOUvvB7/jFo4wsCqZAuVQAFYkD+QIhALVcQPe6lrJ9iN8bGNE/KXsphR1k5ZENsOigz49abBOt"}]},"maintainers":[{"name":"justin-arch-sw","email":"justin@archetypical.software"}],"_npmUser":{"name":"justin-arch-sw","email":"justin@archetypical.software"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scaffold_1.0.1_1557496515151_0.2369404366131853"},"_hasShrinkwrap":false},"2.0.0":{"name":"@archetypical/scaffold","version":"2.0.0","description":"Service worker library modeled after the .NET core middleware pipeline","main":"index.js","scripts":{"test":"jest --config jestconfig.json --coverage --all","lint":"tslint -p tsconfig.json","build":"tsc","prepare":"npm run build && npm run lint","prepublishOnly":"npm test"},"author":{"name":"Archetypical.Software"},"license":"ISC","dependencies":{"swork":"^1.5.5","swork-claim-clients":"^1.0.2","swork-logger":"^1.0.1","swork-router":"^1.3.3","swork-when":"^1.0.0"},"jest":{"testEnvironment":"node"},"devDependencies":{"@types/jest":"^24.0.6","@types/service-worker-mock":"^2.0.0","jest":"^24.1.0","service-worker-mock":"^2.0.5","ts-jest":"^24.0.0","ts-loader":"^5.3.3","tslint":"^5.14.0","typedoc":"^0.14.2","typescript":"^3.3.3333"},"keywords":["service","worker","serviceworker","middleware","fetch","pipeline","dotnet","FetchEvent","offline","cache","caching","route","routing","activate","install","PWA","progressive","web","app","application"],"icon":"","repository":{"type":"git","url":"git+https://github.com/ArchetypicalSoftware/Scaffold.git"},"homepage":"https://archetypical.software/Product/Detail/Scaffold","gitHead":"25de8dd8e14aca0fa4227bb09117c5ae6bc09c27","bugs":{"url":"https://github.com/ArchetypicalSoftware/Scaffold/issues"},"_id":"@archetypical/scaffold@2.0.0","_nodeVersion":"13.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-qFReZsHBsS9K9M4cGPiOwHFZJCP1cAq4SgrfaqxXNfmSzUKGduNQUB1dHO6Kh304DrFVzaxcHr4/+lWfAyN/Ig==","shasum":"7acb771ec96984bc7f3d08758785e6dc30c55b58","tarball":"https://registry.npmjs.org/@archetypical/scaffold/-/scaffold-2.0.0.tgz","fileCount":5,"unpackedSize":14581,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfJ1FSCRA9TVsSAnZWagAAzcsP/2VRKaB5swkRoc9lGswR\nXjTwG5RFvM1YNbwj4ILVQflV1V7iQ3mZ/uBAMRzp1HMjJYa60DdOWrpjC6pO\n19UooCHBZA5onUf1PqvlRMtq+pmwBJ4O9kcgDamoWyEXJjwha9RlhgcwNENf\nSNeS9YZGmYy1GeeuAzQ3BRvLZqHeRO9t6/yVzVeFsFd8juNEYgzeDVWOu/7R\nGFUAN9/QtGz25k2bBAxQ/jWhc+1cSHjXZXXPDi2juYrArKXiH6mFVANNmsQH\nKBOfmf/u0/oyhkL1w1Cbe1rHIjVhg/rjzLs9Crc4zlAgZvZbx/vBGIqehiDA\nl/8xgLz6kjuhhpOHjqBRLcHAoVQuczvVtRcROTFPnzH/W6LpM9y2fZxjD2zF\nHVZIdfs48qcE4R6DV4Ti4tdZdxPCGqrkeaCHBH6GKv4bfj2cxPjybaTFSGiv\naUbCvfJRdI5q19LfONFtg3Rn+PuVG32Ju4MbFQSqQk5bRuCzFU7T6SWpHMkc\nja3Eqm22OsfggpZbnxPIyMHGKi7OpXjtHtPLDBqoXh7vU5SVJZxl4aFSph4Q\nYr32jxnwMebUJzo6J0HUFHbVqSa1Ku44kjqSV4f8H3QyTKM2xnXHDFWfxsqn\nHnH6FkFjfaq7tcZZYBemsh3cJsJmU4LL/qUt/FJT/67GQG3gS6q/EcFfF78D\nTP0o\r\n=y+f+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCqc/zXOLk8qFzz6VBoF+cqN/p/unifPk4hCV5QgByvpAIgZhLBy5aDBFzxId7YN94h5IMat0skdsR1wPsCowGaiRw="}]},"maintainers":[{"name":"justin-arch-sw","email":"justin@archetypical.software"}],"_npmUser":{"name":"justin-arch-sw","email":"justin@archetypical.software"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scaffold_2.0.0_1596412242227_0.3016068783142014"},"_hasShrinkwrap":false}},"time":{"created":"2019-05-10T13:51:34.688Z","1.0.0":"2019-05-10T13:51:35.004Z","modified":"2022-04-04T15:18:02.840Z","1.0.1":"2019-05-10T13:55:15.305Z","2.0.0":"2020-08-02T23:50:42.341Z"},"maintainers":[{"email":"eddie@archetypical.software","name":"eddie.archetypical"},{"email":"justin@archetypical.software","name":"justin-arch-sw"}],"description":"Service worker library modeled after the .NET core middleware pipeline","homepage":"https://archetypical.software/Product/Detail/Scaffold","keywords":["service","worker","serviceworker","middleware","fetch","pipeline","dotnet","FetchEvent","offline","cache","caching","route","routing","activate","install","PWA","progressive","web","app","application"],"repository":{"type":"git","url":"git+https://github.com/ArchetypicalSoftware/Scaffold.git"},"author":{"name":"Archetypical.Software"},"bugs":{"url":"https://github.com/ArchetypicalSoftware/Scaffold/issues"},"license":"ISC","readme":"# Scaffold\r\n\r\n![Scaffold](docs/images/Scaffold.png)\r\n\r\nScaffold is an library designed to quickly build service workers modeled after the .NET core middleware pipeline.\r\n\r\nExample implementation\r\n\r\n```ts\r\n// service-worker.ts\r\n\r\nimport { IApplicationBuilder, Scaffold } from \"@archetypical/scaffold\";\r\nimport { strategies } from \"swork-cache\";\r\n\r\nconst offlineAssets = [\"/css/site.css\", \"/js/site.js\", \"/\"];\r\n\r\nclass Startup {\r\n    public configure(builder: IApplicationBuilder): void {\r\n        builder\r\n            .useInstallCache(offlineAssets)\r\n            .map(offlineAssets, strategies.backgroundFetch());\r\n    }\r\n}\r\n\r\nScaffold\r\n    .createBuilder(\"1.0.0\")\r\n    .useStartup(Startup)\r\n    .build();\r\n```\r\n\r\nIn the example above, we were able to quickly define a list of assets that should be cached up on install of the service worker. In addition, each new request for those assets will immediately return the cached response and update the cache with the latest version in a background process.\r\n\r\n* [Overview](readme.md)\r\n* [IApplicationBuilder](docs/iapplication-builder.md)\r\n* [IServiceCollection](docs/iservice-collection.md)\r\n* [IServiceProvider](docs/iservice-provider.md)\r\n* [IServiceWorkerBuilder](docs/iservice-worker-builder.md)\r\n* [IApplicationLifetime](docs/iapplication-lifetime.md)\r\n* [Startup](docs/startup.md)\r\n","readmeFilename":"README.md"}