{"_id":"swarf","_rev":"35-6254154f0c04fd680f896ee4f6a0ca9f","name":"swarf","dist-tags":{"latest":"0.1.6"},"versions":{"0.0.1":{"name":"swarf","version":"0.0.1","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.1","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"493bdad1521f2604402cee53a6cbdbc8e6c4e4e8","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.1.tgz","fileCount":9,"integrity":"sha512-A9PigxsQtCx5io0sJ2qksKEdxnlmZU2RchX7JwnKw4a30ld7lQ2JrXqeVg0VnV8A1fl0Vgvecr7c5YowOd8SSQ==","signatures":[{"sig":"MEUCIQDXnGzXX2e+/OcpECMFnWoxKL1ySSgYI3P9r4ZHU/WVvwIgEt8m4uYH0buQnMgc7NLMdBycCwy8yo/ZwuRb6v0SCMA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29971},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"023c2484d9dabcb53d504b5be1cfe52df4f2f235","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write","postinstall":"./bin/scripts.js initialize"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.1_1737483557209_0.17050083968897223","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"swarf","version":"0.0.2","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.2","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"7899da53e325ad11d23df1e4378ab7fb0d5ce10a","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.2.tgz","fileCount":9,"integrity":"sha512-b/i9Wq7m4cBXiGhGFZQRHFkZmx35/d9zs9zbiJd6vDM4GmLqsKujN7q5uJA3ATHVvu9vBjMiM7lub1iEmeOivg==","signatures":[{"sig":"MEYCIQCWEsqSrL3DQzOZVaoSCjZhtBBsK9aC4V50Ekf5s0jhIgIhAMqV9eqrOkMl9jfwejMd2OvE9c6wjXQZtGP/FAttnQvz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29969},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"023c2484d9dabcb53d504b5be1cfe52df4f2f235","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write","postinstall":"bin/scripts.js initialize"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.2_1737483586852_0.6456011922725138","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"swarf","version":"0.0.3","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.3","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"2ff0f09a3b537f684c03a580cd67555464f44f0b","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.3.tgz","fileCount":9,"integrity":"sha512-uEWeZH7rSzhDU4G0suhUUPeRtt9nQdMdJbgbthQGOBRmHwYQZW+oJ3bkPFnHf3rWEXNIMRYZpUJevwTBDf32AQ==","signatures":[{"sig":"MEQCIBjQL7Z4izX+eBKtOC0OKWVzChA13CbWm4upS+yl/e87AiBmI5sMPBDXgjlqVSwAVGPOYXVPLv2rVE7yQFptjq2hpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29960},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"023c2484d9dabcb53d504b5be1cfe52df4f2f235","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write","postinstall":"swarf initialize"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.3_1737483624978_0.8279198223370066","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"swarf","version":"0.0.4","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.4","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"328f2f767ec3edb80f1c506a7d5b2b19f2b18665","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.4.tgz","fileCount":9,"integrity":"sha512-rlQT68WQhWSI/rSq5w29p2eocEdzsVC6ZAR43FSPP/kfnhT3f0Yix7anyAgsUxUmJEu4EbOle8Es3RY8heSkxg==","signatures":[{"sig":"MEQCIDywYvIHfvH2Qf2V1eCJUKvPokwc6/oGC+JIdr+YzeV7AiA5MEPlc1Gu+auNFP5RlVufjdO7JnEIY5KdtN50MDS2gQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29966},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"023c2484d9dabcb53d504b5be1cfe52df4f2f235","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write","postinstall":"swarf initialize"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.4_1737483667641_0.9885314861645456","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"swarf","version":"0.0.5","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.5","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"b8bdbe65647921f0eee7a818c5ae0a8a78fa148b","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.5.tgz","fileCount":9,"integrity":"sha512-S0VlNwaASPHwytqwWP4AQVeUmoX3kJ9uoSH+9bjGrXVji9545NGpYMKXaVDqRbLL2igHisbfcHNv/vVU4bozUA==","signatures":[{"sig":"MEYCIQCQQ6JmYNEyTDZwldhjGaFHdrm9r4PIOiT8AgR43gJ9mwIhAM29ZjSSFoy6y8EJXuIMpgiw0EUJoV+BROnnkfk9gowO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30000},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"023c2484d9dabcb53d504b5be1cfe52df4f2f235","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write","postinstall":"swarf initialize"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.5_1737484901295_0.6648866594134488","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"swarf","version":"0.0.6","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.6","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"9bdedadbb86f9517f5ee651ee13a0a985a8d0ba0","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.6.tgz","fileCount":9,"integrity":"sha512-SdF7WpbTZGD4iiHSeLZd8il1BZ6QqbXtButV46FXKvHYaODpoEvzPV4JEdrp3cCwTq3+rdS7gTikvH/vQQHSyA==","signatures":[{"sig":"MEUCICnX5bNmkzitIuCFqYwJketxFpNbbgrpbuTMp5W7VJrHAiEAt0heHaqPfSrn8Vk/GdIH8D7iblmvwk6x7q4br6GvB0Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29996},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"023c2484d9dabcb53d504b5be1cfe52df4f2f235","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write","install":"swarf initialize"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.6_1737485009166_0.11366830144364504","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"swarf","version":"0.0.7","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.7","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"26bdcc612c2d5820403bca5ee1ec0b546f85bda8","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.7.tgz","fileCount":9,"integrity":"sha512-MyCXKqnlbBPgORUy78uaEX+AesS7Oi/oFIQqNKSdyndN/BwbJyCTcXQcYwkZibLAkgKha2lPXzfdysxn9amn6Q==","signatures":[{"sig":"MEYCIQDrS9s43TPcWMHtuCm8jqeU5ViR425z5dw8rKFeMMeAXgIhAOnBwEV52Stg8m5EGwE9P3j0Zahze9J0nVLCWDqC/oUW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31048},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"023c2484d9dabcb53d504b5be1cfe52df4f2f235","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.7_1737485498024_0.5280944682661748","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"swarf","version":"0.0.8","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.8","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"7c9e4079a78a283a0562beb2420b219a14549c98","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.8.tgz","fileCount":9,"integrity":"sha512-T3vWVAc4P8KETF4/ajF4xTyn6irbDHRsXkyjv1u6fSXO2xeM6iTkaMPRJ4s8FVMjDoMesvGhGYnf/C5Si3N8pQ==","signatures":[{"sig":"MEQCIA4hq6XSm4wLnXy7q/LEBgv9I1R62wfIPa6IygB1tCyLAiBsBOBp6JxiavmtrL1rf7pjiSPyMvuYRpzsiPcaOkA7fQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31014},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"023c2484d9dabcb53d504b5be1cfe52df4f2f235","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.8_1737485588511_0.2870015487390618","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"swarf","version":"0.0.9","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.9","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"44fa10633097482e71e41ac5b56933181567c704","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.9.tgz","fileCount":9,"integrity":"sha512-KTD58onaRpQJQDiPfPkLTGUGaiwfz4x6nMk9c5buLQg1maMe2bnKDh3HwaMCu0Hy1iC3EJEPoqLwHd08ZaL3DQ==","signatures":[{"sig":"MEYCIQC3nvTSxSfLKIufHL98Eh2DHLxTUAR5DZwHExrBAF/S9QIhALssU3cNHAv/KPKtynR0VQ6Uk3uLee9MaDNeIRxSpxfK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31100},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"64854b24d3f20ce154ea18405fe7c7d63eb0b26b","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.9_1737485943453_0.49788347941367284","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"swarf","version":"0.0.10","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.10","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"82a3646f76ab6e40ed19641526bc3f331702bb7c","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.10.tgz","fileCount":9,"integrity":"sha512-UdQ+DWvmp6ejg5fvgZ/nN0ec1FOylfOeOEnQPTaDnsxQzF53FozNW0Eh3UVMlrYqq9E3fxPkrGvGIQ/oWjbdMA==","signatures":[{"sig":"MEQCIBU+G/PYYJH7mBVKMDT2e2Sqi9SUPYyn0agQuztJx9oKAiBo3PrFOoJKJgk6oIT0VkcKn7+QU+a+XeF+rMEYi/+GqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31233},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"08c2fe72bea522834b4d52fa16685b60d7997de5","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.10_1737491853713_0.8113166979381332","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"swarf","version":"0.0.11","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.11","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"abbfad3f2ed07f19518d94268a5aa995ea1ffefe","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.11.tgz","fileCount":9,"integrity":"sha512-eyQNhHJNHMGNdeC9T80dSTtSdpzgGLWn2k5eiWWylTLGF3lfxHQ/3jwcJR1GH/S9EfxA1k+UH1Q+5Auf8S4OnA==","signatures":[{"sig":"MEUCIAkfS0myYRJJjh/YmfwlxcWjrt5WHz926AJeVB3xvuviAiEAs9nv1WY4d4VeR7yS0xMfXJGrorb6Qd0n8KW3c3+1jDw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32434},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"659d2781cd913fdf6087149cba5b239558342364","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.11_1737497733735_0.48298493328729286","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"swarf","version":"0.0.12","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.12","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"213fe97fac25520dd880d68ae1390f00060dc43a","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.12.tgz","fileCount":26,"integrity":"sha512-Ue3hzAt3h0J2b6pkjsIpevG+8Prv8a9miinvwyGfHRaHQ6oAL5NH3EU7KS6M3Bt1hiOnaf6NFBYit6+o5nPoQg==","signatures":[{"sig":"MEQCIEA0Ry4qbFBTy3ofmxbWgxxZM1T9lA6XId8HISgUr+gUAiBZCirm+o/CtKJBq2u+vDm73n2u8Ais/Byd/wXvx0ebJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35791},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"659d2781cd913fdf6087149cba5b239558342364","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.12_1737584617470_0.559629469916288","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"swarf","version":"0.0.13","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.13","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"0ab2d61dc4f847fe098cac4c41aa4972e0c697c9","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.13.tgz","fileCount":26,"integrity":"sha512-wSMjDuN54t0klaXRTs3uvoJVE+sjZc5eyHGbRgQvQj/80TWE2rS5KQQq+nmcI/CDhsHqSnEoDH3gxogo7fCumA==","signatures":[{"sig":"MEQCIBwFIKVI58VviWwoX6LJhIzJliXqkGPZqMqbYepliP5MAiABh0BBl8ZuP8p3UUAud7mVxOcHumUxKfFFgU7/D+DWYA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35791},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"659d2781cd913fdf6087149cba5b239558342364","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.13_1737584715891_0.8158451236484277","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"swarf","version":"0.0.14","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.14","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"50e4679e2c0e58342dbddf999e2e7c82eb6f31eb","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.14.tgz","fileCount":26,"integrity":"sha512-KqL/dBh+EpeHaAudJzuSAySZ7GF4l7aR71cUgqwGcQkCK7t//SWYcLvKJw4WASjmp1SpYAZGtE1GIlCF6nU3uQ==","signatures":[{"sig":"MEQCICZzOS4/m1cX27t4DcNiQL7xczubp/UeXsZnQcGll/vpAiBy3prxy8w4D29bmdfxGu99Jo7WG5kdET7EZYSw5mXuPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35791},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"659d2781cd913fdf6087149cba5b239558342364","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.14_1737584778801_0.13125378195967596","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"swarf","version":"0.0.15","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.15","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"5093bbb3f3a48042644625905d3ee0c021d081d1","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.15.tgz","fileCount":26,"integrity":"sha512-67NxpN6zd3lKrQEnroehpEWCTFP1/nAEp6PP+TjsAlw1sl72hcJH4+FTcKp9H8c+lfgq3i2kWCrz2zj2nUMR8w==","signatures":[{"sig":"MEUCIFp/l/4MOEiKzJp4mQXDMax5aS7DbxkpVdAy4oaM/d6uAiEAyd4WUqXQafx/CleEQdaR77f7Vln2cT0UAK/ouqbkVxg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35791},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"659d2781cd913fdf6087149cba5b239558342364","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.15_1737584873447_0.37260148117406633","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"swarf","version":"0.0.16","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.16","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"8d82abdb74219c0d0be320614a5fbc0d6aa0d635","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.16.tgz","fileCount":26,"integrity":"sha512-BEM+N9EW8PGIjjOiHRXvX7O4+6dNW8a4dG5dPhsbAll+cPeOqdgrwwBTOuJmn2sZhhDkOZtUU93Rpd/55gK/vg==","signatures":[{"sig":"MEYCIQCwCzSGKZp5HnECJHGipLU3jlhugm2HBvsC2LUzvvJqzAIhAPn0mmxqXXKhaGFdsQ9g4T27r7hYNvk6Ah0YxHpZtMPR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35786},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"659d2781cd913fdf6087149cba5b239558342364","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.16_1737584938036_0.9753265719994522","host":"s3://npm-registry-packages-npm-production"}},"0.0.17":{"name":"swarf","version":"0.0.17","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.17","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"9489072700ab0ff024c40b41d0bcf36b1c4f8d10","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.17.tgz","fileCount":26,"integrity":"sha512-ehbq07PwsCNSoc3ea/usNwZWYyVOk2cZAddLzGCbjWEN2VYTiIIurrrPrVl+87wULOo7Dh8KxzsfBNj67Vg+bg==","signatures":[{"sig":"MEYCIQDiaPRDxRZjxsWMMLpyocafAb1BPCzmleI7xtx0FdhTGQIhAI+Obi1SFZvKjMtW5A3ORwZ1tn80lAyVtk1d4nNMFTN4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35794},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"659d2781cd913fdf6087149cba5b239558342364","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.17_1737585037797_0.9246509770990781","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"swarf","version":"0.0.18","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.18","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"022b7bb2a7bdb8c00f8412e710fe0ca592d63779","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.18.tgz","fileCount":26,"integrity":"sha512-71pqQSXMlgCR5bZHutVarta4OT3UQc7G+QARUbdt5PeSHFj0Y0ZhorUboFPlWlbFzwbIaVQE6SjBuHn3zJilpw==","signatures":[{"sig":"MEYCIQCTjbyI+DbQSaYZ4+/+zG0wt7DU6lzZfDuHbkGqym3ESwIhAOei0qzw79o9kk3NJyzCdf9Oo5+kXdogxrZjpcOIaGc7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35833},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"659d2781cd913fdf6087149cba5b239558342364","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.18_1737585091569_0.8479138632761689","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"swarf","version":"0.0.19","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.19","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"bec57a3b8f5bdd1447c7d0a6986556f21f623dff","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.19.tgz","fileCount":26,"integrity":"sha512-VSspLu8riC8KxXvh56jE5XbbRPyPERP/I18MVrGiBOwYtkBg7NF4cRwTJFwBDHDF8d6oiTnLp4jonv+Y4GT6OQ==","signatures":[{"sig":"MEUCIQD7e6cA4hvjn/+pANmkX0lgKbwAY6gpXUlYdF2Fe2s8mwIgW7AJlaBM7nPGATlZ+SMXhao+Vmr7ECatwfwx+13VZic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35849},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"659d2781cd913fdf6087149cba5b239558342364","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.19_1737585204739_0.9245935942604497","host":"s3://npm-registry-packages-npm-production"}},"0.0.20":{"name":"swarf","version":"0.0.20","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.20","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"c94ef1448df2e180c5fc2922f8f80994d55870d7","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.20.tgz","fileCount":26,"integrity":"sha512-sBzK00PUZkGiBaWC+ThcDKCAFfMHzf4zSH4/BVmpATShQ2MLPSz/dsan7i6g5wJXJpHJ2cTGOTSo+hmufpnfFg==","signatures":[{"sig":"MEYCIQC79tSIdysXCZrSfFvJu5SHdohIlwDMgYRgKgIByoVnnAIhAI+u+R+yxoMkKGLslniUKy6M7pGDwKiXAmRIOgsQ4cLr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35854},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"659d2781cd913fdf6087149cba5b239558342364","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.20_1737585289652_0.5636550401650298","host":"s3://npm-registry-packages-npm-production"}},"0.0.21":{"name":"swarf","version":"0.0.21","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.21","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"b7ceee3d0322fa857a019a3db6624de7be2e855b","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.21.tgz","fileCount":26,"integrity":"sha512-7t9caeatLk5iL/lX9lZ50DkadewIadEMZbup+sQMaXNM+2aOBueHaTy5IDafHzdyqNgP5fKZerpOK6+LpTGydw==","signatures":[{"sig":"MEQCICh9aUAyL6ycggePbrWTLSG3vPVhhWxWsPJsRIxWAweEAiArUl7TsucJpSnC+BFP7Ru1fu37JryoXD3wTIqnHZkRrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36030},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"e9c10684e596f90ae92ce5b8fae31e654d0a6750","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.21_1737585526739_0.9174767021835579","host":"s3://npm-registry-packages-npm-production"}},"0.0.22":{"name":"swarf","version":"0.0.22","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.22","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"55d7086e82b005d75b9215226bce6513b3b55fff","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.22.tgz","fileCount":26,"integrity":"sha512-fcVckWbWPBEkAQ4kmcB/kNm52WZF4GVHcOUQbaWBtjsjiDdXvj+YiIfnBqrd4LbGn6C/kSF4QY8nmvDcBU/3Cg==","signatures":[{"sig":"MEUCIQDoA9alcGwSorSg5K6DYGpS4aWit3nWlBoRF/QyX/GBTgIgcX2YSNrv1Zuvy+KrWRWWWk+acvlUqrxZoU7irOy8rKU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36047},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"e9c10684e596f90ae92ce5b8fae31e654d0a6750","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.22_1737585566335_0.6885706420816633","host":"s3://npm-registry-packages-npm-production"}},"0.0.23":{"name":"swarf","version":"0.0.23","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.23","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"0fd8be7a55db2c21120fb79256dab17d55106955","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.23.tgz","fileCount":26,"integrity":"sha512-QB/JqnPNdA8OWkwEGWEaYizfGaea6SWl459hm6MeNhW6f24aT0xOFB8xebAk8MrwW4k7s58iBHmBAzMpAE8B5g==","signatures":[{"sig":"MEQCIFJ2fo/x8Ibt9PeLanRrPS0MahJ1IHBfCu83A2dVU+uSAiBAlQFPTuygSZDxiEUR1664VRez4AklRhYB+sl0QR1QBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36030},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"e9c10684e596f90ae92ce5b8fae31e654d0a6750","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.23_1737585635986_0.2577774196546103","host":"s3://npm-registry-packages-npm-production"}},"0.0.24":{"name":"swarf","version":"0.0.24","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.24","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"7a210c9e5f33f2f82dfbd0573e0f995cd5157402","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.24.tgz","fileCount":26,"integrity":"sha512-0E5wCBFl/WSDv5/l+IVNQo94jlH7KnCn1FN/CB2v783tdDjBB7E/drZ6eSKCOaPt6rgKqWxEGxyxnIAPTgmabg==","signatures":[{"sig":"MEYCIQCfCOASNzi7OGy/YkcOHYkkUdOkmj4zyALCc3ftJpUmVQIhAL2mTLhdEwX1Uy8+1hLqjKZb2pQBwu69kvd/4zYM9/bS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35036},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"536fe99e872cbc164d455cca491017cd5d53c541","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.24_1737597053606_0.45564997699271337","host":"s3://npm-registry-packages-npm-production"}},"0.0.25":{"name":"swarf","version":"0.0.25","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.25","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"836a0d92e3b515813d13f5e587392c2ce78ce8c4","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.25.tgz","fileCount":26,"integrity":"sha512-Sd4T8lFt22rjwUHYrSKtOi0rGub6S35ZjnGhPon3P8CKkGsOwd9YVH3xd4BclkdMDpjBo3dWyQwo5C1nBtFkTA==","signatures":[{"sig":"MEQCIEr1L39nVTjG0EcXenjvjEzaW1IckbB2eLDPqGOgqEo1AiAfyg+NJUCFM04P0rRnRFb2OkKHdj1eWvs3qkZZbTsvXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35301},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"a8e7aea08ffe9a4fa049661a439ae7fa37ea98b0","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.25_1737609202058_0.04655539366806427","host":"s3://npm-registry-packages-npm-production"}},"0.0.26":{"name":"swarf","version":"0.0.26","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.26","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"5a687e9b87d1ff9f46b4c7b9d6c737989b8b98f5","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.26.tgz","fileCount":26,"integrity":"sha512-pSIRVg3sTV9tjfye2XobcMvZhjnUxmQ5NwoXBbm8BRHc45crQY7aneIhSIGlWXNBLs4fDl3J59N93SOzYQtK2w==","signatures":[{"sig":"MEUCIQCNkvaJwvYIqaFdmRrVngJLmDOK6ZWVzp4mIHP7vRe5ywIgMVgWSguirae08VnsSrofSOSAs6hWxXVpJ6oIN+qOUgI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35376},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"0e9a8f22d9a0e6cef9149be5aac3bb4e57c0b6be","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.26_1737639927987_0.8083492919536381","host":"s3://npm-registry-packages-npm-production"}},"0.0.27":{"name":"swarf","version":"0.0.27","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.27","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"0a5d255b4ee7c44d80189359e87cff7899d796a9","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.27.tgz","fileCount":26,"integrity":"sha512-jIfJrK8fCfLAG+zQNDMHO5/WxGNqzVPP5VEOCMUkDAHS6svncb9iR7dAHyEFPOYKxgVAevAl7StGa3VT6sJXCA==","signatures":[{"sig":"MEUCIQDSBCCVchhSqk0CRWCKSdtToretcRy0e8Z+aWZDo7sBcQIgUAA8D5mbsjzPMQbQLnxlzAumQ+KfGR+DZGz+acktSK8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35301},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"0e9a8f22d9a0e6cef9149be5aac3bb4e57c0b6be","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.27_1737641019593_0.6496674274750809","host":"s3://npm-registry-packages-npm-production"}},"0.0.28":{"name":"swarf","version":"0.0.28","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.28","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"a190d03ff86120c7b9b87b8daed5d3233f0a3ca5","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.28.tgz","fileCount":26,"integrity":"sha512-tJpQ6v0x/DH8CrorR7rsDUr0heDTjmNaxkszUBm7PgtOVJoPbW7LsLfoRFoBcMegtMgZKkDfznabafaqUfVKXw==","signatures":[{"sig":"MEUCIHbIZMeiv1bAtZ0YA/MuIoyGyI8/r/c390tw0b3mjtbUAiEAssRZENHKMb7XhIQCbh3zNXgFeyEzgbWUDbN+W8OimyQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35351},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"0cecb3ef066cf822c86d730c495ab68fa2d4bac2","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.28_1737652965139_0.6264262800315228","host":"s3://npm-registry-packages-npm-production"}},"0.0.29":{"name":"swarf","version":"0.0.29","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.0.29","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"10a88637568c2c1391f2485c60613253ff01add6","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.0.29.tgz","fileCount":26,"integrity":"sha512-o8NZ69NK26HvgIYFCfwcw64MUSCJdxfue6NgAVnqVXhbhLLrPZnXXPnHIfvSk1vr1Ym90qjm0rTK1ZGGMU7L/w==","signatures":[{"sig":"MEUCIEeQYEocuLxfTFszYrqFHN5TwfiuWqkT06kVmj/xMkfGAiEAl37eFyUYvnWgXFliaouuA7wo/OnZw+3u4JDewAnW97Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35403},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"abbc05827cfaae9e7f43f5d2d8c0699bb2706eca","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.0.29_1737714473124_0.7454058940818289","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"swarf","version":"0.1.0","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.1.0","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"e98a9bbda33b29dc8504619a3b4d891b8bddcb53","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.1.0.tgz","fileCount":26,"integrity":"sha512-vVXfpmA3+XNbmNxaAFuqspUgN/gvMiZJyQLRGp8bOq+pHO5jIj/SMFp+1wp8OtsGAvxwqsrddTDkTMWEavrq6A==","signatures":[{"sig":"MEUCIA5W9xki3U5IBDseCIwZT+ejDtyi+uDP7KWY9O3ma6m3AiEAwqZAhEyDq7HVq+Ync7XMz6az+6BEcsHEs6kcFtb1wBY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34193},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"abbc05827cfaae9e7f43f5d2d8c0699bb2706eca","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.1.0_1737911441299_0.4778438484958756","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"swarf","version":"0.1.1","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.1.1","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"779b7262f2d024e6b0303408694c1d0fc520ed85","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.1.1.tgz","fileCount":26,"integrity":"sha512-fglfVjVMRyH3MXnhO7KzuXjmAlxH0Rr2I58OsUBadgoVIWEGN4WfQ7gdwV1ZD939wCeglwbvWXJh9wdYI7xXbw==","signatures":[{"sig":"MEYCIQCzMRGUH7W6ls+IFlvYsV1AdOL5nyJ55dzADEzqD0HxGAIhAKRFnHw+X93vnhkG3HQZ66Yw9eqxWVnEz+inDry1SbGZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34192},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"abbc05827cfaae9e7f43f5d2d8c0699bb2706eca","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"react":"^18.2.0","events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","react-dom":"^18.2.0","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.1.1_1737911755612_0.2039881322614614","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"swarf","version":"0.1.2","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.1.2","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"b9d71186b93f3627044454359d58c243db8dbce4","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.1.2.tgz","fileCount":26,"integrity":"sha512-ADcoHUyjN9Gw2iUysYpuzc0PSXW0GF6tAHcpoWOBPbBT2PgKVvArPFI54WqHmS3flHoy9sidmHON+ou1TQ62pg==","signatures":[{"sig":"MEQCIDyMX5w0Ff+x5IFUFYSijQu1GDlEKTFctiOf6ao6m4KkAiA8WXBiL/QruuWZwnOW7R47YmED8HjIUpB31mhL9cidjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35700},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"abbc05827cfaae9e7f43f5d2d8c0699bb2706eca","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","@types/node":"^22.10.7","@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.1.2_1737921639029_0.4410500031451474","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"swarf","version":"0.1.3","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.1.3","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"600982db88ec53a71c454c5ecea1ee92ae33f6e2","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.1.3.tgz","fileCount":26,"integrity":"sha512-CYQkPoK2mtP/qph3Dhms0RiWrYZq/w8Z+0AZOHWUzFHBr8M3eX6yokG4HOBcNooTiXlsUBk6GcDPql2wltw4tQ==","signatures":[{"sig":"MEUCIEdqQSC726OB1q6w/Q/gkbzXiPEzJTYK30DzXKqDre/uAiEAhnMGsW8Vx75MLog32cENv0e9Ym7tGQOqrvnpKVr/h8g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34747},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"abbc05827cfaae9e7f43f5d2d8c0699bb2706eca","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","@types/node":"^22.10.7","@types/react":"^19.0.8","@types/react-dom":"^19.0.3","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.1.3_1737922308253_0.08907138922430735","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"swarf","version":"0.1.4","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.1.4","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"b8d513f84335ff35b70d443b9f000ea591eca935","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.1.4.tgz","fileCount":26,"integrity":"sha512-GUQQez5rf//faj4jVPvq2babxXwVSZT9sVesOR8FcgupEqlEM7Vs7Ns7IeW5O3eXgtViskHOfg8ER5GQAHC+dg==","signatures":[{"sig":"MEUCIQClYm4zJm7DcHLGlT9lehsn5qCHJ0Dr+LRod5xxFhQJwQIgdvCmTPy2XZ3er68q21BNp9uAbGaZEPmSHwNn1HSnJuQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34726},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"abbc05827cfaae9e7f43f5d2d8c0699bb2706eca","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","@types/node":"^22.10.7","@types/react":"^19.0.8","@types/react-dom":"^19.0.3","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.1.4_1737922758448_0.37581470486089974","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"swarf","version":"0.1.5","author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","_id":"swarf@0.1.5","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"bin":{"swarf":"bin/scripts.js"},"dist":{"shasum":"c75703471a4d8c61644314bfe33bead43af56cdb","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.1.5.tgz","fileCount":26,"integrity":"sha512-CNSGfc2dO1Gfz62zwXr9qpQyPEbde8wJidgANfw2q/F3CtVEDo8hJuCQQg+m6bFf4O1dA6djFwriWX+IzltJrQ==","signatures":[{"sig":"MEQCIDmTQ343iVOcgbcLuM163W3TBmPQUPK/IQ0MDyU7MKYwAiBqXr8Tc/Y8II7/e08OGRNnKJRIbZw7E4GC2CNL58pXJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34901},"exports":{".":"./src/types.ts","./bin":"./bin","./src":"./src","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx"},"gitHead":"abbc05827cfaae9e7f43f5d2d8c0699bb2706eca","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"_npmVersion":"10.5.0","description":"Serve dynamic HTML with React inside a Service Worker","directories":{},"_nodeVersion":"21.7.3","dependencies":{"events":"^3.3.0","esbuild":"^0.24.2","prettier":"^3.4.2","http-server":"^14.1.1","react-router":"^7.1.1","lodash.throttle":"^4.1.1","@express-worker/app":"^1.5.0","esbuild-css-modules-plugin":"^3.1.4","typescript-plugin-css-modules":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","@types/node":"^22.10.7","@types/react":"^19.0.8","@types/react-dom":"^19.0.3","@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/swarf_0.1.5_1737922901519_0.5708245200755133","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"swarf","version":"0.1.6","description":"Serve dynamic HTML with React inside a Service Worker","scripts":{"format":"prettier --config .prettierrc \"**/*.{ts,tsx}\" --write"},"author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","exports":{".":"./src/types.ts","./window":"./src/window.tsx","./service-worker":"./src/service-worker.tsx","./bin":"./bin","./src":"./src"},"bin":{"swarf":"bin/scripts.js"},"dependencies":{"@express-worker/app":"^1.5.0","esbuild":"^0.24.2","esbuild-css-modules-plugin":"^3.1.4","events":"^3.3.0","http-server":"^14.1.1","lodash.throttle":"^4.1.1","prettier":"^3.4.2","react-router":"^7.1.1","typescript-plugin-css-modules":"^5.1.0"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"devDependencies":{"@types/css-modules":"^1.0.5","@types/http-server":"^0.12.4","@types/node":"^22.10.7","@types/react":"^19.0.8","@types/react-dom":"^19.0.3","react":"^19.0.0","react-dom":"^19.0.0"},"_id":"swarf@0.1.6","gitHead":"abbc05827cfaae9e7f43f5d2d8c0699bb2706eca","_nodeVersion":"21.7.3","_npmVersion":"10.5.0","dist":{"integrity":"sha512-fTQrc3JpCpy5PtTwk3l+kJwvzvoNhXGOeRfnqr+BrqYqi+pUQz0U/MKQaT2rXA2crsE2pfhZ5lNqh6Jl96TMXA==","shasum":"8a8124ebd91ed6cadd837e6905fe6f85d4a1e794","tarball":"https://registry.npmjs.org/swarf/-/swarf-0.1.6.tgz","fileCount":26,"unpackedSize":34947,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGtT2uqmT+N0vmLIpMtx8PzHOzkCDROOx4/dLXQm4unCAiEA0yjdPJ78VAgGO2wim8UVke1+oWzQr/WU1Mlh/ffaIRc="}]},"_npmUser":{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"},"directories":{},"maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/swarf_0.1.6_1737923068517_0.13129029522493463"},"_hasShrinkwrap":false}},"time":{"created":"2025-01-21T18:19:17.208Z","modified":"2025-01-26T20:24:28.991Z","0.0.1":"2025-01-21T18:19:17.468Z","0.0.2":"2025-01-21T18:19:47.087Z","0.0.3":"2025-01-21T18:20:25.195Z","0.0.4":"2025-01-21T18:21:07.829Z","0.0.5":"2025-01-21T18:41:41.500Z","0.0.6":"2025-01-21T18:43:29.334Z","0.0.7":"2025-01-21T18:51:38.264Z","0.0.8":"2025-01-21T18:53:08.744Z","0.0.9":"2025-01-21T18:59:03.671Z","0.0.10":"2025-01-21T20:37:34.015Z","0.0.11":"2025-01-21T22:15:33.919Z","0.0.12":"2025-01-22T22:23:37.695Z","0.0.13":"2025-01-22T22:25:16.191Z","0.0.14":"2025-01-22T22:26:18.981Z","0.0.15":"2025-01-22T22:27:53.615Z","0.0.16":"2025-01-22T22:28:58.261Z","0.0.17":"2025-01-22T22:30:38.002Z","0.0.18":"2025-01-22T22:31:31.763Z","0.0.19":"2025-01-22T22:33:24.921Z","0.0.20":"2025-01-22T22:34:49.916Z","0.0.21":"2025-01-22T22:38:46.989Z","0.0.22":"2025-01-22T22:39:26.553Z","0.0.23":"2025-01-22T22:40:36.213Z","0.0.24":"2025-01-23T01:50:53.806Z","0.0.25":"2025-01-23T05:13:22.226Z","0.0.26":"2025-01-23T13:45:28.172Z","0.0.27":"2025-01-23T14:03:39.787Z","0.0.28":"2025-01-23T17:22:45.303Z","0.0.29":"2025-01-24T10:27:53.306Z","0.1.0":"2025-01-26T17:10:41.530Z","0.1.1":"2025-01-26T17:15:55.812Z","0.1.2":"2025-01-26T20:00:39.316Z","0.1.3":"2025-01-26T20:11:48.445Z","0.1.4":"2025-01-26T20:19:18.641Z","0.1.5":"2025-01-26T20:21:41.711Z","0.1.6":"2025-01-26T20:24:28.793Z"},"author":{"name":"Michael Puckett","email":"michael@puckett.contact"},"license":"MIT","description":"Serve dynamic HTML with React inside a Service Worker","maintainers":[{"name":"michaelcpuckett","email":"michaelcpuckett@gmail.com"}],"readme":"# Swarf\r\n\r\n**Swarf** stands for **Service Worker App Router Framework**.\r\n\r\nIt is a package that provides an API similar to Next.js's App Router, but\r\ndesigned for a Service Worker context.\r\n\r\n## Philosophy\r\n\r\nSwarf is an opinionated framework that requires using TypeScript and TSX.\r\n\r\nUnder the hood, this package uses\r\n[@express-worker/app](https://github.com/michaelcpuckett/express-worker) to\r\nserve the routes. If this framework is too opinionated for your needs, consider\r\nusing @express-worker/app directly. For a more fully-featured Service Worker\r\nframework, look to Google's\r\n[Workbox](https://developer.chrome.com/docs/workbox).\r\n\r\n## Features\r\n\r\n### App Router\r\n\r\nSimilar to [Next.js](https://nextjs.org/), routes are defined as a directory\r\nstructure under `src/app`.\r\n\r\n### React SSR\r\n\r\nThe initial page HTML is rendered by React-DOM/Server which then gets hydrated\r\nby React-DOM/Client.\r\n\r\n### Static File Handling\r\n\r\nStatic files in the `src/app` directory are cached and served by the service\r\nworker.\r\n\r\n## Installation\r\n\r\n1. In a new repository, run `npm install swarf --save`\r\n\r\n2. Run `npx swarf init` to establish the essential file structure.\r\n\r\nYou can also use the template for the\r\n[starter kit](https://github.com/michaelcpuckett/swarf-starter).\r\n\r\n## Usage\r\n\r\nThe folders inside `src/app` are used to define the routes. Folders can be\r\nnested. The `page.tsx` file inside each folder is the component that renders the\r\nbody of the page.\r\n\r\nTo add a new route:\r\n\r\n1. Create a new folder in the `src/app` directory and create a `page.tsx` file\r\n   inside it.\r\n\r\n   Dynamic routes are defined by using square brackets in the folder name. For\r\n   example, if you want to create a dynamic route for user profiles, you can\r\n   create a folder with a path of `src/app/profiles/[id]`.\r\n\r\n2. Define the React component for the page as the `default` export.\r\n\r\n3. Define and export `getStaticProps` and `metadata`. (See below.)\r\n\r\n4. Run `swarf build` to regenerate the routes.\r\n\r\n### Static Props\r\n\r\n`getStaticProps` is an asynchronous function used to fetch data at render time.\r\nIt allows you to call an API or query a database and pass the results as props\r\nto the page component. The path params are passed to this function. You can\r\ndefine `getStaticProps` as follows:\r\n\r\n```ts\r\nexport const getStaticProps: GetStaticProps = async function ({\r\n  params: { id },\r\n}) {\r\n  const apiData = await fetch(`https://myapi.example/data/${id}`).then((res) =>\r\n    res.json(),\r\n  );\r\n\r\n  return {\r\n    props: {\r\n      apiData,\r\n    },\r\n  };\r\n};\r\n```\r\n\r\nIf the data is unlikely to change, you can use this function to handle caching\r\nusing the browser's `caches` API:\r\n\r\n```ts\r\nexport const getStaticProps: GetStaticProps = async function ({\r\n  params: { id },\r\n}) {\r\n  const todosCache = await caches.open('todos-page-props');\r\n  const cachedTodo = await todosCache.match(id);\r\n\r\n  // Check the cache first.\r\n\r\n  if (cachedTodo) {\r\n    return await cachedTodo.json();\r\n  }\r\n\r\n  const todo = await fetchTodo({ id });\r\n\r\n  // Save to cache.\r\n\r\n  todosCache.put(id, new Response(JSON.stringify(todo)));\r\n\r\n  return {\r\n    props: {\r\n      todo,\r\n    },\r\n  };\r\n};\r\n```\r\n\r\nUsing a similar strategy, images and other resources can be precached at this\r\nstage:\r\n\r\n```ts\r\nexport const getStaticProps: GetStaticProps = async function ({\r\n  params: { id },\r\n}) {\r\n  const userComment = await fetchUserComment({ id });\r\n  const userAvatarUrl = userComment.avatarUrl;\r\n\r\n  const userAvatarsCache = await caches.open('user-avatars');\r\n  const cachedUserAvatar = await userAvatarsCache.match(userAvatarUrl);\r\n\r\n  if (!cachedUserAvatar) {\r\n    const userAvatarFileContents = await fetch(userAvatarUrl).then((res) =>\r\n      res.blob(),\r\n    );\r\n\r\n    // The image will be available immediately on page load.\r\n    userAvatarsCache.put(userAvatarUrl, new Response(userAvatarFileContents));\r\n  }\r\n\r\n  return {\r\n    props: {\r\n      userComment,\r\n    },\r\n  };\r\n};\r\n```\r\n\r\n### Metadata\r\n\r\n`metadata` is an object that contains information about the page, such as the\r\ntitle and description. You can define `metadata` as follows:\r\n\r\n```ts\r\nexport const metadata: Metadata = {\r\n  title: 'Page Title',\r\n  description: 'Page description',\r\n};\r\n```\r\n\r\nIf you need to access the route params, you can export a function instead:\r\n\r\n```ts\r\nexport const metadata: GetMetadata = ({ params: { id } }) => ({\r\n  title: 'Note ' + id,\r\n});\r\n```\r\n\r\n### Page Component\r\n\r\nThe `default` export should be the Page component. It will receive the props\r\ndefined in `getStaticProps`. It will be wrapped in the `PageShell`.\r\n\r\n```tsx\r\nexport default function HomePage({ data }: { data: Data }) {\r\n  return <main>{data.foo}</main>;\r\n}\r\n```\r\n\r\n## Development\r\n\r\nRun `swarf dev` during development.\r\n\r\nFor easiest debugging, in the Web Inspector, under the Application tab, under\r\nService Workers, select the checkbox for \"Update on reload\".\r\n\r\n## Production Builds\r\n\r\nRun `swarf build` to generate a production build/\r\n\r\nThe built-in strategy for invalidating the old cache and serving the updated\r\ncontent is through incrementing the version in `router.config.json`.\r\n\r\nPublish the `public` directory to a static file hosting service. A 404.html file\r\nshould be served as a catch-all route.\r\n\r\n## Benefits\r\n\r\n### Fast Page Rendering\r\n\r\nRoutes can pre-cache or inline key assets.\r\n\r\n### Simplified Hosting\r\n\r\nThe server only needs to be able to serve the initial static assets. This\r\nproject uses Firebase Static Hosting.\r\n\r\n### Offline-Ready\r\n\r\nWhen a user navigates to a route while offline, the service worker can serve a\r\npreviously cached response or generate a new one based on stored data.\r\n\r\n## Drawbacks\r\n\r\n### No Search Engine Indexing\r\n\r\nPages generated by a service worker aren't indexed by search engines. You may\r\nneed alternative strategies for SEO, such as generating static HTML snapshots or\r\nusing a separate build process to create server-rendered pages.\r\n\r\n## Limitations / Future Work\r\n\r\n- React Server Components (streaming responses) are not yet supported.\r\n- Decide if this could/should be a Next.js plugin.\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License.\r\n","readmeFilename":"README.md"}