@enagonathletics/flipturn

中文文档
0.4.0发布于 2026/10/05MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 2496

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

中文使用文档
文档目录7 节
  1. 安装
  2. 状态
  3. 格式
  4. 入境限制和费用
  5. 使用量
  6. 文档
  7. 许可证

翻转

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

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

安装

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 每个条目。 格式只在此获得字段 它的字节位置在文件的字段表格或真实导出的文件上得到确认—— 见 移植策略 为源.

格式entryLimits收费类型
EV3 常规maxTotalEntries, (中文(简体) ), maxIndividualEntries, (中文(简体) ), maxRelayEntries ——除总数外,每名游泳运动员在全场开会(头球场19-21分,1分)MeetEvent.entryFee 每起事件/中继(第15栏),加全场会议 teamSurcharge, (中文(简体) ), athleteSurcharge, (中文(简体) ), facilitySurcharge (标题栏7-9)
希维无——证实缺席。 团队经理的11个战地头和~18个战地事件行没有未申报的栏;对照 swimparse 财务报告和审定财务报表 hytek-parser独立的 HYV 读取器, 两者都不解码 超出现有的每个事件 entryFeeMeetEvent.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 收费 一点也不 被视为未经证实,而不是模特.

使用量

读取任何相会文件 :

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 读取每个相遇文件 :

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 (高级) 教会性别:

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

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

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

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为零 成员数目.

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

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

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

文档

许可证

麻省理工学院

版本与发布记录

@enagonathletics/flipturn 共发布 4 个版本,首次发布于 2026/09/27;过去 12 个月发布了 4 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.4.0latest2026/10/051 个月前
0.3.02026/09/271 个月前
0.2.02026/09/271 个月前
0.1.02026/09/271 个月前

关于 @enagonathletics/flipturn 的常见问题

@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 和提交记录判断。