# @enagonathletics/flipturn 中文文档

规范地址：https://npmcn.com/package/%40enagonathletics/flipturn/

版本：0\.4\.0
npm 元数据更新时间：2026-10-05T10:39:51.094Z
中文译文更新时间：2026-11-14T02:30:05.804Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40enagonathletics/flipturn
原文对照：https://npmcn.com/package/%40enagonathletics/flipturn/?lang=original
项目主页：https://github.com/enagon-athletics/flipturn#readme
源码仓库：https://github.com/enagon-athletics/flipturn

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

- 包体积（解压后）：323 kB，139 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：0 个
- 首次发布：2026-09-26T20:19:18.636Z
- 最新版本发布：2026-10-05T10:39:50.654Z
- 近 30 天下载量：2496（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：4（近 12 个月 4 个）

## 中文简介

在TypeScript中读取并写出游泳满足文件(SDIF,Hy-Tek.hy3/.ev3/.hyv).

## 安装

```sh
npm install @enagonathletics/flipturn
```

也可以使用：`pnpm add @enagonathletics/flipturn`、`yarn add @enagonathletics/flipturn`、`bun add @enagonathletics/flipturn`

## README

# 翻转

在TypeScript中读取并写出游泳满足文件(SDIF,Hy-Tek.hy3/.ev3/.hyv).

麻省理工学院许可证,零运行时间依赖,无害环境管理。 在Node QQ22, Bun,和浏览器上运行. 库代码 从不触及文件系统:通过文本或字节.

## 安装

```bash
npm install @enagonathletics/flipturn
```

## 状态

预1.0. API是不稳定的,不会在没有大版本起伏的情况下更改(参见 `bump-minor-pre-major` 内 `release-please-config.json`) (中文(简体) ).

## 格式

| 格式 | 扩展 | 读取 | 写入 |
| --- | --- | --- | --- |
| SDIF v3 软件 | `.sd3`, (中文(简体) ), `.cl2` | 是:会相会,会相会相会,会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相会相 | 是:条目(标准SDIF) |
| Hy-Tek 满足结果 | `.hy3` | 有:条目、每轮结果、中继、DQ原因 | 没有 |
| Hy-Tek 事件文件 | `.ev3`, (中文(简体) ), `.hyv` | 有:活动、会议、收费、合格时间 | 没有 |
| Zip 容器 | `.zip` | 是: 在内部检测和读取每个相会文件 | 没有 |
| 列纳克斯 | `.lef`, (中文(简体) ), `.lxf` | 没有 | 没有 |

每个阅读器返回相同的格式中性 `Meet` 模型加上文件的原始记录和 任何警告,我都会告诉你 已知的漏洞: HY3分录(G1)不读取,Team Unify的"Extend" SD3变体在真实的样本比较后才能被写入.

### 入境限制和费用

`Meet.entryLimits` 财务报告和审定财务报表 `Meet.fees` 在整个会议范围内; `MeetEvent.entryFee` 每个事件和 `IndividualEntry`编号 :`RelayEntry.entryFee` 每个条目。 格式只在此获得字段 它的字节位置在文件的字段表格或真实导出的文件上得到确认—— 见 [移植策略](https://npmcn.com/package/%40enagonathletics/flipturn/docs/porting-policy.md) 为源.

| 格式 | `entryLimits` | 收费类型 |
| --- | --- | --- |
| EV3 常规 | `maxTotalEntries`, (中文(简体) ), `maxIndividualEntries`, (中文(简体) ), `maxRelayEntries` ——除总数外,每名游泳运动员在全场开会(头球场19-21分,1分) | `MeetEvent.entryFee` 每起事件/中继(第15栏),加全场会议 `teamSurcharge`, (中文(简体) ), `athleteSurcharge`, (中文(简体) ), `facilitySurcharge` (标题栏7-9) |
| 希维 | 无——证实缺席。 团队经理的11个战地头和~18个战地事件行没有未申报的栏;对照 `swimparse` 财务报告和审定财务报表 `hytek-parser`独立的 HYV 读取器, 两者都不解码 超出现有的每个事件 `entryFee` | `MeetEvent.entryFee` 每起事件/中继 |
| HY3 (韩语) | 无——证实缺席。 成果/入门格式没有理由加以采用,没有 `swimparse`, (中文(简体) ), `swimlib` 或者说 `hytek-parser` 解码任意 | `IndividualEntry.entryFee` (E1, 1- 基于第33- 38段) `RelayEntry.entryFee` (F1,同栏) -- -- 没有全会收费栏 |
| SDIF 软件 | 无 – 在 spec 文本本身中确认缺失( 在 `B1`编号 :`B2`编号 :`D0`编号 :`D1`(中文(简体) ) | 无——确认缺席,依据相同 |

两名候选人受到调查,并被蓄意 **没有** 已建模 :

-   **EV3事件排行 27-29** (单位:千美元)`max_entries`, (中文(简体) ), `max_individual_entries`, (中文(简体) ), `max_relay_entries` 百分比 `swimlib`现场表)紧接每次会议的会话栏次,这样将适合 a 每日/会话限制——但可用的一个EV3样本重复相同的三个值 与“事件级别上限”相同 "每天的限制是多余的" 没有真正的文件,如果它们 一天不同,这不是 (b) 确定为要求的任务的每日限制.
-   **HY3 B2 级 `meetFee`** (单位:千美元)`swimlib`索赔的1个cols 100-106)无法通过交叉核对: `swimlib`自己的B1日期字段,在同一有记录的家族中,当核对时,在垃圾上降落 实现管理器结果导出, 而 `swimparse` 财务报告和审定财务报表 `hytek-parser` - 两个图书馆 其B-记录抵销 _对_ 复制这些文件中的真实日期- 既不解码 B2 收费 一点也不 被视为未经证实,而不是模特.

## 使用量

读取任何相会文件 :

```ts
import { readSdif } from '@enagonathletics/flipturn/sdif';

const { meet, warnings } = readSdif(bytes); // Uint8Array (Windows-1252) or string
meet.swimmers; // name, birth date, gender, external ids
meet.entries; // seed times and, for results files, one result per round
```

用“ 满足管理器” zip 读取每个相遇文件 :

```ts
import { readMeetArchive } from '@enagonathletics/flipturn/zip';

for (const file of await readMeetArchive(zipBytes)) {
    if (file.result) console.log(file.name, file.format, file.result.meet.events.length);
    else if (file.error) console.warn(file.name, file.error);
}
```

事件文件保留性别代码为写入( E)`G`编号 :`B` 年龄组, `W`编号 :`M` (高级) 教会性别:

```ts
import { readEv3 } from '@enagonathletics/flipturn/ev3';

const [event] = readEv3(text).meet.events;
event.sexCode; // 'G'
event.gender; // 'F'
```

写入 SDIF 条目文件 . `canadian` 模式使美国游泳ID可选:

```ts
import { encodeWindows1252 } from '@enagonathletics/flipturn/core';
import { writeSdifEntries } from '@enagonathletics/flipturn/sdif';

const { text, warnings } = writeSdifEntries(meet, {
    mode: 'canadian',
    contact: { name: 'Registrar, Lee', phone: '2505550199' }
});
const bytes = encodeWindows1252(text); // 160-byte records, CRLF line endings
```

`Meet.altitude` (全脚,0-9999)去入B1. 过 `profile: 'team-unify'` 撰写 team Unify 标准 SD3导出的布局, 而不是其不同的规格: 事件编号 在73-75栏中右正写有大写后缀字母的76, Time 代码如 NT 右配角,没有教练的球队没有C2,A0描述(`description`默认值 `Meet Entries`), B1 高度 0 当未设定时, 团队代码的 LSC 在 D0 列 4-11, D3 参与旗帜 `F`, (中文(简体) ), `Swimmer.middleName` 财务报告和审定财务报表 `N` 第147栏和第1批Z0为零 成员数目.

游泳时间是百分之一的整数:

```ts
import { formatSwimTime, parseSwimTime } from '@enagonathletics/flipturn/core';

parseSwimTime('1:02.34'); // { kind: 'time', hundredths: 6234 }
formatSwimTime({ kind: 'nt' }); // 'NT'
```

## 文档

-   [移植政策](https://npmcn.com/package/%40enagonathletics/flipturn/docs/porting-policy.md):什么是前作艺术所移植的,什么不是.
-   [第三方通知](https://npmcn.com/package/%40enagonathletics/flipturn/THIRD_PARTY_NOTICES.md)

## 许可证

麻省理工学院

## 常见问题

### @enagonathletics/flipturn 是什么？

在TypeScript中读取并写出游泳满足文件\(SDIF,Hy-Tek\.hy3/\.ev3/\.hyv\)\.

### 如何安装 @enagonathletics/flipturn？

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

### @enagonathletics/flipturn 支持 TypeScript 吗？

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

### @enagonathletics/flipturn 支持 ESM 还是 CommonJS？

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

### @enagonathletics/flipturn 需要什么版本的 Node\.js？

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

### @enagonathletics/flipturn 可以商用吗？

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

### @enagonathletics/flipturn 的下载量有多少？

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

### @enagonathletics/flipturn 还在维护吗？

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

