{"_id":"ust-light","_rev":"64-9dab72ac4a8f476d62a307b1dd8782fa","name":"ust-light","dist-tags":{"rc":"1.0.0-rc.56","latest":"1.0.0-rc.57"},"versions":{"1.0.0-rc.34":{"name":"ust-light","version":"1.0.0-rc.34","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.34","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"75bc36fb561742fd851a363c0a9871875bb3370d","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.34.tgz","fileCount":3,"integrity":"sha512-hBk5Da7Z14I/qRAGIFn4VlBGMr4G2Bgda7ri+B1LvDuhcIopEcdYx43WlSP2o808WOy0jkpVO3WmoliIGS5bMg==","signatures":[{"sig":"MEUCIHDdvdQ/mHwDTiQDJMo+KkxcRNsowjbE1APnKx2DcU1uAiEAvM/NqxcvDJ0fJ7wVRCG7HZQF4W6hLQT3zY6zp5u1sa8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23328},"main":"index.mjs","type":"module","exports":"./index.mjs","gitHead":"fc0dad58757efa9714929e6c64cdec8d67edf849","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.34_1785036413940_0.9129335135524772","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.35":{"name":"ust-light","version":"1.0.0-rc.35","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.35","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"e1c57372abe26c89b3fb2345a35b874c4b70affc","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.35.tgz","fileCount":4,"integrity":"sha512-SVJIdR6vhVQz2WuxfhpwdBBt9E8HkQPatEEhLny/oUCcaARx38YNVCYD4tgyRr67w2IIdGp2NZ4vutTSyYCtqg==","signatures":[{"sig":"MEYCIQD73Cu7y2gW4b/dLkelmfUgaUtRKQkSDDlDoQg/aS0LmgIhAOjeUtqG6VhIsC+Y8ho9M3uUyVVpdpbqLPfgzTKB/qTN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24702},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"9de813899b2bfc7d2499b504ddf8da26870cbff9","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.35_1785261771657_0.7520408031154406","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.36":{"name":"ust-light","version":"1.0.0-rc.36","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.36","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"ed89196a8e39fa3bb551704028d7685ce60bb06e","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.36.tgz","fileCount":4,"integrity":"sha512-Wq81wRg6GjTQPx6RWKWv5MqMQb0AXI9XWk2mvnaXEuf5mkqP+9AbDtHmHysWJHhYnA4dgLreTWSHcqghZiQikA==","signatures":[{"sig":"MEYCIQCRAv8Nxtyc8rwmC8Xhe4rFyMw39hmG9ewsN08oPOU11wIhAMlxWIHGnmehn1TQH+o8tRMTsSNYaFDt/YccKe7o0p7p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25110},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"85c9799d5de766349fdc3bf227068bcae754af9c","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.36_1785419929205_0.3906855554787787","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.37":{"name":"ust-light","version":"1.0.0-rc.37","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.37","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"8fbfb85a317be9c0aa448204ba9534b2354f86e5","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.37.tgz","fileCount":4,"integrity":"sha512-BDlbmar14khNPTgK4KGV+Y9bH8Zt+SloR5CulFoslBP8s1efJryhTlxSZxl+AV1LodOkNy7iMk0dpC3bEh+sIA==","signatures":[{"sig":"MEQCIE4kEe81S2v0fwL73s/dgqovCYwezsZzWVxn4t1WCScpAiAM8eodcajzTtN7FiEfebrpNZzoiaK2Gm+s2CLzPnxiLQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25007},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"0e998b11814efad995ba065c525b93bc5705b54d","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.37_1785460791999_0.37437960608243115","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.40":{"name":"ust-light","version":"1.0.0-rc.40","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.40","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"105263ece9086bf64902bec8402884eb6d50fada","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.40.tgz","fileCount":4,"integrity":"sha512-wkYa4bDJ2k+cJkXN3usfeN2hb1F4bhknGMClJ6jGQBrysT1YYtmkWjnG8awHhsCVOKV1rkWe6lZlCE/3HLabPQ==","signatures":[{"sig":"MEYCIQD1698TWy9D8ZzRrnRRdO/tbOJEGnb94oNRxppIfln4mQIhAO0ovLYGJvaoc4bVKS//cvwUOxGOVoOCsmbpi7SDEQgo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25765},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"1e182c5587f5094bc134833c17ef5235e2f6aaca","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.40_1785514341983_0.13653848056215923","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.41":{"name":"ust-light","version":"1.0.0-rc.41","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.41","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"afed498937ffa8e8d5d5b9e9e624f025788be100","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.41.tgz","fileCount":4,"integrity":"sha512-RCm7iObsfgwzNy5p5bmo0T3m9BEA+R7SBR9NM8x6alxVa+8S7niAvvLkVF8DH1zHAIulCqvoSh8+5dqbK3Krzw==","signatures":[{"sig":"MEYCIQC2capIBwv4lIyIJ5422IqccK0KMd5bgb4HqCypkXF/sQIhAKZ0IXPuXoo+lz17g+67z7+X0mbVXGmlFhgwDne9bBJh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25765},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"0f6596d04f7be1c5360e349e0637c34b1ea27660","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.41_1785517416880_0.895807778417179","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.42":{"name":"ust-light","version":"1.0.0-rc.42","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.42","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"0bf5997f048ee2e92733721b0ae71da7328c8c98","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.42.tgz","fileCount":4,"integrity":"sha512-Uc0jxdwAQzgoKz3Mo7Nbwl1EslXY6IQ3i5F++eYu/RW6GT6DKEmWALk2t0PnXVM1YqJrfJWjX16g2wtFxYt75Q==","signatures":[{"sig":"MEQCIBLu1fWA3cJm8uRIm0wNywnkuZEIgWhvtUAYlCKgXmSKAiAnPl/bnVLOnnvhELZB8wNi37fIVFPZL3dJxqqLz328Nw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25765},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"7160950509301369250d1eaa56b21998ec73bed1","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.42_1785525863211_0.9774475875792059","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.43":{"name":"ust-light","version":"1.0.0-rc.43","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.43","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"6ac337210ad1dff4be0517cfab76e187a7b94518","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.43.tgz","fileCount":4,"integrity":"sha512-wurqTD6BS/ziOzlPv+vWrFoWASyFMLCaGtoA+H1Di1oPHxji/nhjOeaJGApJmvy50WY9eoLruvu7ea5c/bn0tQ==","signatures":[{"sig":"MEUCIQCpn9OY26VWaGKUVca226QLmnVXSep1HViH8NLHKSlmQwIgf+e/rCUCqGq2p9TSlFmA/Q3XtX30mOluTK0SvflqVg0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25765},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"d76660f90d2556632839df945812d46ae0db3278","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.43_1785542708848_0.9212024310071514","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.44":{"name":"ust-light","version":"1.0.0-rc.44","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.44","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"8c3d5f54c3ab0f6edc55369bdf8ae8d7c97fd221","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.44.tgz","fileCount":4,"integrity":"sha512-3l3DpKRsArnvczoXMoYynqm9tZQfV/9g9xSlVQpG17H+WpCD4ogYcTDhIPbRP//jugeGGXE8a3oqjyRLUpMdkA==","signatures":[{"sig":"MEYCIQDL9tnxMSPzK34FwdEeqO7zj+VPYHqfOamu8j+34iI+CAIhALML9XcseO19x1GWoqq7Ez3FnQ3PQI+5/HeSgXV/dHWZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25765},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"8610ec97e699e64c40a304cad3a274c7cf457de1","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.44_1785567497115_0.8365858591767628","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.45":{"name":"ust-light","version":"1.0.0-rc.45","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.45","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"66a9b30ee76bd7c3cfaaadc9254f51d3339756f3","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.45.tgz","fileCount":4,"integrity":"sha512-w7wz/pFbIvR1RUVVtZqUGPml/odMXvHmi31rT5we/q9jprsaw5ZdMxqKmkgaZG5mSplkO0nmBy21e4F3zdGMQw==","signatures":[{"sig":"MEUCIQCnekrHZlfI+HFRdrxmRnIyeIlHLnFYqDL40HBkwhS5OgIgScMGaf4u3HJfUwW+n9uF8LSAj4wvRAt/zFC6z5SMSHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25765},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"a02e48c23536f72666bbc7e34d48778b07cb5b8a","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.45_1785570226465_0.7775910837104112","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.46":{"name":"ust-light","version":"1.0.0-rc.46","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.46","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"bdb37f1cd2cc35cdcf5d67679a6281f00ad9e174","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.46.tgz","fileCount":4,"integrity":"sha512-JcaMM/A9ttm/eM8AcK5wy7QDmZCfvP04IucUxYwtFs13qkrYrRUhmJowNiEtf7icwj9uYfxJKaboekIDuvf+Ng==","signatures":[{"sig":"MEYCIQCv24+i1aRmMiIET/VGj3cw4zyTV5Xt7/Pajryop4B77AIhALDc1Id62i0OGhmCq6U4pYpiHixT/KZeM7BcoRS1yjuo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25765},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"ac08c9cdb85a1495a215de0bccfc86731e06bb94","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.46_1785573976373_0.2867806874882002","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.47":{"name":"ust-light","version":"1.0.0-rc.47","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.47","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"c3ecd0f13c510f466efb5b124b4baa4aa43d12a5","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.47.tgz","fileCount":4,"integrity":"sha512-ZzzcWjeYuf3RD+HZ3W5NeLrz2jnIJNNO5z25FsF8WgRUnd9qvv8H2oiscVy0VnLZ7ln/V0/1LLO+49NVu0XUdQ==","signatures":[{"sig":"MEUCIAbjOLhnUT4etsaLS03URPDXejCHp8NLAPauwqFPHsMwAiEAxyfMfDS5K/+Vq9eQAO7kTTbUeIrXT6Y3TTVwVCvcyVo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25765},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"7f6a1231202445a6b987eb5e244fd8f0ed93baf8","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.47_1785575444989_0.04323085386628245","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.48":{"name":"ust-light","version":"1.0.0-rc.48","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.48","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"98b0e651b8f337dbb60d4a9f1043451a5146da7b","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.48.tgz","fileCount":4,"integrity":"sha512-2i0dXVwM5Fqdg4PAEGNartKbNb6FCJG85I9GFXpwIobHPSzjI55lqdhY13oKlhNsKJ8ZWDyjsNjvSHd3u5gvTQ==","signatures":[{"sig":"MEUCIQDiOQd4e9bPatS4neso2e2eXJPbQnu2KPyLKwTkRqVhkgIgdUWKyxLv9T3nzxg4H9/qzG19Tdg3iqb7riYeGytMMDI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25765},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"897fed6f19ab3e6ba8672b037f52e2f8fdf727b3","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.48_1785582818265_0.7691217808126607","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.49":{"name":"ust-light","version":"1.0.0-rc.49","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.49","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"763f5a140bd23772855d2add551e2e712b209d57","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.49.tgz","fileCount":4,"integrity":"sha512-C/EjoWfPJJMlCt6KlRkaXpJEsU3S+Oc4l62c47aj+Gy2/tcyspOgS8O7LSSRm0Z9k5LP1gUXIQCUKrNCiwIN0g==","signatures":[{"sig":"MEUCIQDMhgw4WFFK9TyhehmLDbD1UeyvHAmOVj8H5wBXyotHawIgXfdBUIY4A36Uqmww9//4fWJ9bF5CU/DmZCmeDBCCDX4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25765},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"5aeb6813f13be162dc5e6b4c5a86219081ab6813","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.49_1785587222520_0.9543137993179409","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.50":{"name":"ust-light","version":"1.0.0-rc.50","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.50","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"bd60bd3bb389637ed22123ceb220114bc5280a16","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.50.tgz","fileCount":4,"integrity":"sha512-50JcIVQwtKNuTw780LqLjybAEivAOVlLNtPkJMqZAJi54sYWzlYm0bVSNexMoZZZMKPcEg118brseq38FcWWkw==","signatures":[{"sig":"MEUCIQDo1K/y/L/mm77DNmIxt/BGUAp5/jTzZhl4O3ofJVLoNgIgOAWDzHkW8U1IaUrvUZvgn//1qH19TngrLOSOzPKWk7U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25765},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"0106bb1955f19bbb47525d35689270a350349318","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.50_1785601255098_0.13603913600248663","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.51":{"name":"ust-light","version":"1.0.0-rc.51","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.51","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"46cefa37cf477a517f3d3f57dd7f3b742201933f","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.51.tgz","fileCount":4,"integrity":"sha512-Sr78NLhNjYKa3bpbpFCsWiQZxqetgvVXK/RHHYvmweKEm6m9pu653pY1jPxXvKwuMQbi7c48VdvEakRZAgaWXw==","signatures":[{"sig":"MEQCIDg9tPb4g2jyBXf7n8YBumvW/3kInleoV6AY+b2/UIo8AiB+61bncnGuGJ+N5g6xjBXJDZ4mMTwB76INwuZNKG6boA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25765},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"cb69e1e5435cb6762dfc446800b69ed20bc63af8","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.51_1785604526451_0.17648496611816067","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.52":{"name":"ust-light","version":"1.0.0-rc.52","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.52","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"88d3c611edd168eb72fe82f22aee3d40825e074d","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.52.tgz","fileCount":4,"integrity":"sha512-1ETQU7PgDWbW3zQcC3X232WZ8v0L1pWwOLtxccVauvSo8if06Vz6PUrNACQEPH/GiTK0w6zBUuDMgDZ/LSJeHw==","signatures":[{"sig":"MEYCIQCg6S+Xs9u/FBtij8jfXqoeuWWwRgZKo0YwlaC5//nOngIhAIs6nVgri2GEzizTcZwAGnsDfYakVoKIZIGwFLa6PypC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25765},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"b32d761e3f59296c0e13ee7685e0a85da1afdcb0","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.52_1785607444355_0.4161966347675079","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.53":{"name":"ust-light","version":"1.0.0-rc.53","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.53","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"2338157299cc389b55bce2f76e8fbca643726dce","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.53.tgz","fileCount":4,"integrity":"sha512-aHGwT26IQJOOS/yScg3+bBUjgnv+Ay5dcZk6TlCwNvcHubrYDwMA+FgQdR4ifUvf9ZY+jO0iHy1s/IAQuOUKow==","signatures":[{"sig":"MEYCIQCEgBazWCSTWF3zrZ9HWDQ5JXtfCmBTGITth4P0q290UgIhAPgL4JdteHXL08+FtiRiDgsK/4CmS72OA3MQn92i9bgh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25765},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"9537920232e24bfae5cda58ed935d1fcc59f176d","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.53_1785611028934_0.8543844864770724","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.54":{"name":"ust-light","version":"1.0.0-rc.54","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.54","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"67b7dfe27faa5fb7b134a471bf2c5c5cf6541e28","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.54.tgz","fileCount":4,"integrity":"sha512-dS5LGhnLR3Ymqf5+FRMnTGvOe7oguaUSZb1KF1nZPSl6lFS1U8/0eKnmSSw4VGCYyZTtfqz9PfDVVKec5l9wdw==","signatures":[{"sig":"MEYCIQCsZ0mJw5Lu/MzjCZSACdcINXf6x7lZbK7aJhVqO7uEiwIhAO+0iG11YuJyN03+PqI+FDhWd9aqJI3cQYxcQEQsSzpQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25765},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"a99969d3fa83eb0d3d2ca18b1392cfa7d5f3ef5c","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.54_1785649979831_0.14738844922261518","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.55":{"name":"ust-light","version":"1.0.0-rc.55","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.55","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"dist":{"shasum":"df71fba0302bb22e0ec68270066bd8cff7b87ab0","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.55.tgz","fileCount":4,"integrity":"sha512-44uFSgosFpVrVn9PsGIPVi1bTiA087TBzh1znqMmhXtti0oeE17BPBpkYRRJfE3N2M9joIPPE8T8oJjIyoxvkA==","signatures":[{"sig":"MEUCIQC6O9Gl6sn9sePo4g9Ehx8SGHPvIRJjZtoSLBS35qWYggIgODRW8N6CkHoB0Tt/RdNjj1tbEjI8WavanC3a2La6d/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26587},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"2d0103277f28326a73ba0d6625f547797661a0d5","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"ust-protocol","email":"routegame@proton.me"},"_npmVersion":"11.9.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.55_1785997245006_0.9385494295455346","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.56":{"name":"ust-light","version":"1.0.0-rc.56","license":"Apache-2.0","_id":"ust-light@1.0.0-rc.56","maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"homepage":"https://github.com/thelabmd/UST-Protocol#readme","bugs":{"url":"https://github.com/thelabmd/UST-Protocol/issues"},"dist":{"shasum":"60d6c8bfff282170895c321d73c0ea24c2c84b6c","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.56.tgz","fileCount":4,"integrity":"sha512-FYIUUXvu6qt+gSqKgdPCFMYOYupcABrsJ8vSZI9sxDZmJQ69tOVt1LD9gmz/rSapp6uIkQq3ixuMDTQOOsPcJw==","signatures":[{"sig":"MEUCIQDuPyYciLV0E6cK3LHlct4SRjLDNOFB5PsOFr9lkV48wgIgJP9CpaYycX5G6bnP0KPKR2ywnx8O6WRXdLLGKuyLv70=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ust-light@1.0.0-rc.56","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":32546},"main":"index.mjs","type":"module","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"gitHead":"f155d96fd4ea8721e2db6d52c13c3aea7ee445f1","scripts":{"test":"node test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ceff6546-8760-4028-a08b-fc55e7111c87"}},"repository":{"url":"git+https://github.com/thelabmd/UST-Protocol.git","type":"git","directory":"packages/ust-light"},"_npmVersion":"11.5.1","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ust-light_1.0.0-rc.56_1786179341416_0.1632824462771656","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.57":{"name":"ust-light","version":"1.0.0-rc.57","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","ust:browser":{"stance":"native","why":"The LIGHT floor is asynchronous everywhere on WebCrypto rather than carrying a second build, so the single file IS the browser file. A floor that refused the browser would not be a floor."},"type":"module","main":"index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.mjs"}},"license":"Apache-2.0","scripts":{"test":"node test.mjs"},"types":"index.d.ts","repository":{"type":"git","url":"git+https://github.com/thelabmd/UST-Protocol.git","directory":"packages/ust-light"},"_id":"ust-light@1.0.0-rc.57","gitHead":"3c1e8ecd908d5288883b50dd4eb0f8bd1054faae","bugs":{"url":"https://github.com/thelabmd/UST-Protocol/issues"},"homepage":"https://github.com/thelabmd/UST-Protocol#readme","_nodeVersion":"22.14.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-oJXSh4FkSE1P0o3zdZEHVS62lB4znStCU1m4QhqwF8SaEPVrhdjQL/8Byu7nOuyp/KWG/yZKTTrPGKauDN+/+w==","shasum":"e8d9ee0640709b09eb2c7c0018be84ea14390f0f","tarball":"https://registry.npmjs.org/ust-light/-/ust-light-1.0.0-rc.57.tgz","fileCount":4,"unpackedSize":32943,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ust-light@1.0.0-rc.57","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCzuCsnGUzvoQz3CfcLfYd2TgxP5nUfnf9OH7oXsgI+7gIgM/UzsaiHtVwKOHyJCy8n0nyt7hz/eIJf4ErHN2//LMk="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ceff6546-8760-4028-a08b-fc55e7111c87"}},"directories":{},"maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ust-light_1.0.0-rc.57_1786879782732_0.5319754085278405"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-26T03:26:53.687Z","modified":"2026-08-16T11:29:43.156Z","1.0.0-rc.34":"2026-07-26T03:26:54.086Z","1.0.0-rc.35":"2026-07-28T18:02:51.811Z","1.0.0-rc.36":"2026-07-30T13:58:49.340Z","1.0.0-rc.37":"2026-07-31T01:19:52.153Z","1.0.0-rc.40":"2026-07-31T16:12:22.117Z","1.0.0-rc.41":"2026-07-31T17:03:37.028Z","1.0.0-rc.42":"2026-07-31T19:24:23.362Z","1.0.0-rc.43":"2026-08-01T00:05:08.973Z","1.0.0-rc.44":"2026-08-01T06:58:17.246Z","1.0.0-rc.45":"2026-08-01T07:43:46.613Z","1.0.0-rc.46":"2026-08-01T08:46:16.500Z","1.0.0-rc.47":"2026-08-01T09:10:45.116Z","1.0.0-rc.48":"2026-08-01T11:13:38.425Z","1.0.0-rc.49":"2026-08-01T12:27:02.665Z","1.0.0-rc.50":"2026-08-01T16:20:55.236Z","1.0.0-rc.51":"2026-08-01T17:15:26.575Z","1.0.0-rc.52":"2026-08-01T18:04:04.488Z","1.0.0-rc.53":"2026-08-01T19:03:49.184Z","1.0.0-rc.54":"2026-08-02T05:52:59.966Z","1.0.0-rc.55":"2026-08-06T06:20:45.139Z","1.0.0-rc.56":"2026-08-08T08:55:41.539Z","1.0.0-rc.57":"2026-08-16T11:29:42.858Z"},"license":"Apache-2.0","description":"UST 1.0 LIGHT floor — standalone, zero-dependency sign/verify for canonical, addressable, string-only signed state. A ust-light document is a valid UST document.","repository":{"type":"git","url":"git+https://github.com/thelabmd/UST-Protocol.git","directory":"packages/ust-light"},"homepage":"https://github.com/thelabmd/UST-Protocol#readme","bugs":{"url":"https://github.com/thelabmd/UST-Protocol/issues"},"maintainers":[{"name":"ust-protocol","email":"routegame@proton.me"}],"readme":"<!-- SPDX-License-Identifier: CC-BY-4.0 -->\n# UST Protocol — the LIGHT floor, standalone\n\n```\n     ▄▀▀▀▀▀▀▀▀▀▀▀▀█▄\n    █ ▄▄      ▄▄    █              UST · LIGHT\n  ▄▄▀ ▀▀ ▄▄▄  ▀▀    █              the byte-verdict floor\n  ▄█▀▀ ▀█▄▀▄▄▀ ▀█▀  █    █▀▄   ▄▄\n   ▀█               █▄   █▄ ██▀ █\n     █               ▀▄▄  █   ▄█\n     █                  ▀▀   █▀\n     █▄      ▄              █▀\n     ███▄    █    █       ▄█▀\n   ▄▀▀  ██▄▄▄█     ▀▄▄▄▄█▀▀\n   ▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀\n```\n\n**Browser: native.** This package runs in a browser as written — no platform import, no `Buffer`, and the same file in Node, Workers and a page.\n\nUST (Universal State Transcript) is trust infrastructure for data: a signed, canonical, tamper-evident record of\n*state* — some data about the world at a moment — that verifies the same however it reached you. TLS secures the\npipe; **UST secures the payload**, so the guarantee travels with the data instead of with the connection.\n\n> **Two rules this protocol does not trade away.**\n> **A minor only ADDS.** Anything that changes the meaning of what an earlier minor already defines is a MAJOR — there is no third option, because an older verifier evaluating under older rules must still be RIGHT about what it evaluated.\n> **A verifier never expires.** An older verifier keeps producing correct verdicts about everything it understands; newer material it does not implement is reported as NOT EVALUATED — never as invalid, never silently passed. Whether that reach is enough is the CONSUMER's policy, not the protocol's coercion.\n> *Both hold today: a newer minor answers `INDETERMINATE(unsupported_minor)` and a different major `INDETERMINATE(unsupported_major)` — never `INVALID`, which means only \"I applied MY rules and they were violated\".*\n\nPublish and verify a **signed, canonical, addressable, string-only, bounded JSON state** with a **carried key** —\nin a minute, with zero dependencies (WebCrypto: Ed25519 + SHA-256 — so it runs in Node, in a worker and in a\nbrowser, unchanged). Everything that touches a hash or a signature is **async**; `canon` and `signedContent`\nare pure and stay synchronous. No genesis, key-log, anchoring, checkpoints,\nor the assurance lattice. **A `ust-light` document is a valid UST document**: it verifies `VALID:LIGHT` under the full\n`ust-protocol` verifier, and this verifier accepts any UST document at the LIGHT floor. The canon/hash/sign\nprimitives are byte-identical to the reference implementation (`test.mjs` proves both directions + byte-identity).\n\nLIGHT = **integrity + a CLAIMED key**. It does NOT resolve name authority (HIGH) or anchored time (TOP) — for those,\nuse the full `ust-protocol`. LIGHT identity is reported `self-asserted`.\n\n## Install\n\n```bash\nnpm i ust-light\n```\n\n## The floor, in five rules (§ = `spec/UST-1.0.md`)\n\n1. **Shape** (§4) — `{ ust:\"1.0\", state:{ id, time, data, hashes }, sig }`; only reserved keys; ≥1 partition;\n   partition names are not reserved.\n2. **String-only + canonical** (§5/§6) — every leaf is a string; JCS with tightenings (UTF-16-sorted keys, NFC,\n   unique names, no whitespace). Numbers/bools/null are unrepresentable.\n3. **Per-partition hash** (§4.4) — each partition binds its publisher: `H(\"ust:shard\", canon({domain_shard, ust_id,\n   partition, value}))` (public) or `H(\"ust:shard\", commit)` (private); `hashes` is an exact bijection with `data`.\n4. **Signature** (§7) — strict Ed25519 over `canon({ust, state})`, with `key_id == H(\"ust:keylog\", pub) ==\n   state.id.key_id`. Non-canonical encodings are rejected (I4 raw-byte determinism).\n5. **Addressing + bounds** (§8/§13) — `ust_id = ust:YYYYMMDD.HH[MM[SS]]` (a valid UTC frame), RFC3339-Z times,\n   `valid_from ≤ valid_to`; ≤ 64 partitions, ≤ 1 MiB signed content (the anonymous floor).\n\n## Use\n\n```js\n// runnable: node this file as-is.\nimport { keypair, buildState, seal, verify } from 'ust-light';\n\nconst kp = await keypair();\nconst doc = await seal(await buildState(\n  { domain_shard: 'example.md', ust_id: 'ust:20260715.12', key_id: kp.key_id, class: 'observation' },\n  { generated_at: '2026-07-15T12:00:00Z', valid_from: '2026-07-15T12:00:00Z', valid_to: '2026-07-15T13:00:00Z' },\n  { reading: { kind: 'captured', value: { celsius: '21.5' } } },\n), kp.privateKey, kp.pub);\n\nawait verify(doc);   // → { result: 'VALID:LIGHT', identity: 'self-asserted', content_hash, ust_id, key_id, … }\n```\n\n`npm test` cross-verifies against the full reference implementation (byte-identical, both directions).\n\n## Boundary (honest)\n\n`ust-light`'s verifier applies the **structural** floor (canon / hash / strict-signature / shape). The full\n`ust-protocol` verifier adds semantic hardening at LIGHT (real-calendar date existence, homograph A-label guard) and\nthe HIGH/TOP tiers (genesis name-authority, anchored time, stream completeness, the assurance lattice). Use `ust-light`\nto adopt in a minute and to independently re-check the floor; use `ust-protocol` for authority and time.\n","readmeFilename":"README.md"}