# @dynamatix/cat-shared 中文文档

规范地址：https://npmcn.com/package/%40dynamatix/cat-shared/

版本：0\.0\.171
npm 元数据更新时间：2026-11-05T11:25:47.147Z
中文译文更新时间：2026-11-13T04:44:45.279Z
软件包许可：ISC

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

原始 npm 页面：https://www.npmjs.com/package/%40dynamatix/cat-shared
原文对照：https://npmcn.com/package/%40dynamatix/cat-shared/?lang=original

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

- 包体积（解压后）：50.9 kB，22 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- 运行依赖：2 个
- 首次发布：2025-03-28T19:39:25.271Z
- 最新版本发布：2026-11-05T11:25:46.678Z
- 近 30 天下载量：2297（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：159（近 12 个月 24 个）

## 中文简介

Catura 服务综合共享库,提供数据模型、中间软件以及文件管理、审计记录和工作流程自动化服务.

## 安装

```sh
npm install @dynamatix/cat-shared
```

也可以使用：`pnpm add @dynamatix/cat-shared`、`yarn add @dynamatix/cat-shared`、`bun add @dynamatix/cat-shared`

## README

# @ dynamatix/ cat- 共享

Catura 服务综合共享库,提供数据模型、中间软件以及文件管理、审计记录和工作流程自动化服务.

## \* 安装

```bash
npm install @dynamatix/cat-shared
```

## QQ 快速启动

```javascript
import { 
  DocumentModel, 
  AuditModel, 
  applyAuditMiddleware,
  getContext 
} from '@dynamatix/cat-shared';

// Use models directly
const document = new DocumentModel({
  filename: 'example.pdf',
  documentTypeId: '...',
  // ... other fields
});

// Apply audit middleware to track changes
applyAuditMiddleware(DocumentModel);

// Set request context
setContext({ userId: 'user123', requestId: 'req456' });
```

## \* 特性

### 🔍 **数据模型**

-   **文件管理**数字 : `DocumentModel`, (中文(简体) ), `DocumentTypeModel`, (中文(简体) ), `DocumentHistoryModel`
-   **审计和遵守情况**数字 : `AuditModel`, (中文(简体) ), `AuditConfigModel`
-   **工作流程管理**数字 : `WorkflowConfigModel`, (中文(简体) ), `WorkflowAlertModel`
-   **窗体配置**数字 : `FormConfigurationModel`
-   **数值参考映射**数字 : `ValueReferenceMapModel`

### 🛡️ **中间软件**

-   MongoDB 文档的自动更改跟踪
-   与自定义解析器配置审计记录
-   支持复杂的外地描述和查询
-   与用户归属请求的关联

### 🔧 **服务**

-   **请求上下文**: 基于Async本地Storage的上下文管理
-   **审计钩**:用于自动审计记录的Mongoose钩

## API 参考

### 模型

#### 文档模式

```javascript
import { DocumentModel } from '@dynamatix/cat-shared';

const document = new DocumentModel({
  contextId: 'application123',
  filename: 'document.pdf',
  documentTypeId: 'type456',
  documentUrl: 'https://storage.example.com/doc.pdf',
  statusLid: 'status789',
  uploadedBy: 'user123'
});
```

#### 审计模式

```javascript
import { AuditModel } from '@dynamatix/cat-shared';

const auditLog = new AuditModel({
  name: 'Document Updated',
  recordId: 'document123',
  contextId: 'application456',
  oldValue: { status: 'pending' },
  newValue: { status: 'approved' },
  createdBy: 'user789'
});
```

### 中间软件

#### 应用 AuditMiddle 软件

```javascript
import { applyAuditMiddleware } from '@dynamatix/cat-shared';

// Apply audit middleware to a model
applyAuditMiddleware(DocumentModel);

// The model will now automatically log all changes
```

#### 注册

```javascript
import { registerAuditHook } from '@dynamatix/cat-shared';

// Register custom audit hooks
registerAuditHook(DocumentModel, {
  pre: (doc) => console.log('Before save:', doc),
  post: (doc) => console.log('After save:', doc)
});
```

### 服务

#### 请求上下文

```javascript
import { getContext, setContext } from '@dynamatix/cat-shared';

// Set context for the current request
setContext({
  userId: 'user123',
  requestId: 'req456',
  timestamp: new Date()
});

// Get context anywhere in the request lifecycle
const context = getContext();
console.log('Current user:', context.userId);
```

## QQ 配置

### 审计配置

审计系统使用 `AuditConfigModel` 配置要跟踪的字段以及如何描述变化:

```javascript
const auditConfig = new AuditConfigModel({
  modelName: 'Document',
  fields: ['status', 'filename'],
  descriptionField: 'filename',
  descriptionResolverType: 'direct'
});
```

### 数值参考映射

使用 `ValueReferenceMapModel` 以配置如何解析和显示引用字段:

```javascript
const valueMap = new ValueReferenceMapModel({
  field: 'createdBy',
  model: 'User',
  displayField: 'fullName',
  descriptionResolverType: 'lookup'
});
```

## 种子

该项目包括初步数据集的种子:

```bash
# Run the value reference map seeder
node seeders/value-reference-map.seeder.js
```

## 项目结构

```
cat-shared/
├── models/                 # MongoDB/Mongoose data models
│   ├── document.model.js
│   ├── audit.model.js
│   ├── workflow-*.model.js
│   └── index.js
├── middlewares/           # Express/Node.js middleware
│   ├── audit.middleware.js
│   └── index.js
├── services/              # Business logic services
│   ├── request-context.service.js
│   ├── audit-log.hook.js
│   └── index.js
├── seeders/               # Database seeding scripts
├── utils/                 # Utility functions
└── index.js               # Main export file
```

## 出口

库提供以下导出路径:

```javascript
// Main exports
import { DocumentModel, AuditModel } from '@dynamatix/cat-shared';

// Specific module exports
import { DocumentModel } from '@dynamatix/cat-shared/models';
import { applyAuditMiddleware } from '@dynamatix/cat-shared/middlewares';
import { getContext } from '@dynamatix/cat-shared/services';
```

## 发展

### 先决条件

-   节点.js 18+
-   蒙戈DB
-   8.13.1 + 蒙古语

### 地方发展

```bash
# Clone the repository
git clone <repository-url>
cd cat-shared

# Install dependencies
npm install

# Run tests (when implemented)
npm test
```

## 许可证

ISC 许可证

## 捐款

这是Catura Services的共享库. 请与开发团队联系,了解捐款准则.

## ++ 辅助

如需支援及提问,请与Catura Services开发团队联系.

## 常见问题

### @dynamatix/cat-shared 是什么？

Catura 服务综合共享库,提供数据模型、中间软件以及文件管理、审计记录和工作流程自动化服务\.

### 如何安装 @dynamatix/cat-shared？

在项目目录运行 npm install @dynamatix/cat-shared，或使用 pnpm add / yarn add / bun add。

### @dynamatix/cat-shared 支持 TypeScript 吗？

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

### @dynamatix/cat-shared 支持 ESM 还是 CommonJS？

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

### @dynamatix/cat-shared 可以商用吗？

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

### @dynamatix/cat-shared 的下载量有多少？

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

### @dynamatix/cat-shared 还在维护吗？

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

