{"_id":"@akshay3001/html-publish","_rev":"4-8caaae6a4e238d29e5a18d85729ad708","name":"@akshay3001/html-publish","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@akshay3001/html-publish","version":"0.1.0","keywords":["cli","cloudflare-access","html"],"author":{"name":"Akshay"},"license":"MIT","_id":"@akshay3001/html-publish@0.1.0","maintainers":[{"name":"akshaymhatre89","email":"akshay.mhatre8989@gmail.com"}],"homepage":"https://github.com/akshay3001/agents#readme","bugs":{"url":"https://github.com/akshay3001/agents/issues"},"bin":{"html-publish":"dist/cli.js"},"dist":{"shasum":"19ee714cbda62b225df0bd7f79583ff955bea8c7","tarball":"https://registry.npmjs.org/@akshay3001/html-publish/-/html-publish-0.1.0.tgz","fileCount":5,"integrity":"sha512-qZgA91d0kOYc/1nSneNriQzez2lRzfBqMcoKkbIqib4lq9GcrU6xoT2UJCO3jyFi5rTLF31Pw5Q67aRUjROVWA==","signatures":[{"sig":"MEQCIDqnDTXt2D8QdxhfmpFVeysUEbP5lutxg6BhGOnVkhYHAiAeHDtZD1vCHsTMkS6ONTHFdiQzSNO2RDTpBdrquiGiXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13370},"type":"module","engines":{"node":">=24"},"gitHead":"9583224fc8e822e2cab6bedaf43f65a4c58e09db","scripts":{"test":"node --test test/*.test.ts","build":"npm run clean && tsc -p tsconfig.build.json","check":"tsc -p tsconfig.json --noEmit","clean":"node --eval \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run validate","validate":"npm run check && npm test && npm run build"},"_npmUser":{"name":"akshaymhatre89","email":"akshay.mhatre8989@gmail.com"},"repository":{"url":"git+https://github.com/akshay3001/agents.git","type":"git","directory":"mcp/html-publish"},"_npmVersion":"11.16.0","description":"Publish and read private HTML artifacts through a protected HTTP service.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"6.0.3","@types/node":"24.13.3"},"_npmOperationalInternal":{"tmp":"tmp/html-publish_0.1.0_1789211081961_0.6158453724115465","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@akshay3001/html-publish","version":"0.1.1","keywords":["cli","cloudflare-access","html"],"author":{"name":"Akshay"},"license":"MIT","_id":"@akshay3001/html-publish@0.1.1","maintainers":[{"name":"akshaymhatre89","email":"akshay.mhatre8989@gmail.com"}],"homepage":"https://github.com/akshay3001/agents#readme","bugs":{"url":"https://github.com/akshay3001/agents/issues"},"bin":{"html-publish":"dist/cli.js"},"dist":{"shasum":"c2082a51435c4b14ab291a459af20335487ffe62","tarball":"https://registry.npmjs.org/@akshay3001/html-publish/-/html-publish-0.1.1.tgz","fileCount":5,"integrity":"sha512-D4ncW8XVfpckcDO7ellYFKFHR/t6NhZqvYFsTyutdOW6Vr8XwcsyUkE/zQWrXVjNppcbVssCfLAx7PQ4URjtXQ==","signatures":[{"sig":"MEUCIQCcZU8PWre5QKwwqLyr38B+ue9eFrmVJGTKHxgu88t7sAIgQbiiE+MWwdDXaon4naU2VMg4KtHcijTc/japXV5Hq+o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD0wtODhxolJ7+QddKL3alRnHXRrqlWXDCUQOJig7x6AAIhALZjRGuRSC0eR+R8z81UOFBmL9fRPGofaFOfJP+usaLo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13967},"type":"module","engines":{"node":">=24"},"gitHead":"a483cee302d4deb16860a61d4f42166cdfc55634","scripts":{"test":"node --test test/*.test.ts","build":"npm run clean && tsc -p tsconfig.build.json","check":"tsc -p tsconfig.json --noEmit","clean":"node --eval \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run validate","validate":"npm run check && npm test && npm run build"},"_npmUser":{"name":"akshaymhatre89","email":"akshay.mhatre8989@gmail.com"},"repository":{"url":"git+https://github.com/akshay3001/agents.git","type":"git","directory":"mcp/html-publish"},"_npmVersion":"11.16.0","description":"Publish and read private HTML artifacts through a protected HTTP service.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"6.0.3","@types/node":"24.13.3"},"_npmOperationalInternal":{"tmp":"tmp/html-publish_0.1.1_1789212592521_0.21537777708770678","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@akshay3001/html-publish","version":"0.1.2","keywords":["cli","cloudflare-access","html"],"author":{"name":"Akshay"},"license":"MIT","_id":"@akshay3001/html-publish@0.1.2","maintainers":[{"name":"akshaymhatre89","email":"akshay.mhatre8989@gmail.com"}],"homepage":"https://github.com/akshay3001/agents#readme","bugs":{"url":"https://github.com/akshay3001/agents/issues"},"bin":{"html-publish":"dist/cli.js"},"dist":{"shasum":"3c27c0ed854f4391327041632e80dd0b88b1252c","tarball":"https://registry.npmjs.org/@akshay3001/html-publish/-/html-publish-0.1.2.tgz","fileCount":5,"integrity":"sha512-15wbBExxZmVzjkusGx71V+ijIXGZ6f1YwgfiLxHandXnRRonKo+EVJUNVwhYAxKY0tDxDe5LQWO9/6azOFV18w==","signatures":[{"sig":"MEQCIEob/F2z1lXnJo7VhwRza88d0H1gV+QXbu5A9TNXYxbgAiBgaT2vwxtlKkRj2EljamCiZhW2LwJ6mWkzYR0NEZqBIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDbyj1lBSsLAMOlgBZ+nE6QmRmsNx8uVpS1fo2nIPu2lQIhALkp+509/Yhkkk9MMDtxOwqn4Ru/S7b6OUtHS7Zo1tHb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13969},"type":"module","engines":{"node":">=24"},"gitHead":"efd69979d835cea22d7b452e43f55d399e2233dc","scripts":{"test":"node --test test/*.test.ts","build":"npm run clean && tsc -p tsconfig.build.json","check":"tsc -p tsconfig.json --noEmit","clean":"node --eval \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run validate","validate":"npm run check && npm test && npm run build"},"_npmUser":{"name":"akshaymhatre89","email":"akshay.mhatre8989@gmail.com"},"repository":{"url":"git+https://github.com/akshay3001/agents.git","type":"git","directory":"mcp/html-publish"},"_npmVersion":"11.16.0","description":"Publish and read private HTML artifacts through a protected HTTP service.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"6.0.3","@types/node":"24.13.3"},"_npmOperationalInternal":{"tmp":"tmp/html-publish_0.1.2_1789230886915_0.08209728824410423","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"_id":"@akshay3001/html-publish@0.1.3","bin":{"html-publish":"dist/cli.js"},"bugs":{"url":"https://github.com/akshay3001/agents/issues"},"dist":{"shasum":"e3780aea09b586c3ffed327b68e46b92282de893","tarball":"https://registry.npmjs.org/@akshay3001/html-publish/-/html-publish-0.1.3.tgz","fileCount":5,"integrity":"sha512-dwRB50YwAiO1kKSonXqF0neBPtsvlC9bKA9JMQy7DIUhxvvGxbnE1yBnrt5ZjfweKWH90fZ11spmjZ1OlMBgYA==","signatures":[{"sig":"MEYCIQCUOjqADGXASCODmosNPvN+YKHtZSLq+wEECOok7v2fQwIhAIaeAoqImX/JfIyY4aq4o1vPRUVwHRz7SGaZhn8sGLms","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDjKGkWgB5lowaZK7yYg1Ji+bFu6r02zkIBAxK4QWTTZAiAC3szGzUQ/FwbNunTXT0KxqgdiEoGWFtZOry43hVDXww=="}],"unpackedSize":16535},"name":"@akshay3001/html-publish","type":"module","author":{"name":"Akshay"},"engines":{"node":">=24"},"gitHead":"a4c7c5c1d07fc49e88d5976c7f9092e158242ea4","license":"MIT","scripts":{"test":"node --test test/*.test.ts","build":"npm run clean && tsc -p tsconfig.build.json","check":"tsc -p tsconfig.json --noEmit","clean":"node --eval \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run validate","validate":"npm run check && npm test && npm run build"},"version":"0.1.3","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5608e2db-55a5-4c7b-802a-7e2047af5e3c"}},"homepage":"https://github.com/akshay3001/agents#readme","keywords":["cli","cloudflare-access","html"],"repository":{"url":"git+https://github.com/akshay3001/agents.git","type":"git","directory":"mcp/html-publish"},"_npmVersion":"11.19.0","description":"Publish and read private HTML artifacts through a protected HTTP service.","directories":{},"maintainers":[{"name":"akshaymhatre89","email":"akshay.mhatre8989@gmail.com"}],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"6.0.3","@types/node":"24.13.3"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/html-publish_0.1.3_1789237436602_0.663578870501806"}}},"time":{"created":"2026-09-12T11:04:41.842Z","modified":"2026-09-12T18:23:56.856Z","0.1.0":"2026-09-12T11:04:42.111Z","0.1.1":"2026-09-12T11:29:52.600Z","0.1.2":"2026-09-12T16:34:47.024Z","0.1.3":"2026-09-12T18:23:56.695Z"},"bugs":{"url":"https://github.com/akshay3001/agents/issues"},"author":{"name":"Akshay"},"license":"MIT","homepage":"https://github.com/akshay3001/agents#readme","keywords":["cli","cloudflare-access","html"],"repository":{"url":"git+https://github.com/akshay3001/agents.git","type":"git","directory":"mcp/html-publish"},"description":"Publish and read private HTML artifacts through a protected HTTP service.","maintainers":[{"name":"akshaymhatre89","email":"akshay.mhatre8989@gmail.com"}],"readme":"# HTML publish CLI\n\n`html-publish` uploads and reads private HTML documents through a protected HTTP service. It uses Node.js 24 built-ins and has no runtime dependencies.\n\n## Install\n\nNode.js 24 or newer is required.\n\n```sh\nnpm install --global @akshay3001/html-publish\n```\n\nThis installs the `html-publish` command.\n\n## Configure\n\nSet the service origin and Cloudflare Access service token in the shell that runs the CLI:\n\n```sh\nexport HTML_PUBLISH_ORIGIN=\"https://your-artifact-host.example\"\nexport HTML_PUBLISH_CF_ACCESS_CLIENT_ID=\"your-client-id\"\nexport HTML_PUBLISH_CF_ACCESS_CLIENT_SECRET=\"your-client-secret\"\n```\n\n`HTML_PUBLISH_ORIGIN` must contain only an HTTPS origin. A path, query, fragment, or embedded credential is not accepted. HTTP is accepted only for a loopback test server.\n\nThe CLI sends the token as request headers. It does not write credentials to disk or include them in output.\n\n## Migrate existing machines\n\nRename these variables on each machine:\n\n| Old name | New name |\n| --- | --- |\n| `HTML_COMMUNICATION_ORIGIN` | `HTML_PUBLISH_ORIGIN` |\n| `HTML_COMMUNICATION_CF_ACCESS_CLIENT_ID` | `HTML_PUBLISH_CF_ACCESS_CLIENT_ID` |\n| `HTML_COMMUNICATION_CF_ACCESS_CLIENT_SECRET` | `HTML_PUBLISH_CF_ACCESS_CLIENT_SECRET` |\n\nThe CLI accepts the old names as migration aliases. When both names exist, the new name takes precedence. Remove the old exports after you update a machine.\n\n## Use\n\n```sh\nhtml-publish health\nhtml-publish upload ./plan.html --scope agents\nhtml-publish upload ./plan.html --scope agents --name stable-plan.html\nartifact_url=$(html-publish upload ./plan.html --scope agents)\nhtml-publish fetch \"$artifact_url\" > ./artifact.html\n```\n\n`upload` requires a nonempty kebab-case `.html` filename and a kebab-case scope. The HTML file can contain at most 512 KiB. A successful upload prints only the canonical document URL to stdout.\n\n`fetch` accepts only a `/view/{scope}/{filename}` URL from the configured origin. Redirect stdout to a file or pipe it to another program. The command refuses to write active HTML to a terminal. It stops after 30 seconds and rejects a response larger than 512 KiB.\n\nThe upload command accepts a response with either a `url` or `fileUri` field.\n\n## Develop\n\n```sh\nnpm install\nnpm run validate\nnpm pack --dry-run\n```\n\n`npm run validate` checks types, runs tests, and creates the JavaScript files in `dist`.\n\n## Publish\n\nThe `publish-html-publish.yml` GitHub Actions workflow publishes manually with npm trusted publishing. Configure the `@akshay3001/html-publish` package with this trusted publisher:\n\n```text\nOrganization or user: akshay3001\nRepository: agents\nWorkflow: publish-html-publish.yml\nAllowed action: npm publish\n```\n\nMerge the package version change before you run the workflow. After the first trusted publish succeeds, disable token-based publishing in the npm package settings and revoke the old automation token.\n\nThe repository is private. npm trusted publishing removes the long-lived publish token, but npm does not create provenance attestations for a package built from a private repository.\n","readmeFilename":"README.md"}