Wraps @garmin/fitsdk to emit FIT Course files from GPX, the binary format Wahoo's POST /v1/routes API requires. Server-side only — the ~1 MB SDK never ships to the planner browser bundle. Round-trip tests use fit-file-parser as an independent oracle and assert lat/lon parity within 1e-4 deg and altitude within 0.5 m across short flat, alpine, multi-day, and single-point fixtures. Updates design.md decision #1: the original hand-rolled-encoder plan was justified largely by ESM friction in the Garmin SDK, but as of v21.202.0 the SDK is pure ESM with zero deps. Wrapping it saves us ~400 LOC of binary plumbing and ongoing maintenance against future FIT spec updates. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
23 lines
460 B
JSON
23 lines
460 B
JSON
{
|
|
"name": "@trails-cool/fit",
|
|
"version": "0.0.1",
|
|
"type": "module",
|
|
"exports": {
|
|
".": "./src/index.ts"
|
|
},
|
|
"main": "./src/index.ts",
|
|
"types": "./src/index.ts",
|
|
"scripts": {
|
|
"test": "vitest run",
|
|
"lint": "eslint .",
|
|
"typecheck": "tsc"
|
|
},
|
|
"dependencies": {
|
|
"@garmin/fitsdk": "^21.202.0",
|
|
"@trails-cool/gpx": "workspace:*"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "catalog:",
|
|
"fit-file-parser": "^2.3.3"
|
|
}
|
|
}
|