@ extension.dev/urls

连接扩展的起源和路径的真相来源。 德夫舰队一起.
npm install @extension.dev/urls
权力交叉应用链接,用于www,Controup,docs,模板,主题,代码,检查,预览,用户地,以及公共MCP.
链接为什么是一个软件包
交叉应用链接有两个半: 东道主 (哪个应用)和 路径 (哪个) 里面的路线。 硬码或某应用程序移动或路由更名的那一天, 每个呼叫者都会漂流 这个软件包将两半都放在一个地方 所以链接 a 工具手回不能指向应用程序路由器不再服务的路由.
@extension.dev/urls/paths——纯净无环境线路建设者. 保险 从任何运行时间(Next.js、Vite SPAs、Node、捆绑的MCP)调用,因为 他们不读环境,只读编码路径形状.@extension.dev/urls/origins- 主持人 每个运行时间名称 env vars不同,所以这个模块从不读取环境本身: 呼叫者通过任何它拥有的 并返回一个完整的源集, 环境时由 Caddy 代理地图生成本地端主机 看起来像本地的, 生产主.@extension.dev/urls/userland- 公共建筑的全URL建造者 查看器. userland是制作主机为每个工作空间的应用程序 (单位:千美元)<workspace>.extension.dev),因此无法选择其两半 它拥有自己的模块而不是一个paths输入.@extension.dev/urls/reserved-slugs- 工作空间或项目的名称 鼻涕虫可能永远不会服用:isReservedWorkspaceSlug, (中文(简体) ),isReservedProjectSlug财务报告和审定财务报表 后面的镜头。 名单住在这里,因为这是唯一的包裹 拒绝名称的 www 服务器和灰化它的主控台格式 已经靠你了,所以他们永远不能分开了.
使用量
import { resolveOrigins } from "@extension.dev/urls/origins";
import { consoleProjectPath, ConsoleProjectPage } from "@extension.dev/urls/paths";
const origins = resolveOrigins({
// Pass only the vars this runtime actually has; the rest derive.
www: process.env.EXTENSION_DEV_API_URL,
});
// A full link is `origins.<app> + <pathBuilder>(...)`.
const buildsUrl =
origins.console +
consoleProjectPath({ workspace: "acme", project: "toolbar" }, ConsoleProjectPage.builds);
存储提交材料位于控制台项目的一个根下。 年长者
stores 键作为别名保留并返回相同的路径 :
const ref = { workspace: "acme", project: "toolbar" };
consoleProjectPath(ref, ConsoleProjectPage.submissions);
// -> "/acme/toolbar/submissions"
consoleProjectPath(ref, ConsoleProjectPage.submissionNew("chrome"));
// -> "/acme/toolbar/submissions/chrome/new"
consoleProjectPath(ref, ConsoleProjectPage.submission("chrome", "sub_1"));
// -> "/acme/toolbar/submissions/chrome/sub_1"
设定一个本地覆盖, 每个未设置的源头都会跟着它到 dev 代理 :
resolveOrigins({ www: "http://localhost:3100" }).console;
// -> "http://console.extension.localhost"
公共建筑浏览器使用整个 URL,因为工作空间生活在 本地生产和路径中的主机 :
import { userlandBuildUrl } from "@extension.dev/urls/userland";
userlandBuildUrl({ workspace: "acme", project: "toolbar" }, "abc1234");
// -> "https://acme.extension.dev/toolbar/builds/abc1234"
userlandBuildUrl({ workspace: "acme", project: "toolbar" }, "abc1234", {
base: resolveOrigins({ www: "http://localhost:3100" }).userland,
});
// -> "http://userland.extension.localhost/acme/toolbar/builds/abc1234"
扩展名.dev 堆栈
| 软件包 | 用它来 |
|---|---|
@extension.dev/mcp | 给一个人工智能代理手:脚手架、运行、检查和发布扩展 |
@extension.dev/skill | 教特工们判断 一半: 交叉浏览器规则 游戏本 |
@extension.dev/artifact-integrity | 在SHA-256和CI门上检查文物 |
所有东西都搭上 电话分机.js,开源交叉浏览器扩展框架.
社区
许可证
Apache-2.0(c) 2026 Cezar Augusto and the extension.dev合作者. 见 自由主义。 。 。 .