# @vizejs/marquette 中文文档

规范地址：https://npmcn.com/package/%40vizejs/marquette/

版本：0\.650\.0
npm 元数据更新时间：2026-11-02T19:32:31.666Z
中文译文更新时间：2026-11-02T20:28:58.484Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：309 kB，53 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：0 个
- 首次发布：2026-07-22T06:25:54.090Z
- 最新版本发布：2026-11-02T19:32:31.202Z
- 已发布版本数：309（近 12 个月 309 个）

## 中文简介

每个Vize目标的键入应用程序市场

## 安装

```sh
npm install @vizejs/marquette
```

也可以使用：`pnpm add @vizejs/marquette`、`yarn add @vizejs/marquette`、`bun add @vizejs/marquette`

## README

# `@vizejs/marquette`

每个Vize目标的键入应用程序市场。

> 实验性的：序列化契约是版本化的，但TypeScript API可以 在验证目标适配器时进行演进。

马奎特是一种小型的、语言中立的描述，由网络、本地、 桌面、终端、后端、传输、测试和图库工具。这 包提供了保留文字的TypeScript创作。运行时验证是 可通过单独入口获得，同时实现规范化和兼容性 分析仍然集中在层次上。

## 作者：马奎特

```ts
import { defineApplicationMarquette } from "@vizejs/marquette";

export default defineApplicationMarquette({
  application: "shop",
  targets: ["web", "native"],
  environments: [
    {
      id: "web",
      target: "web",
      consumer: "client",
      runtime: "browser",
    },
    {
      id: "native",
      target: "native",
      consumer: "client",
      runtime: "native",
    },
    {
      id: "server",
      target: "web",
      consumer: "server",
      runtime: "rust",
    },
  ],
  backends: [
    {
      id: "api",
      family: "rust",
      environment: "server",
    },
  ],
  protocols: [
    {
      id: "api.query",
      family: "schema-query",
      backend: "api",
    },
  ],
  routes: [
    {
      id: "home",
      path: "/",
      environment: "web",
      rendering: "hybrid",
      backend: "api",
      protocol: "api.query",
    },
  ],
});
```

环境依赖关系、后端所有者、协议所有者和路由 根据同一对象中声明的标识符检查引用。一个 因此，拼写错误的引用是一个编写错误，而不是运行时错误 惊喜。

## 运行时验证

当契约跨文件、流程或文件时，使用专用验证项 语言的界限:

```ts
import { validateApplicationMarquette } from "@vizejs/marquette/validate";

const diagnostics = validateApplicationMarquette(shop);
for (const diagnostic of diagnostics) {
  console.error(diagnostic.code, diagnostic.path, diagnostic.message);
}
```

验证是确定的，不会改变所创建的对象，并报告 与本机契约实现共享的稳定代码。保持在一个 单独条目意味着仅用于创作的应用程序不包括验证 代码。

## 适配器能力协商

适配器发布包含的功能-版本范围独立于 应用马凯特。应用程序功能定义是权威 的要求;未声明的需求无法关闭，即使适配器 提供具有相同标识符的功能。只有适配器的功能是 允许并保持添加，直到应用程序需要它们。

```ts
import {
  negotiateAdapterCapabilities,
  type AdapterCapabilityManifest,
} from "@vizejs/marquette/adapter";

const adapter = {
  adapter: "terminal.fresco",
  capabilities: [{ id: "terminal.color", minVersion: 1, maxVersion: 3 }],
} satisfies AdapterCapabilityManifest;

const result = negotiateAdapterCapabilities(
  marquette,
  marquette.environments?.[0]?.capabilities ?? [],
  adapter,
);
if (!result.compatible) {
  console.error(result.diagnostics, result.mismatches);
}
```

精确匹配和包含绑定匹配是兼容的。失踪的支持, 要求低于适配器的最小值，要求高于适配器的最大值 使用马厩 `missing-capability`， `version-below-minimum`, `version-above-maximum` 代码。每个不匹配也带有确定性 `path` 和 `message`，因此本机适配器诊断可以在没有 特定于目标的字符串格式化。增加或扩大支撑区间 界是加性的；移除支撑或缩小任何一个边界都是突破。 协商和兼容性报告都是确定排序的 而不是改变它们的输入。的验证诊断 当其中一个输入无效时，两者都显示并忽略更改。已发布的清单架构可从 `@vizejs/marquette/adapter/schema`.

本机呈现适配器共享一个封闭的版本一基准进行呈现， 事件、布局、文本、图像、动画、可访问性和生命周期：

```ts
import { nativeEngineCapabilityProfile } from "@vizejs/marquette/adapter";

const nativeAdapter = {
  adapter: "native.example",
  capabilities: nativeEngineCapabilityProfile(),
};
```

规范标识符使用 `native.*` 命名空间中发出的 稳定的订单。帮助器返回新值，以便适配器可以添加private 功能，而不更改其他消费者使用的基线。

## 测试的证据

发布绑定的测试运行证据记录存在于它们自己的惰性条目中，因此 部署工具可以绑定 `tests` 检查保留的、不可变的事实：

```ts
import { defineTestRunEvidence } from "@vizejs/marquette/test-run";
import { validateTestRunEvidence } from "@vizejs/marquette/test-run/validate";
import { testRunAdmissionId } from "@vizejs/marquette/test-run/canonical";
import { admitTestRun, decideTestRunAdmission } from "@vizejs/marquette/test-run/admission";
import { verifyTestRunCheck } from "@vizejs/marquette/test-run/check";
import { verifyTestRunTransition } from "@vizejs/marquette/test-run/transition";

const diagnostics = validateTestRunEvidence(evidence);
const admissionId = await testRunAdmissionId(evidence); // test-run:<sha256>
const rejections = await admitTestRun(evidence, candidate, admissionId, now);
const decision = await decideTestRunAdmission(evidence, candidate, admissionId, now);
if (!decision.allowed) {
  console.error(decision.denialCodes); // e.g. ["record-expired"]
}
const release = await verifyTestRunCheck(retainedCheck, candidate, evidence, now);
const journal = await verifyTestRunTransition(nextTransition, chainTip);
```

验证共享其 `VIZE_MARQUETTE_1xx` 代码、路径和排序 本机实现，规范化条目产生的字节相同 串行化和SHA-256指纹，通过在共享fixture中验证 `tests/fixtures/test-run-evidence/`。录取决定是稳定的， 每个后端家族共享的仅追加拒绝码词汇表；相同的 fixture固定每个决定，因此JavaScript， Rust， Go或JVM拒绝 相同的机器可读原因。检查项替换每个泛型 发布证据中的测试结果参考：保留 `vize.test-run.check` 记录可能只列出确切的名称 `test-run:<sha256>` 入场id，绑定六 候选人的事实，并记录独立于竞选者的观察者。这个 产品化条目使每个发布决定和完整的被接受 反重放状态一个持久的原子记录，由规范的SHA-256链接 指纹;主机使用write-then-atomic-rename对其进行持久化，并验证 在决定做任何新事情之前收回小费。发布的记录模式为 可以从 `@vizejs/marquette/test-run/schema`，决定契约从 `@vizejs/marquette/test-run/admission/schema`，测试检查合同来自 `@vizejs/marquette/test-run/check/schema`的过渡合同 `@vizejs/marquette/test-run/transition/schema`.

## 担保

-   确切的标识符仍然可用为 `EnvironmentId`， `BackendId`， `ProtocolId`, `RouteId` 工会。
-   `defineApplicationMarquette` 返回其输入而不分配或 规范化。
-   发布的应用程序契约模式可从 `@vizejs/marquette/schema`.
-   已发布的适配器清单架构可从 `@vizejs/marquette/adapter/schema`.
-   每个可选的契约字段在JSDoc中记录其默认值。
-   包构建对创作条目强制执行1 KiB的gzip预算和3 KiB的预算 或4 KiB预算用于验证条目。

马奎特描述组件和环境；它不编写UI 组件。公共Vize UI组件使用real `.vue` SFC文件作为它们的 规范的来源，从来没有写过 `h()` 调用或手写呈现函数。

## 常见问题

### @vizejs/marquette 是什么？

每个Vize目标的键入应用程序市场

### 如何安装 @vizejs/marquette？

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

### @vizejs/marquette 支持 TypeScript 吗？

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

### @vizejs/marquette 支持 ESM 还是 CommonJS？

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

### @vizejs/marquette 需要什么版本的 Node\.js？

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

### @vizejs/marquette 可以商用吗？

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

### @vizejs/marquette 还在维护吗？

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

