@endo/module-source

中文文档
1.5.0发布于 2026/08/14Apache-2.0TypeScriptES Module近 30 天下载 9.5万

用于 SES 模块源码和模块对程序变压器的马匹

中文使用文档
文档目录4 节
  1. 原始地图
  2. XS 具体备选案文
  3. 通用JS- 特定变式
  4. 错误披露

模块来源

此套件提供了一个小马填充器 ModuleSource 合适的构造器 用于SES Shim的模块描述符. 模块源接受 JavaScript 模块并将其转换为 用于模拟和限制 JavaScript 模块(ESM mjs 文件格式),有区块.

import 'ses';
import { ModuleSource } from '@endo/module-source';

const c1 = new Compartment({}, {}, {
  name: "first compartment",
  resolveHook: (moduleSpecifier, moduleReferrer) => {
    return resolve(moduleSpecifier, moduleReferrer);
  },
  importHook: async moduleSpecifier => {
    const moduleLocation = locate(moduleSpecifier);
    const moduleText = await retrieve(moduleLocation);
    return new ModuleSource(moduleText, moduleLocation);
  },
});

原始地图

这个 ModuleSource 是我们最终希望称为本地人 ModuleSource 建筑师. 然而,在没有土著的情况下 ModuleSource,生成一个 可串行对象,模拟行为 ModuleSource 组合 与 Compartment 来自 ses。 。 。 . 执行过程中泄露的细节是 构造器重写 来源,来自无害环境管理 [[Module]] 语法构建为 a [[Program]] 适合与隔间封闭评价员进行限制的建筑.

这种转变试图无侵扰性,但目前会导致一些对齐 由于(希望是暂时的)对基本代码的限制而作的修改 发电机. 在过渡期间,生成出一个源地图可以有所帮助.

这个 ModuleSource 构造器接受非标准轨道 sourceMapHook 财务报告和审定财务报表 sourceMapUrl 选项.

以前,唯一的选择是 string 参数 sourceUrl,这样 将它附在生成的来源后. 此更改允许新旧用法 :

new ModuleSource(source, sourceUrl);
// or
new ModuleSource(source, { sourceUrl, sourceMapUrl, sourceMapHook });

这个 sourceMapUrl 用于生成源地图. URL 只会出现在生成的源图中, 因此完全合格 源地图 URL 是安全的, 如果生成了该地图, 则允许连续性 在同一主机上已调试 . 这一点很重要,因为远藤捕捉到预编译的静态模块记录 捆绑,不包括源地图,这样相对路径就无用.

这个 sourceMapHook 将会收到字符串源代码和细节包 包括:

  • source
  • sourceUrl
  • sourceMapUrl

这样接收器就可以将源图存储到某个地方作为副作用.

说明: sourceMapHook 同步并返回 void。 。 。 . 钩子抛出的特殊性会通过构造器传播出去. 若为 钩子返回一个承诺, 它将被丢弃, 拒绝将不被抓住. 如果钩子必须做合成工作,这些应该排成队,作为工作 等会再打电话.

XS 具体备选案文

与 xs 条件, @endo/module-source 也不会把巴比勒和巴比勒 只要适应本地人 ModuleSource 到此显示的旧界面 软件包. 也就是说 XS本地人 bindings 将翻译为 imports, (中文(简体) ), exports, (中文(简体) ), 财务报告和审定财务报表 reexports 获取器. 这种形式的 ModuleSource 忽略所有选项.

通用JS- 特定变式

在默认/节点变量中 @endo/module-source页:1 CjsModuleSource 构造器为CommonJS模块提供了类似的接口. 它接受 与 ModuleSource 生成一个 CjsModuleSourceRecord 对象 包含分析数据加一个预建的真菌源字符串.

说明: xs 条件目前仅提供 ModuleSource· ; CjsModuleSource 无法在 xs。 。 。 .

错误披露

请帮助我们使用 指令在 警卫 私自报告安全隐患.

对于非安全错误,请使用 经常问题 页 次。 。 。 .

版本与发布记录

@endo/module-source 共发布 14 个版本,首次发布于 2024/07/31;过去 12 个月发布了 3 个版本。

版本发布日期距今
1.5.0latest2026/08/142 个月前
1.4.12026/04/166 个月前
1.4.02026/02/278 个月前
1.3.32025/07/121.3 年前
1.3.22025/06/181.4 年前
1.3.12025/06/031.4 年前

关于 @endo/module-source 的常见问题

@endo/module-source 是什么?

用于 SES 模块源码和模块对程序变压器的马匹

如何安装 @endo/module-source?

在项目目录运行 npm install @endo/module-source,或使用 pnpm add / yarn add / bun add。

@endo/module-source 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@endo/module-source 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@endo/module-source 可以商用吗?

@endo/module-source 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@endo/module-source 的下载量有多少?

根据 npm 官方下载统计,@endo/module-source 在 2026/10/14 – 2026/11/12 这 30 天内被下载 95,454 次,日均约 3,182 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@endo/module-source 还在维护吗?

最新版本 1.5.0 发布于 2026/08/14(2 个月前);至今共发布 14 个版本,其中过去 12 个月发布了 3 个;首次发布于 2024/07/31。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。