# @deepintel-ltd/farmpro-contracts 中文文档

规范地址：https://npmcn.com/package/%40deepintel-ltd/farmpro-contracts/

版本：1\.36\.11
npm 元数据更新时间：2026-10-26T20:34:44.394Z
中文译文更新时间：2026-11-11T20:03:41.572Z
软件包许可：ISC

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

原始 npm 页面：https://www.npmjs.com/package/%40deepintel-ltd/farmpro-contracts
原文对照：https://npmcn.com/package/%40deepintel-ltd/farmpro-contracts/?lang=original

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

- 包体积（解压后）：21.3 MB，449 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：2 个
- peer 依赖：zod ^3\.25\.0，@ts-rest/core ^3\.52\.0
- 首次发布：2025-11-08T06:56:40.336Z
- 最新版本发布：2026-10-26T20:34:41.200Z
- 近 30 天下载量：3877（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：148（近 12 个月 138 个）

## 中文简介

FarmPro API的安全性API合同

## 安装

```sh
npm install @deepintel-ltd/farmpro-contracts
```

也可以使用：`pnpm add @deepintel-ltd/farmpro-contracts`、`yarn add @deepintel-ltd/farmpro-contracts`、`bun add @deepintel-ltd/farmpro-contracts`

## README

# FarmPro API 合同

使用 FarmPro API 的 API 型安全合同 [ts-resst (英语)](https://ts-rest.com/) 财务报告和审定财务报表 [佐德语Name](https://zod.dev/)。 。 。 .

## 概览

这个包为所有FarmPro模块提供全面,型式安全的API合同. 这些合同遵循RESTFUL原则,并使用Zod计划进行运行时间验证.

## 安装

```bash
npm install @farmpro/contracts
```

## 结构

合同分为以下单元:

```
src/
├── index.ts                 # Main exports
├── routes/                  # API route definitions
│   ├── index.ts            # Main contract combining all routers
│   ├── farms.routes.ts
│   ├── fields.routes.ts
│   ├── tasks.routes.ts
│   ├── inventory.routes.ts
│   ├── finance.routes.ts
│   ├── harvest.routes.ts
│   ├── soil-tests.routes.ts
│   ├── weather.routes.ts
│   ├── team.routes.ts
│   ├── equipment.routes.ts
│   ├── documents.routes.ts
│   ├── suppliers.routes.ts
│   └── analytics.routes.ts
└── schemas/                 # Zod schemas
    ├── common.schemas.ts   # Shared schemas (pagination, errors, GeoJSON)
    ├── farms.schemas.ts
    ├── fields.schemas.ts
    ├── tasks.schemas.ts
    ├── inventory.schemas.ts
    ├── finance.schemas.ts
    ├── harvest.schemas.ts
    ├── soil-tests.schemas.ts
    ├── weather.schemas.ts
    ├── team.schemas.ts
    ├── equipment.schemas.ts
    ├── documents.schemas.ts
    ├── suppliers.schemas.ts
    └── analytics.schemas.ts
```

## 使用量

### 后端( NestJS)

```typescript
import { apiContract } from '@farmpro/contracts';
import { TsRestHandler, tsRestHandler } from '@ts-rest/nest';

@Controller()
export class FarmsController {
  @TsRestHandler(apiContract.farms)
  async handler() {
    return tsRestHandler(apiContract.farms, {
      listFarms: async ({ query }) => {
        // Implementation
      },
      createFarm: async ({ body }) => {
        // Implementation
      },
      // ... other handlers
    });
  }
}
```

### 前端

```typescript
import { initClient } from '@ts-rest/core';
import { apiContract } from '@farmpro/contracts';

const client = initClient(apiContract, {
  baseUrl: 'http://localhost:3000/api',
  baseHeaders: {
    'Content-Type': 'application/json',
  },
});

// Use the client
const farms = await client.farms.listFarms({ query: { page: 1, limit: 20 } });
const farm = await client.farms.createFarm({ body: { name: 'My Farm', location: 'Kano' } });
```

## API 模块

### 认证

-   `POST /auth/login` - 用电子邮件和密码登录
-   `POST /auth/signup` - 登记新用户
-   `POST /auth/google/initiate` - 启动谷歌OAuth流量
-   `POST /auth/google/callback` - 处理谷歌OAuth召回
-   `POST /auth/refresh` - 刷新访问标志
-   `POST /auth/logout` - 登录用户
-   `POST /auth/password/reset-request` - 请求密码重置
-   `POST /auth/password/reset` - 重新设定密码
-   `POST /auth/password/change` - 更改密码(认证)
-   `POST /auth/email/verify` - 验证电子邮件地址
-   `POST /auth/email/resend-verification` - 重新发送验证邮件

### 用户

-   `GET /user/profile` - 获取当前用户配置
-   `PATCH /user/profile` - 更新用户配置

### 农场

-   `GET /farms` - 名单农场
-   `POST /farms` - 创建农场
-   `GET /farms/:id` - 去农场
-   `PATCH /farms/:id` - 更新农场
-   `DELETE /farms/:id` - 删除农场

### 字段

-   `GET /farms/:farmId/fields` - 列表字段
-   `POST /farms/:farmId/fields` - 创建字段
-   `GET /farms/:farmId/fields/:id` - 获得野外
-   `PATCH /farms/:farmId/fields/:id` - 更新字段
-   `DELETE /farms/:farmId/fields/:id` - 删除字段

### 任务

-   `GET /farms/:farmId/tasks` - 列出任务
-   `POST /farms/:farmId/tasks` - 创建任务
-   `GET /farms/:farmId/tasks/:id` - 得到任务
-   `PATCH /farms/:farmId/tasks/:id` - 更新任务
-   `POST /farms/:farmId/tasks/:id/complete` - 完成任务
-   `DELETE /farms/:farmId/tasks/:id` - 删除任务
-   `POST /farms/:farmId/tasks/:id/notes` - 添加任务说明

### 库存

-   `GET /farms/:farmId/inventory` - 清单物项
-   `POST /farms/:farmId/inventory` - 创建库存项目
-   `GET /farms/:farmId/inventory/:id` - 获得库存物品
-   `PATCH /farms/:farmId/inventory/:id` - 更新库存项目
-   `DELETE /farms/:farmId/inventory/:id` - 删除库存项目
-   `POST /farms/:farmId/inventory/purchase` - 购买日志

### 财务

-   预算: `GET`, (中文(简体) ), `POST`, (中文(简体) ), `PATCH`, (中文(简体) ), `DELETE /farms/:farmId/budget`
-   费用: `GET`, (中文(简体) ), `POST`, (中文(简体) ), `PATCH`, (中文(简体) ), `DELETE /farms/:farmId/expenses`
-   收入: `GET`, (中文(简体) ), `POST`, (中文(简体) ), `PATCH`, (中文(简体) ), `DELETE /farms/:farmId/revenue`
-   `GET /farms/:farmId/finance/summary` - 财务摘要

### 收获

-   `GET /farms/:farmId/harvests` - 清单收成
-   `POST /farms/:farmId/harvests` - 创造收获
-   `GET /farms/:farmId/harvests/:id` - 收获吧
-   `PATCH /farms/:farmId/harvests/:id` - 更新收获情况
-   `DELETE /farms/:farmId/harvests/:id` - 删除收成

### 土壤试验

-   `GET /farms/:farmId/soil-tests` - 列出土壤试验
-   `POST /farms/:farmId/soil-tests` - 建立土壤测试
-   `GET /farms/:farmId/soil-tests/:id` - 进行土壤测试
-   `PATCH /farms/:farmId/soil-tests/:id` - 更新土壤测试
-   `DELETE /farms/:farmId/soil-tests/:id` - 删除土壤试验

### 天气

-   `GET /farms/:farmId/weather` - 获取天气数据

### 团队

-   `GET /farms/:farmId/team` - 名单小组成员
-   `POST /farms/:farmId/team` - 创建团队成员
-   `GET /farms/:farmId/team/:id` - 叫队员来
-   `PATCH /farms/:farmId/team/:id` - 更新小组成员
-   `DELETE /farms/:farmId/team/:id` - 删除小组成员

### 设备

-   `GET /farms/:farmId/equipment` - 清单设备
-   `POST /farms/:farmId/equipment` - 创建设备
-   `GET /farms/:farmId/equipment/:id` - 拿设备
-   `PATCH /farms/:farmId/equipment/:id` - 更新设备
-   `DELETE /farms/:farmId/equipment/:id` - 删除设备
-   `POST /farms/:farmId/equipment/:id/maintenance` - 增加维护记录

### 文档

-   `GET /farms/:farmId/documents` - 清单文件
-   `POST /farms/:farmId/documents` - 创建文档
-   `GET /farms/:farmId/documents/:id` - 获取文档
-   `PATCH /farms/:farmId/documents/:id` - 更新文档
-   `DELETE /farms/:farmId/documents/:id` - 删除文档

### 供应商

-   供应商: `GET`, (中文(简体) ), `POST`, (中文(简体) ), `PATCH`, (中文(简体) ), `DELETE /farms/:farmId/suppliers`
-   买家 : `GET`, (中文(简体) ), `POST`, (中文(简体) ), `PATCH`, (中文(简体) ), `DELETE /farms/:farmId/buyers`

### 分析

-   `GET /farms/:farmId/analytics` - 获取分析数据

## 常见特征

### 倾斜

大多数列表终点支持 pagination :

```typescript
{
  page?: number;  // Default: 1
  limit?: number; // Default: 20, Max: 100
}
```

### 日期范围过滤

许多端点支持日期范围过滤:

```typescript
{
  startDate?: string; // ISO datetime
  endDate?: string;   // ISO datetime
}
```

### GeoJSON 支持

农场和农田支持GeoJSON几何边界:

```typescript
{
  type: 'Polygon' | 'MultiPolygon' | 'Point' | 'LineString';
  coordinates: number[][][] | number[][] | number[];
}
```

### 错误回复

所有端点返回标准化错误反应:

```typescript
{
  message: string;
  code?: string;
  errors?: Array<{
    field?: string;
    message: string;
  }>;
}
```

## 类型安全

所有计划导出类型Script 类型 :

```typescript
import type {
  FarmResponse,
  CreateFarmInput,
  FieldResponse,
  TaskResponse,
  // ... etc
} from '@farmpro/contracts';
```

## 发展

### 大楼

```bash
npm run build
```

### 类型检查

```bash
npm run type-check
```

### 出版

```bash
npm run prepublishOnly  # Builds and validates
npm publish
```

## 许可证

公务员制度委员会

## 常见问题

### @deepintel-ltd/farmpro-contracts 是什么？

FarmPro API的安全性API合同

### 如何安装 @deepintel-ltd/farmpro-contracts？

在项目目录运行 npm install @deepintel-ltd/farmpro-contracts，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：zod（^3\.25\.0）、@ts-rest/core（^3\.52\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @deepintel-ltd/farmpro-contracts 支持 TypeScript 吗？

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

### @deepintel-ltd/farmpro-contracts 支持 ESM 还是 CommonJS？

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

### @deepintel-ltd/farmpro-contracts 可以商用吗？

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

### @deepintel-ltd/farmpro-contracts 的下载量有多少？

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

### @deepintel-ltd/farmpro-contracts 还在维护吗？

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

