# @e4a/pg-js 中文文档

规范地址：https://npmcn.com/package/%40e4a/pg-js/

版本：2\.6\.0
npm 元数据更新时间：2026-10-20T11:37:00.123Z
中文译文更新时间：2026-11-13T03:15:39.161Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40e4a/pg-js
原文对照：https://npmcn.com/package/%40e4a/pg-js/?lang=original
项目主页：https://github.com/encryption4all/postguard-js#readme
源码仓库：https://github.com/encryption4all/postguard-js

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：2.4 MB，6 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：6 个
- 首次发布：2026-03-25T14:29:26.192Z
- 最新版本发布：2026-09-22T13:14:26.408Z
- 近 30 天下载量：2537（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：59（近 12 个月 59 个）

## 中文简介

PostGuard 的浏览器 SDK – 端到端加密文件共享基于身份加密

## 安装

```sh
npm install @e4a/pg-js
```

也可以使用：`pnpm add @e4a/pg-js`、`yarn add @e4a/pg-js`、`bun add @e4a/pg-js`

## README

# 

![PostGuard](https://npmcn.com/package/%40e4a/pg-js/img/pg_logo.svg)

> 完整文件,访问 [(原始内容存档于2017-03-26) (英语). docs. postguard.eu](https://docs.postguard.eu/repos/postguard-js)。 。 。 .

用于 PostGuard 的 SDK 类型脚本/ JavaScript SDK, 以 `@e4a/pg-js` 时间npm。 在浏览器和Node.js都工作.

PostGuard根据收件人的身份属性(电子邮件地址,电话号码等)而不是传统的公钥加密数据. 接收者通过 [义维](https://yivi.app/) 来解密。 这个SDK是Web应用程序和电子邮件加载与PostGuard集成的主要方式.

## 快速启动

```bash
npm install @e4a/pg-js
```

```ts
import { PostGuard } from '@e4a/pg-js';

const pg = new PostGuard({
  pkgUrl: 'https://pkg.postguard.eu',
});

// Encrypt
const sealed = pg.encrypt({
  sign: pg.sign.apiKey('your-api-key'),
  recipients: [pg.recipient.email('bob@example.com')],
  files: fileList,
});
const { uuid } = await sealed.upload();

// Decrypt
const opened = pg.open({ uuid });
const result = await opened.decrypt({ element: '#yivi-popup' });
result.download();
```

见 [完整 API 参考](https://docs.postguard.eu/repos/postguard-js) 用于加密选项、签名方法、收件人类型和电子邮件助手.

## 服务器侧用法(节点、 Bun、 Deno)

SDK 在非浏览器运行时为加密+上传路径工作 签名时通过 `sign.apiKey` 或习惯 `sign.session` 调用。 没有 需要进行多填充.

**最小运行时间版本**数字 :

| 运行时间 | 最低 | 页:1 |
| --- | --- | --- |
| 节点 | 22岁以上 | 通过 `engines.node`. 构建工具需要22.18+节点;运行时间在22和24日测试. |
| 阿宝 | 1.0.16+ (中文(简体) ) | 首发时间 `AbortSignal.any` (SDK最紧的网络-API要求) |
| 德诺 | 1.39+ (韩语) | 首发时间 `AbortSignal.any` |

其他说明:

-   `sign.yivi(...)` 需要一个 DOM 并且只使用浏览器。 SDK会扔出一个 清除 `YiviSessionError` 非浏览器运行时间的前置时间——使用 `sign.apiKey` 或者说 `sign.session` 换句话说.
-   对于解密, `result.blob` 财务报告和审定财务报表 `result.plaintext` 具有普遍性; `result.download(...)` 触发浏览器下载,并且是只浏览器.
-   `sealed.upload()` 拒绝 `data: ReadableStream` ——使用 `sealed.toBytes()` 流出或通过 `data` 作为 `Uint8Array`。 。 。 .

任何运行时间的人工烟雾测试 `scripts/smoke.mjs`设置 `PG_API_KEY` 用于操作全上传管道的中键:

```bash
PG_API_KEY=PG-... node scripts/smoke.mjs
PG_API_KEY=PG-... bun  scripts/smoke.mjs
PG_API_KEY=PG-... deno run -A scripts/smoke.mjs
```

## 发展

此软件包生活在 pnpm 工作空间 `packages/pg-js`。从 repo 根:

```bash
pnpm install   # runs the prebuild generators + a full build via `prepare`
pnpm build
```

运行测试 :

```bash
pnpm test
```

监视模式( E)`pnpm dev`, (中文(简体) ), `pnpm test:watch`从此目录运行 .

## 释放

释放由 [变化](https://github.com/changesets/changesets). 应载运运行的公关 `pnpm changeset` 并输入生成的文件;合并到 `main` 打开(或更新)“Version包” PR,并合并 **那个** 以出处发布到 npm.

## 许可证

麻省理工学院

## 常见问题

### @e4a/pg-js 是什么？

PostGuard 的浏览器 SDK – 端到端加密文件共享基于身份加密

### 如何安装 @e4a/pg-js？

在项目目录运行 npm install @e4a/pg-js，或使用 pnpm add / yarn add / bun add。

### @e4a/pg-js 支持 TypeScript 吗？

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

### @e4a/pg-js 支持 ESM 还是 CommonJS？

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

### @e4a/pg-js 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @e4a/pg-js 可以商用吗？

@e4a/pg-js 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @e4a/pg-js 的下载量有多少？

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

### @e4a/pg-js 还在维护吗？

最新版本 2\.6\.0 发布于 2026/09/22（1 个月前）；至今共发布 59 个版本，其中过去 12 个月发布了 59 个；首次发布于 2026/03/25。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

