{"_id":"@0xhoneyjar/freeside-storage-stickers","name":"@0xhoneyjar/freeside-storage-stickers","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@0xhoneyjar/freeside-storage-stickers","version":"0.0.1","description":"Sealed StickerProfile Effect Schema + service interface for the freeside-storage asset plane. Profile-scaffolds-all sticker resolution; client/server agnostic; composes with @0xhoneyjar/freeside-storage-client URL_CONTRACT_V1. Phase-0 Schema substrate per","license":"MIT","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/0xHoneyJar/freeside-storage.git","directory":"packages/stickers"},"dependencies":{"effect":"^3.10.0","@0xhoneyjar/freeside-storage-client":"0.1.0","@0xhoneyjar/freeside-storage-protocol":"0.0.1"},"devDependencies":{"@types/node":"^20.12.0","jsdom":"^24.1.0","typescript":"^5.4.0","vitest":"^2.1.0"},"scripts":{"build":"tsc -b","typecheck":"tsc --noEmit","clean":"rm -rf dist","test":"pnpm test:node && pnpm test:jsdom","test:node":"vitest run --config vitest.config.ts","test:jsdom":"vitest run --config vitest.config.jsdom.ts","test:watch":"vitest --config vitest.config.ts"},"_id":"@0xhoneyjar/freeside-storage-stickers@0.0.1","bugs":{"url":"https://github.com/0xHoneyJar/freeside-storage/issues"},"homepage":"https://github.com/0xHoneyJar/freeside-storage#readme","_integrity":"sha512-J72BkzEeA4ebn2Pjad90F3hUboHBbWxAxwqBd23VDNKTm5VhMfQ+SMcT36EU51nviHI08pUz3br/Y8LQ2P0cfA==","_resolved":"/private/var/folders/7g/vv4rdz6165zg2fcg2x5wc_r00000gn/T/ed9c60dc4cbc1ed263012ddb01c2c66d/0xhoneyjar-freeside-storage-stickers-0.0.1.tgz","_from":"file:0xhoneyjar-freeside-storage-stickers-0.0.1.tgz","_nodeVersion":"23.3.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-J72BkzEeA4ebn2Pjad90F3hUboHBbWxAxwqBd23VDNKTm5VhMfQ+SMcT36EU51nviHI08pUz3br/Y8LQ2P0cfA==","shasum":"3b749a34d621d35406886ea53964abaa0d1e5ecb","tarball":"https://registry.npmjs.org/@0xhoneyjar/freeside-storage-stickers/-/freeside-storage-stickers-0.0.1.tgz","fileCount":28,"unpackedSize":70464,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCth/U2mYvk3XhaQun73iYIz0UU35/0x0k5DbcpPpj3kwIgWe7S2VFE7jaxx1p6pdBXlqFzyHFclVxOM44Xh3j2/is="}]},"_npmUser":{"name":"zksoju","email":"underrated@gmail.com"},"directories":{},"maintainers":[{"name":"janitooor","email":"jani@0xhoneyjar.xyz"},{"name":"zerkereth","email":"zerkereth@gmail.com"},{"name":"zksoju","email":"underrated@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/freeside-storage-stickers_0.0.1_1777757917988_0.6139501759196593"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-02T21:38:37.923Z","0.0.1":"2026-05-02T21:38:38.149Z","modified":"2026-05-02T21:38:38.347Z"},"maintainers":[{"name":"janitooor","email":"jani@0xhoneyjar.xyz"},{"name":"zerkereth","email":"zerkereth@gmail.com"},{"name":"zksoju","email":"underrated@gmail.com"}],"description":"Sealed StickerProfile Effect Schema + service interface for the freeside-storage asset plane. Profile-scaffolds-all sticker resolution; client/server agnostic; composes with @0xhoneyjar/freeside-storage-client URL_CONTRACT_V1. Phase-0 Schema substrate per","homepage":"https://github.com/0xHoneyJar/freeside-storage#readme","repository":{"type":"git","url":"git+https://github.com/0xHoneyJar/freeside-storage.git","directory":"packages/stickers"},"bugs":{"url":"https://github.com/0xHoneyJar/freeside-storage/issues"},"license":"MIT","readme":"# @freeside-storage/stickers\n\nSealed `StickerProfile` Effect Schema + service interface for the freeside-storage\nasset plane. Profile-scaffolds-all sticker resolution; client/server agnostic;\ncomposes with `@freeside-storage/client` URL_CONTRACT_V1.\n\n## Status\n\nPhase-0 substrate (`composable-sticker-substrate-2026-05-01` cycle · sprint-1).\nPackage skeleton landed; Schema · Service · Lookup land in subsequent sprint\ntasks (T-3 · T-4 · T-5).\n\n## Design\n\nThree-tier pyramid (structure precedes behavior precedes material):\n\n1. **`StickerProfile` Schema** — sealed Effect Schema · branded primitives ·\n   reserves V0.7+ daemon-stage axes (`daemonState` · `lifecyclePhase` ·\n   `voicePointer` · `experimentPointers`) as `Schema.optional` · contract is\n   `Schema.Literal(\"1.0\")`-versioned for additive bumps.\n2. **`StickerService`** — Effect Layer · `getProfile` · `lookupSticker` ·\n   `lookupCatalog` · returns discriminated `StickerLookupResult` union\n   (`Resolved` · `NeedsCompose` · `Skipped`).\n3. **`stickers-canvas`** companion package — DOM compositor · *deferred\n   indefinitely* under earn-weight gate (5+ consumers OR multi-runtime pull).\n\n## Composition\n\n```\nStickerService.getProfile(tokenId, world)\n  ├── lookupGrail(tokenId)              ← @freeside-storage/client (shipped v0.1.0)\n  ├── fetch(manifestUrl)                ← URL_CONTRACT_V1.host (shipped)\n  └── Schema.decodeUnknown(StickerProfile)\n        │\n        ▼\n  StickerService.lookupSticker(profile, query)\n```\n\n## Universality\n\nStrict-universal (Node + browser + edge). Tests run under both `node` and\n`jsdom` environments per the workspace `vitest.workspace.ts`. No DOM imports,\nno Node-only imports.\n\nDOM compositing (when Phase-3 ships) lives in optional sibling\n`@freeside-storage/stickers-canvas` OR is provided by caller as injected\n`composeFn` — core stays universal.\n\n## References\n\n- PRD: `grimoires/loa/prd-composable-sticker-substrate-2026-05-01.md`\n- SDD: `grimoires/loa/sdd-composable-sticker-substrate-2026-05-01.md`\n- Sprint plan: `grimoires/loa/sprint-composable-sticker-substrate-2026-05-01.md`\n- Architectural seed: `grimoires/freeside/specs/composable-sticker-substrate-2026-05-01.md`\n- Vault doctrines: `[[contracts-as-bridges]]` · `[[url-contract-as-bridge]]` ·\n  `[[fallback-shape-divergence]]` · `[[migration-tail-as-bug-source]]` ·\n  `[[continuous-metadata-as-daemon-substrate]]`\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-8380e1f62cc2255160fd6375ba51bb82"}