# @diy-accounting-uk/diya-gl 中文文档

规范地址：https://npmcn.com/package/%40diy-accounting-uk/diya-gl/

版本：1\.2\.79
npm 元数据更新时间：2026-11-12T10:30:20.261Z
中文译文更新时间：2026-11-12T12:03:43.748Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40diy-accounting-uk/diya-gl
原文对照：https://npmcn.com/package/%40diy-accounting-uk/diya-gl/?lang=original
项目主页：https://diya-gl.co.uk/spec.html
源码仓库：https://github.com/diy-accounting-uk/spreadsheets.diyaccounting.co.uk

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

- 包体积（解压后）：4.2 MB，173 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=24\.0\.0
- 运行依赖：5 个
- 首次发布：2026-09-08T01:48:17.336Z
- 最新版本发布：2026-11-12T10:30:19.846Z
- 近 30 天下载量：13841（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：89（近 12 个月 89 个）

## 中文简介

从命令行重新计算、读取和写入 DIYA- GL 书籍

## 安装

```sh
npm install @diy-accounting-uk/diya-gl
```

也可以使用：`pnpm add @diy-accounting-uk/diya-gl`、`yarn add @diy-accounting-uk/diya-gl`、`bun add @diy-accounting-uk/diya-gl`

## README

# @diy-acount-uk/diya-gl (英语)

管理英国唯一交易商或公司的账户 一本DIYA-GLTM书是一本 book.toml和一行.jsonl文件,通常为几千字节,持有一年的交易时间 以及他们寄入的账户图表。 这个软件包会重新计算一个,读取一个 Excel工作手册,写一个回 工作手册,服务一个超过 MCP,全部通过 同样的引擎 [DIY 会计电子表格TM网站](https://spreadsheets.diyaccounting.co.uk/) 在CI中调和.

4个产品:基础独行商、出租车司机、自营职业者、有限公司.

## 安装

```
npm install -g @diy-accounting-uk/diya-gl
```

与本乡人:

```
brew tap diy-accounting-uk/diya-gl
brew install diy-accounting-uk/diya-gl/diya-gl
```

或者从 GHCR 直接运行图像, 不安装 :

```
docker run --rm -v "$PWD":/data ghcr.io/diy-accounting-uk/diya-gl:latest \
  recalc --package bst --data /data/my-book --years se-2025-2026 --output-dir /data/out
```

## 使用

```
diya-gl recalc --package bst --data my-book --years se-2025-2026 --output-dir out
diya-gl read-workbook --file my-workbook.xlsx --output-dir out
diya-gl write-workbook --data my-book --output-dir out
diya-gl link my-book
diya-gl new-book --product se --name "Lark Lane" --year-end 2027-04-05 --output-dir lark-lane
diya-gl roll-forward --data my-book --output-dir next-year
diya-gl view my-book
diya-gl mcp
```

每个子命令也是自己的命令,如果你只想要一个在您的 `PATH`数字 : `diya-gl-recalc`, (中文(简体) ), `diya-gl-read-workbook`, (中文(简体) ), `diya-gl-write-workbook`, (中文(简体) ), `diya-gl-link`, (中文(简体) ), `diya-gl-new-book`, (中文(简体) ), `diya-gl-roll-forward`, (中文(简体) ), `diya-gl-view`, (中文(简体) ), `diya-gl-mcp`。 。 。 .

-   **重新计算c** 取出一本书`--data`)或人口众多的工作手册(`--source-dir`, (中文(简体) ), `--mode saved|recalculate`)并写作 `report.json`:每个数字,报告部分和 遵守检查引擎计算.
-   **读取本** 需要一个 `.xlsx`,包拉链,或 diya-gl拉链或 JSON 文件 (单位:千美元)`--file`),并写作 `book.toml`, (中文(简体) ), `lines.jsonl`, (中文(简体) ), `report.json` 财务报告和审定财务报表 `bookchecks.json`。 。 。 .
-   **写作手册** 取出一本书`--data` 或者说 `--file`)并写出 Excel 将其产品编译成其模板的软件包 — 相同的客户端路径 DIYA- GL 页面使用,所以它不需要 LibreOffice. 添加 `--zip` 包作为一拉链.
-   **链接** 取出一本书(目录与 `book.toml` 财务报告和审定财务报表 `lines.jsonl`\-gl拉链或 diya-gl JSON文件)并打印 `https://diya-gl.co.uk/<product>.html#book=<data>` 链接 打开它,整个书 携带在碎片 所以没有上传. `--base <url>` 替换来源。 片段长度为Stderr,警告时间为64 KB(大约 2,000行),其中聊天,电子邮件和QR代码开始切断链接.
-   **新书** 为新业务创建空书: `--product` (单位:千美元)`bst`, (中文(简体) ), `se`, (中文(简体) ), `taxi` 或者说 `ltd`, (中文(简体) ), `--name` 财务报告和审定财务报表 `--year-end` (YYYY-MM-DD), 附加 : `--vat` 增值税登记本人 受雇或公司书。 写着 `book.toml` (该产品的起始账户图表, 12个月至年底的12个月和该纳税年度的税率) `lines.jsonl`, (中文(简体) ), `report.json` 财务报告和审定财务报表 `bookchecks.json` 输入 `--output-dir`,默认情况下,当前目录. 答案是:我如何创办新企业的账本 或公司书从头开始, 哪些税率适用于第一年?
-   **向前滚** 取出一本书(`--data`,来源与 **链接**)并写下一个 进入一年 `--output-dir`:一年终了时的税率,期末 余额为开口,仅持有开口分录的行(a公司开口) 日记账和每个银行账户一个带过来的行号;自雇簿的行号. 还有 `book.toml`, (中文(简体) ), `lines.jsonl`, (中文(简体) ), `report.json` 财务报告和审定财务报表 `bookchecks.json` 它写着 `rollchecks.json`,每个起始数字,新年的印数 与结束数字的印数 年份印出,当出现分歧时退出 1。 答案是: 我如何开始明年的书, 我去年带来了什么, 我的期初资产负债表是否同意最后 一年的结束?
-   **视图** 使用与 **链接**,为全diya-gl页面服务 `127.0.0.1` (单位:千美元)`--port <number>`,默认为自由端口),并在默认情况下打开该书 浏览器( e)`--no-open` 仅打印地址。 页面不在此包中: 本地 服务器从 [https://diya-gl.co.uk (英语)](https://diya-gl.co.uk/) 并缓存到 系统临时目录,每个软件包版本一个目录,所以第一次运行需要 network,然后运行同一版本的缓存再使用. `--origin <url>` 从 另一个网站。 书留在浏览器中(地址在 `#` 从未发送 随处可见). 服务器一直保持到Ctrl -C. 工作手册模板来自 网页动作第一次需要电子表格.diycolection.co.uk.
-   **微调** 运行 stdio [MCP 磁共振](https://modelcontextprotocol.io/) 拥有十个工具的服务器 : `extract_book`, (中文(简体) ), `new_book` (空书 **新书** 写作, `roll_forward` (下一个) 年份 **向前滚** 写作, `report`, (中文(简体) ), `edit_lines`, (中文(简体) ), `save_workbook`和四个读取每个细节 已装入的书 : `lines` (过滤器和分组每笔交易,例如最佳客户或支出) 6月为燃料, `chart` (每个帐户和报表行, `book` (业务, 期限、税务设置和登记册) `checks` (每本书都与条目核对) {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}别在后面说 指向 MCP 客户端 `diya-gl-mcp` (或 `diya-gl mcp`),没有争论.

## API 密码

套件根导出将一书转换成数字的五个函数 HMRC 的 MTD API 拿着 每个都取出解析本,其行和参数对象. 增值税和自营职业 函数返回承诺;两个英国财产函数直接返回答案. 无所出处:答案是请求体发送,加上什么喂食.

先装入一书 :

```js
import { readFileSync } from "node:fs";
import { parse } from "smol-toml";

function loadBook(dir) {
  const book = parse(readFileSync(`${dir}/book.toml`, "utf8"));
  const lines = readFileSync(`${dir}/lines.jsonl`, "utf8")
    .split("\n")
    .filter(Boolean)
    .map((line) => JSON.parse(line));
  return { book, lines };
}
```

### `deriveVatReturn(book, lines, { periodEnd, periodStart?, periodKey? })`

截止三个月期间的九个增值税返还箱 `periodEnd` (YYYY-MM-DD),从a 宣布的有限公司书 `diya-gl:vatRegistered = true`。 。 。 . `periodStart`,当给予, 必须开放该季度; `periodKey` 被反射回来。 答案带 `boxes` (框1为框9), `hmrc` (HMRC的字段名下的数字相同,框1至框5为一分钱,框6至框9为一分钱) 整个磅, `months`, (中文(简体) ), `dueDate`, (中文(简体) ), `scheme`,以及 `lines`: 框1、框4后面的日记行, 6和7,各自贡献多少。 与其增值税不符的书 拒绝接口.

```js
import { deriveVatReturn } from "@diy-accounting-uk/diya-gl";

const { book, lines } = loadBook("my-company-book");
const answer = await deriveVatReturn(book, lines, { periodStart: "2025-07-01", periodEnd: "2025-09-30" });
console.log(answer.hmrc); // { vatDueSales, vatDueAcquisitions, totalVatDue, ..., totalAcquisitionsExVAT }
```

### `deriveItsaQuarterlyUpdate(book, lines, { periodEndDate?, quarterlyPeriodType?, taxYear? })`

从《自营职业者手册》中摘取了HMRC的《自营职业者业务》。 2023年到2023年 2023年到2023年 2024-25年每个期间都有自己的数字;从2025-26年,每个期间都有连续的总数来自 4月6日 (英语). `periodEndDate` 在4年中选择一个时期;没有这个时期,每个时期都是 回答过. `quarterlyPeriodType` 实值 `standard` (4月6日季度,默认)或 `calendar`。 。 。 . `taxYear` (截至 `2025-26`)取代了书中日期所暗示的年份. 每期列出字段 该书无法在 `omitted`;那些被抛出身体, 从来没有发送为零.

```js
import { deriveItsaQuarterlyUpdate } from "@diy-accounting-uk/diya-gl";

const { book, lines } = loadBook("my-self-employed-book");
const answer = await deriveItsaQuarterlyUpdate(book, lines, { periodEndDate: "2025-10-05" });
const [period] = answer.periods; // { periodDates, periodIncome, periodExpenses, ..., omitted, covers }
```

### `deriveItsaAnnualSubmission(book, lines, { taxYear? })`

年度津贴和调整数 使用簿,仅限于该纳税年度的注册地. `taxYear` (截至 `2025-26`)取代了书中日期所暗示的年份. 答案带 `allowances`, (中文(简体) ), `adjustments`, (中文(简体) ), `omitted` 财务报告和审定财务报表 `warnings`。 。 。 .

```js
import { deriveItsaAnnualSubmission } from "@diy-accounting-uk/diya-gl";

const { book, lines } = loadBook("my-self-employed-book");
const answer = await deriveItsaAnnualSubmission(book, lines, { taxYear: "2025-26" });
console.log(answer.allowances.annualInvestmentAllowance);
```

### `deriveUkPropertyPeriod(book, lines, { periodStartDate, periodEndDate })`

HMRC的地产商业 API (UK地产) 从单行本上划出一段时期. 书的 图表名称 HMRC 字段 `diya-gl:ukPropertyField` 账户 (例如 `"income.periodAmount"` 在房租帐户上, `"expenses.repairsAndMaintenance"` 打开 修复账户。 该职能将这些账户上的销售和采购款项相加 在两个日期之间,包括增值税净额在内,并从其领域提取一个信用说明。 这个 回答带 `income`, (中文(简体) ), `expenses`, (中文(简体) ), `omitted` (没有播报的田地;没有播报的田地) 尸体,从不作为零, `lines` 财务报告和审定财务报表 `warnings`。一本书的名称 `expenses.consolidatedExpenses` 并且拒绝在同一期间的逐项开支,因为 HMRC服用一种或另一种.

```js
import { deriveUkPropertyPeriod } from "@diy-accounting-uk/diya-gl";

const { book, lines } = loadBook("my-landlord-book");
const answer = deriveUkPropertyPeriod(book, lines, { periodStartDate: "2025-04-06", periodEndDate: "2025-07-05" });
console.log(answer.income.periodAmount, answer.expenses.repairsAndMaintenance);
```

### `deriveUkPropertyAnnual(book, lines, { taxYear? })`

年度调整(`balancingCharge`, (中文(简体) ), `privateUseAdjustment`, (中文(简体) ), `businessPremisesRenovationAllowanceBalancingCharges`)和津贴`annualInvestmentAllowance`, (中文(简体) ), `businessPremisesRenovationAllowance`, (中文(简体) ), `otherCapitalAllowance`, (中文(简体) ), `costOfReplacingDomesticItems`, (中文(简体) ), `zeroEmissionsCarAllowance`从账户上公布的图表名称,为纳税年度 `taxYear` (截至 `2025-26`;默认为本作的期末倒入的年份). 财产 收入津贴, `nonResidentLandlord` 财务报告和审定财务报表 `rentARoom.jointlyLet` 选择和事实 房东,不是分类账数字;答案将它们列在下面 `leftToPage`。 。 。 .

## 格式

一本diya-gl书的字段取自XBRL全球编目分类学框架2015和 映射到HMRC的 SA103S 盒。 验证一本书的两个计划发表于 [`/schema/diya-gl-book-v2.schema.json`](https://spreadsheets.diyaccounting.co.uk/schema/diya-gl-book-v2.schema.json) 财务报告和审定财务报表 [`/schema/diya-gl-lines-v2.schema.json`](https://spreadsheets.diyaccounting.co.uk/schema/diya-gl-lines-v2.schema.json)。 。 。 . 完整的实地测绘、检查目录以及背后的核对证据是: 编辑 [格式谱页](https://diya-gl.co.uk/spec.html)。 。 。 .

## 证明

这个软件包写的每本书都印有五张邮票:格式版本,这个软件包自己的 版本和承诺,在所应用的纳税年度数据上显示散列,以及每种产品的模板散列 和调节计分卡。 重新计算旧书 要么复制它 `report.json` 字节的字节或不同邮票的名称。 每一份公开的发行都从承诺中剪去 核对结果通过;计分卡在 [调和的版本页面](https://spreadsheets.diyaccounting.co.uk/reconciliation/releases.html)。 。 。 .

## 许可证

这个软件包根据Apache许可证2.0获得许可. 嵌入后,出船后再换. 见 `LICENSE` 财务报告和审定财务报表 `NOTICE`。 。 。 .

Diya-gl格式本身是一个开放的规格. 两个JSON斯克马是Apache -2.0和 格式文本是 CC BY 4.0,所以您可以在任何带有属性的文件中执行格式.

工作手册模板不属于此软件包. `write-workbook` 和多边协商进程 `save_workbook` 工具获取所需的模板 [电子表格.diycoleaning.co.uk](https://spreadsheets.diyaccounting.co.uk/) 他们第一次跑的时候, 打印术语,并缓存用于同一版本的后期运行。 这些模板是公司的 个人工作,根据多形式内部使用许可证1.0附加补助金: 拥有账户,或客户账户 如果你是会计师或记账员,不 重新分配它们.

该存放处不接受捐款.

版权(C)2006-2026 DIY 会计有限责任公司.

## 常见问题

### @diy-accounting-uk/diya-gl 是什么？

从命令行重新计算、读取和写入 DIYA- GL 书籍

### 如何安装 @diy-accounting-uk/diya-gl？

在项目目录运行 npm install @diy-accounting-uk/diya-gl，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 diya-gl、diya-gl-mcp、diya-gl-link、diya-gl-view、diya-gl-recalc、diya-gl-new-book、diya-gl-roll-forward、diya-gl-read-workbook、diya-gl-write-workbook，可以用 npx diya-gl 直接运行。

### @diy-accounting-uk/diya-gl 支持 TypeScript 吗？

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

### @diy-accounting-uk/diya-gl 支持 ESM 还是 CommonJS？

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

### @diy-accounting-uk/diya-gl 需要什么版本的 Node\.js？

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

### @diy-accounting-uk/diya-gl 可以商用吗？

@diy-accounting-uk/diya-gl 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @diy-accounting-uk/diya-gl 的下载量有多少？

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

### @diy-accounting-uk/diya-gl 还在维护吗？

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

