# @dotrino/passmanager 中文文档

规范地址：https://npmcn.com/package/%40dotrino/passmanager/

版本：0\.18\.6
npm 元数据更新时间：2026-10-26T15:18:46.920Z
中文译文更新时间：2026-11-12T20:06:58.055Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：206 kB，33 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- 运行依赖：0 个
- peer 依赖：@dotrino/identity \>=0\.117\.2，@dotrino/proxy-client \>=0\.36\.1
- 首次发布：2026-08-26T14:07:53.954Z
- 最新版本发布：2026-10-26T15:18:45.771Z
- 近 30 天下载量：5219（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：28（近 12 个月 28 个）

## 中文简介

多特利诺州-多特利诺州-多特利诺州-多特利诺州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维多维达州-多维达州-多维达-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达-多-多维达-多维达-多维达州-多维达

## 安装

```sh
npm install @dotrino/passmanager
```

也可以使用：`pnpm add @dotrino/passmanager`、`yarn add @dotrino/passmanager`、`bun add @dotrino/passmanager`

## README

# @ dotrino/ 密码管理员

> **生态生存党 [多春诺](https://dotrino.com/)。 。 。 .** (一) 国家妇女委员会(Dotrino es an ecosistema de plicaciones en la privacidad de los datos: tuya, y s las decisions sobre ella también—— qué comparates, con quién, cuándo y por qué)。 罪恶的Auncios, 罪的饼干, 罪的rastreo de Datos, 罪的vender tu identidad a nadie.

达多斯模型 达多斯模型 维达之地 **喀斯多利亚** y el aparato que 请检查url=值 (帮助) **键**。 。 。 .

欧地那思想: **{\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}什么.** (原始内容存档于2018-09-26). Nunca la bóveda terna. 不妥协不妥协.

```bash
npm install @dotrino/passmanager
```

## 拉斯点数

```js
import { LocalVault, VaultResponder } from '@dotrino/passmanager'

// Donde vive la bóveda: tiene la llave, guarda, y decide quién puede pedir.
const vault = new LocalVault(store)
vault.unlock(cek)

new VaultResponder({
  client,                                   // @dotrino/proxy-client, ya identificado
  vault,
  isAllowed: pub => misAparatos.has(pub),   // por defecto NADIE
  needsApproval: op => op === 'get',        // una vez por aparato, no por credencial
  approve: async ({ pubkey }) => preguntarAlUsuario(pubkey),
  encPubOf: pub => llaveDeCifradoDe(pub),
  onRequest: apuntarEnLaBitacora,
}).start()
```

```js
import { RemoteVault, ProxyTransport } from '@dotrino/passmanager'

// Quien pide: no tiene la llave y NO puede listar.
const remota = new RemoteVault(new ProxyTransport({ client, peerPubkey, peerEncPub }))

const hay = await remota.find('https://salesforce.com/')  // metadatos, sin secretos
const una = await remota.get(hay[0].id)                    // UNA credencial
await remota.list()                                        // ✗ falla: no-key, a propósito
```

`list()` (一) 禁止将人驱逐出去, {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}别这样.

```js
import { LocalVault, GuardedVault, ApprovalGate } from '@dotrino/passmanager'

// Una bóveda LOCAL que además pide autorización: es lo que usa la extensión, donde no
// hay transporte de por medio y por tanto nadie le ponía la puerta.
const gate = new ApprovalGate({ ask: ({ payload }) => preguntarleAlUsuario(payload) })
const vault = new GuardedVault(new LocalVault(store), { gate })

await vault.find(url)                        // público: no pregunta
await vault.get(id, { keys: ['email'] })     // un dato público: tampoco
await vault.get(id, { keys: ['secret'] })    // privado: pide autorización
await vault.patch(id, { fields: [...] })     // escribir no saca nada: no pregunta
```

`get` 纯洁 **独行侠出击**,你独奏预告 si alguno es privado: la (原始内容存档于2018-09-26) (英语). ontraseña, el código de dos pasos, las notas, un a passkey, o un campo que el usuario marcó. `patch` 聚变a **凹槽** {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}别这样 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}别这样 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}一个自发的 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你.. (原始内容存档于2017-03-26). media si esa lectura no salía-.

普尔塔河 **迷宫派扎** 让我们来 `VaultResponder`,y por eso las tres bóvedas del , 中文译名参考自"中华民国史" gestor se comportan igual: el sí se recuerda (o no, según con qué lave), el no nunica se {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}是的 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}是的 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}是的.

Y como abrir una entrada cuesta una autirización, (英语:Y como abrir una entrada cuesta suesta una autirización, `find` 尔 `search` 特伦·阿德马斯 **无 卡达露营** ——públicos y privados, un solo método- con unce nuevo en cada (英语:públicos y privados, un solo método- con unce nuevo en cada) (英语) 原创翻译:

```js
const [hit] = await vault.find('https://salesforce.com/')
const hash = await fieldHasher(hit.nonce)
const igual = await hash('secret', loQueEscribio) === hit.fieldHashes.secret
```

继续用骰子来表示, **无克日时代**: para eso hay que abrir la entrada. 中国植物物种信息数据库. 没有 请将本函及其附件作为安全理事会的文件分发为荷, (原始内容存档于2019-09-29) (英语). un documento, tenerlo delante es poker adivinarlo.

## Qué más trae (英语)

|  |  |
| --- | --- |
| `sealEntry` 编号 : `openEntry` | cifrado por entrada, con el AAD atando cada criptograma a su campo 互联网档案馆的存檔,存档日期2013-12-21 |
| `findForUrl` 编号 : `matchSite` | (原始内容存档于2013-10-12). emparejamiento por **多米尼奥礼仪**尼卡·波·克多纳 |
| `totpNow` | códigos de dos pasos (RFC 6238), y accta el secreto pelado de Bitwarden (中文(简体) ) |
| `importAuto` | 1Password, Bitwarden (CSV 和 JSON) y Chrome (中文(简体) ) |
| `generatePassword` | 基因弧度 **罪过** 重新出发 |
| `normalizeFields` | 农民组织 `{ label, value, kind }` |
| `SessionCache` | 回忆录中的recuerdo de lo ya entregado |
| `GuardedVault` 编号 : `ApprovalGate` | 玻利维亚自治省 |
| `privateKeysOf` | 男: 男: 男: 男: 男: 女: 女: 女: 女: 女: 女: 女: 女: 女: 女: 女: 女: 女: 女: 男: 女: 女: 女: 女: 女: 女: 女: 女: 女: |
| `entryFieldKeys` 编号 : `entryFieldValues` | qué campos leva una entrada, por su nombre (法语) |
| `makeNonce` 编号 : `fieldHasher` | 输 **死因** (原始内容存档于2018-09-21) (英语). con los que se compara sin arbrir la entrada |

## 多斯·雷格拉斯 克·克·克·克·克多克·克多克·克多克

**(原始内容存档于2018-10-29). Nada vija en Claro.** (原始内容存档于2012-10-12). El Proxio enruta pero no cifra: sin sellar, vería a qué sitio (原始内容存档 瓦·塞尔多孔 `@dotrino/proxy-client` ^ 0.13.0, y (中文(简体) ) **{\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}哦! {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}哦** - 萨利达独奏曲 娜达西拉·多克塔·克特克图.

**罪过 `sites` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}请说.** 女警卫 {\\fnsimhei\\fs22\\1chffffff\\3chff8000}罪不二 {\\fnsimhei\\fs22\\1chffffff\\3chff8000}罪不二 {\\fnsimhei\\fs22\\1chffffff\\3chff8000}罪不一而足 {\\fnsimhei\\fs22\\1chffffff\\3chff8000}罪不一而足 {\\fnsimhei\\fs22\\1chffffff\\3chff8000}罪不一而足.

## 文件处

Diseño completo, con lo decidido y lo descartado, en 互联网档案馆的存檔,存档日期2013-12-21 [`docs/DISENO.md`](https://github.com/imdotrino/dotrino-passmanager/blob/main/docs/DISENO.md)。 。 。 .

## 常见问题

### @dotrino/passmanager 是什么？

多特利诺州-多特利诺州-多特利诺州-多特利诺州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维多维达州-多维达州-多维达-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达州-多维达-多-多维达-多维达-多维达州-多维达

### 如何安装 @dotrino/passmanager？

在项目目录运行 npm install @dotrino/passmanager，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@dotrino/proxy-client（\>=0\.36\.1）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @dotrino/passmanager 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/dotrino\_\_passmanager 是否存在。

### @dotrino/passmanager 支持 ESM 还是 CommonJS？

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

### @dotrino/passmanager 可以商用吗？

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

### @dotrino/passmanager 的下载量有多少？

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

### @dotrino/passmanager 还在维护吗？

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

