{"_id":"@alexislours/ltd-savedata","_rev":"3-e30a1ee174afa7c1802aa2f5309e54b2","name":"@alexislours/ltd-savedata","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@alexislours/ltd-savedata","version":"1.0.0","keywords":["savefile","save-editor","binary","codec","schema","nintendo"],"author":{"name":"Alexis Lours"},"license":"AGPL-3.0-or-later","_id":"@alexislours/ltd-savedata@1.0.0","maintainers":[{"name":"alexislours","email":"alexislours@protonmail.com"}],"homepage":"https://github.com/alexislours/ltd-save-editor/tree/dev/packages/ltd-savedata#readme","bugs":{"url":"https://github.com/alexislours/ltd-save-editor/issues"},"dist":{"shasum":"c5536fc15d78c6ef9e46be6c62cb4f7423061475","tarball":"https://registry.npmjs.org/@alexislours/ltd-savedata/-/ltd-savedata-1.0.0.tgz","fileCount":41,"integrity":"sha512-5aklqJD7SbUn3pALi66Avode9iEq15RCzBUwOLpnhXOs9Bb5ZLqvYxDGRuE3sc/4bWJdq/cdJHQ589P0NznxZA==","signatures":[{"sig":"MEYCIQCYkVj1WsW/U9E4HKVCcqaJVNBVtaxsY6o0tUWP6JyZ3gIhANx0KTqrMtxcZ+n+Cxs+FELlfvUwdLohCBVLoNwd8NlZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexislours%2fltd-savedata@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2613958},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"}},"gitHead":"06c6b52fc9944ebdfaf4f0ec7c6484b6ac474c58","scripts":{"test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","check":"tsc -p tsconfig.json","lint:pkg":"publint --strict && attw --pack --profile esm-only","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexislours","email":"alexislours@protonmail.com"},"repository":{"url":"git+https://github.com/alexislours/ltd-save-editor.git","type":"git","directory":"packages/ltd-savedata"},"_npmVersion":"11.13.0","description":"Reader, writer, and reverse-engineered field schema for the game's binary .sav save format. Zero runtime dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","publint":"^0.3.21","@arethetypeswrong/cli":"^0.18.3"},"_npmOperationalInternal":{"tmp":"tmp/ltd-savedata_1.0.0_1780845103716_0.14519075939770731","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alexislours/ltd-savedata","version":"1.0.1","keywords":["savefile","save-editor","binary","codec","schema","nintendo"],"author":{"name":"Alexis Lours"},"license":"AGPL-3.0-or-later","_id":"@alexislours/ltd-savedata@1.0.1","maintainers":[{"name":"alexislours","email":"alexislours@protonmail.com"}],"homepage":"https://github.com/alexislours/ltd-save-editor/tree/dev/packages/ltd-savedata#readme","bugs":{"url":"https://github.com/alexislours/ltd-save-editor/issues"},"dist":{"shasum":"1f1e95a8464a3d35659d6da9357c9f35b605f39a","tarball":"https://registry.npmjs.org/@alexislours/ltd-savedata/-/ltd-savedata-1.0.1.tgz","fileCount":41,"integrity":"sha512-Zo/0XQ19V8FS83yfDksLGrvydhk8VmV0115RFmdDMnSbRqaElpFZW1yo1BqLCDwMEZSVpPmcxCvcriZgerWjaA==","signatures":[{"sig":"MEYCIQCKDN5dRyfGF8DlYOjcmfSKOzB3UFqqvjsseV/MK59TeQIhAMHOX3M9U3wIiAlFR/mpONIS9QVx3ctznD1H8Oz7ewzU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexislours%2fltd-savedata@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2242623},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"}},"gitHead":"f74cbdabf6192683f5309f53378df44b5ab7ec9e","scripts":{"test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","check":"tsc -p tsconfig.json","lint:pkg":"publint --strict && attw --pack --profile esm-only","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dcca5439-0376-4259-981b-c13cac88e7e6"}},"repository":{"url":"git+https://github.com/alexislours/ltd-save-editor.git","type":"git","directory":"packages/ltd-savedata"},"_npmVersion":"11.16.0","description":"Reader, writer, and reverse-engineered field schema for the game's binary .sav save format. Zero runtime dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","publint":"^0.3.21","@arethetypeswrong/cli":"^0.18.3"},"_npmOperationalInternal":{"tmp":"tmp/ltd-savedata_1.0.1_1780873364145_0.1456982425553106","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@alexislours/ltd-savedata","version":"1.0.2","description":"Reader, writer, and reverse-engineered field schema for the game's binary .sav save format. Zero runtime dependencies.","license":"AGPL-3.0-or-later","author":{"name":"Alexis Lours"},"type":"module","sideEffects":false,"keywords":["savefile","save-editor","binary","codec","schema","nintendo"],"repository":{"type":"git","url":"git+https://github.com/alexislours/ltd-save-editor.git","directory":"packages/ltd-savedata"},"homepage":"https://github.com/alexislours/ltd-save-editor/tree/dev/packages/ltd-savedata#readme","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"}},"scripts":{"build":"tsup && tsc -p tsconfig.build.json","check":"tsc -p tsconfig.json","lint:pkg":"publint --strict && attw --pack --profile esm-only","test":"vitest run","prepublishOnly":"npm run build"},"devDependencies":{"@arethetypeswrong/cli":"^0.18.3","publint":"^0.3.21","tsup":"^8.5.0"},"publishConfig":{"access":"public"},"gitHead":"fe5fe12af708bbb3a12463e74f4c24231677d32f","_id":"@alexislours/ltd-savedata@1.0.2","bugs":{"url":"https://github.com/alexislours/ltd-save-editor/issues"},"_nodeVersion":"24.16.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-7gp0xUOzPJ86A8Cjs64TpkgyFDjxH2Pgg/NKjVOsk+pgFhxZJkpeOgk/lDxAuZicR1SHklpC14XNOjGUJkRqxQ==","shasum":"b057968c71599fec31d4b87962971b1bb635d954","tarball":"https://registry.npmjs.org/@alexislours/ltd-savedata/-/ltd-savedata-1.0.2.tgz","fileCount":41,"unpackedSize":2276863,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexislours%2fltd-savedata@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHH8SP4PGIpjDiLS93zTEztsnP7pe9x1+khfM1f+qV7rAiBSVUzdvjK858BguyrrrYb8pqgyb/f9TrNtsT6IgmfoFg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dcca5439-0376-4259-981b-c13cac88e7e6"}},"directories":{},"maintainers":[{"name":"alexislours","email":"alexislours@protonmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ltd-savedata_1.0.2_1780877845746_0.7550073631936107"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-07T15:11:43.505Z","modified":"2026-06-08T00:17:26.239Z","1.0.0":"2026-06-07T15:11:43.881Z","1.0.1":"2026-06-07T23:02:44.322Z","1.0.2":"2026-06-08T00:17:25.955Z"},"bugs":{"url":"https://github.com/alexislours/ltd-save-editor/issues"},"author":{"name":"Alexis Lours"},"license":"AGPL-3.0-or-later","homepage":"https://github.com/alexislours/ltd-save-editor/tree/dev/packages/ltd-savedata#readme","keywords":["savefile","save-editor","binary","codec","schema","nintendo"],"repository":{"type":"git","url":"git+https://github.com/alexislours/ltd-save-editor.git","directory":"packages/ltd-savedata"},"description":"Reader, writer, and reverse-engineered field schema for the game's binary .sav save format. Zero runtime dependencies.","maintainers":[{"name":"alexislours","email":"alexislours@protonmail.com"}],"readme":"# @alexislours/ltd-savedata\n\n<div align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@alexislours/ltd-savedata\"><img alt=\"npm\" src=\"https://img.shields.io/npm/v/@alexislours/ltd-savedata?style=for-the-badge&logo=npm\"></a>\n  <a href=\"https://github.com/alexislours/ltd-save-editor/actions/workflows/packages-ci.yml\"><img alt=\"ci\" src=\"https://img.shields.io/github/actions/workflow/status/alexislours/ltd-save-editor/packages-ci.yml?branch=dev&label=ci&style=for-the-badge&logo=githubactions\"></a>\n  <a href=\"./LICENSE\"><img alt=\"license\" src=\"https://img.shields.io/npm/l/@alexislours/ltd-savedata?style=for-the-badge&logo=gnu\"></a>\n</div>\n\nReader, writer, and reverse-engineered field schema for the game's binary `.sav` save format. Zero runtime dependencies.\n\nThe save container is a flat list of entries keyed by murmur3 (x86, 32-bit) hashes of their field paths, each holding a typed value. This package parses that container into typed entries, exposes a schema for every known field, and re-encodes byte-for-byte.\n\n## Install\n\n```sh\nnpm install @alexislours/ltd-savedata\n```\n\n## Usage\n\n```ts\nimport { parseSav, writeSav, decode, encode } from '@alexislours/ltd-savedata';\nimport { PLAYER_SCHEMA } from '@alexislours/ltd-savedata/schema';\n\nconst file = parseSav(bytes);\nconst save = decode(PLAYER_SCHEMA, file);\n// ...mutate save...\nconst out = writeSav(encode(PLAYER_SCHEMA, save));\n```\n\n## Entry points\n\n- `.` parsing, writing, value codecs, the materialized accessor, and the struct system.\n- `./schema` the `MII_SCHEMA`, `PLAYER_SCHEMA`, and `MAP_SCHEMA` field trees. Kept on a separate entry so codec-only consumers tree-shake the schema out.\n\n## License\n\nAGPL-3.0-or-later\n","readmeFilename":"README.md"}