{"_id":"@alexislours/ltd-sharemii","_rev":"4-bb1839a0ebc2136d4b62e7850c62ece7","name":"@alexislours/ltd-sharemii","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@alexislours/ltd-sharemii","version":"1.0.0","keywords":["savefile","save-editor","mii","ugc","share","codec","nintendo"],"author":{"name":"Alexis Lours"},"license":"AGPL-3.0-or-later","_id":"@alexislours/ltd-sharemii@1.0.0","maintainers":[{"name":"alexislours","email":"alexislours@protonmail.com"}],"homepage":"https://github.com/alexislours/ltd-save-editor/tree/dev/packages/ltd-sharemii#readme","bugs":{"url":"https://github.com/alexislours/ltd-save-editor/issues"},"dist":{"shasum":"f579d8d68fd35d1bb345cf872f0d4455d72e6eaa","tarball":"https://registry.npmjs.org/@alexislours/ltd-sharemii/-/ltd-sharemii-1.0.0.tgz","fileCount":14,"integrity":"sha512-WlmJ4rQ8kVrWrrKA2ARlKFYFFi+R4UeEggxJUUL/8kwOm4j3ud7eVs7b2zi+fqY2Pze83hBhkR26uO08tGbYOA==","signatures":[{"sig":"MEUCIQCaf80hS/khfSiM3mgX3poK9sHuQp+DKASGUbDwwq3dyQIgIwaToVZwCuOYK178rqGiLozeZrULC1bP7yQGhLlrE4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexislours%2fltd-sharemii@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":153894},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/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-sharemii"},"_npmVersion":"11.13.0","description":"Codec for the game's Mii and UGC share format: extract a Mii or user-generated content item from a save into a portable share file and apply it back. Depends only on @alexislours/ltd-savedata.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"@alexislours/ltd-savedata":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","publint":"^0.3.21","@arethetypeswrong/cli":"^0.18.3"},"_npmOperationalInternal":{"tmp":"tmp/ltd-sharemii_1.0.0_1780845103679_0.6968530294175592","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alexislours/ltd-sharemii","version":"1.0.1","keywords":["savefile","save-editor","mii","ugc","share","codec","nintendo"],"author":{"name":"Alexis Lours"},"license":"AGPL-3.0-or-later","_id":"@alexislours/ltd-sharemii@1.0.1","maintainers":[{"name":"alexislours","email":"alexislours@protonmail.com"}],"homepage":"https://github.com/alexislours/ltd-save-editor/tree/dev/packages/ltd-sharemii#readme","bugs":{"url":"https://github.com/alexislours/ltd-save-editor/issues"},"dist":{"shasum":"e8f9080d435a7e849cfe30168061f11e123a6719","tarball":"https://registry.npmjs.org/@alexislours/ltd-sharemii/-/ltd-sharemii-1.0.1.tgz","fileCount":14,"integrity":"sha512-qnmwWCPVyiZjj/t7PBpD19JYWKFnyATd1y2TMeL2OuQjZWBaMuVZsHi/SW5/Lo/r9y8PvIl4+MjrrzenOJAxDw==","signatures":[{"sig":"MEUCIQD5iijVHcYgfjhsbs36iMeyqHJVY3yoc3NADa7atsOrIgIgBvXX1RxE85R4+q4FwZ8I/y/vfOh2USGuFdjF+P81+p8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexislours%2fltd-sharemii@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":154512},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1c94daabfecf4190e79510259d4ae827eaff6762","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:3abe3ef4-575d-455d-964d-93176ea481f4"}},"repository":{"url":"git+https://github.com/alexislours/ltd-save-editor.git","type":"git","directory":"packages/ltd-sharemii"},"_npmVersion":"11.16.0","description":"Codec for the game's Mii and UGC share format: extract a Mii or user-generated content item from a save into a portable share file and apply it back. Depends only on @alexislours/ltd-savedata.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"@alexislours/ltd-savedata":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","publint":"^0.3.21","@arethetypeswrong/cli":"^0.18.3"},"_npmOperationalInternal":{"tmp":"tmp/ltd-sharemii_1.0.1_1780873512095_0.3859370312515005","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@alexislours/ltd-sharemii","version":"1.0.2","keywords":["savefile","save-editor","mii","ugc","share","codec","nintendo"],"author":{"name":"Alexis Lours"},"license":"AGPL-3.0-or-later","_id":"@alexislours/ltd-sharemii@1.0.2","maintainers":[{"name":"alexislours","email":"alexislours@protonmail.com"}],"homepage":"https://github.com/alexislours/ltd-save-editor/tree/dev/packages/ltd-sharemii#readme","bugs":{"url":"https://github.com/alexislours/ltd-save-editor/issues"},"dist":{"shasum":"1feb90bc8686a6bb33e6b60c8f4a33aff0a9dcd4","tarball":"https://registry.npmjs.org/@alexislours/ltd-sharemii/-/ltd-sharemii-1.0.2.tgz","fileCount":14,"integrity":"sha512-rc3+i1mqWU+8mqSfxFB3HyreKzxLI83lAcdNtOvQk1Qc/XHuAR9k+sTrn88KFqQSUPA/A7R7yEGJaym78TS+cQ==","signatures":[{"sig":"MEUCIQCy2/2lCmxWeZgSkPJMYrj4e/+6RyEgVgJcKQLfWMqvgAIgaSpM9+xluOsMAz+ja2DHEU9VUyEUcf3XtoO1Z7p3x5k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexislours%2fltd-sharemii@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":178341},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"70d53b2343cb670ce0bde562541e1b4afa28b8d8","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:3abe3ef4-575d-455d-964d-93176ea481f4"}},"repository":{"url":"git+https://github.com/alexislours/ltd-save-editor.git","type":"git","directory":"packages/ltd-sharemii"},"_npmVersion":"11.16.0","description":"Codec for the game's Mii and UGC share format: extract a Mii or user-generated content item from a save into a portable share file and apply it back. Depends only on @alexislours/ltd-savedata.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"@alexislours/ltd-savedata":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","publint":"^0.3.21","@arethetypeswrong/cli":"^0.18.3"},"_npmOperationalInternal":{"tmp":"tmp/ltd-sharemii_1.0.2_1780878312784_0.761932994120418","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@alexislours/ltd-sharemii","version":"1.1.0","description":"Codec for the game's Mii and UGC share format: extract a Mii or user-generated content item from a save into a portable share file and apply it back. Depends only on @alexislours/ltd-savedata.","license":"AGPL-3.0-or-later","author":{"name":"Alexis Lours"},"type":"module","sideEffects":false,"keywords":["savefile","save-editor","mii","ugc","share","codec","nintendo"],"repository":{"type":"git","url":"git+https://github.com/alexislours/ltd-save-editor.git","directory":"packages/ltd-sharemii"},"homepage":"https://github.com/alexislours/ltd-save-editor/tree/dev/packages/ltd-sharemii#readme","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/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"},"dependencies":{"@alexislours/ltd-savedata":"^1.0.0"},"devDependencies":{"@arethetypeswrong/cli":"^0.18.3","publint":"^0.3.21","tsup":"^8.5.0"},"publishConfig":{"access":"public"},"gitHead":"a54b9de129951b73a8d81e2952c94fa4b1a0629d","_id":"@alexislours/ltd-sharemii@1.1.0","bugs":{"url":"https://github.com/alexislours/ltd-save-editor/issues"},"_nodeVersion":"24.16.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-j3l7Ki4MGZJPJ+PXtSm1+6R28Wyf1skewi4kRxWcdOxOPSQpbQsSlqInWiXu7tyY/IALlgRl9WRsLccIJR9nXw==","shasum":"29b111a6c75ebd7f1add6441948345c0aa75b939","tarball":"https://registry.npmjs.org/@alexislours/ltd-sharemii/-/ltd-sharemii-1.1.0.tgz","fileCount":14,"unpackedSize":184017,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexislours%2fltd-sharemii@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBBxPPxD74TW7boScE61LrDi2wj3UMg7laZsPREf43aIAiEAmhXeROhRQjA+8Ndn3y81kUKnLY/tBdlw+2qUkJ2VnVk="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3abe3ef4-575d-455d-964d-93176ea481f4"}},"directories":{},"maintainers":[{"name":"alexislours","email":"alexislours@protonmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ltd-sharemii_1.1.0_1781008799404_0.3979827562353382"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-07T15:11:43.417Z","modified":"2026-06-09T12:39:59.849Z","1.0.0":"2026-06-07T15:11:43.814Z","1.0.1":"2026-06-07T23:05:12.245Z","1.0.2":"2026-06-08T00:25:12.928Z","1.1.0":"2026-06-09T12:39:59.550Z"},"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-sharemii#readme","keywords":["savefile","save-editor","mii","ugc","share","codec","nintendo"],"repository":{"type":"git","url":"git+https://github.com/alexislours/ltd-save-editor.git","directory":"packages/ltd-sharemii"},"description":"Codec for the game's Mii and UGC share format: extract a Mii or user-generated content item from a save into a portable share file and apply it back. Depends only on @alexislours/ltd-savedata.","maintainers":[{"name":"alexislours","email":"alexislours@protonmail.com"}],"readme":"# @alexislours/ltd-sharemii\n\n<div align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@alexislours/ltd-sharemii\"><img alt=\"npm\" src=\"https://img.shields.io/npm/v/@alexislours/ltd-sharemii?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-sharemii?style=for-the-badge&logo=gnu\"></a>\n</div>\n\nCodec for the game's Mii and UGC (user-generated content) share format. Extracts a Mii or a UGC item (clothing, food, goods, painting, ...) out of a parsed save into a portable share file, and applies a share file back into a save. Depends only on [`@alexislours/ltd-savedata`](../ltd-savedata).\n\nA share file is a small binary blob carved out of the save's typed fields. Textures and canvases that don't fit inline travel alongside it as named \"sidecar\" files. This package owns the binary codec and the apply/extract logic; how sidecars are packed for transport (a zip, a folder of files) is left to the caller.\n\n## Install\n\n```sh\nnpm install @alexislours/ltd-sharemii\n```\n\n## Usage\n\n```ts\nimport { decode, parseSav } from '@alexislours/ltd-savedata';\nimport { MII_SCHEMA, PLAYER_SCHEMA } from '@alexislours/ltd-savedata/schema';\nimport { extractMii, applyMii, EMPTY_SIDECAR } from '@alexislours/ltd-sharemii';\n\nconst saves = {\n  mii: decode(MII_SCHEMA, parseSav(miiBytes)),\n  player: decode(PLAYER_SCHEMA, parseSav(playerBytes)),\n};\n\nconst share = extractMii(saves, slot, EMPTY_SIDECAR);\napplyMii(destSaves, destSlot, share.bytes, share.sidecar);\n```\n\n## Sidecars\n\nThe codec speaks `SidecarSource` (a `Map<string, Uint8Array>`) and `SidecarFile`, never files or archives. `isSidecarFileName` and `isJunkArchiveEntry` help a host filter incoming names. Packing those bytes into a zip or reading them from a dropped folder is a transport concern the host owns.\n\n## License\n\nAGPL-3.0-or-later\n","readmeFilename":"README.md"}