{"_id":"@aussieljk/singlefile","_rev":"5-ce7707e834bdaf5420f1c5600be8a023","name":"@aussieljk/singlefile","dist-tags":{"latest":"0.2.3-rc.0"},"versions":{"0.1.0":{"name":"@aussieljk/singlefile","version":"0.1.0","keywords":["bundler","esbuild","single-file","html","browser"],"author":{"name":"Lucas Knight"},"license":"MIT","_id":"@aussieljk/singlefile@0.1.0","maintainers":[{"name":"aussieljk","email":"me@lucasknight.com.au"}],"dist":{"shasum":"2a7a05b238e21c85ce3b3782317bb12ad32fda47","tarball":"https://registry.npmjs.org/@aussieljk/singlefile/-/singlefile-0.1.0.tgz","fileCount":5,"integrity":"sha512-VWDnimuYZPDaAsJWLH/dzRa6sxc781/+bvqWhxkwW3vb+DLnJkvsJ/EEmOmOvvN6x3T5f98FatxTTr5acsy7Rw==","signatures":[{"sig":"MEUCIHxt/CCDClSYJ7Zu8MjgL9HlfY8aupeGXzj5JDUiERTOAiEAozeKGImv00n5l6Aw27ACc/6tpj8tEsUPTsD1CLIV9SE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41151},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"bun build src/index.ts --outdir dist --format esm --sourcemap --external esbuild-wasm --external fflate && bun x tsc --emitDeclarationOnly","prepublishOnly":"bun run build"},"_npmUser":{"name":"aussieljk","email":"me@lucasknight.com.au"},"_npmVersion":"11.12.1","description":"Bundle a web app into a single self-contained HTML file using esbuild-wasm in the browser","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"fflate":"^0.8.2","@types/bun":"^1.3.13","typescript":"^5.9.3","esbuild-wasm":"^0.27.7"},"peerDependencies":{"fflate":">=0.8.0","esbuild-wasm":">=0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/singlefile_0.1.0_1777883412308_0.3006130637804032","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aussieljk/singlefile","version":"0.2.0","keywords":["bundler","esbuild","single-file","html","browser"],"author":{"name":"Lucas Knight"},"license":"MIT","_id":"@aussieljk/singlefile@0.2.0","maintainers":[{"name":"aussieljk","email":"me@lucasknight.com.au"}],"bin":{"singlefile":"dist/cli.js"},"dist":{"shasum":"d67aa30b9df368e0ced87196a41d0ae8b333694f","tarball":"https://registry.npmjs.org/@aussieljk/singlefile/-/singlefile-0.2.0.tgz","fileCount":8,"integrity":"sha512-CD6VanQDuUcB+LwoHj930Sfs7XhYRP5KcCwt4AUQjhKVepjxAZtalZNgCDQGZ0AP5JfTXoKqqLYMAVneyZOiPw==","signatures":[{"sig":"MEUCIQCuJ2ybsl3EuEkF7FwJzUh2vVgkL36fvtgVaNPITI+LmQIgXK2TN2mYYCtzC7BVeGfdn8oU1P9oceGDNIGlm8GPl3I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112491},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"077255e5e60524b13256917c9fbb8cb403d07b6f","scripts":{"build":"bun build src/index.ts src/cli.ts --outdir dist --format esm --sourcemap --external esbuild-wasm --external fflate && bun x tsc --emitDeclarationOnly","prepublishOnly":"bun run build"},"_npmUser":{"name":"aussieljk","email":"me@lucasknight.com.au"},"_npmVersion":"11.12.1","description":"Bundle a React app into a single HTML file","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"fflate":"^0.8.2","@types/bun":"^1.3.13","typescript":"^5.9.3","esbuild-wasm":"^0.27.7"},"peerDependencies":{"fflate":">=0.8.0","esbuild-wasm":">=0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/singlefile_0.2.0_1777883994917_0.10380244238807457","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@aussieljk/singlefile","version":"0.2.1","keywords":["bundler","esbuild","single-file","html","browser"],"author":{"name":"Lucas Knight"},"license":"MIT","_id":"@aussieljk/singlefile@0.2.1","maintainers":[{"name":"aussieljk","email":"me@lucasknight.com.au"}],"bin":{"singlefile":"dist/cli.js"},"dist":{"shasum":"61a40a1ffeabd41d79068925243d6e182bf313b9","tarball":"https://registry.npmjs.org/@aussieljk/singlefile/-/singlefile-0.2.1.tgz","fileCount":8,"integrity":"sha512-TshrDuqKsHsdR8UNbgO+lwpS3NHMn70PI+PTh7UEsPYxpCg5sy7LV3x0Jg4UyUx+oDCCQiTHIzr+4o9Gc5Brug==","signatures":[{"sig":"MEUCIQCn+DyjTfBQzByOgiXyObMGI9+9sJEnUOyTmOgg8UQ/rgIgdAITNRT/3GtZ/nmbcGiamePIhcR1gXkdUpmTPy4Uq3I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112412},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"077255e5e60524b13256917c9fbb8cb403d07b6f","scripts":{"build":"bun build src/index.ts src/cli.ts --outdir dist --format esm --sourcemap --external esbuild-wasm --external fflate && bun x tsc --emitDeclarationOnly","prepublishOnly":"bun run build"},"_npmUser":{"name":"aussieljk","email":"me@lucasknight.com.au"},"_npmVersion":"11.12.1","description":"Bundle a React app into a single HTML file","directories":{},"_nodeVersion":"24.15.0","dependencies":{"fflate":"^0.8.2","esbuild-wasm":"^0.27.7"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.13","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/singlefile_0.2.1_1777884190919_0.44516778497607246","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@aussieljk/singlefile","version":"0.2.2","keywords":["vite","vite-plugin","bundler","esbuild","single-file","html"],"author":{"name":"Lucas Knight"},"license":"MIT","_id":"@aussieljk/singlefile@0.2.2","maintainers":[{"name":"aussieljk","email":"me@lucasknight.com.au"}],"dist":{"shasum":"332500ca2d59204c663c7561b3cf01e9dc280ca2","tarball":"https://registry.npmjs.org/@aussieljk/singlefile/-/singlefile-0.2.2.tgz","fileCount":11,"integrity":"sha512-P9j1LU4yfc8/infY2NS00eDvwtqAsrwikeBQeYXcvgrREhcr7pwRpOXBoQxBK25+JLqRcv3G3na8RmjkRoCSmA==","signatures":[{"sig":"MEUCIQCRRVh5aYo4NxclIWV89Vzd0ZcJnxoS7ONUYU/npTy02AIgHIc8Sx0UBScDUM5O/tw2vK9fzNGeGo7bdptHVxibsVM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326390},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./plugin":{"types":"./dist/plugin.d.ts","import":"./dist/plugin.js"}},"gitHead":"e1d2fabffdcaab84c696dd91d75961bb681904a5","scripts":{"build":"bun build src/index.ts src/plugin.ts --outdir dist --format esm --sourcemap --external esbuild-wasm --external fflate --external vite && bun x tsc --emitDeclarationOnly","build:ui":"cd ui && bun install && bun run build","build:all":"bun run build && bun run build:ui","prepublishOnly":"bun run build:all"},"_npmUser":{"name":"aussieljk","email":"me@lucasknight.com.au"},"_npmVersion":"11.12.1","description":"Vite plugin to bundle a React app into a single HTML file","directories":{},"_nodeVersion":"24.15.0","dependencies":{"fflate":"^0.8.2","esbuild-wasm":"^0.27.7"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","@types/bun":"^1.3.13","typescript":"^5.9.3"},"peerDependencies":{"vite":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/singlefile_0.2.2_1777887314686_0.11129887753042933","host":"s3://npm-registry-packages-npm-production"}},"0.2.3-rc.0":{"_id":"@aussieljk/singlefile@0.2.3-rc.0","bugs":{"url":"https://github.com/aussieljk/singlefile/issues"},"dist":{"shasum":"da6cf59accb8aba3e55a7d788043f876ff428c36","tarball":"https://registry.npmjs.org/@aussieljk/singlefile/-/singlefile-0.2.3-rc.0.tgz","fileCount":11,"integrity":"sha512-UDDaZPNAVQItSdVbQyxMGo+eM/SCAOoOONelg304OcFU+xUBu5a4fu5TqfMTSGgJHDvMRRoO6nmJ8/YMKD5kmw==","signatures":[{"sig":"MEQCIFQsKxtL/D9wgA1NaZ3wwjs1m6ztvqJlE/yCrMPeMLX3AiAyshm5btQ6cvrkLXHV6G1RFyblRF1mXvuNygVzXKoKLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDwlwfkG82B2gLiUSEx5pBUoBYyLoRAgplmGL3DmOp3ZwIgciyfuvI1CxAL7mRxfgZ3euRZwf67UdUBxfpvxXEMiik="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aussieljk%2fsinglefile@0.2.3-rc.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":327196},"main":"dist/index.js","name":"@aussieljk/singlefile","type":"module","types":"dist/index.d.ts","author":{"name":"Lucas Knight"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./plugin":{"types":"./dist/plugin.d.ts","import":"./dist/plugin.js"}},"gitHead":"181aba7ccada8cd9a52d84cd0cd1ecbd5f895075","license":"MIT","scripts":{"build":"bun build src/index.ts src/plugin.ts --outdir dist --format esm --sourcemap --external esbuild-wasm --external fflate --external vite && bun x tsc --emitDeclarationOnly","check":"bun run workflows:check && bun run typecheck && bun run build:all","release":"bun scripts/release.ts","build:ui":"cd ui && bun install && bun run build","build:all":"bun run build && bun run build:ui","typecheck":"tsc --noEmit","workflows":"bun ci/generate.ts","prepublishOnly":"bun run build:all","workflows:check":"bun ci/generate.ts --check"},"version":"0.2.3-rc.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9602dc4-ce5a-4744-996c-b4b2e8dddb2d"}},"homepage":"https://github.com/aussieljk/singlefile#readme","keywords":["vite","vite-plugin","bundler","esbuild","single-file","html"],"repository":{"url":"git+https://github.com/aussieljk/singlefile.git","type":"git"},"_npmVersion":"11.17.0","description":"Vite plugin to bundle a React app into a single HTML file","directories":{},"maintainers":[{"name":"aussieljk","email":"me@lucasknight.com.au"}],"_nodeVersion":"24.19.0","dependencies":{"fflate":"^0.8.2","esbuild-wasm":"^0.27.7"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"vite":"^6.3.5","@types/bun":"^1.3.13","typescript":"^5.9.3"},"peerDependencies":{"vite":">=5.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/singlefile_0.2.3-rc.0_1788415444007_0.16767461884441914"}}},"time":{"created":"2026-05-04T08:30:12.226Z","modified":"2026-09-03T06:04:04.456Z","0.1.0":"2026-05-04T08:30:12.462Z","0.2.0":"2026-05-04T08:39:55.037Z","0.2.1":"2026-05-04T08:43:11.141Z","0.2.2":"2026-05-04T09:35:14.846Z","0.2.3-rc.0":"2026-09-03T06:04:04.087Z"},"author":{"name":"Lucas Knight"},"license":"MIT","keywords":["vite","vite-plugin","bundler","esbuild","single-file","html"],"description":"Vite plugin to bundle a React app into a single HTML file","maintainers":[{"name":"aussieljk","email":"me@lucasknight.com.au"}],"readme":"# @aussieljk/singlefile\n\nVite plugin to bundle a React app into a single HTML file.\n\n## Installation\n\n```bash\nbun add -D @aussieljk/singlefile\n```\n\n## Usage\n\n```ts\n// vite.config.ts\nimport { defineConfig } from \"vite\"\nimport react from \"@vitejs/plugin-react\"\nimport singlefile from \"@aussieljk/singlefile/plugin\"\n\nexport default defineConfig({\n  plugins: [\n    react(),\n    singlefile({ title: \"My App\" }),\n  ],\n})\n```\n\nThen visit `/__singlefile/` in your dev server.\n\n## Features\n\n- **Code Editor** - Edit source files directly in the browser\n- **Download** - Build and download as single HTML file\n- **Send to URL** - Build and POST to any endpoint with Bearer auth\n\n## UI Routes\n\n| Route | Description |\n|-------|-------------|\n| `/__singlefile/` | Builder UI |\n| `/__singlefile/sources` | JSON of source files |\n| `/__singlefile/deps` | JSON of dependencies |\n| `/__singlefile/lib.js` | Bundler library |\n\n## Options\n\n```ts\nsinglefile({\n  title: \"My App\",    // HTML title (default: \"App\")\n  mode: \"online\",     // Default mode: \"online\" | \"offline\"\n})\n```\n\n## Build Modes\n\n| Mode | Speed | Size | Network |\n|------|-------|------|---------|\n| online | ~2s | Smaller | Required |\n| offline | ~5-30s | Larger | Not required |\n\n## Send to URL\n\nThe builder UI includes a form to POST the built HTML to any URL:\n- Enter the target URL\n- Optionally add a Bearer token for auth\n- Select build mode (online/offline)\n- Click \"Build & Send\"\n\nThe HTML is sent as the request body with `Content-Type: text/html`.\n\n## Security\n\nThe Send-to-URL feature POSTs your built HTML to whatever URL you enter, attaching the Bearer token you provide in an `Authorization` header. The token is sent from your browser directly to that endpoint — only paste tokens for endpoints you trust, and prefer HTTPS URLs so the token isn't sent in plaintext. The builder UI is only served by the Vite dev server and is not part of production builds.\n","readmeFilename":"README.md","homepage":"https://github.com/aussieljk/singlefile#readme","repository":{"url":"git+https://github.com/aussieljk/singlefile.git","type":"git"},"bugs":{"url":"https://github.com/aussieljk/singlefile/issues"}}