{"_id":"@aocoding/lumen-bridge","_rev":"6-a8f253c3642ffd42d4d69b49e6fc2df4","name":"@aocoding/lumen-bridge","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.2":{"name":"@aocoding/lumen-bridge","version":"0.1.2","keywords":["edge","bridge","local","sidecar"],"license":"UNLICENSED","_id":"@aocoding/lumen-bridge@0.1.2","maintainers":[{"name":"aocoding","email":"aocoding+npm@gmail.com"}],"bin":{"lumen-bridge":"src/cli.js"},"dist":{"shasum":"7029319168afb9858f91755ca29525b204fc7a06","tarball":"https://registry.npmjs.org/@aocoding/lumen-bridge/-/lumen-bridge-0.1.2.tgz","fileCount":3,"integrity":"sha512-uDn3+s1+bWnZU927o4hNJKkPrePheZZo28H0RYalIf3DYLPxuduZMieoHG/RcxhCVI9MdGd/uQwUQQnFt8K8Ow==","signatures":[{"sig":"MEUCIFzSk4oknMtk5XujHJVL2i3AvICCmStQPSHBkOj+t4mKAiEAuFICJlqgSbmo0U/YFT2sr2DXlNIXCLA6xV2SWYfR2O0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14886},"type":"module","engines":{"node":">=20.0.0"},"exports":{".":"./src/server.js"},"gitHead":"a1a46d11380e48b40956cbc8debedeec8caa1d61","scripts":{"test":"node --test","start":"node src/cli.js","prepack":"node scripts/hide-readme.js hide","postpack":"node scripts/hide-readme.js restore","pack:check":"npm pack --dry-run","postpublish":"node scripts/hide-readme.js restore","prepublishOnly":"node scripts/hide-readme.js hide"},"_npmUser":{"name":"aocoding","email":"aocoding+npm@gmail.com"},"_npmVersion":"11.12.1","description":"Lightweight local edge bridge to a remote cache service","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lumen-bridge_0.1.2_1784679103915_0.9854076360141579","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@aocoding/lumen-bridge","version":"0.1.3","description":"Lightweight local edge bridge to a remote cache service","type":"module","bin":{"lumen-bridge":"src/cli.js"},"exports":{".":"./src/server.js"},"scripts":{"start":"node src/cli.js","test":"node --test","pack:check":"npm pack --dry-run","prepack":"node scripts/hide-readme.js hide","postpack":"node scripts/hide-readme.js restore","prepublishOnly":"node scripts/hide-readme.js hide","postpublish":"node scripts/hide-readme.js restore"},"engines":{"node":">=20.0.0"},"keywords":["edge","bridge","local","sidecar"],"license":"UNLICENSED","publishConfig":{"access":"public"},"gitHead":"ec33ef07126311ab000291c2adc162eeac377011","_id":"@aocoding/lumen-bridge@0.1.3","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-pJtaKnd0m9H32DD2v++ZZSISo3Gkh2lY8DxtatHuGl2aYwryP/zsYWua8gnFStMJD8waM0g6VTIu9ipq1TNV0w==","shasum":"a054ef7c05545ed413db214f9dae43ac52e02372","tarball":"https://registry.npmjs.org/@aocoding/lumen-bridge/-/lumen-bridge-0.1.3.tgz","fileCount":3,"unpackedSize":14886,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIE/Q9pPPBaPJsaMf51/8o5H9hclIdb/0BU6NphasFhPsAiBwJ7OABW74tWT4j56zA4ZfoFcrYlt2yC5KfHglys2j7w=="}]},"_npmUser":{"name":"aocoding","email":"aocoding+npm@gmail.com"},"directories":{},"maintainers":[{"name":"aocoding","email":"aocoding+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/lumen-bridge_0.1.3_1784682237297_0.453522611016862"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-22T00:11:43.677Z","modified":"2026-07-22T01:03:57.555Z","0.1.0":"2026-07-22T00:05:24.437Z","0.1.1":"2026-07-22T00:07:47.756Z","0.1.2":"2026-07-22T00:11:44.057Z","0.1.3":"2026-07-22T01:03:57.435Z"},"license":"UNLICENSED","keywords":["edge","bridge","local","sidecar"],"description":"Lightweight local edge bridge to a remote cache service","maintainers":[{"name":"aocoding","email":"aocoding+npm@gmail.com"}],"readme":"# lumen-bridge\n\n无状态本地边缘桥接。它在本机提供入口，但不创建数据库 schema、数据目录或本地 blob 缓存；页面、静态资源和接口响应都直接读取远端缓存服务。\n\n## 运行\n\nnpx @aocoding/lumen-bridge --remote http://copy.bangdao-tech.com --port 8787\n\n## 快速体验\n\n要求 Node.js 20 或更高版本。\n\n```bash\ncd apps/lumen-bridge\nnpm start -- --remote https://easy.bangdao-tech.com/capture --port 8787\n```\n\n然后打开：\n\n```text\nhttp://127.0.0.1:8787\n```\n\n首页会实时读取远端站点列表。进入镜像后仍使用 `http://<原站域名>.localhost:8787`，以保持不同站点的 Cookie、localStorage 和路径隔离。\n\n也可以作为 npm CLI 使用：\n\n```bash\nnpx lumen-bridge \\\n  --remote https://easy.bangdao-tech.com/capture \\\n  --port 8787\n```\n\n环境变量与 CLI 参数等价：\n\n```bash\nLUMEN_BRIDGE_REMOTE_URL=https://easy.bangdao-tech.com/capture\nLUMEN_BRIDGE_PORT=8787\nLUMEN_BRIDGE_HOST=127.0.0.1\n```\n\n## 设计边界\n\n- 不连接数据库。\n- 不创建本地数据目录。\n- 不把页面、资源、接口响应或站点元数据写入磁盘或内存缓存。\n- 首次访问一个 `*.localhost` 镜像域名时实时调用远端 hostname 查询接口；站点 ID 随后只保存在该域名的 HttpOnly 路由 Cookie 中，避免每个图片请求都重复查询。这个 Cookie 不保存缓存内容。\n- 本地首页只负责展示远端站点入口，响应带 `Cache-Control: no-store`。\n- 当前只转发 HTTP/HTTPS 请求，不支持 WebSocket 升级；远端当前的回放能力本来也未覆盖 WebSocket/SSE 完整还原。\n\n## 验证\n\n```bash\nnpm test\nnpm run pack:check\n```\n","readmeFilename":"README.md"}