@endo/static-module-record

中文文档
1.1.2发布于 2024/05/08Apache-2.0TypeScriptES Module近 30 天下载 14.5万

Shim 用于SES StaticModule记录和模块对程序变压器

中文使用文档

静态模块记录

这个包提供了一个shimp for the StaticModuleRecord 合适的构造器 用于与SES shim importHook。 。 。 . 静态模块记录接受JavaScript模块并将其转换为 用于安全模拟 JavaScript 模块(ESM mjs 文件格式),有区块.

import 'ses';
import { StaticModuleRecord } from '@endo/static-module-record`;

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 StaticModuleRecord(moduleText, moduleLocation);
  },
});

原始地图

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

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

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

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

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

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

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

  • source
  • sourceUrl
  • sourceMapUrl

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

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

错误披露

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

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

版本与发布记录

@endo/static-module-record 共发布 52 个版本,首次发布于 2021/06/02;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.1.2latest2024/05/082 年前
1.1.12024/04/052 年前
1.1.02024/03/212 年前
1.0.42024/02/232 年前
1.0.32024/02/152 年前
1.0.22024/01/182 年前

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

@endo/static-module-record 是什么?

Shim 用于SES StaticModule记录和模块对程序变压器

如何安装 @endo/static-module-record?

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

@endo/static-module-record 支持 TypeScript 吗?

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

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

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

@endo/static-module-record 可以商用吗?

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

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

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

@endo/static-module-record 还在维护吗?

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