# @digitalbazaar/vpqr 中文文档

规范地址：https://npmcn.com/package/%40digitalbazaar/vpqr/

版本：6\.0\.0
npm 元数据更新时间：2025-04-24T19:45:49.573Z
中文译文更新时间：2026-11-12T08:43:47.817Z
软件包许可：BSD-3-Clause

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

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

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

- 包体积（解压后）：17.2 kB，6 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=18
- 运行依赖：5 个
- 首次发布：2021-04-01T18:44:07.246Z
- 最新版本发布：2025-04-24T19:45:49.304Z
- 近 30 天下载量：8945（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：11（近 12 个月 0 个）

## 中文简介

一个异形JS(针对Node.js和浏览器)库,它取一个可验证的演示文稿,通过CBOR-LD来压缩,并变成QR代码.

## 安装

```sh
npm install @digitalbazaar/vpqr
```

也可以使用：`pnpm add @digitalbazaar/vpqr`、`yarn add @digitalbazaar/vpqr`、`bun add @digitalbazaar/vpqr`

## README

# 对QR码的可验证演示文稿 JS Lib _(@digitalbazaar/vpqr) (中文(简体) )_

[![Build Status](https://img.shields.io/github/actions/workflow/status/digitalbazaar/vpqr/main.yml)](https://github.com/digitalbazaar/vpqr/actions/workflows/main.yml) [![Coverage Status](https://img.shields.io/codecov/c/github/digitalbazaar/vpqr)](https://codecov.io/gh/digitalbazaar/vpqr) [![NPM Version](https://img.shields.io/npm/v/@digitalbazaar/vpqr)](https://www.npmjs.com/package/@digitalbazaar/vpqr)

> 一个异形JS(针对Node.js和浏览器)库,它取一个可验证的演示文稿,通过CBOR-LD来压缩,并变成QR代码.

## 目录

-   [背景情况](https://npmcn.com/package/%40digitalbazaar/vpqr/#readme-background)
-   [警卫](https://npmcn.com/package/%40digitalbazaar/vpqr/#readme-security)
-   [安装](https://npmcn.com/package/%40digitalbazaar/vpqr/#readme-install)
-   [使用量](https://npmcn.com/package/%40digitalbazaar/vpqr/#readme-usage)
-   [贡献](https://npmcn.com/package/%40digitalbazaar/vpqr/#readme-contribute)
-   [商业支助](https://npmcn.com/package/%40digitalbazaar/vpqr/#readme-commercial-support)
-   [许可证](https://npmcn.com/package/%40digitalbazaar/vpqr/#readme-license)

## 背景情况

传统发展

## 警卫

传统发展

## 安装

-   浏览器和Node.js 14+得到支持.

从国家预防机制安装:

```
npm install @digitalbazaar/vpqr
```

在当地安装(用于开发):

```
git clone https://github.com/digitalbazaar/vpqr.git
cd vpqr
npm install
```

## 使用量

### 作为 QR 代码图像的可验证演示文稿编码

```js
import vpqr from '@digitalbazaar/vpqr';

const vp = {
  "@context": "https://www.w3.org/2018/credentials/v1",
  "type": "VerifiablePresentation",
  "verifiableCredential": {
    "@context": [
      "https://www.w3.org/2018/credentials/v1",
      "https://w3id.org/cit/v1",
      "https://w3id.org/security/suites/ed25519-2020/v1"
    ],
    "id": "urn:uuid:188e8450-269e-11eb-b545-d3692cf35398",
    "type": [
      "VerifiableCredential",
      "ConcealedIdTokenCredential"
    ],
    "issuer": "did:key:z6Mku2yHBpMvm13KqtupN7MNEj7Y7AREUWsFfGBRhyP9YZf7",
    "issuanceDate": "2021-03-24T20:03:03Z",
    "expirationDate": "2021-06-24T20:03:03Z",
    "credentialSubject": {
      "concealedIdToken": "zo58FV8vqzY2ZqLT4fSaVhe7CsdBKsUikBMbKridqSyc7LceLmgWcNTeHm2gfvgjuNjrVif1G2A5EKx2eyNkSu5ZBc6gNnjF8ZkV3P8dPrX8o46SF"
    },
    "proof": {
      "type": "Ed25519Signature2020",
      "created": "2021-03-24T20:03:03Z",
      "verificationMethod": "did:key:z6Mku2yHBpMvm13KqtupN7MNEj7Y7AREUWsFfGBRhyP9YZf7#z6Mku2yHBpMvm13KqtupN7MNEj7Y7AREUWsFfGBRhyP9YZf7",
      "proofPurpose": "assertionMethod",
      "proofValue": "z5Z33Pi9zWUWMHdxhG1Ko7ssgeHsuT3ocyg46pJTTjbwk1YjjtSCa4CQ5UyjnkQ6ar5ohY5Kv2mncWbfgEqWcVrTQ"
    }
  }
};

// Set up your documentLoader
const documentLoader = {/*...*/};
const {imageDataUrl} = await vpqr.toQrCode({vp, documentLoader});
// data:image/gif;base64,R0lGODdhqgCqAIAAAAAAAP///ywAAAAAqgCqAAAC/4yPqcvt...
```

当扫描这些 QR 代码时, 它们被读取为字母模式文本,

```
VP1-R3ECQDIYBCEMDGEAYG2UADAYRCV4DA2DUORYHGOR...
```

格式中:

```
<format and version, 'VP1-'><multibase prefix, 'R'><base45 RFC9285 encoded CBOR-LD>
```

### 将 QR 代码文本解码为可验证的演示文稿

```js
// Alphanumeric text from a QR Code Reader lib
const qrCodeText = 'VP1-R3ECQDIYBCEMDGEAYG2UADAYRCV4DA2DUORYHGOR...';

// Set up your documentLoader
const documentLoader = {/*...*/};

const {vp} = await vqpr.fromQrCode({text: qrCodeText, documentLoader});
// { "@context": "https://www.w3.org/2018/credentials/v1", ... }
// becomes a JSON object with the VP in the example above.
```

### 编码选项

-   `qrMultibaseEncoding`: QR数据编码. `B` 页:1 [RFC4648 (法语)](https://datatracker.ietf.org/doc/rfc4648/) 基数32, `R` 页:1 [RFC9285 (法语)](https://datatracker.ietf.org/doc/rfc9285/) 基础45. 基础45更有效率. 默认为基数45.
-   `qrErrorCorrectionLevel`: QR 代码中使用的错误校正级别。“ L” 低 7%,"M"中15%,"Q"中25%,"H"高30%. 默认为"L".
-   `qrVersion`:QR版本. 1-40或0为自動. 默认为自动 .

### 高级选项

更高级的使用大小写可以使用额外选项和较低级别的API `util`数字 :

-   编码和解码可验证的证书.
-   使用自定义编码头像 `VP1-` 财务报告和审定财务报表 `VC1-`。 。 。 .
-   查阅其他相关产出.
-   使用选项来控制输出模块大小( 小像素大小) 平方)和图像静区边距大小.
-   控制 QR 选项, 如错误校正级别 .
-   提供诊断功能.
-   传承遗产 `cborld` `appContextMap` 或现代 `registryEntryId`, (中文(简体) ), `typeTable`,以及 `typeTableLoader` 选项.

```js
import {util} from '@digitalbazaar/vpqr';

const {toQrCode} = util;

// setup options as needed

// encode QR code
const {
  version, payload, imageDataUrl, encodedCborld, rawCborldBytes
} = await toQrCode({
  header: 'VC1-',
  jsondldDocument: verifiableCredential,
  documentLoader,
  registryEntryId: 2000,
  typeTableLoader,
  moduleSize: 4,
  margin: 16,
  qrErrorCorrectionLevel: 'H'
});

// decode QR code text
const {
  jsondldDocument
} = await fromQrCode({
  expectedHeader = 'VC1-',
  text,
  decodeCborld: true,
  documentLoader,
  typeTableLoader
});
```

## 贡献

见 [贡献文件](https://github.com/digitalbazaar/bedrock/blob/master/CONTRIBUTING.md)来啊!

公关接受.

请遵照 [标准读取](https://github.com/RichardLitt/standard-readme) 规格.

## 商业支助

该图书馆的商务支助可应下列请求提供: 数字集市: [支持@ digitalbazaar.com](mailto:support@digitalbazaar.com)

## 许可证

[新建 BSD 许可证( 3- clause)](https://npmcn.com/package/%40digitalbazaar/vpqr/LICENSE) 数字集市

## 常见问题

### @digitalbazaar/vpqr 是什么？

一个异形JS\(针对Node\.js和浏览器\)库,它取一个可验证的演示文稿,通过CBOR-LD来压缩,并变成QR代码\.

### 如何安装 @digitalbazaar/vpqr？

在项目目录运行 npm install @digitalbazaar/vpqr，或使用 pnpm add / yarn add / bun add。

### @digitalbazaar/vpqr 支持 TypeScript 吗？

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

### @digitalbazaar/vpqr 支持 ESM 还是 CommonJS？

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

### @digitalbazaar/vpqr 需要什么版本的 Node\.js？

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

### @digitalbazaar/vpqr 可以商用吗？

@digitalbazaar/vpqr 使用 BSD-3-Clause 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。另外不得用原作者名义为衍生产品背书。以上为概括，不构成法律意见，请以许可原文为准。

### @digitalbazaar/vpqr 的下载量有多少？

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

### @digitalbazaar/vpqr 还在维护吗？

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

