{"_id":"@flighthq/textshaper","_rev":"383-1c8b06a502f7bb0de65171a6fa33d0ea","name":"@flighthq/textshaper","dist-tags":{"latest":"0.4.0","edge":"0.5.1-edge.1912.a627849","next":"0.5.1-next.1912.a627849"},"versions":{"0.1.0":{"name":"@flighthq/textshaper","version":"0.1.0","_id":"@flighthq/textshaper@0.1.0","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"dist":{"shasum":"b9d6b7112f2920ff4eaa245d206db321c9cb4e88","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.1.0.tgz","fileCount":45,"integrity":"sha512-j5zgftx2pa6ZJTa6Ie30ho31N320H/mC4M/fT13XAZm4ckWuBiqUc43UoUKfn4mn6fGuxlXxbYwhwYCOOmkYzA==","signatures":[{"sig":"MEUCIQDq20/80/XGEp9b640wZq2mwKAz0+NC+cEqGsVpn2GKKwIgEZmZySgZHXsRaoPijXnW56LLu6vLJHyf+s8eqiz7luQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79173},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"2aace48ec98a87082152baf119efedcd86240596","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"_npmVersion":"11.16.0","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@flighthq/types":"0.1.0","@flighthq/signals":"0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.1.0_1783663591237_0.8261333014845609","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@flighthq/textshaper","version":"0.2.0","_id":"@flighthq/textshaper@0.2.0","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"b75343aa138a41163e78e7272c019cb815dc3559","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.2.0.tgz","fileCount":45,"integrity":"sha512-BzPuQfEv9wnncz939KHHENMdXPTYuacgKfQldQ70aVF39FlhMyUxM0d42s91KYakYm947Yuj0Nzy6kD6xKHVEQ==","signatures":[{"sig":"MEYCIQDSwPD5ncIwNW1OWd5/BAUDGspBSgWK8MDQRxUXhiQK7gIhAMoB8sG0EvlbV6cX42mY5QX4zwrlLwlM2ysOM3BxEEtm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79307},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"9b0556a275cbc673041d415b86b53483525a4df2","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.2.0","@flighthq/signals":"0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.2.0_1783973728841_0.13784302524585268","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-next.410.a23f189":{"name":"@flighthq/textshaper","version":"0.2.1-next.410.a23f189","_id":"@flighthq/textshaper@0.2.1-next.410.a23f189","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"8a0d17e956c6d6e6b4ee3cd2763cb77cae6cbb27","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.2.1-next.410.a23f189.tgz","fileCount":45,"integrity":"sha512-nrDApCA3Kxt5ftwkHGQuzfZ+MursM3/EQPKqw/+T2+5YsOXK8M4EFTnuQ6D2tEfWjP1OJW8Locy9K3Mm9jr2OQ==","signatures":[{"sig":"MEUCIQCZ/pguSOKTby+zN5cBmfbkBpvzuf1alraXvWoQHaI7bgIgDFV7qTlcs76/F00ZybgYx1XplvUtwkeKImPFTtm0Pcg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.2.1-next.410.a23f189","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79358},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"a23f189583d1112c9e6137c11d9f05470b0ea594","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.2.1-next.410.a23f189","@flighthq/signals":"0.2.1-next.410.a23f189"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.2.1-next.410.a23f189_1784577290338_0.915047591960451","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-next.423.3350e53":{"name":"@flighthq/textshaper","version":"0.2.1-next.423.3350e53","_id":"@flighthq/textshaper@0.2.1-next.423.3350e53","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"778d261bdb66f0b003093c53321878bca7e33be8","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.2.1-next.423.3350e53.tgz","fileCount":45,"integrity":"sha512-plHIeUK8IRnfoZf9ezLNL7i5paKE19qf6ICgE0GHsshLM7GxIFdejlUdJEbKZly4vwryUsYkirdxTUIfQPnIZg==","signatures":[{"sig":"MEUCICTCZwgF6+ZnsZ6pP4OJ9XzS0O20wWp0MuhrfOrzNd5lAiEA11tJZDSkuKyG6Z2icBfk34ZipGmvKHGSWauN+GcruzQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.2.1-next.423.3350e53","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79358},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"3350e53bccb9bf3574666cf1461253e65d5973f4","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.2.1-next.423.3350e53","@flighthq/signals":"0.2.1-next.423.3350e53"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.2.1-next.423.3350e53_1784615526529_0.7949417730935187","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-next.444.a313478":{"name":"@flighthq/textshaper","version":"0.2.1-next.444.a313478","_id":"@flighthq/textshaper@0.2.1-next.444.a313478","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"1f9d592a70c64eddef4bca9f159ebb100b0c5ba4","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.2.1-next.444.a313478.tgz","fileCount":45,"integrity":"sha512-G+8NBPHHlMBCVt82LZjucxKE1uZiWC+262MzeHhu0uUV25L1nGIKt/Yqe/mH6ZHYova5lSm4GHOZCIOPDMgUcQ==","signatures":[{"sig":"MEUCIDyZqL9lEnMT2aKy17c4BP8HEneLBzqQA+teqCdmFv9kAiEA+P++MxEpDWUpUKdeEx5dkb9wL+SFYjdRncHYARUEMwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.2.1-next.444.a313478","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79358},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"a313478d5a9242d9eee05f9501c06923298ecfa6","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.2.1-next.444.a313478","@flighthq/signals":"0.2.1-next.444.a313478"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.2.1-next.444.a313478_1784649369369_0.41299618799849114","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-next.448.afbdd31":{"name":"@flighthq/textshaper","version":"0.2.1-next.448.afbdd31","_id":"@flighthq/textshaper@0.2.1-next.448.afbdd31","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a29b85b15b3b4cdc123ba5184dcf0e03285dbbfe","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.2.1-next.448.afbdd31.tgz","fileCount":45,"integrity":"sha512-qa3jOxuPpUf5aCGiZu0KlIECxPOqZaxBC2RatI0XOZIVm6wAUaWIAEivt69f27E3IKOsjnaSDf40KDAmZD79Gw==","signatures":[{"sig":"MEQCIDp5NihG6c4PR2I7Og4cRHjmNORoleJwziQ4F+xeSYWOAiAngDJFyYn93ErrD4G24LCn+67oKejKwsVq8y2vIko1gQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.2.1-next.448.afbdd31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79358},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"afbdd31c14177b187e71f818f318f77820f6f8fa","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.2.1-next.448.afbdd31","@flighthq/signals":"0.2.1-next.448.afbdd31"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.2.1-next.448.afbdd31_1784663732071_0.4677055463952957","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-next.449.355834c":{"name":"@flighthq/textshaper","version":"0.2.1-next.449.355834c","_id":"@flighthq/textshaper@0.2.1-next.449.355834c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"ccbc14031751208cb8748175034faa347c5b9647","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.2.1-next.449.355834c.tgz","fileCount":45,"integrity":"sha512-GdXZ6PNuDoQI04U8uKKJqxzGrvN/XnSeyYLz1fg8ZB3L9HTVQXQ6U47BgfIFgDj2PVcIfX7/LR9dDZzSwHP2lA==","signatures":[{"sig":"MEUCIFRz6jF6fwaZdbBFNJJ2FHFdoQ4IjxmfNnlgfGBuj1Y3AiEAtYa3D4W30ssjSPLrbCRLX51YzN7cvkJK8Do9QoJZVbg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.2.1-next.449.355834c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79358},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"355834cdd84eeca5ed44c89830fa1ad600001f47","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.2.1-next.449.355834c","@flighthq/signals":"0.2.1-next.449.355834c"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.2.1-next.449.355834c_1784664269871_0.8336581325363543","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-next.451.d9a4a4e":{"name":"@flighthq/textshaper","version":"0.2.1-next.451.d9a4a4e","_id":"@flighthq/textshaper@0.2.1-next.451.d9a4a4e","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"fa34f8150aa835b1ee5b1c1cf17ab0ae3ccc2299","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.2.1-next.451.d9a4a4e.tgz","fileCount":45,"integrity":"sha512-sDz3R5xC2hEONxDYjsJtILbJycfqncSG4a5fJr81GSLLD2LVFtNbbkqM+/lNqGIGNEBtSTZsRu133vQyubC2YQ==","signatures":[{"sig":"MEYCIQDbwRXEonKtVA3Oe6BA8GmFHeamRlKLdL+DPMZnXiEjIgIhAOufEERC6FlMnnjhZ6OicglICEkMPVIYfckXVFaTgIhN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.2.1-next.451.d9a4a4e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79358},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"d9a4a4e09119c2bff69cb260a65630f4604424d0","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.2.1-next.451.d9a4a4e","@flighthq/signals":"0.2.1-next.451.d9a4a4e"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.2.1-next.451.d9a4a4e_1784669575478_0.2588013039338972","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-next.459.fb59cc5":{"name":"@flighthq/textshaper","version":"0.2.1-next.459.fb59cc5","_id":"@flighthq/textshaper@0.2.1-next.459.fb59cc5","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"7ce461951619157271da8ecc20367fc2236a60fc","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.2.1-next.459.fb59cc5.tgz","fileCount":45,"integrity":"sha512-4JpUuW7eCIlai28n5slbs8msubf5olJFkjUWd6lqFIQ43201KUZ857Zrjh1axJNnAIdcfTiHc9nZIT9dLDiLsw==","signatures":[{"sig":"MEUCIQDuKYke9T3raypwq8tRvluBcVjLxSzOCqdAL+JeqnzLcgIgARDhwVpP316mxKYifSgGFjosoxA5XQ2aUcF6WFeNjlU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.2.1-next.459.fb59cc5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79358},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"fb59cc510e1643cb9f4698313f26777e6dd21394","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.2.1-next.459.fb59cc5","@flighthq/signals":"0.2.1-next.459.fb59cc5"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.2.1-next.459.fb59cc5_1784670095250_0.06229996587327191","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-next.530.a223ca9":{"name":"@flighthq/textshaper","version":"0.2.1-next.530.a223ca9","_id":"@flighthq/textshaper@0.2.1-next.530.a223ca9","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"8e0622b008455e1b385acbf502972957ab04f444","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.2.1-next.530.a223ca9.tgz","fileCount":45,"integrity":"sha512-hH+2G+6KdiXb4gtztMve/nJ9zvVRqK/tOsxY+Rd3ZGBxTKW6Pt+7tX2FfbpZIUA5vgid/DwC+1D6FGQMk+I1sA==","signatures":[{"sig":"MEYCIQDlIlR4eoYBY28SJSbnIjU3uj7kGy58UPGMhQVgPTAr7gIhAPv3G6jFOhrBbTO7TKqU2sJG5XdvZe2a+fS64iex5oQ9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.2.1-next.530.a223ca9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79358},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"a223ca973bce7428681746d72d5bd9a3d5b1cf48","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.2.1-next.530.a223ca9","@flighthq/signals":"0.2.1-next.530.a223ca9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.2.1-next.530.a223ca9_1784816981365_0.9243988871937918","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-next.585.c7219b8":{"name":"@flighthq/textshaper","version":"0.2.1-next.585.c7219b8","_id":"@flighthq/textshaper@0.2.1-next.585.c7219b8","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"596e6074487d0ab5882517c723b3ea6191c1fcda","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.2.1-next.585.c7219b8.tgz","fileCount":45,"integrity":"sha512-krCxJ3ULmvbWK66hGwWk02sF8NpS1DEIm4hzSw9uRUZ8qs7K3SIdwxygZFWG1uUjJnugab1Ljbs1fYRA09ZQHA==","signatures":[{"sig":"MEQCIGYcDCA7lXnSa+c4+HlKT6outH618aQVrWCoektjtE1TAiBk0kvT45EhZrlxhA+yJy5MjRMewuPLK3dOXh1jU6KmJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.2.1-next.585.c7219b8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79214},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"c7219b84f65d218b29374e02140132f62e701f9e","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.2.1-next.585.c7219b8","@flighthq/signals":"0.2.1-next.585.c7219b8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.2.1-next.585.c7219b8_1784842383650_0.21757446072620357","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-next.624.d23e6a9":{"name":"@flighthq/textshaper","version":"0.2.1-next.624.d23e6a9","_id":"@flighthq/textshaper@0.2.1-next.624.d23e6a9","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"ca7f22ecef0b612607077249a88761c7dbbc40ca","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.2.1-next.624.d23e6a9.tgz","fileCount":45,"integrity":"sha512-WMF5X3Qk8NJrLsXCx9D9PH0gfoCPVjuXN+ZyuDbOcseJ+NM+c7MXj4WiSvOzE9vEqtyovGBEtgDwGqFmuYMb3Q==","signatures":[{"sig":"MEQCIGPLAIWlokP40mfs4tgWggbpm1yywYy1i8wna9UDNOurAiAsFj7IBIjrwZw/gcwvTl6zx470fmCbCffYQiaBNWxsag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.2.1-next.624.d23e6a9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79214},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"d23e6a9e15d0682fbb884cdeda2fa10bbab12e17","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.2.1-next.624.d23e6a9","@flighthq/signals":"0.2.1-next.624.d23e6a9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.2.1-next.624.d23e6a9_1784878163977_0.6808432635503612","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-next.640.ec2ea9a":{"name":"@flighthq/textshaper","version":"0.2.1-next.640.ec2ea9a","_id":"@flighthq/textshaper@0.2.1-next.640.ec2ea9a","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"4d4f0b89e4e5a53bd93d56069f34b46d3dbc8162","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.2.1-next.640.ec2ea9a.tgz","fileCount":45,"integrity":"sha512-oTd53hUdBFX++M0Jq85oBdjpJWCkGQCXkfHHHyk3DIfddpRlUvZuvq7sfWGv8ypPRJzeFJXK9VwJaXoxHR+7ow==","signatures":[{"sig":"MEQCIArlzNQfkcRoIxQ1kU3IxGzZIqz6xUxFXES4a01ArU0zAiBL+SnxkSpc3+Svpj4vnPNKEeP3ccOXL7VU/4fLsydxfQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.2.1-next.640.ec2ea9a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79214},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"ec2ea9abad0334fdcac33f94913a4fdccc9b00ef","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.2.1-next.640.ec2ea9a","@flighthq/signals":"0.2.1-next.640.ec2ea9a"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.2.1-next.640.ec2ea9a_1784905524226_0.18748173501966936","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-next.647.2252e02":{"name":"@flighthq/textshaper","version":"0.2.1-next.647.2252e02","_id":"@flighthq/textshaper@0.2.1-next.647.2252e02","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"792c196e001057e5de57e938d2f0c1fec8695030","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.2.1-next.647.2252e02.tgz","fileCount":45,"integrity":"sha512-Dc7BflvSYZkcy9xsc0T9YZPs2dsPipOWfiHBnqf/v2PASuc7by+ibjiuWCoHwupYY5iquzZ2Y9VUZvAdWzTqGw==","signatures":[{"sig":"MEYCIQDGLcQJh6Ym+AX0d41H85G5P3WCZ23dlo98XYtoWMrg9wIhAItg5JuSMw8Q05Pgyu28d2c1xcu19rHYWdkQPkcCQw58","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.2.1-next.647.2252e02","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79214},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"2252e02d1c82bcbbeb421d68a081290ec895b3c9","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.2.1-next.647.2252e02","@flighthq/signals":"0.2.1-next.647.2252e02"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.2.1-next.647.2252e02_1784914312690_0.770424207818919","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-next.652.c550eaa":{"name":"@flighthq/textshaper","version":"0.2.1-next.652.c550eaa","_id":"@flighthq/textshaper@0.2.1-next.652.c550eaa","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"38e139515d15d288e5872f5260fa216ca940d920","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.2.1-next.652.c550eaa.tgz","fileCount":45,"integrity":"sha512-kjVwd75j7M0ps6bJEcaqp3f0tbrwcQ/ZiYk3CsJw6h7k+M+j96GkPgRi72ns9fRac7WhvqonmqkKj0/QSqNiWQ==","signatures":[{"sig":"MEUCIDa3BV5MsXq0F65GwRrChtW16yK2pa145PpbnxsY4m84AiEAxGLLW0Z1GJd/FhBMY/JtFpkjzfJEPK0ABB5GAyX70PE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.2.1-next.652.c550eaa","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79214},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"c550eaa3044aa8d52451f0bac93ee84cc0be6fb1","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.2.1-next.652.c550eaa","@flighthq/signals":"0.2.1-next.652.c550eaa"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.2.1-next.652.c550eaa_1784916303282_0.4944224895674365","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-next.666.4af7f8b":{"name":"@flighthq/textshaper","version":"0.2.1-next.666.4af7f8b","_id":"@flighthq/textshaper@0.2.1-next.666.4af7f8b","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"3642cf6e3344d72653408783d3b037a8b1a70b0a","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.2.1-next.666.4af7f8b.tgz","fileCount":45,"integrity":"sha512-nC8JD+6IuYAIzzsVmZNU9vxPow2/bZYQR35DoI6eyW9MNxj3QqZnmBrvGUSnqf0ilrOmmAkr/A6Lil48erl7ow==","signatures":[{"sig":"MEUCIQDJhDPAeUzb3r4B7sImN95x0rcqYrCxBZaSR8s0U22ZPwIgAdut9pAUhDGZOnbMVgyT/fFTng5xTDL1dPmzbDvc8f8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.2.1-next.666.4af7f8b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79214},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"4af7f8bd5fdc35503c8aa956763f740e4b3ba261","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.2.1-next.666.4af7f8b","@flighthq/signals":"0.2.1-next.666.4af7f8b"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.2.1-next.666.4af7f8b_1784920083925_0.4751532807294039","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-next.701.409c279":{"name":"@flighthq/textshaper","version":"0.2.1-next.701.409c279","_id":"@flighthq/textshaper@0.2.1-next.701.409c279","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"c28bb4aed83b4eb6377531e4f609fc9602345dfe","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.2.1-next.701.409c279.tgz","fileCount":45,"integrity":"sha512-CVXuEWkucsxiBjr8Kcn3RQSAu1MXIDPeNfMJ23nbK3cGdBlNATCnBOQYb45We8inzJRsi0IxhCrVCnofg0J7rA==","signatures":[{"sig":"MEYCIQDVooEzv036fujDTWauhEK+JzOL3gz3vbfDyL8Bc29QNAIhAOIphM2LoEP/eyWBGTC9ktEb3JzJ1YuESuEYVmvBtsNt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.2.1-next.701.409c279","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79214},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"409c27915859155fff7a99433ec5b9c7d30165ff","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.2.1-next.701.409c279","@flighthq/signals":"0.2.1-next.701.409c279"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.2.1-next.701.409c279_1784951762073_0.8974177778245955","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-next.738.07b221d":{"name":"@flighthq/textshaper","version":"0.2.1-next.738.07b221d","_id":"@flighthq/textshaper@0.2.1-next.738.07b221d","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"0665ca50d49aa6a12dfac0a2c833128765da7337","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.2.1-next.738.07b221d.tgz","fileCount":45,"integrity":"sha512-Yo8funO8Ls6lqXpGjIoM/dbcy9nttqH4zZjpxo7ZGDs6VYMqIQzTWvNnGR+PrK7oHDvou037DDRgirteGruHYQ==","signatures":[{"sig":"MEUCICkNkPN0Uu11IrIzmED8FWbKoTS9rXSScArtERfox1mRAiEA8AClPFfw9RXGQ9xYnrnqeP8CvNkmNzH+kZ1hCg9N9jo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.2.1-next.738.07b221d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79214},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"07b221d4dc1b994d9e5726c9fae1b8623de30c0c","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.2.1-next.738.07b221d","@flighthq/signals":"0.2.1-next.738.07b221d"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.2.1-next.738.07b221d_1784956770643_0.3278707352422734","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-next.840.857425c":{"name":"@flighthq/textshaper","version":"0.2.1-next.840.857425c","_id":"@flighthq/textshaper@0.2.1-next.840.857425c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"fb0debd7ee9e1b15d22216495764c3b4b37b8762","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.2.1-next.840.857425c.tgz","fileCount":45,"integrity":"sha512-3oAu3hJmPiW0+DyObhLa4oia/LcyCg6+pO0vQ+4C2QSTZWKwbF1Z1cohJzW3IpyTxuyu41Hzo1SrH8vhOwmpHg==","signatures":[{"sig":"MEUCIBhJ2pp/MDnXm8XlMGtFvAK/cq6RJutPTfVZVHlogFXoAiEAyeVHmmkY6ZpUdIVcD4g1zlLK14bqnIHmkDctnxo7Jd4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.2.1-next.840.857425c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79214},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"857425cbf67a23597b9232d3e8bba742cca02e26","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.2.1-next.840.857425c","@flighthq/signals":"0.2.1-next.840.857425c"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.2.1-next.840.857425c_1785027271145_0.9374530012658029","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-next.841.373388f":{"name":"@flighthq/textshaper","version":"0.2.1-next.841.373388f","_id":"@flighthq/textshaper@0.2.1-next.841.373388f","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"ef1b4d55d21ac1c407affb7791984d86c4e23413","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.2.1-next.841.373388f.tgz","fileCount":45,"integrity":"sha512-ZgpqYauplNBPMAhpZ+2R/ri/WH7q2d0pLtLEifQz0E560Sfs39vulLAVcX2ZXTpO9xVL/cGn/EVvjyoAMk7p6w==","signatures":[{"sig":"MEYCIQDcf/FctqFeiGiQk7dc5ie6TUvkc0FPxdaDImE4nglcWAIhAKNGRniWk9YRt6atywRHJvcD7dCcMYF3Ta91jIbuKM1d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.2.1-next.841.373388f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79214},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"373388fed48e80ac2c2dd249a2b7c81988928d64","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.2.1-next.841.373388f","@flighthq/signals":"0.2.1-next.841.373388f"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.2.1-next.841.373388f_1785046076761_0.40689286381390355","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.906.07cea63":{"name":"@flighthq/textshaper","version":"0.3.0-next.906.07cea63","_id":"@flighthq/textshaper@0.3.0-next.906.07cea63","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"e5d376f12511ac9502e64a2374d1c724030b3695","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.906.07cea63.tgz","fileCount":49,"integrity":"sha512-N6z95PY/PBl/2IdVlTrbXPeSWildaOQV+bO0ZyAlmlJi3xemcLw4sDCRNnDOgAhCNMdpdm3Sf6lSt+hSXYGtSQ==","signatures":[{"sig":"MEYCIQDatk9eINPVqwDpVPIxVYZ7+Sd0oMkbAcR5CsjX9kbUmAIhAPPcLhmVLC7LbkhuRBVqFerqSDZOxflxzDXaCs38QtlK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.906.07cea63","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":81648},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"07cea634770fe8d3258b29820bb61bc706a38d28","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.3.0-next.906.07cea63","@flighthq/signals":"0.3.0-next.906.07cea63"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.906.07cea63_1785220232055_0.021695803499033106","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1021.f5f1ee0":{"name":"@flighthq/textshaper","version":"0.3.0-next.1021.f5f1ee0","_id":"@flighthq/textshaper@0.3.0-next.1021.f5f1ee0","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"c602682e5de5e28d6776a8da2b1ad2faecd732f3","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1021.f5f1ee0.tgz","fileCount":49,"integrity":"sha512-aNZ4wsAQgiyW2rcswkhgY6SVVbJuNg64WUdlQCRw9fSqb9tG0OVAwyoxmVo5CKVGddWOLtwuMCxZKONlgGgs9Q==","signatures":[{"sig":"MEUCIFmZ5PPpdhZwaSLQ+LmpxWJwKQHnL/sP8aMGg+/NPj1GAiEAxDNL7g01xXHDLYuy8Y1Vhb9BUSaqSg3LVaw2eGhiOaU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1021.f5f1ee0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":81651},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f5f1ee0cddf1508b15fbf9b889d43f7ec3bbee83","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.3.0-next.1021.f5f1ee0","@flighthq/signals":"0.3.0-next.1021.f5f1ee0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1021.f5f1ee0_1785425387231_0.1818364112652373","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1032.e2b99fc":{"name":"@flighthq/textshaper","version":"0.3.0-next.1032.e2b99fc","_id":"@flighthq/textshaper@0.3.0-next.1032.e2b99fc","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"6e63317f5b50d69f4c69722362dea0490d4da6b3","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1032.e2b99fc.tgz","fileCount":49,"integrity":"sha512-G/EHiY02vkmg1W6F2BTCBRx7Kjy8EATGof0UzRmBz/rlI2uYlt7fkjh/tzGs0GmXxp0fIamlVtbjzq85qMSREA==","signatures":[{"sig":"MEQCICPnfj4cSQINWtzE/vfn+LOIeNwvGEgZwqdu8gc3wrb3AiA9AOFEsL4f0LgLd2mM9gYflT6eAPQNunnTyqLOYZ/6jw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1032.e2b99fc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":81651},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"e2b99fc68c6399f816db39547f7124e5e6941e34","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.3.0-next.1032.e2b99fc","@flighthq/signals":"0.3.0-next.1032.e2b99fc"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1032.e2b99fc_1785436640078_0.7676328817684652","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1162.e90e518":{"name":"@flighthq/textshaper","version":"0.3.0-next.1162.e90e518","_id":"@flighthq/textshaper@0.3.0-next.1162.e90e518","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"3b4daf39c16ceb8f600378e9547665c94567579e","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1162.e90e518.tgz","fileCount":49,"integrity":"sha512-tSd6L1dylH9aNbXQQdlJzt6pNJgoGnt/MCwo31R8GAXv81i2++rqx4eIup+lihmLPJpsYMK50uobbTp0qYrBhQ==","signatures":[{"sig":"MEUCIFxB5YEGtAUbHTyohcyj6ge2Q8DTnuVcSCmCnyp/AizjAiEAwcGfDgWK0JI2x57actFafGPYuP3ZB31nIg7yb0LWUuU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1162.e90e518","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":81651},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"e90e5180335da73fa439d43dc731cc0a92ed92ee","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.3.0-next.1162.e90e518","@flighthq/signals":"0.3.0-next.1162.e90e518"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1162.e90e518_1785453628786_0.9141459425347565","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1220.6982c21":{"name":"@flighthq/textshaper","version":"0.3.0-next.1220.6982c21","_id":"@flighthq/textshaper@0.3.0-next.1220.6982c21","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"362b197ba2d117a6e490ead6a99a7f92a315e14f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1220.6982c21.tgz","fileCount":49,"integrity":"sha512-v+mZI9mH+z8TWl5SigJ/1Ch0S4jd59oyrdYOkEj9CnlNJNBLOvQCWzU58fqmBNmwoqPWavFvM+Q/p8jothubQg==","signatures":[{"sig":"MEYCIQCzZSbJh2YZdi/0d6JKQEMH+TrfvRP6WK9wGd6UW+3XhgIhAM1URv5ZC4tj4kGodv4H4o89tSwAX9NShYqj3e8zyAz2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1220.6982c21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"6982c2155077a46281fbbb78cfd466fe7ec3c3ee","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.3.0-next.1220.6982c21","@flighthq/signals":"0.3.0-next.1220.6982c21"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1220.6982c21_1785506170181_0.12516998842910532","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1248.f867198":{"name":"@flighthq/textshaper","version":"0.3.0-next.1248.f867198","_id":"@flighthq/textshaper@0.3.0-next.1248.f867198","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"1c1ddff01cf50b3a4cdb70aa1ca6f203108c0a8e","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1248.f867198.tgz","fileCount":49,"integrity":"sha512-1J0i3cq09P3ZCIYHIXdUkn8hdhHcpsqwfbRdkP7Algvkn+AGnHmuaOdf5QLN0VE0DflmewJmDUAzC+NitsnNxA==","signatures":[{"sig":"MEYCIQDIlCfSJOzDfztjyAbSXx+VXsQrm6nfU/eSh5nscjl0CQIhALcV44M1A8iiqw7WlsqJlw9RQmxQSBuTZahU/Z/x9kwX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1248.f867198","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f867198c7f75a456bc601d5f33ae9c42f73f93fc","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.3.0-next.1248.f867198","@flighthq/signals":"0.3.0-next.1248.f867198"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1248.f867198_1785512496872_0.39516356675931674","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1272.222de94":{"name":"@flighthq/textshaper","version":"0.3.0-next.1272.222de94","_id":"@flighthq/textshaper@0.3.0-next.1272.222de94","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"d0f9e64bccc7a8c7b5e2c12bc10516610940f7d3","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1272.222de94.tgz","fileCount":49,"integrity":"sha512-0LkrsU59VnR9wFN9XaR9n3eF/ayZvyiin5WFp+ydQv6HRvqD3PAhP/C68hHBS7XdsCM9cqwD8cWYqeZajlQxuA==","signatures":[{"sig":"MEYCIQDDiSfJoSWUAncCFK3af9Mk71MsQuCXfpCZf0ylXX0VTgIhAKu1X4/blyGNiZSJln9CILuOQDYGPCh393eDNuRRkkmn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1272.222de94","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"222de94f32ddf0fb201ec104fb1e268b4e5b7c43","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.3.0-next.1272.222de94","@flighthq/signals":"0.3.0-next.1272.222de94"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1272.222de94_1785517927550_0.6713346334805455","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1280.6369398":{"name":"@flighthq/textshaper","version":"0.3.0-next.1280.6369398","_id":"@flighthq/textshaper@0.3.0-next.1280.6369398","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"23733f0738f58599b42349bc72d632f938bc8ce8","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1280.6369398.tgz","fileCount":49,"integrity":"sha512-La1I0P2gNc/nbRtQCaYLEGIIrt/xS3SKStn5la5K9vFe+VNTon6aTFZCIeq7NbXlbfGRUbvRh5614Mv3sgzALA==","signatures":[{"sig":"MEUCIE8YYlEHi7VN0YWitjiuc274kudNN76ZXCxx4lBzDN9wAiEAkJvA3AuXhldjDTMlgGIlLGLzF4br/SQSzuXfxuyo3hE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1280.6369398","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"6369398b6069f577e50d31aa17076bd83b194aa9","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.3.0-next.1280.6369398","@flighthq/signals":"0.3.0-next.1280.6369398"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1280.6369398_1785521646833_0.5555569652143915","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1297.43a5ef8":{"name":"@flighthq/textshaper","version":"0.3.0-next.1297.43a5ef8","_id":"@flighthq/textshaper@0.3.0-next.1297.43a5ef8","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"466dc0a2ffd22639e9a802ea3f0629c90ffeb7f6","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1297.43a5ef8.tgz","fileCount":49,"integrity":"sha512-osJPSl6G+WkCHBeHcO2WAhY5BxVN/SgK/oa5uZaXAqKvkff/h+N2nSAavlPrXnELMJX8Zq9VvngIKUFlJOtLfw==","signatures":[{"sig":"MEYCIQCHCkAi42L9gY1OWCX6pqJlHCcE99IontdwHXs1si3+IAIhAIgNDZhfjM0++4ajsPJkAcDkjfSfIh+erAiSQsMoX+HJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1297.43a5ef8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"43a5ef8e9c9143931917ab0e3059aa12c2dac847","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.3.0-next.1297.43a5ef8","@flighthq/signals":"0.3.0-next.1297.43a5ef8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1297.43a5ef8_1785529947649_0.8346761043421966","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1299.b32cbdc":{"name":"@flighthq/textshaper","version":"0.3.0-next.1299.b32cbdc","_id":"@flighthq/textshaper@0.3.0-next.1299.b32cbdc","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"be3b9b2bfab9fd277e514a6e673af383684e2b50","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1299.b32cbdc.tgz","fileCount":49,"integrity":"sha512-yA8AYoK/Be5OlOH8frkmU6c7u7dfU5+fA6dPmoqKaBjpSCw42U/J16DMivE7np55p76d733lYjkcc3JPLoqCXA==","signatures":[{"sig":"MEYCIQDQeAfZ74whDRr4IuW7pdqjzfKntIxqWrgWZFxh2JYwygIhANeV0Nf+XMih/ujfQ74GSWO+ucNXXAbE5QxtHcbbsVaZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1299.b32cbdc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b32cbdc8a9ef6dcdea862be2c5c92fcc92a814eb","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.3.0-next.1299.b32cbdc","@flighthq/signals":"0.3.0-next.1299.b32cbdc"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1299.b32cbdc_1785531449494_0.8192966288512304","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1315.1d4eb64":{"name":"@flighthq/textshaper","version":"0.3.0-next.1315.1d4eb64","_id":"@flighthq/textshaper@0.3.0-next.1315.1d4eb64","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"d028dff7dec1ddf9e6ffbd393f2bfb9e3a214e2e","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1315.1d4eb64.tgz","fileCount":49,"integrity":"sha512-fpIhpKV3akRz6r8kh7Whv4sbcmTqcJIiLFHoRExsac3lDlvcD5TV+PBAcxVAS6R2X+vZNHBV+OSq7WO2TPc2yA==","signatures":[{"sig":"MEUCIF/auStoATt7vnxyXjZ8m+8uBQjZ/oX3Cy8gHZ0+K/b0AiEA8fyoeIdThwozLBf/ajIwPQm5ssIozE3s4Ca5dESTmlE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1315.1d4eb64","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"1d4eb64e5cd30c8e0127221dec60bb8b71d20f78","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.3.0-next.1315.1d4eb64","@flighthq/signals":"0.3.0-next.1315.1d4eb64"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1315.1d4eb64_1785538437501_0.3075929866756435","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1383.c61de17":{"name":"@flighthq/textshaper","version":"0.3.0-next.1383.c61de17","_id":"@flighthq/textshaper@0.3.0-next.1383.c61de17","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"f27e2372e51e6bab8b5cd8dc858194abe27e6b08","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1383.c61de17.tgz","fileCount":49,"integrity":"sha512-U2+2SvhB0+lqAlUwsuTPCCxXpalTnOZ1Xh6D3KvYDWIiZIfgaWgcHcngIXH+9jzLSuqoKQvCAG9eWHpdyRQ6kQ==","signatures":[{"sig":"MEUCIHlLRLHxdU0cbudmaxcfofg+991SmtJZZPUyAJIsv8IFAiEA4cOqNzfRLQ+ug9LECJauhkkxFyOggJd0kraEDVXWaCE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1383.c61de17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"c61de179af8a12c2fa3b9b7d5389ee302f577a0d","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/types":"0.3.0-next.1383.c61de17","@flighthq/signals":"0.3.0-next.1383.c61de17"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1383.c61de17_1785541525157_0.3310588874845901","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1392.f0bd0cc":{"name":"@flighthq/textshaper","version":"0.3.0-next.1392.f0bd0cc","_id":"@flighthq/textshaper@0.3.0-next.1392.f0bd0cc","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"e1aff771cb8c606969e59a38a3d747cc570d44a3","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1392.f0bd0cc.tgz","fileCount":54,"integrity":"sha512-3In6XED/ncoXO2XvoUTwwi5VOOM8Y2L/ySMKmJVebGVFqpL4KSdaQOEbkMhzLSe2tR/01ErzcywZ/8hECN6GJw==","signatures":[{"sig":"MEUCIQChH7y6WR6cyFEkkC99ERejuGBOL9fno350YR9P3QbTQgIgLz0tiIKZqtE/tgUWxn9+ywtBYsAJc+sgQFks4LWZ1u8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1392.f0bd0cc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f0bd0cc78489e3892e453b30db774455c48445bb","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1392.f0bd0cc","@flighthq/types":"0.3.0-next.1392.f0bd0cc","@flighthq/signals":"0.3.0-next.1392.f0bd0cc"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1392.f0bd0cc_1785545297694_0.5986801691644292","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1422.b585c0c":{"name":"@flighthq/textshaper","version":"0.3.0-next.1422.b585c0c","_id":"@flighthq/textshaper@0.3.0-next.1422.b585c0c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"026048a275eb4a6caea93f24c14d715279b5b826","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1422.b585c0c.tgz","fileCount":54,"integrity":"sha512-MYs8CFwkCZCQXl+8d5c7j6f7SC3qrySUhkkolo38ekDlt2GpONCohaRgCZ8C8U++iaVXbQALYKO0ybxNwnC7mA==","signatures":[{"sig":"MEYCIQCbN8zFWnjFWLEjBr1fPOt5e6u7qrnQU+FbTc2mQhk1OAIhAPZ0j+RInfMdRNCdiuTeV0HwzYFJ4kWCthOJxC+GGbMs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1422.b585c0c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b585c0c0536415b830b48047a685280019e9b16b","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1422.b585c0c","@flighthq/types":"0.3.0-next.1422.b585c0c","@flighthq/signals":"0.3.0-next.1422.b585c0c"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1422.b585c0c_1785549616464_0.3997695832730048","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1435.f870241":{"name":"@flighthq/textshaper","version":"0.3.0-next.1435.f870241","_id":"@flighthq/textshaper@0.3.0-next.1435.f870241","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"332618d83315fb3c815bbe48003c2fe4bf560794","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1435.f870241.tgz","fileCount":54,"integrity":"sha512-dbhYgVa7OxK24wLabAVPmP1+1RXX/F+tjNcFv3Aze9aoTxMuKRGZj/xO/pZzhSG4ASu76a8LlsMyoVkBfc9AZA==","signatures":[{"sig":"MEUCIQDk3FLiafztHbPkMdzQfAs506AGQX3MVDMfOFClfxErnQIgGcsBaQLqU4oIYMzKU7WYMJ8Qmxwvv7NeqxLXNsuWT2o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1435.f870241","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f8702410a0f471fe70ebfaa9f5948103f256d46b","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1435.f870241","@flighthq/types":"0.3.0-next.1435.f870241","@flighthq/signals":"0.3.0-next.1435.f870241"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1435.f870241_1785553393733_0.04107806936499858","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1436.388ef5e":{"name":"@flighthq/textshaper","version":"0.3.0-next.1436.388ef5e","_id":"@flighthq/textshaper@0.3.0-next.1436.388ef5e","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"3084a24f8955a38e0354d5b634d643cf3dd32bd1","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1436.388ef5e.tgz","fileCount":54,"integrity":"sha512-7IoP/nwcOrxTX5pV9uKH85Oyjaw5SFa2Vd4ClvtZJQWljJp9xTI6qbIWnhGl8QaQSL9pIuqdIz5iA+dE0ctooA==","signatures":[{"sig":"MEUCIQC2IiREwrMoyXnjReb9VSSczxd6jIt7fVO9vz5cbuDGNwIgIAxm8nOWvjriLPR6gV3DF6zWFt+S/3GJZxIjcpKF4hM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1436.388ef5e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"388ef5ed36b19fdbaa9706d94b6194c9ccc99dd3","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1436.388ef5e","@flighthq/types":"0.3.0-next.1436.388ef5e","@flighthq/signals":"0.3.0-next.1436.388ef5e"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1436.388ef5e_1785553945182_0.47097162877795573","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1445.14ca01c":{"name":"@flighthq/textshaper","version":"0.3.0-next.1445.14ca01c","_id":"@flighthq/textshaper@0.3.0-next.1445.14ca01c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"2bbc73a4d2f0251930f0a68a031af9e663ce6c0b","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1445.14ca01c.tgz","fileCount":54,"integrity":"sha512-Rx6lcCvL6AYhPQGCmLA2m8BMKWff9/DCwUuGVxuM9XMTLaJIqkjLqaiX5JTMpf3uwEzeKxhstf32hiFWU9HbdA==","signatures":[{"sig":"MEQCIE5drSM4r/bTnKLoUXZZlEtXeeuJhwtIKQVGVbbk8C51AiBeiRe4QFJiSSLDZET3i9qcIew9XAbJa/kZcn5++Rh6vg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1445.14ca01c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"14ca01c129b7714914dd32019913ba94cf91ec18","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1445.14ca01c","@flighthq/types":"0.3.0-next.1445.14ca01c","@flighthq/signals":"0.3.0-next.1445.14ca01c"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1445.14ca01c_1785556616375_0.9939714191367544","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1452.011a16e":{"name":"@flighthq/textshaper","version":"0.3.0-next.1452.011a16e","_id":"@flighthq/textshaper@0.3.0-next.1452.011a16e","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"ca4f2f31d28113b683ba47b4dd27d2859f60a732","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1452.011a16e.tgz","fileCount":54,"integrity":"sha512-mdPnCkhE/mAwSf0hFba/E8LD2rMUDQr0GKkBg/LsJHwqjxfvZ1TlwRLapQ1vC3Fy+s0FkC0PNxgsBrDjGkqg1w==","signatures":[{"sig":"MEQCICm3i1JoTIYFps9H7IRTkWe8wwTQIR9Mj04flp8+7cleAiBI0ycaeQh+T5WVJgAsuKXSnQ684JU8kXhL3SXpbUCDUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1452.011a16e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"011a16efdcc1f9440e3b7b8ff73b798dc3b05523","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1452.011a16e","@flighthq/types":"0.3.0-next.1452.011a16e","@flighthq/signals":"0.3.0-next.1452.011a16e"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1452.011a16e_1785561907966_0.25158338443406647","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1454.b17f8a5":{"name":"@flighthq/textshaper","version":"0.3.0-next.1454.b17f8a5","_id":"@flighthq/textshaper@0.3.0-next.1454.b17f8a5","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"8af8673c8fa57955da8dd7eb9cb5a5e499350bda","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1454.b17f8a5.tgz","fileCount":54,"integrity":"sha512-knlpB6MQ4MHUUItyt8BahhLo/lthwUmNADU5DzJomPz19UdCxFvR9pX37FtlgvG6UNYIN1cdvKeMwU83biuHIw==","signatures":[{"sig":"MEQCIBL5itOWzxQ4KPnF4Eo0iDsqOmRtQoXfAUxwzikX4oupAiBueRQKrXxKfZudxv8ovRrxABbuxaCJSnF4mbN38Eh0CQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1454.b17f8a5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b17f8a544d25917fb598fcc88ea844f78da755ef","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1454.b17f8a5","@flighthq/types":"0.3.0-next.1454.b17f8a5","@flighthq/signals":"0.3.0-next.1454.b17f8a5"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1454.b17f8a5_1785564073705_0.0334072172750115","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1456.ace2107":{"name":"@flighthq/textshaper","version":"0.3.0-next.1456.ace2107","_id":"@flighthq/textshaper@0.3.0-next.1456.ace2107","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"410081012a9cc3843461a34cf4b41c098412d44b","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1456.ace2107.tgz","fileCount":54,"integrity":"sha512-P0SDSv5VFn6X/yNAITKGEuiHjty3Lwt05fiKJoq1SUbvotnoCYLzvlCmwIIGEDgc2WuydL1S7pmtSYFBeSRcgg==","signatures":[{"sig":"MEUCIQCX+vcOSk+vqqO3fkirCYM5izSUvZXD0fKBYK0XZPR6dwIgHZreJ5UXTF9r77Elick5XogZzcxF7Hx3guPLntHbFbM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1456.ace2107","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"ace21074fb9930e46cad2e6f5eb69fddf1e647fc","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1456.ace2107","@flighthq/types":"0.3.0-next.1456.ace2107","@flighthq/signals":"0.3.0-next.1456.ace2107"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1456.ace2107_1785594068017_0.24763186433196327","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1458.0c01b63":{"name":"@flighthq/textshaper","version":"0.3.0-next.1458.0c01b63","_id":"@flighthq/textshaper@0.3.0-next.1458.0c01b63","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"30101e9e00c788095caf581825a79f24c520c72e","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1458.0c01b63.tgz","fileCount":54,"integrity":"sha512-LT2ZKS6ALEgZUATdNqE/IcpxulkzY9Zfk7dHxglPxLdDfZB9+0uBqJKtmBp0IpTsm75y1rO3ckFQBKV6BtwQnQ==","signatures":[{"sig":"MEUCIAhFauozbgcsUSttBTLHHJ/Q+ftLsNMGa+capskaJZ5IAiEA31Mz5OlHCWHk3lN2qcq97tugNZ6lh8o/jS2xDfJ4CAg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1458.0c01b63","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"0c01b639276c03999958d3f3c0bf77927d63227d","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1458.0c01b63","@flighthq/types":"0.3.0-next.1458.0c01b63","@flighthq/signals":"0.3.0-next.1458.0c01b63"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1458.0c01b63_1785596528743_0.6398754579117756","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-edge.1458.0c01b63":{"name":"@flighthq/textshaper","version":"0.3.0-edge.1458.0c01b63","_id":"@flighthq/textshaper@0.3.0-edge.1458.0c01b63","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"8d2afe807bd73909a29554c9e61aa034bdac085a","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-edge.1458.0c01b63.tgz","fileCount":54,"integrity":"sha512-WpIEv2AALFRkmq2Kwa/RfsleOPpaLHzopmLf03jhTcFXWMHplbJpi6VrTsr6o0Wmj7caa76IjGf/9UNcKi7YSQ==","signatures":[{"sig":"MEQCIBR8VU8RmMBL8qsfB9ydPH4QVWyBX+m4SvskdfTWdrz1AiAXDq6OU7PkWw+aGYCbs1WwTYDESzNAyXQAAm4r7ywPzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-edge.1458.0c01b63","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"0c01b639276c03999958d3f3c0bf77927d63227d","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-edge.1458.0c01b63","@flighthq/types":"0.3.0-edge.1458.0c01b63","@flighthq/signals":"0.3.0-edge.1458.0c01b63"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-edge.1458.0c01b63_1785597747062_0.9968868978871297","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1460.2c18805":{"name":"@flighthq/textshaper","version":"0.3.0-next.1460.2c18805","_id":"@flighthq/textshaper@0.3.0-next.1460.2c18805","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"8a5c7342bee3c8b63ebd497717dae10e158bcb9b","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1460.2c18805.tgz","fileCount":54,"integrity":"sha512-Jjp2MR974p6YDeRihQp3buQ01KExoZwvyyN+OLvie8U/+jdCJC+J5O5/6tFFOt53eMW25wp8pG9Lj31OcgUyLQ==","signatures":[{"sig":"MEUCIDMsuB+xwEZbzYSkPARByw8BTg8rWHmNmMKROlRUP1+hAiEAiQUjlvpdqFhE12bN+G8x7QH3sHqv6X8poWf05p5/z4o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1460.2c18805","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"2c18805ecaf9fa94a085a324659ef3fb4f75ab0e","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1460.2c18805","@flighthq/types":"0.3.0-next.1460.2c18805","@flighthq/signals":"0.3.0-next.1460.2c18805"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1460.2c18805_1785600453998_0.19776789707989018","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1463.b454aa8":{"name":"@flighthq/textshaper","version":"0.3.0-next.1463.b454aa8","_id":"@flighthq/textshaper@0.3.0-next.1463.b454aa8","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"fa758d141d234cc5227e3892d5fac258786d8374","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1463.b454aa8.tgz","fileCount":54,"integrity":"sha512-ohEqqqDfWiCJLcVX5RAX9jtFkHELJpxQ1EUj3WTkMaVbtADr2YnhHuql/FhUg5fQEV2KMxHbl4Aq6UcvsAc4/Q==","signatures":[{"sig":"MEUCICyopkJg4Dz8xnlWCMRL2Eiz1HkXjbYIOsoo9EVNJyP1AiEA3QRgzCwP4dgwmyIlNkr9/jmBX5cbLl/veCpwrG06mlk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1463.b454aa8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b454aa8ba371a6f69f26d01dfcdea2908b24081d","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1463.b454aa8","@flighthq/types":"0.3.0-next.1463.b454aa8","@flighthq/signals":"0.3.0-next.1463.b454aa8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1463.b454aa8_1785628887818_0.040777166780627594","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1466.e0866d4":{"name":"@flighthq/textshaper","version":"0.3.0-next.1466.e0866d4","_id":"@flighthq/textshaper@0.3.0-next.1466.e0866d4","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"36ff4f6b1b8552c2f79af806f4ef5367c7d567a1","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1466.e0866d4.tgz","fileCount":54,"integrity":"sha512-t5ydUs28yKng4OsR2KxPghKfw2HxbSWpW+vo7pMJyPiOHSJTrFowFlmluQ0YXVus7UdXYShT2Ky8ASaadlZMSQ==","signatures":[{"sig":"MEYCIQD9X1sJzcubJqs8ksWQJz9SLNwyDKQDHUkRAVAa1BNghQIhAIWaFQNPO3rj0ZxcXWn0tJlIdk2P3ptKbQvwtyScY/uZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1466.e0866d4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"e0866d473f3d07c05f92e0c2c7539dd44f899001","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1466.e0866d4","@flighthq/types":"0.3.0-next.1466.e0866d4","@flighthq/signals":"0.3.0-next.1466.e0866d4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1466.e0866d4_1785634669124_0.2837206901101512","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1473.098a860":{"name":"@flighthq/textshaper","version":"0.3.0-next.1473.098a860","_id":"@flighthq/textshaper@0.3.0-next.1473.098a860","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"0fa28d2387510abf6d199bd6c99c1b3847fd493f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1473.098a860.tgz","fileCount":54,"integrity":"sha512-KBHXy3tWynQEW+PRhTwdaDJhsSj4mYX2waZRg14EuGEfjmToghZHiNrbP9+w8tcrGUs145zBUTLG68ossZmZtQ==","signatures":[{"sig":"MEUCIQCRzUqIt4L6pDxT1trAbF7JVhwUAbp+MsPFvFzrP8kRiwIgV9PdnzJwAd3Gkg9Y0DLqEmllvot0Db/zUNNjsp7Hyyg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1473.098a860","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"098a860274de439d31b77faa19b2521361fd38ea","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1473.098a860","@flighthq/types":"0.3.0-next.1473.098a860","@flighthq/signals":"0.3.0-next.1473.098a860"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1473.098a860_1785644948362_0.7873083521931643","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1494.7333e82":{"name":"@flighthq/textshaper","version":"0.3.0-next.1494.7333e82","_id":"@flighthq/textshaper@0.3.0-next.1494.7333e82","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"787e1064e8ade1601e12d413452c1fd3fc6f9eaa","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1494.7333e82.tgz","fileCount":54,"integrity":"sha512-hCPwJQJMUlxo9ZCSSZqFXDjsaMYkdvGftALKdIU4fsDQoHOyxaUjQ2/PpAqlCyQ75qbuVi7hv6jh2arFCwT5nQ==","signatures":[{"sig":"MEUCIQDK8UyqkqZ4mJXD6mS0C1XOuzbZhX8plZCGP2pYNeQWkgIgRlVWcrbywwz6XSU/qSdcdNnCQQDswKD43EQTI3LG4Sg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1494.7333e82","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"7333e825d9df46d737c5a6557acbed4805e19e57","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1494.7333e82","@flighthq/types":"0.3.0-next.1494.7333e82","@flighthq/signals":"0.3.0-next.1494.7333e82"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1494.7333e82_1785649179248_0.4675148485964835","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1498.065f223":{"name":"@flighthq/textshaper","version":"0.3.0-next.1498.065f223","_id":"@flighthq/textshaper@0.3.0-next.1498.065f223","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"898e8a871eb9987c50dcef1179ccde7e5f55b218","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1498.065f223.tgz","fileCount":54,"integrity":"sha512-+nAT/Y1yTMfOpeDfUfdFFOMkZqS7bZ8nGbBGm6SgUrcwBx0DfmzE9hD1WZsb/fc1fpJx6YDZdPdV4SStlZyPgw==","signatures":[{"sig":"MEYCIQCm+/W26ZYN8OgSS4r7JNLsBrNq6/38ZwqnV2JdVchsVgIhAPqa9cbxi4s2sfWY4DwapekVvEzSduYb30IswZIJ69SA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1498.065f223","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"065f22315021c082f1ee9c5940572179a444e447","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1498.065f223","@flighthq/types":"0.3.0-next.1498.065f223","@flighthq/signals":"0.3.0-next.1498.065f223"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1498.065f223_1785653683544_0.7587487380485121","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1511.9977321":{"name":"@flighthq/textshaper","version":"0.3.0-next.1511.9977321","_id":"@flighthq/textshaper@0.3.0-next.1511.9977321","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"7dfc4616cec42ea2c7fcb392c414a95576616ac5","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1511.9977321.tgz","fileCount":54,"integrity":"sha512-nttNPYTZgZaCOUViUvOZ1W/dYUfeuLl5QzRsWBzijuAKegIuUanPfjDmiJcP711BMPyOBvzcOyKu+zTB+TE8Xg==","signatures":[{"sig":"MEYCIQCY6d9SKb7rJ3L8jSZjoxGavHTb91D50KOSgnzOaWmdAQIhAP8J5bmwPHBOceSdrZp4Emw0BiZxRy2/FwSHcQJFDO2n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1511.9977321","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"9977321a8a2b33948342490df7d752c741aea70f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1511.9977321","@flighthq/types":"0.3.0-next.1511.9977321","@flighthq/signals":"0.3.0-next.1511.9977321"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1511.9977321_1785687990807_0.7792847252067385","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1512.edc0fee":{"name":"@flighthq/textshaper","version":"0.3.0-next.1512.edc0fee","_id":"@flighthq/textshaper@0.3.0-next.1512.edc0fee","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"d6c8c824dcfc1b09299f5d33a876ee9eaeb7d097","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1512.edc0fee.tgz","fileCount":54,"integrity":"sha512-XmANaCEL28SBObdplvb0Q/s1LRDCnvTwlQXozNRJZovV5r2Oiqkm6nExsZBfryOnwQ9ubDJnezDZP9CkgDIhqw==","signatures":[{"sig":"MEUCIQC4UEpnhBClDi2YaKKrzGmAiC4lapQQsedXGieVmvJ57gIgQjvCurq7Ayd3eCmTG9qBiddoyjKzWLFuiUW/E4MxoKo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1512.edc0fee","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"edc0feec3b5cd41669f5274816bc61663f33b598","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1512.edc0fee","@flighthq/types":"0.3.0-next.1512.edc0fee","@flighthq/signals":"0.3.0-next.1512.edc0fee"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1512.edc0fee_1785689329475_0.8060100360951754","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1514.a24d43f":{"name":"@flighthq/textshaper","version":"0.3.0-next.1514.a24d43f","_id":"@flighthq/textshaper@0.3.0-next.1514.a24d43f","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a62ddfdf2d095a12896838a2e1b1d24a3377b801","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1514.a24d43f.tgz","fileCount":54,"integrity":"sha512-JnYhmDKqLlGF7RabYLhxL1BDzsBZeIjl1idGNuJoJufn6nQ0sqlKH9wIUvNkRsIJ5TtYhENYZDRlf5a+5xbyvw==","signatures":[{"sig":"MEYCIQC97fqjPlfgekziHqhzpzGICdM4icJOvhVTw24BJ+eGywIhALvTJ3pclEslHJDxo3ljvwXYDeQcQhsmXNCw4V9MxSoL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1514.a24d43f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"a24d43f2682495cc61a508e4a6c62e0e997917eb","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1514.a24d43f","@flighthq/types":"0.3.0-next.1514.a24d43f","@flighthq/signals":"0.3.0-next.1514.a24d43f"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1514.a24d43f_1785690099712_0.2796974368674128","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1515.d4dc88e":{"name":"@flighthq/textshaper","version":"0.3.0-next.1515.d4dc88e","_id":"@flighthq/textshaper@0.3.0-next.1515.d4dc88e","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"963b8f58c61200e33ed25cbc14939ea2030b31bb","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1515.d4dc88e.tgz","fileCount":54,"integrity":"sha512-cZ6whY6YgmpFjRnJnmquVj5iXUg9qn2+WIrxCx5IzUnXYQNILU8I8+F/z0sOf66e3X+tsaKo3KNTX5y5BAOXCg==","signatures":[{"sig":"MEUCIQCYaeO3XSSLWwogDBlGJh4Ka4RRVbsV0CGQaPBA3CzKXAIgWSgJWbG2uFB/8AArjYw2Kp2LfHc/9rrADrRLisKzGMc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1515.d4dc88e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"d4dc88e6a3844b53342a693f7d64b5e4a6ab6f72","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1515.d4dc88e","@flighthq/types":"0.3.0-next.1515.d4dc88e","@flighthq/signals":"0.3.0-next.1515.d4dc88e"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1515.d4dc88e_1785690286994_0.5372236079348554","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1516.1b4fb2b":{"name":"@flighthq/textshaper","version":"0.3.0-next.1516.1b4fb2b","_id":"@flighthq/textshaper@0.3.0-next.1516.1b4fb2b","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"52a5e390338dcff0c522d9d7375a306a1b67f63a","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1516.1b4fb2b.tgz","fileCount":54,"integrity":"sha512-bEIw+bx3SR2GGtsuUI3gFDURh8KgwiO68qUrRkdcKDJLp0QB8v+kWJVwHPwuObREB//H4/fpOIea2lWC6F1UTg==","signatures":[{"sig":"MEQCIE3uHoY33929/7P7vYO8Izm9YB6PJ+PZLtDvPOyJrXZcAiAs9kPdRFs/WgKx4jKrweMc7+nUvDcXQS9xScB5SiraJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1516.1b4fb2b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"1b4fb2bdffc6d3f23e9bfc8bca0211d211284c65","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1516.1b4fb2b","@flighthq/types":"0.3.0-next.1516.1b4fb2b","@flighthq/signals":"0.3.0-next.1516.1b4fb2b"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1516.1b4fb2b_1785692196200_0.9939436697200281","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-edge.1516.1b4fb2b":{"name":"@flighthq/textshaper","version":"0.3.0-edge.1516.1b4fb2b","_id":"@flighthq/textshaper@0.3.0-edge.1516.1b4fb2b","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"37c7529cadfcfaa62b78d20ac86a06ee1a43cd77","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-edge.1516.1b4fb2b.tgz","fileCount":54,"integrity":"sha512-d2k9QYD1gb/dMnEqnPN/0xt9ruI/l9XamJndi1TeOd2pBL07P3keWTX/NpdFlLtyLScyRdAPF/T9yoIBUSQ3/Q==","signatures":[{"sig":"MEUCIDXAAdduPvboNyyn5FuOPtaN1QdLKJZ6ejmJeZ0GpRueAiEArCZcC3FlKDu260sJMd6l0WZGeeKDMDsVsb1/4rSGkIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-edge.1516.1b4fb2b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"1b4fb2bdffc6d3f23e9bfc8bca0211d211284c65","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-edge.1516.1b4fb2b","@flighthq/types":"0.3.0-edge.1516.1b4fb2b","@flighthq/signals":"0.3.0-edge.1516.1b4fb2b"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-edge.1516.1b4fb2b_1785693532864_0.24761762780404872","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1529.90e58ad":{"name":"@flighthq/textshaper","version":"0.3.0-next.1529.90e58ad","_id":"@flighthq/textshaper@0.3.0-next.1529.90e58ad","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"98575f503dd43bd9a5af570ea86403d17a94e6d2","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1529.90e58ad.tgz","fileCount":54,"integrity":"sha512-kwzXpfA9INOfvtYA6CBYDZz5/rK27lshymrJ9OEcvtQHH0Tk2rVVKHp6un6xMZTyPWJfq0UfKWCJdxi7UdKbmw==","signatures":[{"sig":"MEUCIHdkxVhVnio3xQ9wIDmi/tUnn9PQZRK4fYqrZc29Qd2OAiEA2IdR6Sr2TA47n021RBqtvtF0IeOFgW40wTuDZpd8ihQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1529.90e58ad","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"90e58adf01930ef7c7fcdc6eb5a687e120ecb8d3","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1529.90e58ad","@flighthq/types":"0.3.0-next.1529.90e58ad","@flighthq/signals":"0.3.0-next.1529.90e58ad"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1529.90e58ad_1785694932188_0.9085228544788582","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1530.70058bd":{"name":"@flighthq/textshaper","version":"0.3.0-next.1530.70058bd","_id":"@flighthq/textshaper@0.3.0-next.1530.70058bd","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"5122c1db4a67b29d70fb46d6f1ec944785d06a3d","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1530.70058bd.tgz","fileCount":54,"integrity":"sha512-N/SbKfrqJjuwJv9Fi7kP+FYpTTY+fkJCoyIa/E47++FwQTT/b/hhaHMeMvSg/y9RNJRmYBUOCN2jdoryB38nZw==","signatures":[{"sig":"MEQCIAa9268khFbp5x4h+7V6CajiWpFE0CSb59Q3z9F6iov+AiB/hMHG/HS6VsFeVQ19bxP+TUIXxUaPcL+zR+mKqxRy8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1530.70058bd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"70058bdba1117a9909641d6e76f0bd88a307a090","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1530.70058bd","@flighthq/types":"0.3.0-next.1530.70058bd","@flighthq/signals":"0.3.0-next.1530.70058bd"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1530.70058bd_1785696713242_0.22648970212627573","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1543.f490ae8":{"name":"@flighthq/textshaper","version":"0.3.0-next.1543.f490ae8","_id":"@flighthq/textshaper@0.3.0-next.1543.f490ae8","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"92f060d2d5b3ea1a4c6ecbeb9a2694e20fb72c5c","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1543.f490ae8.tgz","fileCount":54,"integrity":"sha512-IHZgSRQNxB6p5oC59ysFPDaiYoZ9TjTzjt595hxrbebE58B0F3V4xKUmJvwNJ30v93Mgb5jBY3sZyPzx48BSyQ==","signatures":[{"sig":"MEYCIQCBxmjsAZWakqVwEp2Yh2plvhxoMxYCsOsEvspMIkEHogIhAPOfFVlFeHOw3IlEw/osMA5qhuMWeOBvnl+PqsXJ+NOE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1543.f490ae8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f490ae89ca1ff55aec63b1275cf5932dca9736c6","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1543.f490ae8","@flighthq/types":"0.3.0-next.1543.f490ae8","@flighthq/signals":"0.3.0-next.1543.f490ae8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1543.f490ae8_1785701606097_0.6448363573638012","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1560.03a2b36":{"name":"@flighthq/textshaper","version":"0.3.0-next.1560.03a2b36","_id":"@flighthq/textshaper@0.3.0-next.1560.03a2b36","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"14223755b5ebb36283457309900721939bec7e6d","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1560.03a2b36.tgz","fileCount":54,"integrity":"sha512-SZB/D8nGoONz0nyYbbQHfwVyuQ9DUgw/kKSblvaF+2e2kGLXSeDhuy+a295lDTIwpNybiFOPPKa2Y4CNv6G85g==","signatures":[{"sig":"MEUCIBDZBksJSrMyV8AJygrR5bBzEgIMH2Gn7eqchfnwljLGAiEApNZL4D6FXbxDHt8S3ni/WAKhQfd+THg/nKkbSVPXG6k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1560.03a2b36","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"03a2b36a489512230a9c11c37e9759f6544e8393","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1560.03a2b36","@flighthq/types":"0.3.0-next.1560.03a2b36","@flighthq/signals":"0.3.0-next.1560.03a2b36"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1560.03a2b36_1785702496309_0.6762068674718245","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1562.75af469":{"name":"@flighthq/textshaper","version":"0.3.0-next.1562.75af469","_id":"@flighthq/textshaper@0.3.0-next.1562.75af469","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"395a2dd332877f6f090bc8f2c43141e2e41322a3","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1562.75af469.tgz","fileCount":54,"integrity":"sha512-QbIEH2DwHbY4pAq/vwlvdAkh2j5XpSIAeoX1Gh5aVrv0fL7K3jortMClJ4qVDeWhZ2EIflGpNDWPBk91pQxBrA==","signatures":[{"sig":"MEYCIQDn/822edR2OeBIpG/0R7tdcUNqc21OMYXA/e7m1+UMagIhAL0jUYIiHa5OYPlr+wlsdYOgS0ZxiE9MiOvOPc+tPqU+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1562.75af469","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"75af469acfe0685193e57cc5f2a1e572dd3b9154","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1562.75af469","@flighthq/types":"0.3.0-next.1562.75af469","@flighthq/signals":"0.3.0-next.1562.75af469"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1562.75af469_1785703267451_0.593908423572344","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1566.dcdf1d3":{"name":"@flighthq/textshaper","version":"0.3.0-next.1566.dcdf1d3","_id":"@flighthq/textshaper@0.3.0-next.1566.dcdf1d3","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"c657de92712fdbdb5c9a694b610ca4616b62e86f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1566.dcdf1d3.tgz","fileCount":54,"integrity":"sha512-bMzI1Um6cJ2vvjZPDkJ7oXvU0r+Rk8LWwtEIuK42Zj3KUfzvdlyl/J6A6FGplw+gfinnLpYFWoq6WybjGnG06g==","signatures":[{"sig":"MEUCIHJvI8YeemgGy/x5Yuio+pL2odwj7iLSxZOqDK1jv1mYAiEA4YDdyJ+2ECBhLqC3EseUWonPBXiwOYijdzM2F6Cr9aA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1566.dcdf1d3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"dcdf1d380b7450003377fb12aa1ceeaeedf1de6b","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1566.dcdf1d3","@flighthq/types":"0.3.0-next.1566.dcdf1d3","@flighthq/signals":"0.3.0-next.1566.dcdf1d3"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1566.dcdf1d3_1785704037480_0.01896593037274541","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1584.a68fe91":{"name":"@flighthq/textshaper","version":"0.3.0-next.1584.a68fe91","_id":"@flighthq/textshaper@0.3.0-next.1584.a68fe91","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"0268c24f4c80209b3c1d1b1421b781f4dc2d9de1","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1584.a68fe91.tgz","fileCount":54,"integrity":"sha512-N1Ig5YXW8qceI0kUNuIxHCVbupEWiOkj1cb6nAZoNQ8ct8cLxFhVVPtLkzj3RW0UQjdDpi4unz/bjhc2zOiXjg==","signatures":[{"sig":"MEUCIQCpIEUh5ZTWHBBUVsgVfn7oZFZQVpase5f/ffomAjrE0gIgNSXF1JkYoQo9OMbONl5WQx1Knb2GyrjpTd7afQYbczY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1584.a68fe91","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"a68fe9137057f2a95b99ac069dda971f014de061","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1584.a68fe91","@flighthq/types":"0.3.0-next.1584.a68fe91","@flighthq/signals":"0.3.0-next.1584.a68fe91"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1584.a68fe91_1785707780701_0.8667127904255252","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1585.17d10c4":{"name":"@flighthq/textshaper","version":"0.3.0-next.1585.17d10c4","_id":"@flighthq/textshaper@0.3.0-next.1585.17d10c4","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a564ff59d466da00294347a2deb574104f312bea","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1585.17d10c4.tgz","fileCount":54,"integrity":"sha512-VBzfHfQbV/gsbmQezlRW83JMGjnNEkcIzRy+cxT6crL7lDLdx2zM/eeXWZjTazBrlVJeYxoum4F1VGnKFMCXsQ==","signatures":[{"sig":"MEYCIQDzPH3yNbW36tHCHsSqkLvHybAqRVVYoeYtzdRQA4uKXQIhALq1IovdjsLxBmmJDynf1xBiKBetdeVC8slZx5Hu5RzJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1585.17d10c4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"17d10c463542e9b4d591a307110b94f769643097","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1585.17d10c4","@flighthq/types":"0.3.0-next.1585.17d10c4","@flighthq/signals":"0.3.0-next.1585.17d10c4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1585.17d10c4_1785709735399_0.954960718438439","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1593.a47f94a":{"name":"@flighthq/textshaper","version":"0.3.0-next.1593.a47f94a","_id":"@flighthq/textshaper@0.3.0-next.1593.a47f94a","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"3f6dba24c8227fcadd91f8c2a8a17ded28f8356b","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1593.a47f94a.tgz","fileCount":54,"integrity":"sha512-MI1ZZVQE9TPA7NuFRzFvCFUCVeokwjsHfsy1htFwMgJRTKyTk7KZkdaSdipKGsbTgjgtFmk0bCV2Q9q3J0Oh+A==","signatures":[{"sig":"MEUCIEKEx0K/4RvOWu7Y1b4E5dBrPAfepVT7AIgzmifYEberAiEA6kOK6puyHCQ1BmnsrByASKMFc6P4mWMt1kAV7H11XHk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1593.a47f94a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"a47f94a9e2113c26d8873e31b600d1fece03e41a","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1593.a47f94a","@flighthq/types":"0.3.0-next.1593.a47f94a","@flighthq/signals":"0.3.0-next.1593.a47f94a"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1593.a47f94a_1785710071413_0.42529656668041627","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1595.4d49b41":{"name":"@flighthq/textshaper","version":"0.3.0-next.1595.4d49b41","_id":"@flighthq/textshaper@0.3.0-next.1595.4d49b41","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"841d8083b9878bd50380e48f34bb4d7623126413","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1595.4d49b41.tgz","fileCount":54,"integrity":"sha512-iGyvHyfI+keacpSNf9Yze+l+6V7ofmAc+8x9VYyyFHKYBCIF2+QehJ4fc5LtIqm/EFSTuzlnJm/QwucDNDSiOQ==","signatures":[{"sig":"MEYCIQClly2qWv7Do4/51LVLvBgHDLmfP+E6bcdQPTiq8i+XCQIhAOfPCxZUHX2GPybtIhBJQltAV83v0Kz+WceEbG91t9tq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1595.4d49b41","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"4d49b4121dc50784983e62641000a5c86f75889f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1595.4d49b41","@flighthq/types":"0.3.0-next.1595.4d49b41","@flighthq/signals":"0.3.0-next.1595.4d49b41"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1595.4d49b41_1785710635269_0.04369623651228283","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1601.12b771e":{"name":"@flighthq/textshaper","version":"0.3.0-next.1601.12b771e","_id":"@flighthq/textshaper@0.3.0-next.1601.12b771e","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"1e51314ecd7d357f06dc78a3a62493a6e1a37c1a","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1601.12b771e.tgz","fileCount":54,"integrity":"sha512-G7nIijqgWFdhcq05K2ZGl14+8glV0HCnZXD58U9n5sHXaVmsjOMKsNm4oHz3sn9Vr5nWs7e73UVqdenIb0EbhQ==","signatures":[{"sig":"MEUCIQCRYv5Cil7k4sfqfQvlTOGyXVJ0s3eIsOgWqdwvq8G7HwIgE++/Q7JYfktasBsxpa6N/wccDa2oYPRmUShMeNZmoeo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1601.12b771e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"12b771e93c8c0cbaef5618df4216aef7600807dc","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1601.12b771e","@flighthq/types":"0.3.0-next.1601.12b771e","@flighthq/signals":"0.3.0-next.1601.12b771e"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1601.12b771e_1785713163848_0.811976797273116","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1665.6235922":{"name":"@flighthq/textshaper","version":"0.3.0-next.1665.6235922","_id":"@flighthq/textshaper@0.3.0-next.1665.6235922","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"862035dbf98c2a98c7b91193a3a3f8149f04ee08","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1665.6235922.tgz","fileCount":54,"integrity":"sha512-FbtOad+Ekqrt2MPosuRlyujXVji+8GatM7HNpUbmFspyk73xRswsUw7Bjevz/3dtoSutRH0fzRrUw9jirzdJfw==","signatures":[{"sig":"MEQCIAXPp+gxdE+jSsGpvfJUXD+cjXh+d8Da2EBaRYH4Dt9BAiAPQkR1GsRbHoB6xWnBrF2khmzYBtjqJCzCTKdLETgcYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1665.6235922","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"62359229b292265b7e752a22f24960d14eee9299","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1665.6235922","@flighthq/types":"0.3.0-next.1665.6235922","@flighthq/signals":"0.3.0-next.1665.6235922"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1665.6235922_1785728870759_0.7948378817765289","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1669.5808974":{"name":"@flighthq/textshaper","version":"0.3.0-next.1669.5808974","_id":"@flighthq/textshaper@0.3.0-next.1669.5808974","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"9e4c276471f0aee57d2352260adb044904cd63b3","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1669.5808974.tgz","fileCount":54,"integrity":"sha512-DaaT8OylmjIYUvqlHsZm5PtM0xrGkgsK2OmwUGcs8GQwEZKMlCM36CEguWihh6h5lZtinrZFNU9KGwG24mppXQ==","signatures":[{"sig":"MEYCIQDEXahZ/XubbTO1n8z8HQYzjMZtd7xB9xAlVoOw2G9kjgIhAL0BpfdydQ7IQHGPlzbjIT+1SvoXVZvGFo6rqN8D4gjK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1669.5808974","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"580897420aded2f3b296e3ef98439dc6eddc2b35","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1669.5808974","@flighthq/types":"0.3.0-next.1669.5808974","@flighthq/signals":"0.3.0-next.1669.5808974"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1669.5808974_1785731132043_0.15415211838723097","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1689.2810c05":{"name":"@flighthq/textshaper","version":"0.3.0-next.1689.2810c05","_id":"@flighthq/textshaper@0.3.0-next.1689.2810c05","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"804dca111afe33a042069f07be1682b47e31910a","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1689.2810c05.tgz","fileCount":54,"integrity":"sha512-/kx2dg8mVBNkGfdye/hTJX/ol0qm8kyQbjs+dV+gW6O9FXm1CwYMjjRAXb4b42YRqZGkQDR2Ut6NQNTmAhEyhQ==","signatures":[{"sig":"MEUCIQCQJfubxIygE4SZemB5D62njGJsI2CTF9D9TQWDIhk9QwIgHivnhsY3OTwxcuE2iLCfB4D0alDOoaXwrO5Nf80W9eg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1689.2810c05","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"2810c055e3f7afdd6b6f202ae90ae8c2f8bb6230","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1689.2810c05","@flighthq/types":"0.3.0-next.1689.2810c05","@flighthq/signals":"0.3.0-next.1689.2810c05"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1689.2810c05_1785736648413_0.4672241288897123","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1692.f1a7a9a":{"name":"@flighthq/textshaper","version":"0.3.0-next.1692.f1a7a9a","_id":"@flighthq/textshaper@0.3.0-next.1692.f1a7a9a","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"fe6be621374e07a32505243b87d88f919f271a95","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1692.f1a7a9a.tgz","fileCount":54,"integrity":"sha512-3/bNn6l5rpmfMlm60SusxOMy6LffzvCs1Yh0QUVLnMDAX9lUG6aWZSnEOHBmlttvn8OKNT+n7H8EEF2FHWkMwA==","signatures":[{"sig":"MEUCIDRMnRm9tJuMvsv+xGixqmxIPBIZWKbaBLtaVEPOaQTTAiEApQqg3msh2NH2zAbAQFt0kLTdwD/GHPZN0V+uDBnkJBI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1692.f1a7a9a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f1a7a9a02f244a18b0e60c136ca1a801ab90f5a3","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1692.f1a7a9a","@flighthq/types":"0.3.0-next.1692.f1a7a9a","@flighthq/signals":"0.3.0-next.1692.f1a7a9a"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1692.f1a7a9a_1785738739636_0.3852413244960764","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1702.8973fda":{"name":"@flighthq/textshaper","version":"0.3.0-next.1702.8973fda","_id":"@flighthq/textshaper@0.3.0-next.1702.8973fda","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"e364fdec686451b655ad82e8fbd6fd75d3e59671","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1702.8973fda.tgz","fileCount":54,"integrity":"sha512-rkFEyXvuVwrAgfZVNzEV7z4WXdpspseezv+CbOBDcI9f/IRHDQl9joFSyYEpxr4ICSkUJ0+Vt7WN/IAjc8DRMg==","signatures":[{"sig":"MEQCIFc0LGP70UtklIze3mhEGbQrsVlguGtht5pVBHQP9S4qAiAlFyOLyEbHWK1BeQrm2V9N/xHJqTRxdiLFDlFYrNvVyw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1702.8973fda","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"8973fda06f5ca9231f90894481f4f010bf0fd1e8","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1702.8973fda","@flighthq/types":"0.3.0-next.1702.8973fda","@flighthq/signals":"0.3.0-next.1702.8973fda"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1702.8973fda_1785739154663_0.9203061562888255","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1704.8557784":{"name":"@flighthq/textshaper","version":"0.3.0-next.1704.8557784","_id":"@flighthq/textshaper@0.3.0-next.1704.8557784","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"1e0a143359453a532dd6a085ed2175db9a912cc8","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1704.8557784.tgz","fileCount":54,"integrity":"sha512-bmqPzZECAtAg4BuFmYhZPJsAK2o92Z464yvBE2EdKi1W76KgPchofWepAzRWt2ccobhhsaZ3t24LGkhjjPC55Q==","signatures":[{"sig":"MEQCIDVdpRNbR7VPYofCvRKBwqbQBM1JalG5ODw/vIvmR+rSAiAfHol8z8heqxp9QkFpRplsexSohHjTTj+NPV9JvmoCxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1704.8557784","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"85577843ea03c36dd8a14cd4e70c9c05ecb424bd","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1704.8557784","@flighthq/types":"0.3.0-next.1704.8557784","@flighthq/signals":"0.3.0-next.1704.8557784"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1704.8557784_1785739812079_0.7778813092949848","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1714.3bd86f1":{"name":"@flighthq/textshaper","version":"0.3.0-next.1714.3bd86f1","_id":"@flighthq/textshaper@0.3.0-next.1714.3bd86f1","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"7cfaa651050dbc36d112d6fd3d0b38ed05dd76e4","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1714.3bd86f1.tgz","fileCount":54,"integrity":"sha512-A7K9eRULkc2S7Tcwj913ExYahWqoKS3QS8H/zQtf4i5NF8FMz80xKVuu+mUtrfzlO9Gr6n/8K0OFK8OHHXf07Q==","signatures":[{"sig":"MEUCIHd/rrGxADEBq1PFMaUBdsTiU+neEf9Y6zr5O4o6dykvAiEAhLxvkXdnX+UjbjEDFWkQu1qF/D41tSOsJkPI9mAlLDs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1714.3bd86f1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"3bd86f149da805604525295161e558ccd0e3bbea","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1714.3bd86f1","@flighthq/types":"0.3.0-next.1714.3bd86f1","@flighthq/signals":"0.3.0-next.1714.3bd86f1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1714.3bd86f1_1785869736059_0.22293890211050815","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1728.26853f6":{"name":"@flighthq/textshaper","version":"0.3.0-next.1728.26853f6","_id":"@flighthq/textshaper@0.3.0-next.1728.26853f6","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"5929522fd6baadc2db68bdcd15bf26f2d4d45e22","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1728.26853f6.tgz","fileCount":54,"integrity":"sha512-25AGtMKc82psfBBwWwu416vrMgkCV/1MIRJZCqXqC1iKXMAvWwFu8awlQ2Sxt5NiPsBzavIHksEche/s0zCktg==","signatures":[{"sig":"MEUCIDNGDbraAf9uWKcew8/2OwXZU4GWdyc+vj633lY8QGf0AiEAm20AGeDhmq5m1tIQZ6SW46f+YPR8BwjAudOALY8wegM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1728.26853f6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"26853f60cbb609cfcf85603054d88b2ed96f51e5","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1728.26853f6","@flighthq/types":"0.3.0-next.1728.26853f6","@flighthq/signals":"0.3.0-next.1728.26853f6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1728.26853f6_1785873238092_0.11046301119883606","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1729.f927a3b":{"name":"@flighthq/textshaper","version":"0.3.0-next.1729.f927a3b","_id":"@flighthq/textshaper@0.3.0-next.1729.f927a3b","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"45b082965a16c912a8db4fb305e5f2d278acd678","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1729.f927a3b.tgz","fileCount":54,"integrity":"sha512-K0HrvEFYi5sZB5ZTzwdcFDiJNDwtHM8Chj26U5KKEnRs4ZOgBnDvRCohjElTJgjYw0gvmkGFI2TdRzTrsA1/uw==","signatures":[{"sig":"MEYCIQDjdFQEewGGSP90Yu5S0dArhlfFSKNO6JJ9GmJlC1N0KAIhANG4Z8nh528YYUAy9YgQNkLUsjSAVsmzYd3UTfIcCPIH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1729.f927a3b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f927a3beb1d6779d73bf2f4545f3b2a736a9a638","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1729.f927a3b","@flighthq/types":"0.3.0-next.1729.f927a3b","@flighthq/signals":"0.3.0-next.1729.f927a3b"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1729.f927a3b_1785875428736_0.98744068571635","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1781.5d072ef":{"name":"@flighthq/textshaper","version":"0.3.0-next.1781.5d072ef","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.0-next.1781.5d072ef","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"52c236bf31faf72f4696c9706242d7f30d5e41bf","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1781.5d072ef.tgz","fileCount":54,"integrity":"sha512-HihxAFMXaX9SMxUbuVmXC0l5Dzhzpw8R7v4qstZct6S09JpBSmhPckKlLzTG8Nz6wTQsVhrSlHxcWHsk+W4Bng==","signatures":[{"sig":"MEUCIHNZ8x7aczSSd/gxMm6LbGt46fwHq05sX1l6OXeBKgxDAiEArhC7ezzyFmlHJBrJf/9mCNPFQpQ7M6wqiOOjlhntUI0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1781.5d072ef","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"5d072ef1ec95fe0f4e269eaea912a652d9f99257","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1781.5d072ef","@flighthq/types":"0.3.0-next.1781.5d072ef","@flighthq/signals":"0.3.0-next.1781.5d072ef"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1781.5d072ef_1785888124675_0.14606185808838767","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1783.cd11ab1":{"name":"@flighthq/textshaper","version":"0.3.0-next.1783.cd11ab1","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.0-next.1783.cd11ab1","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"390b662d98662f80ada0202489f98c9b4bb040c8","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1783.cd11ab1.tgz","fileCount":54,"integrity":"sha512-BlqpPabChYMniH8kq7XHRPGFEk9YbU7oVdfuHa51OIyH1iYHUy5L4S0Up8ZpXoaDbgJhn7jQRIrmFZfMMQnYog==","signatures":[{"sig":"MEUCIF0IzCS9Nt+yhj5L2RjO5unl/jIiNhhVnv4cofhlDsPiAiEAsimHOZD7DHec4shoDnn/mIVLTYadRJmtqf2i1wIl16c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1783.cd11ab1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"cd11ab1582113745b9db8cca5be9a243af50aa33","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1783.cd11ab1","@flighthq/types":"0.3.0-next.1783.cd11ab1","@flighthq/signals":"0.3.0-next.1783.cd11ab1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1783.cd11ab1_1785889494494_0.7422092630142612","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1848.58f06fb":{"name":"@flighthq/textshaper","version":"0.3.0-next.1848.58f06fb","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.0-next.1848.58f06fb","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"9342403ab0b7c1f87890d180561ea94f6af76408","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1848.58f06fb.tgz","fileCount":54,"integrity":"sha512-vyT6kHKgSGkEo0K89QYmdRTF/jmwcHytcQ1NftzpM2lTNBwyxxDfVMys4aEeGWuXem6FrqqnaURVa3QMk/B3DA==","signatures":[{"sig":"MEUCIFUA2oa6pWJKe6PuCncFS4AfMfhR9gNtaID0IPJibIcoAiEAns9wMJK6Fe/NHzGVT3UCeYty6oQOl5ZvpNITb0UDxko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1848.58f06fb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"58f06fb6be36174581712d5f9194402fabce7a9e","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1848.58f06fb","@flighthq/types":"0.3.0-next.1848.58f06fb","@flighthq/signals":"0.3.0-next.1848.58f06fb"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1848.58f06fb_1785892222479_0.8994770053406758","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1849.a370765":{"name":"@flighthq/textshaper","version":"0.3.0-next.1849.a370765","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.0-next.1849.a370765","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"bda78d934ffa4a25c7de4dada8f3fb8175ab99a3","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1849.a370765.tgz","fileCount":54,"integrity":"sha512-fNsRRCddEeX5Nlp9gdFFMG6mqBEPjRmcSVRfVccE2ZMr4ZKEl40EU1WQKVfKv5j5qJoogQkHcaoQ+TNaSXqEQA==","signatures":[{"sig":"MEUCIDwYgFtq653PXZQw1qzWpi6a3RWa73dmeZQtu4Gh3koVAiEAlAK8tHBfXv0MlwVi4oIGqEM9ClECLrxz2ShCHuWTWLk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1849.a370765","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"a3707655f8c25ac48a542bdcd08294d26459d4ee","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1849.a370765","@flighthq/types":"0.3.0-next.1849.a370765","@flighthq/signals":"0.3.0-next.1849.a370765"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1849.a370765_1785892571553_0.6090483088272853","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1872.c2b1f7c":{"name":"@flighthq/textshaper","version":"0.3.0-next.1872.c2b1f7c","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.0-next.1872.c2b1f7c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"2af548fb97a0202b7d035c62ad293fb3fa0b63a3","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1872.c2b1f7c.tgz","fileCount":54,"integrity":"sha512-NZW8SzQtG57T6dnvAbVUch9jKr2Yq2QHJDc+1QgDoU/eyWgnq+RiHNtAFxOmdsJX/4P5AWHRndOTZ6ZkpnwXAg==","signatures":[{"sig":"MEYCIQDSPIzHoWMLpf6xfHTcfTabEplZRT3gynM40jzQbnnGSQIhAP4XGII5wKKTP+TwkWR2BeCENF4ZxB+xA+KeDurm3fbI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1872.c2b1f7c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"c2b1f7c8bf02223fda04edd333cf5480037ea2ee","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1872.c2b1f7c","@flighthq/types":"0.3.0-next.1872.c2b1f7c","@flighthq/signals":"0.3.0-next.1872.c2b1f7c"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1872.c2b1f7c_1785958149999_0.08913685500213786","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1883.9cd374b":{"name":"@flighthq/textshaper","version":"0.3.0-next.1883.9cd374b","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.0-next.1883.9cd374b","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"365ea2e2cec9b15994f525ad55e6da99112f82c8","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1883.9cd374b.tgz","fileCount":54,"integrity":"sha512-ZeRZPD4T+p1TnxTS7FBbmGyYQCFv9jxes8pLfZAOcqoP0lA1byB1eQ6E7MLAC+SAJduaoiptUiaAPvvkQxsuoA==","signatures":[{"sig":"MEUCIElpeZJ8lnnm6aBUl7s/jf1LAS6sYuPPtB305xFrNgAzAiEA1XcanezDpOj1WgGdp5BInsMI5axZFZsL0CqqXm/nhhA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1883.9cd374b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"9cd374ba3b5611b8533a5a018a73b47c2f29cfa9","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1883.9cd374b","@flighthq/types":"0.3.0-next.1883.9cd374b","@flighthq/signals":"0.3.0-next.1883.9cd374b"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1883.9cd374b_1785975204456_0.19524523255078852","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.1887.cad72aa":{"name":"@flighthq/textshaper","version":"0.3.0-next.1887.cad72aa","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.0-next.1887.cad72aa","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"515fed4a502e7bbb14d45844f2b5d7c2d5773ed2","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0-next.1887.cad72aa.tgz","fileCount":54,"integrity":"sha512-wDsyxqlr1ophNSJ8o8URukbpuWHEoGGljsBZyzpuEKSulw5MF4gY8ouEyci+Siix5ZOScR3Pmzr4wc1nmVEZLQ==","signatures":[{"sig":"MEUCIE3bUT/02QaWMmwh8TObRVY7mfFNPkmt1pzuUbiPtoi5AiEAz7s2JqeBcnHB0HYn8OgV/YY4If14ytGOUeSAQ4QuUV4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0-next.1887.cad72aa","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"cad72aa3ea4e6e76a050918a403dcb10efdfcb0d","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0-next.1887.cad72aa","@flighthq/types":"0.3.0-next.1887.cad72aa","@flighthq/signals":"0.3.0-next.1887.cad72aa"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0-next.1887.cad72aa_1786028850223_0.22838386951002887","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@flighthq/textshaper","version":"0.3.0","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.0","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a08732d8b63ac2d0944d2ce14757d90394aa5371","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.0.tgz","fileCount":54,"integrity":"sha512-Dj84cgENFoBHGRIHBBIWfRkwb6VE6Ofk0/dsydmQy3j0EhHLX0KzwuLasTZw2bDfgte3tvTkq31dwISuqmxtHQ==","signatures":[{"sig":"MEYCIQC5XnUTDo+T0u1kr77AgeVlji1nhwNBdlJV+ONxyOJJMwIhAJje2lUq4ZEgt/0lxXsHVumsP4v1W4+/dg0poPu6fC/+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91421},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"2f0f1bc3af4a344bc89969f2750b3b859075b486","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.0","@flighthq/types":"0.3.0","@flighthq/signals":"0.3.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.0_1786049271567_0.22387697295931996","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.209.43ef1bc":{"name":"@flighthq/textshaper","version":"0.3.1-next.209.43ef1bc","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.209.43ef1bc","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"ba1597f039f5dfb81f4d870d2a23be7ee31aafc2","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.209.43ef1bc.tgz","fileCount":54,"integrity":"sha512-L3yh6dbUEzkjY34+EZi0gvy9xEVaRrhYX5Br1b+heWR/tgffdkZfAlSg05ozNwXn/0cGxpUTZwNuWYiXEQBoFQ==","signatures":[{"sig":"MEUCIDCTEk+gp1iUecIqipoazQiHDjZwjXU9hBI4Sr7naFDgAiEA7IrAHolV8Jb6Ei7+R9mqVQiqXBv0Zri6r+MEVAEnkPQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.209.43ef1bc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"43ef1bce2d18b8a0c1f6ce1d3941649897ca144d","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.209.43ef1bc","@flighthq/types":"0.3.1-next.209.43ef1bc","@flighthq/signals":"0.3.1-next.209.43ef1bc"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.209.43ef1bc_1786136589874_0.24260277308368394","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.320.fe56fc2":{"name":"@flighthq/textshaper","version":"0.3.1-next.320.fe56fc2","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.320.fe56fc2","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"d833d99c474e3a706a08e8ab8b19fadb7d77d46e","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.320.fe56fc2.tgz","fileCount":54,"integrity":"sha512-AgoJ0cQYdHUFbFH5VPqAkdQEth1phczfIQ0tAMfFJkimjD6V05azNsmjRb9gV5qZ4SIpmUW9bXfdehFQn75k7w==","signatures":[{"sig":"MEUCIQCyfh1eVS2+bRBUrSeHzGe831owL3UzgDXlW/fIYgu2TgIgJz3HX01vw87MObhzImLoy87WkDPDRuhFpxOb9avUxFc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.320.fe56fc2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"fe56fc2367e1ea56588060d180063a6f305a3039","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.320.fe56fc2","@flighthq/types":"0.3.1-next.320.fe56fc2","@flighthq/signals":"0.3.1-next.320.fe56fc2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.320.fe56fc2_1786158603639_0.8984517668665577","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.348.8115937":{"name":"@flighthq/textshaper","version":"0.3.1-next.348.8115937","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.348.8115937","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"8b3ff4e66e64a2f85a87966d2acc04b6b3175cf2","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.348.8115937.tgz","fileCount":54,"integrity":"sha512-0Ea9sdz9CN7YnjuOeA/sNkcoswvoMcNZY/7XYQQm/lU3MBBCFxCvaZCutpEWlmGoHWDg31U5KQi75RhwfMHkSA==","signatures":[{"sig":"MEUCIBFKtHUPBAECjDBSBXcyIknZ04KYmznfuAy/7JM2eXYtAiEAq00dq31/lf74Jd7vuYU4c2h0v6CJjwwuvG84EkqjEr4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.348.8115937","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"8115937ba9cc3c08ec2eacba7894a59aabae1a1c","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.348.8115937","@flighthq/types":"0.3.1-next.348.8115937","@flighthq/signals":"0.3.1-next.348.8115937"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.348.8115937_1786165887792_0.9599870681435096","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.385.e32d957":{"name":"@flighthq/textshaper","version":"0.3.1-next.385.e32d957","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.385.e32d957","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"83d77d1011402876b0dbce7b57bc4bd41f4da654","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.385.e32d957.tgz","fileCount":54,"integrity":"sha512-H0echOy00arQSLxAdcYUn6nUZdbvdgfq66HXW4P2BEd+UlQvu3ndMYqUCzlOWA0u6Es+3VPVKsOPSZPfhX4p8Q==","signatures":[{"sig":"MEQCIDP4z0m69A23oob6tBct0bReJvohsEx2CeplJBTGiwFaAiA5wKSkpiE1nkzJf6Xi/6iUA7awSjfhBsPjruTFhhl4HA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.385.e32d957","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"e32d957b7a9aae691927b11a7330bec0d39a0f74","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.385.e32d957","@flighthq/types":"0.3.1-next.385.e32d957","@flighthq/signals":"0.3.1-next.385.e32d957"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.385.e32d957_1786179400438_0.8947853757466147","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.401.5d59659":{"name":"@flighthq/textshaper","version":"0.3.1-next.401.5d59659","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.401.5d59659","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"39dfad03604a76db74f2d5b92736e9dc8a587f0d","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.401.5d59659.tgz","fileCount":54,"integrity":"sha512-wA3CruOGcpAEN5gHUYhN3lVqIUVjMkBumd4gL2Qhxi8e3Ps+EWhI0rzSRdVt2QfxheqY1CFjeljC9tJsBLtK+w==","signatures":[{"sig":"MEQCIBjYtZAO3XcSWdbPEtYDMfKYwwLPIj+b2woVJPCCEk7SAiAfTBMfxtDe85VU+tOXFUt453M9vGmR2YmhjUHyr1euNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.401.5d59659","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"5d5965924eea5485cafb18863e7600fde6e9a7a1","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.401.5d59659","@flighthq/types":"0.3.1-next.401.5d59659","@flighthq/signals":"0.3.1-next.401.5d59659"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.401.5d59659_1786183137749_0.7280188659827354","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.407.d03a0bb":{"name":"@flighthq/textshaper","version":"0.3.1-next.407.d03a0bb","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.407.d03a0bb","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"4efb8aeb91441a9e8f586c131aff4bc3a91ad943","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.407.d03a0bb.tgz","fileCount":54,"integrity":"sha512-hCAjWAiZ7TqFtjU9UkRT6QktrOJFZVZd/+trO2+SbRBwZ9GQLgA+HZA+1UkqOLp18/1Gg9jjkfSMa2PFBt5QDQ==","signatures":[{"sig":"MEUCICUgN6w35umMly1qmAtDoUK/yOIh4/v1osN5K9KZhndcAiEA2qsX1PBIm7rPnzoJkjrRuttk9Set8XBCrsrL9X0dExs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.407.d03a0bb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"d03a0bb57b0f09c0b521e0c8e2948361b2a87e9e","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.407.d03a0bb","@flighthq/types":"0.3.1-next.407.d03a0bb","@flighthq/signals":"0.3.1-next.407.d03a0bb"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.407.d03a0bb_1786297819735_0.21617386134287142","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.409.5c00b00":{"name":"@flighthq/textshaper","version":"0.3.1-next.409.5c00b00","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.409.5c00b00","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"febdcccca97c205e4442e30276f47b21ac23b91a","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.409.5c00b00.tgz","fileCount":54,"integrity":"sha512-ynt/ZOtn4VrBYESJ61nUoHvXS/GQM2XJhm5prZC+Xbb0CRJET/DzNfD4iDm6Jk8b2fgNVgoPQX9wlzJ7uxo2ig==","signatures":[{"sig":"MEYCIQCJF7fJShgt2HvfVPItZI35o7Xlf0gnlTXrqBYXQYo5wAIhANtUxE37f8tAbKKlP2bWmt/Z56Og+J5/m5vn+jOgfZXn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.409.5c00b00","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"5c00b0009084f020e72b76bfb8d0c0ae74887289","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.409.5c00b00","@flighthq/types":"0.3.1-next.409.5c00b00","@flighthq/signals":"0.3.1-next.409.5c00b00"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.409.5c00b00_1786335252442_0.4951847994437977","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.425.a3192ab":{"name":"@flighthq/textshaper","version":"0.3.1-next.425.a3192ab","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.425.a3192ab","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"e938d62388c4fbadb3e36791522e93077ad2ea57","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.425.a3192ab.tgz","fileCount":54,"integrity":"sha512-vQsIYqnRpkVE3jvURcB/hRUuCdE7KFCSY0MFVeNmz+pgYlyyqbFJv3gtUuS9KHvlj2q6WOp5MI9QDn32TsLUfQ==","signatures":[{"sig":"MEUCIE5KEoV37LxzBYbKg2X3D0D1JHu13whBDv3nX/Dz5nHDAiEAiq9ZBRvbeGMi4XNd6N/pSqS0aAVfvkYSq6gbNq6F2Ko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.425.a3192ab","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"a3192ab4e788bb9d5dc2b774367eb1afbc3de3a9","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.425.a3192ab","@flighthq/types":"0.3.1-next.425.a3192ab","@flighthq/signals":"0.3.1-next.425.a3192ab"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.425.a3192ab_1786336115203_0.9814543468268371","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.493.539802d":{"name":"@flighthq/textshaper","version":"0.3.1-next.493.539802d","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.493.539802d","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"071e07391265dbcef9d4ba02500226864679b458","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.493.539802d.tgz","fileCount":54,"integrity":"sha512-MgvKZAMaz9BBitssDJoILBZJc1gQaJ9ze7OYiYa6NNCcnf15TVBCfoGhOJyiLTMIcjd1HjDrV2I60JDQN3W5YA==","signatures":[{"sig":"MEUCIQDpGSWzn96Fvyxog3gTiLM8QYNtNpL3tt7TyGACO7edfQIgQMninDdVcD7QnzcnujCKqitZ1k5R5Sh23Mwljo/BnSI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.493.539802d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"539802d38ef3045458a26276a8d21b7648735f82","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.493.539802d","@flighthq/types":"0.3.1-next.493.539802d","@flighthq/signals":"0.3.1-next.493.539802d"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.493.539802d_1786392070930_0.31906686526324735","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.509.c235802":{"name":"@flighthq/textshaper","version":"0.3.1-next.509.c235802","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.509.c235802","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"bfe608899be37d720c4a0da2c03a5287a868a47f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.509.c235802.tgz","fileCount":54,"integrity":"sha512-5MzShj1TPZwWmVO5UFbYTVHKczjx2dZt8oUgFqrfQ1t/HDDPP7Uhe9mVVT+iZZzFDUodmOcCf0nYSFoo94yA/w==","signatures":[{"sig":"MEUCICcqeiyfIu83+TKHVOjTHX1lAiQ9A9HufHB42drUvNp2AiEA4NJRArVLoiKM87Z1bwz+4tBngJv74rQ3mFGP0hRNBo8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.509.c235802","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"c2358021ef9f4dbffd5b42491d550edacdc41f09","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.509.c235802","@flighthq/types":"0.3.1-next.509.c235802","@flighthq/signals":"0.3.1-next.509.c235802"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.509.c235802_1786394500504_0.3860697707346046","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.575.c1f8e01":{"name":"@flighthq/textshaper","version":"0.3.1-next.575.c1f8e01","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.575.c1f8e01","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a0da42cf6bedbb67713b3b49d49d890f87ec7594","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.575.c1f8e01.tgz","fileCount":54,"integrity":"sha512-BG4ZwKHVoY7ZtCRw9zjqje39rvOv1BORR/U6QxyaalOdUmXYHPcuwOMHMmer2ARL/a2T/P+VAc9657q1C9CZeQ==","signatures":[{"sig":"MEUCIQDMtl5rjVlKrQK5uRloUyA9iGZZ+/NmV1CEDkL9AWokggIgIUlftY3Z+AEP6CLqsoipRdShpm8HJh8pXdpbNPh78GA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.575.c1f8e01","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"c1f8e01d140fcec88ff8b60468ab3bd960359a95","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.575.c1f8e01","@flighthq/types":"0.3.1-next.575.c1f8e01","@flighthq/signals":"0.3.1-next.575.c1f8e01"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.575.c1f8e01_1786416183867_0.8545387176907568","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.616.aa7ae7f":{"name":"@flighthq/textshaper","version":"0.3.1-next.616.aa7ae7f","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.616.aa7ae7f","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"2560498e8c21c87c6d3b7abded7f2fd13c5e16a1","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.616.aa7ae7f.tgz","fileCount":54,"integrity":"sha512-4HoWQgNpR8A74zrhNpIHwX5TZMqPd1u/B1CM7JUeeobTCEvrdwLmBkXU8Hj/OCwv1zd1Kxrgn7zfvU16spFE7A==","signatures":[{"sig":"MEUCIAMqKMcpy7u4M/j8PXVEJuqcDiX2pSAHuXRDSJf6Mr4gAiEAzwWGxt8rNtSrFTOgDvjv5LGlL9zOe4VNWrZeUis77RM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.616.aa7ae7f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"aa7ae7f5da1ce5ab690f31fda0b5f52b91c7c680","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.616.aa7ae7f","@flighthq/types":"0.3.1-next.616.aa7ae7f","@flighthq/signals":"0.3.1-next.616.aa7ae7f"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.616.aa7ae7f_1786460912137_0.36404145257827136","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.617.89baf58":{"name":"@flighthq/textshaper","version":"0.3.1-next.617.89baf58","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.617.89baf58","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"927086e0770fa839cce1d4f9ef64d4a788276e9c","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.617.89baf58.tgz","fileCount":54,"integrity":"sha512-mlOolEpH+4exYhv2bmxKv1Nu1xhhNTBl3CJxDQ4fD2ROcvA0aIaiPSJ340FYd/OEx0Hi94BnIVG1gjdn84wYGg==","signatures":[{"sig":"MEUCIQDL6sq8eSMJRY1QTlBX8YfM2yAaORsmmQTpC6tS4FiRKQIgZ0/Q6mYXvrAcrQtljzhnAT77MIST/twj2oLkLeUcbUY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.617.89baf58","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"89baf58048bb93381a4e2e80669428b2d9e8464e","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.617.89baf58","@flighthq/types":"0.3.1-next.617.89baf58","@flighthq/signals":"0.3.1-next.617.89baf58"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.617.89baf58_1786461149275_0.5183928861162965","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.625.675880d":{"name":"@flighthq/textshaper","version":"0.3.1-next.625.675880d","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.625.675880d","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"b82e37b01dc8cf47dbcb058dbbce264302d18fba","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.625.675880d.tgz","fileCount":54,"integrity":"sha512-+0ulN6rFzhz7lJCWs4JKhh5EQj2PmMyLSWG+IWeLoilYDvA3dATVXLSnTX69eKSFaBpK4edQMTgxcZHGfZHRfQ==","signatures":[{"sig":"MEQCIDh4fWsvN1zA11JM0YdDLhqC3RHG0u7hdtaeKokXOjMRAiA8eZsP2VWbSLX+0S35HH1PHFSSziMteGRcejyfntBS6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.625.675880d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"675880d4809a098f9933d9201438981c8f7c559a","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.625.675880d","@flighthq/types":"0.3.1-next.625.675880d","@flighthq/signals":"0.3.1-next.625.675880d"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.625.675880d_1786462254037_0.6281167529741798","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.703.e259040":{"name":"@flighthq/textshaper","version":"0.3.1-next.703.e259040","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.703.e259040","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"b3a1c2df98643e5d6d8154b8cf29d020940f2a93","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.703.e259040.tgz","fileCount":54,"integrity":"sha512-GriSQLELqnlVOYbHoRZmywQzGAzY9G8ToOTkgjMcDe3HY3J53vt6r31zrCxmyD79cDi+RyotXZnagzekJjRYgg==","signatures":[{"sig":"MEUCIQDdPGNdvnZDggJrMZJo0UfWIGsJLZY0qLqxQL46uamCNwIgF3zTe5ndsAgUjupG6tuy5yzvnbCxffVKD5gFa95e/Gs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.703.e259040","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"e259040efb8ee9a573e8e86d8dc74a716dd62a8a","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.703.e259040","@flighthq/types":"0.3.1-next.703.e259040","@flighthq/signals":"0.3.1-next.703.e259040"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.703.e259040_1786559647788_0.8411642240456718","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.704.69286f6":{"name":"@flighthq/textshaper","version":"0.3.1-next.704.69286f6","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.704.69286f6","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"65e02e771ada6775cf03a6f845d6d46a9708bc26","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.704.69286f6.tgz","fileCount":54,"integrity":"sha512-MQDdGbONZvTcX4Nr14ZHkZQ4L+lyXs+/0l/IJV0Uf8jupYMlbvB5Tjw0kIrn/Z4lwFv4bFZ7K09FeeZQVeLBHg==","signatures":[{"sig":"MEQCIEHk41ZOLy+Miil4QfU9nxl9e9QeKSJ1jKMg1W7g1enEAiBfGVQtpImGl3lnZhclrCKlPG3gm43XhYovhfysIIR4EQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.704.69286f6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"69286f6d53cd41de4ada5de457c5285108acc1e9","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.704.69286f6","@flighthq/types":"0.3.1-next.704.69286f6","@flighthq/signals":"0.3.1-next.704.69286f6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.704.69286f6_1786560569818_0.27780336925147275","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.733.f1845ac":{"name":"@flighthq/textshaper","version":"0.3.1-next.733.f1845ac","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.733.f1845ac","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"33f516807edfd98bf58861893a1a780f8dd5bf7c","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.733.f1845ac.tgz","fileCount":54,"integrity":"sha512-ZzCmXv/YII6y/lctEyay27ZHupTpbiU9NNF/0dLOFxRMQ0h1MzDY9/R1Qo3Zzwk5AESAtpGsNaLUIaZbMQaRVQ==","signatures":[{"sig":"MEUCIQDhTGWUZZHkCVpqrHClCv0YSt937H0EkaIZGIFwGNXgiAIgeqqEbfnEC2Nf+p4I/b8/YDPdbJ9mQeyxQ0jUSCAqhso=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.733.f1845ac","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f1845acf98bf38f5a96072a59ba22a1c68395195","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.733.f1845ac","@flighthq/types":"0.3.1-next.733.f1845ac","@flighthq/signals":"0.3.1-next.733.f1845ac"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.733.f1845ac_1786563089046_0.11406505149740376","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.780.12e6944":{"name":"@flighthq/textshaper","version":"0.3.1-next.780.12e6944","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.780.12e6944","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"ec35d684538c66ebd3e54fc7a5806815e2830c93","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.780.12e6944.tgz","fileCount":54,"integrity":"sha512-TIzf4vKB7e9IdNxYzjrYgYygyK6cd08I6G8JI205dEeRYHow+2IcGAOFb12PsPj77Owec7M1hoHDWwVtcYnLoQ==","signatures":[{"sig":"MEUCIHyZXE/e4IxBwTq2sT3OcGW4yTuhWC199xKuDUrs/2oPAiEA+8JsIjbaC1sb++lzTVcpld0QN5cFHNUn1U/2gZ+8dD0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.780.12e6944","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"12e69444311b0c795afbd780d78e1d4daf5d848c","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.780.12e6944","@flighthq/types":"0.3.1-next.780.12e6944","@flighthq/signals":"0.3.1-next.780.12e6944"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.780.12e6944_1786577395408_0.09260056359013857","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.794.0bfc53e":{"name":"@flighthq/textshaper","version":"0.3.1-next.794.0bfc53e","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.794.0bfc53e","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"18b7d3b39835381a6aa589d21fd8e9959204dca1","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.794.0bfc53e.tgz","fileCount":54,"integrity":"sha512-QM26PCauxJSHN1BJ+mxcc4vrWeta1ZweNc3WyrU9c+60ITguKT9wLfcbzCm85w3F5oj42etVEfp/lEcns1GWng==","signatures":[{"sig":"MEUCICtzWuLx9WmIPGFgFBJXTXdGUjmE5g3LpEOXwWcAyXiAAiEAvu1Cs+UmcXrfQbQIPjxUimBCTQjUlmGzZ8i6+YG9PME=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.794.0bfc53e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"0bfc53e8e8150f37bac02bdc262abb13c7495116","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.794.0bfc53e","@flighthq/types":"0.3.1-next.794.0bfc53e","@flighthq/signals":"0.3.1-next.794.0bfc53e"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.794.0bfc53e_1786581685107_0.09571715531171443","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.836.609b031":{"name":"@flighthq/textshaper","version":"0.3.1-next.836.609b031","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.836.609b031","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a6aec91f42c51738c008c83574c9b10cf9b35a91","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.836.609b031.tgz","fileCount":54,"integrity":"sha512-EeQ+p+FHnJA/fvbMddy4m+u/GAfAQQVYWaNlYapsIfJv0bMuAEcXpQMX2di2KNNGywmwdkDEojPj3JC5ouDeVA==","signatures":[{"sig":"MEUCIQDzD2s5FVChGOhAWTGEV8xSLE2aK0PKLTN6aABDjoSFRAIgbd8sEJXOK80QFvd2hs+9pib9JImZTl48KiDSSX/nb5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.836.609b031","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"609b03134bc9bcbe7be18b38d62a8119ea6260fc","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.836.609b031","@flighthq/types":"0.3.1-next.836.609b031","@flighthq/signals":"0.3.1-next.836.609b031"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.836.609b031_1786584008113_0.760017711547601","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.837.46a9259":{"name":"@flighthq/textshaper","version":"0.3.1-next.837.46a9259","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.837.46a9259","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"6ba021a64021298561b9b96fa34bf666b16573d5","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.837.46a9259.tgz","fileCount":54,"integrity":"sha512-rpf+JlLhC/4ykeGu8jsnm66axkpe9KJxBJXOBdAAGHV8ZmvEEu3zf8QxdC9crR8lWFUibgPVO4EvDa2X0C9lAg==","signatures":[{"sig":"MEYCIQDGviTtR5hg61YZBgRw0OX+jPzrG8g5ziRw0At1RPOTnwIhALqa3WIEKiHYDmhVBBLGidvz2jcpc7mp/BrcR3Pxu8CY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.837.46a9259","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"46a9259ea45aa6c8e7c6e27ee15d98a3696892d6","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.837.46a9259","@flighthq/types":"0.3.1-next.837.46a9259","@flighthq/signals":"0.3.1-next.837.46a9259"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.837.46a9259_1786587877605_0.3312099080608413","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.845.b5a7c82":{"name":"@flighthq/textshaper","version":"0.3.1-next.845.b5a7c82","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.845.b5a7c82","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"f8e935732155e117355b6641aa8b9c5072f44b3d","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.845.b5a7c82.tgz","fileCount":54,"integrity":"sha512-ObVM+i3MCN4DVAtUxJEXsYK3UiV4sodJo9Vl6gwQvkgEqXo79i1JoxhDOAlnLWhbNX0ESRkx0KKr2eltwLT+FQ==","signatures":[{"sig":"MEYCIQDUglnPk2Ourhpf6yMS+zqxRALInPmQmGTlIqIMMzoc0AIhAJUC8YBHi7RowsEZfLsQ3rz8WCOvebLJR63tJSTLX5ZC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.845.b5a7c82","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b5a7c823c6835c24d6f4eca104ded502ff7fadaa","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.845.b5a7c82","@flighthq/types":"0.3.1-next.845.b5a7c82","@flighthq/signals":"0.3.1-next.845.b5a7c82"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.845.b5a7c82_1786590158069_0.1750449881896563","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.847.2e6f8bf":{"name":"@flighthq/textshaper","version":"0.3.1-next.847.2e6f8bf","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.847.2e6f8bf","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"29f33dfffa671e2f6f5bdd258fd16a825ce04510","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.847.2e6f8bf.tgz","fileCount":54,"integrity":"sha512-9yaz67yKwsRIIHsYrnpAnZHjhSKnXO75SJVwNb8MjjRHioqd1/g+LCv34YHaW9fJwDAAAiPAaxeneSuxbd08dQ==","signatures":[{"sig":"MEYCIQDdu+p7gyDwbJElURvdivBxI9HTwSwc+sUicM55/Ek8/AIhAP3lwAfX8IqtCIMLPAIf8eJTS2aO0Vdwwqzf6qt1D5Ig","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.847.2e6f8bf","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"2e6f8bf92aa599339a63d75600b64a6ddb1a1de9","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.847.2e6f8bf","@flighthq/types":"0.3.1-next.847.2e6f8bf","@flighthq/signals":"0.3.1-next.847.2e6f8bf"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.847.2e6f8bf_1786593591676_0.4077342584382113","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.861.5a56d7a":{"name":"@flighthq/textshaper","version":"0.3.1-next.861.5a56d7a","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.861.5a56d7a","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"5d47b85b5993e4daa595b410860358f7be5b0659","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.861.5a56d7a.tgz","fileCount":54,"integrity":"sha512-79LgNyMaN/swTPVf3qVr2Sf6uH2uLk6gVffiahpi9lMq9+phEsvZGNd7waQNXJFvMlRo8qEoT8oOopXlTUEV0w==","signatures":[{"sig":"MEQCIF7AhoKQesTesobOCPnAS/j7ZJhGJijJccZsEnIoAj3YAiB4ff0UO274U6t47iLsg4i7u1HsGvkSGXgdjIcRzEQmJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.861.5a56d7a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"5a56d7aab96bb883d20688af6424d110b151fbaa","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.861.5a56d7a","@flighthq/types":"0.3.1-next.861.5a56d7a","@flighthq/signals":"0.3.1-next.861.5a56d7a"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.861.5a56d7a_1786593740314_0.2624462403110641","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.887.9f59a84":{"name":"@flighthq/textshaper","version":"0.3.1-next.887.9f59a84","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.887.9f59a84","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"1d8513944d50fee2abec9f826b0931301577bd83","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.887.9f59a84.tgz","fileCount":54,"integrity":"sha512-VRBk82NRb+fq4tonSYRuZBc6qx2YKUqgywD/kfMX+2nWWc+yDkMl0nwllHQ6FPWM9mOA+Z5RFWcG6TjeWsA1qg==","signatures":[{"sig":"MEUCIQCQIMv44pVhN5rP2r4sVraXN/fKFJJAGA5WtTiJnoKFUgIgCjgLI++UXxTCDdg0OYv5zt6Mcbq/dYej7aw9M8+QMuU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.887.9f59a84","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"9f59a84e89b0b6b614037d95baa82df062bc31d1","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.887.9f59a84","@flighthq/types":"0.3.1-next.887.9f59a84","@flighthq/signals":"0.3.1-next.887.9f59a84"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.887.9f59a84_1786602180637_0.49391045541202083","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.948.85d9f30":{"name":"@flighthq/textshaper","version":"0.3.1-next.948.85d9f30","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.948.85d9f30","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"768eb4226e36e6f6b7b298828572b2273e0fb917","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.948.85d9f30.tgz","fileCount":54,"integrity":"sha512-7FQrdABybHq9GYHVWaao5hZLrvOn712bbayxTooiCZkJIQTdH0HX07SNkLApYWOK/vcxfALvGCC6IEn4SwCedg==","signatures":[{"sig":"MEUCIQCwIblTAVAUnj+FuOMn2ZCOq44LQir/12JiwUMFuD9sjwIgS4HJ445ipAaR2EgD+IRafl9w9DOcBRHeC4iPW4w/yyc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.948.85d9f30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"85d9f3057c1cf94b0aa22c37cf7be1e156075b6f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.948.85d9f30","@flighthq/types":"0.3.1-next.948.85d9f30","@flighthq/signals":"0.3.1-next.948.85d9f30"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.948.85d9f30_1786635290630_0.5873167841933555","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.970.9691e7b":{"name":"@flighthq/textshaper","version":"0.3.1-next.970.9691e7b","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.970.9691e7b","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"31b01f002892f13445c58c47172caa8ef5710850","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.970.9691e7b.tgz","fileCount":54,"integrity":"sha512-dWHGhp9IAIs0sON13BTU81WEnAUgvi0+Cbsm/A0/sN7Zv6dIgCRpl2IzVys4nOymMzLykxextqaWk6O1kuFSxA==","signatures":[{"sig":"MEUCIFDrdgXmg/icir6I41fkqUWlTI9MFNPR70H5Xea8uRubAiEA9N5XDQOwvPw2QfUlFsJcM/3Bv7Dxj5FhvgHhcsyKtHE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.970.9691e7b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"9691e7b43412c9b06f7b09156753049b699c19f5","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.970.9691e7b","@flighthq/types":"0.3.1-next.970.9691e7b","@flighthq/signals":"0.3.1-next.970.9691e7b"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.970.9691e7b_1786636296836_0.7451751939298195","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.971.33e20ba":{"name":"@flighthq/textshaper","version":"0.3.1-next.971.33e20ba","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.971.33e20ba","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"9a6925e5cf10ec628a2718af5af2e1646dde8e96","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.971.33e20ba.tgz","fileCount":54,"integrity":"sha512-mR/SM85hEU90w4V1h3DJWNpMW7K1EdB5pCi40t3XcwkRfxxRy65r/u4nDhFmkigVhGe7AYCSk5GTrDDCEDpG1A==","signatures":[{"sig":"MEUCIQCW1I40wGU6yxvKByyzdNnxGFA6i1dAIXfVVIiR2bxBYAIgdVBIvYfY36RBEC9KtyVXQC3qF3Gv68yMsPnwGjk/Y8Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.971.33e20ba","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"33e20ba40aef7452bcf5bfa67c49b6ebd3c5407f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.971.33e20ba","@flighthq/types":"0.3.1-next.971.33e20ba","@flighthq/signals":"0.3.1-next.971.33e20ba"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.971.33e20ba_1786636942714_0.6446497908637117","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.975.01aea94":{"name":"@flighthq/textshaper","version":"0.3.1-next.975.01aea94","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.975.01aea94","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"0931300cd8454be90c0452594a60158b189c1c39","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.975.01aea94.tgz","fileCount":54,"integrity":"sha512-oQJRAsuuzOsFJMQXkomFTFB8wtw1ecpY3a7h+OBwyeg7KO8Tud2vYWIKUvx3himIW0KWu8zbvCUHg6v8f+sLAA==","signatures":[{"sig":"MEYCIQDp58JfLnYnNgwyGMKlA3dfLuOsEK5IsCNEX24V7cOZIQIhAN/R19X5YOM+b/J/lY+t7AzuiIxnTbJ8QBfAqbDmDhya","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.975.01aea94","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"01aea9432318b582da5c33917056b3c99cdc3a9a","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.975.01aea94","@flighthq/types":"0.3.1-next.975.01aea94","@flighthq/signals":"0.3.1-next.975.01aea94"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.975.01aea94_1786639554248_0.8718651805076119","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.996.06087b5":{"name":"@flighthq/textshaper","version":"0.3.1-next.996.06087b5","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.996.06087b5","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"5e3ab9a4e399d521c7f25e3eb700f6aa6f0a8490","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.996.06087b5.tgz","fileCount":54,"integrity":"sha512-GD59rbvKHTa+SOTfjiIGzSfuO5dMuZ2EVSkD0RXg9CJ/OOZohPaAmKDktiUnT0UQmL0RXZLxkPvUFRsRj+ZYTQ==","signatures":[{"sig":"MEUCIQCdNevrIIcZivPVxXlj+52w/jyzfK8UpWWc3uICYzLNSAIgPqaSbU4xOJxaD/CnVdNDaOuXkjwF0+4C5Jfxz12mnzQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.996.06087b5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"06087b5b7b29d1eef90012d3b9a63ebd96c2eca6","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.996.06087b5","@flighthq/types":"0.3.1-next.996.06087b5","@flighthq/signals":"0.3.1-next.996.06087b5"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.996.06087b5_1786653118336_0.9434275429342116","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1041.35b950c":{"name":"@flighthq/textshaper","version":"0.3.1-next.1041.35b950c","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1041.35b950c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"bdc779ad998ddc79f1d685345f5dca559eddf3b2","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1041.35b950c.tgz","fileCount":54,"integrity":"sha512-EcQogYJdiijY9THJww6sMJf8zpJBduB+72ptxCV/jcNEgn/s/WBzDCX+ZWX0RbPeybs15Om9vW9yJTFUojjVIw==","signatures":[{"sig":"MEQCIEvvIRqyRWWWOWK+ImJjaPWvkTB7r3NqLlkFv46TMnKYAiAUPP2M/3JI07mpgNVyzr/gCzg7g/7V/iyktfzQJjfuMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1041.35b950c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"35b950cddf407477596a5dfec6e9e1c26daaecbe","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1041.35b950c","@flighthq/types":"0.3.1-next.1041.35b950c","@flighthq/signals":"0.3.1-next.1041.35b950c"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1041.35b950c_1786665968310_0.5003250447951149","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1050.9114695":{"name":"@flighthq/textshaper","version":"0.3.1-next.1050.9114695","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1050.9114695","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"95e4ccec50705333cd83577b0655fbd64202a98b","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1050.9114695.tgz","fileCount":54,"integrity":"sha512-zxzdLaU2+qT+8bEuP0ziTNH8A9r2npPuVxdPWauuXI9ll2OEn/yuLSZSFjXPpxCoAWub1D/yS6MNKWhupX+ZbA==","signatures":[{"sig":"MEYCIQDLnI9gJQLFQVCRzQ8M94fR/KSpZazG3Hp2HtLS3ZdmDAIhALj5gqWWqFudFqSjjIZZMHN+VrahkGMaOks0/7mD7idH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1050.9114695","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"91146957134f8ec3485527a5d084d339e4a79080","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1050.9114695","@flighthq/types":"0.3.1-next.1050.9114695","@flighthq/signals":"0.3.1-next.1050.9114695"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1050.9114695_1786671728460_0.9362100681347068","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1055.12501ae":{"name":"@flighthq/textshaper","version":"0.3.1-next.1055.12501ae","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1055.12501ae","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"5e8a0ff665fcf8a204a9fc47e1545cf7602a76ef","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1055.12501ae.tgz","fileCount":54,"integrity":"sha512-YIeB/VIqA/StHVK8D9z043Bm7iFEBeJrVr9dpA5tkIa26q0EKVre4GZbVH4iIe7bga3EpU7WE0u2fpA7zVINNg==","signatures":[{"sig":"MEUCIFsQCqkHe3ZJ7h3CbcPtI9UqurErDkWn/gaHtk/UPmgFAiEAjkDjcdSaiueKjMgTvbFDZi1/CeOb+8Ffj94E8eP3A3g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1055.12501ae","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"12501ae26c0ad84005e151fb2309b841686fbc3d","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1055.12501ae","@flighthq/types":"0.3.1-next.1055.12501ae","@flighthq/signals":"0.3.1-next.1055.12501ae"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1055.12501ae_1786679366796_0.09188403118187072","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1076.4f48950":{"name":"@flighthq/textshaper","version":"0.3.1-next.1076.4f48950","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1076.4f48950","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"abaa5696bdcff09b145646329436fbdb1b3f9a59","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1076.4f48950.tgz","fileCount":54,"integrity":"sha512-sgfS432MYMDxO3NyLamXZnhYguhCFRWEdwwE2IkFlctCxay9vh+6QD0ooLpQseDM6mO8hsvug9imj9a4pnmFUQ==","signatures":[{"sig":"MEQCIC85TQ1n4mA20FOMy2it6BRHOZMyVleOyRevL85CJKCrAiB10kWtXliRP7/FxJLmmAow18xS+HaaYfgVUiNfjXdeBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1076.4f48950","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"4f48950277b04fb6f83bbbe2de457c686f1b9f26","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1076.4f48950","@flighthq/types":"0.3.1-next.1076.4f48950","@flighthq/signals":"0.3.1-next.1076.4f48950"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1076.4f48950_1786723448155_0.28175925666728485","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1079.38fd007":{"name":"@flighthq/textshaper","version":"0.3.1-next.1079.38fd007","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1079.38fd007","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"ee5c67542d4b46458feb209318cd9142c07b7207","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1079.38fd007.tgz","fileCount":54,"integrity":"sha512-/Z0LEcAv3M6nRYdMENiG6jLQxZ9pDt9Z+crFVvJzFI0TjzUirz+56Vx1YCjkbKUvGRQzCHfesnurceD/2p4NdA==","signatures":[{"sig":"MEQCIES4yaABrPZZHz19RmP1TYhWOjSrH5dat6LVMtzT9I2eAiBDvPD1yBw6iFocoykcia2yLP731XAaosbFsLE3A/thQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1079.38fd007","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"38fd007b968cc3d0144c87d476b538535aed1e3e","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1079.38fd007","@flighthq/types":"0.3.1-next.1079.38fd007","@flighthq/signals":"0.3.1-next.1079.38fd007"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1079.38fd007_1786730961513_0.5984993120374462","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1084.04b8d9a":{"name":"@flighthq/textshaper","version":"0.3.1-next.1084.04b8d9a","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1084.04b8d9a","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"db63f581336bf335f02caf6145b9cf4d8e486455","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1084.04b8d9a.tgz","fileCount":54,"integrity":"sha512-HZDEDsKervyPVgLMQbjHsT+BEq17mEA+CGxKFKMT/Cgga40bVOe6cR0x7dfm4w85tZGvriEBFsi/1nVYPopNww==","signatures":[{"sig":"MEYCIQCjFY9aPkRk86qFqZCTFvr6L4256lJ1HuuFWN6/x/o2kQIhAMtojUVMaG06yYhuFbeHaijm8Lvw1/enf8XUzPR57pok","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1084.04b8d9a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"04b8d9ad02a3696f08c9d2a2a396760556862578","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1084.04b8d9a","@flighthq/types":"0.3.1-next.1084.04b8d9a","@flighthq/signals":"0.3.1-next.1084.04b8d9a"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1084.04b8d9a_1786734203899_0.3843078186258493","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1086.d0d073b":{"name":"@flighthq/textshaper","version":"0.3.1-next.1086.d0d073b","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1086.d0d073b","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a236bad1007cdf92e8be58e28bffe133882eb1ce","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1086.d0d073b.tgz","fileCount":54,"integrity":"sha512-BEqLgQ9XF+vs7zLyV5Ng5p0AOjWAOH9bj9F1EOA0X+gG/zfjVjuiV9AeC922nLKSi3d3xk2KYyUZwil80mE/BA==","signatures":[{"sig":"MEYCIQCieKSnAM2dwt9Ruk6dR8lxZ3VBZHOSCEXU9qvoT2aSmgIhAM3fPiOJhym6Um1yTSltLKfLsggvIJYaxrsLDvbVohI0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1086.d0d073b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"d0d073b807822ef0d9e17cc1ce4e9d4f74be5e4c","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1086.d0d073b","@flighthq/types":"0.3.1-next.1086.d0d073b","@flighthq/signals":"0.3.1-next.1086.d0d073b"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1086.d0d073b_1786737147203_0.4872897119718518","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1088.2bde749":{"name":"@flighthq/textshaper","version":"0.3.1-next.1088.2bde749","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1088.2bde749","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"256b32d7a12b761e475e64b265abea7b8e9398ed","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1088.2bde749.tgz","fileCount":54,"integrity":"sha512-uTiPJ7D5sm4DP0yFLGjYPXP/dPppF927qEbGy1DBa3pzDLeo+mOFOlYKrHhbg0U4YCIaBGfIJHzeu74eS9iu1Q==","signatures":[{"sig":"MEUCIGPTPYD0WyNJUGCBf/+VkCM6tGVqRsh+sA8do1Tr1fCDAiEAxOlaiAkfsmm66kBLrhIpnUzRD4CpOn052JN8aVYixrs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1088.2bde749","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"2bde7491836cf43c3de99c9851f04ff2c2def1e5","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1088.2bde749","@flighthq/types":"0.3.1-next.1088.2bde749","@flighthq/signals":"0.3.1-next.1088.2bde749"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1088.2bde749_1786739280546_0.9916242349209217","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1090.6e79e6c":{"name":"@flighthq/textshaper","version":"0.3.1-next.1090.6e79e6c","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1090.6e79e6c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"0406df3109c144a538dc76f2d7876362d488d55c","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1090.6e79e6c.tgz","fileCount":54,"integrity":"sha512-etazTkWm81jCf6UrH4bKobGg+CWiWT0xjAj/uR5nz9hJS7QTm7GcXzLjS4XRrzufEUqyPAXd+4XbATwyOQT2/g==","signatures":[{"sig":"MEUCIQCqyyB7CW+nlMmEStdyeOUWLJKJmwwhFVmvImceIiRn4AIgQ4mGT7MMEVAhSsCJgsK8wiKpZd45nMGSS/BQNG8b2UQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1090.6e79e6c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"6e79e6c76925511d45ee1d4eb2034db61c885afb","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1090.6e79e6c","@flighthq/types":"0.3.1-next.1090.6e79e6c","@flighthq/signals":"0.3.1-next.1090.6e79e6c"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1090.6e79e6c_1786739586510_0.29101915014552904","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1091.b7aa6f2":{"name":"@flighthq/textshaper","version":"0.3.1-next.1091.b7aa6f2","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1091.b7aa6f2","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"5781db6eae78f3afac6124af4f57c503bb78892f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1091.b7aa6f2.tgz","fileCount":54,"integrity":"sha512-k8has9iqfWPg0g9d2X13bgk9h8l0EBJHQcj1GsfAFIVftDWMH3vBMwZTzL81CZxQmoYZWnX+wCzaFbk+iHJaTA==","signatures":[{"sig":"MEYCIQDbIe1+wl987z70Kgu357zEwJs0DccWuTVXiPGN7gdH6wIhALsq1U67/w989dTcjWiYnkVYurc8WvkkfwLVYz86rYF/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1091.b7aa6f2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b7aa6f2a4acb333b3c58d15eca4386d766b4ae63","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1091.b7aa6f2","@flighthq/types":"0.3.1-next.1091.b7aa6f2","@flighthq/signals":"0.3.1-next.1091.b7aa6f2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1091.b7aa6f2_1786739827764_0.19843127357410828","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1095.16f1704":{"name":"@flighthq/textshaper","version":"0.3.1-next.1095.16f1704","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1095.16f1704","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"188c03838e85f77dadfff8ca4d0ac338ca8d51e0","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1095.16f1704.tgz","fileCount":54,"integrity":"sha512-ZdmRbutwz2Rb8IhYP9H0ykSZptp8UhM36dD0YILnNp/0bh+eAiVgQ17Khn3W/rnSqTnKKQnrOevMZ6IMqUpXoQ==","signatures":[{"sig":"MEQCIDN1CfCDZAmlW7lXJ/zpgwMmc+SHI2swwAwL5K4Z+XsPAiBKADhkncPsCqYiVb+oadFx8je/X3I35UzV5guBOi9uzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1095.16f1704","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"16f1704d1813a7927f4f4b5c5ef956263ab74254","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1095.16f1704","@flighthq/types":"0.3.1-next.1095.16f1704","@flighthq/signals":"0.3.1-next.1095.16f1704"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1095.16f1704_1786740947698_0.4190280015339398","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1096.4ddf1ab":{"name":"@flighthq/textshaper","version":"0.3.1-next.1096.4ddf1ab","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1096.4ddf1ab","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"0f1dea44bfb53160f2a1769791289340e0dd2211","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1096.4ddf1ab.tgz","fileCount":54,"integrity":"sha512-n8cWT6caTtikXcjC6AxSh0oG0COlwlaxRdfj3Qn1ChzQQzFKhkQGcPXa5Nv8cxwbkizyYUuk/MUc3XJuEKIx9g==","signatures":[{"sig":"MEQCIH81TTJAAtRoRyme8lH89EQFpc1H3ycAuVt1lKqyDEbaAiBoML9Xd/FcEaTZdKSg0F0mSfmXr4EJw+Caslcaejri2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1096.4ddf1ab","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"4ddf1abcf65676210f2b1a7b478014e6d3ed8c92","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1096.4ddf1ab","@flighthq/types":"0.3.1-next.1096.4ddf1ab","@flighthq/signals":"0.3.1-next.1096.4ddf1ab"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1096.4ddf1ab_1786741736397_0.47779017838496896","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1097.b8126d8":{"name":"@flighthq/textshaper","version":"0.3.1-next.1097.b8126d8","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1097.b8126d8","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"19b540a5095b6d2b49b8a899ec0a93edb29a149e","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1097.b8126d8.tgz","fileCount":54,"integrity":"sha512-g04tcs9zzW/8osOkl8GWzY/4fEELesHQ0ZtT5HGh7Ns6TmuR7lwIk+2GbFi84TPkwHeRc0lCjkKdiRy5KzCcQg==","signatures":[{"sig":"MEQCIHm6YPg1UbX+r+leUvZTLf/2+oupp0reEbQTV3h6f1/nAiA+J/BON4GZbtCpnAmvTDgOtOhSRiVpp7jNftNfue2FSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1097.b8126d8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b8126d83e3f846a776c300d410c5f3c45722b599","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1097.b8126d8","@flighthq/types":"0.3.1-next.1097.b8126d8","@flighthq/signals":"0.3.1-next.1097.b8126d8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1097.b8126d8_1786742063763_0.39794448858131304","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1099.671eaf4":{"name":"@flighthq/textshaper","version":"0.3.1-next.1099.671eaf4","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1099.671eaf4","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"26c6b6d16ee8f339f5e09653b12b9b36535a3229","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1099.671eaf4.tgz","fileCount":54,"integrity":"sha512-UQubVIULQIcjDRIOuyAanbtmABtpjI8L7oZcy2EKYowDD2ijNYGCUpnOV3APSSxVQXPwoO6zaUJrI0iz7V5bGg==","signatures":[{"sig":"MEYCIQCcBbtGy+BDYq9Ru5JvtMYogmaIJu9V6ReeJIsaxJCaqQIhAPp4/llj5pmXkU6Kbn3h1PEmS/5TggR2AluiANYD1qcP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1099.671eaf4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"671eaf4747d3faa1f51776306c734bb129db48f6","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1099.671eaf4","@flighthq/types":"0.3.1-next.1099.671eaf4","@flighthq/signals":"0.3.1-next.1099.671eaf4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1099.671eaf4_1786742337647_0.12341061558865007","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1104.8453d3d":{"name":"@flighthq/textshaper","version":"0.3.1-next.1104.8453d3d","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1104.8453d3d","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"83b2e7854137ce85acb8e0cd99e3ccbd6fd99029","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1104.8453d3d.tgz","fileCount":54,"integrity":"sha512-FqkiECKWSIFwCUI9TMNvqyCXklJZfOLItJUdy1KhHXhAeDYD1HQLhOCmWs/Y6x04vmdIi/b0IGFsF3HZ8Ol3+A==","signatures":[{"sig":"MEUCIDjU/j265feN/x4tR4TtFbWXgmoi8YLJczqds+Q/WWSsAiEAtVjvzLsqRdVjfyDrcF0TO5RqFai3vZiz/QZagikNuS4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1104.8453d3d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"8453d3d35fb0d049c2911f875b4c4f41de1f2128","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1104.8453d3d","@flighthq/types":"0.3.1-next.1104.8453d3d","@flighthq/signals":"0.3.1-next.1104.8453d3d"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1104.8453d3d_1786744429976_0.1398976494007036","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1107.0b5d347":{"name":"@flighthq/textshaper","version":"0.3.1-next.1107.0b5d347","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1107.0b5d347","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"e5bbba286867924776357840a0b498eea8c70f8f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1107.0b5d347.tgz","fileCount":54,"integrity":"sha512-kgs3AV8bahjQlxgVYi9dnni8xmO34goXBMZ4Ip9Fv3Yi75SvHdyKgIy3y5dT75LXqiWLbXSmSKwYb9BjwQ28DA==","signatures":[{"sig":"MEUCIDoLAsUtFJvnL+FPml3hdPEPAi8n07elYjJeK1WD9WJVAiEA5PNBc2VmYCkCHoS0zc2a6+cUAdVaCXwR94x5FuIAVo8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1107.0b5d347","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"0b5d347bbf810534aefebc9f6996b95df91c5769","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1107.0b5d347","@flighthq/types":"0.3.1-next.1107.0b5d347","@flighthq/signals":"0.3.1-next.1107.0b5d347"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1107.0b5d347_1786747267519_0.4072252174681139","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1108.66cc86c":{"name":"@flighthq/textshaper","version":"0.3.1-next.1108.66cc86c","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1108.66cc86c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"614dda053be2070bcd4b642274629084906785db","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1108.66cc86c.tgz","fileCount":54,"integrity":"sha512-WeFJfhV0tvquPuyJfXz4LV+P0J1mSbYLKVkJ/tnB8CUacJkIZC+VoCz1P1Ac8D9xxu2rBhOsXi1SiL3HY+0xKA==","signatures":[{"sig":"MEUCIByGNEEaVQmAArWC4n/7YHmuHdDpZq0Ncdl4hKMU92kZAiEA14RJyVFJ0I6xLbe5tT38/wkjuw2ZQ1HVHLnGLWpMhLU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1108.66cc86c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"66cc86c94270c1656fbaa33f76aaecabbf5cf3b5","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1108.66cc86c","@flighthq/types":"0.3.1-next.1108.66cc86c","@flighthq/signals":"0.3.1-next.1108.66cc86c"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1108.66cc86c_1786748379035_0.9821934114802013","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1112.dea9723":{"name":"@flighthq/textshaper","version":"0.3.1-next.1112.dea9723","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1112.dea9723","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"4f0e5d6f481cec7a1d4e8fe5f7cf30257bc1dfeb","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1112.dea9723.tgz","fileCount":54,"integrity":"sha512-57+oBLdjkg/7g3sAskHpKcQDaM8mso9AvUvnluz/ZIH+P4u1m2woFmJlX1k70K7XIsdzZascprdoxpNfczmHpw==","signatures":[{"sig":"MEYCIQC9B9zvAoGHUUHfixCe6C6vzdPr9IRQAe54ARIgNVltbQIhAMZsQfC7qfZILTliEyoIzSoBTq/pW8UNxU/4wP1wMI90","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1112.dea9723","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"dea9723f504eea38000f31756c836c87bacc88c8","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1112.dea9723","@flighthq/types":"0.3.1-next.1112.dea9723","@flighthq/signals":"0.3.1-next.1112.dea9723"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1112.dea9723_1786758633122_0.0019142439823818247","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1113.9cffbdf":{"name":"@flighthq/textshaper","version":"0.3.1-next.1113.9cffbdf","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1113.9cffbdf","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"bc6a5e507b02e4975df21fcefaa1d76157a4a683","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1113.9cffbdf.tgz","fileCount":54,"integrity":"sha512-jYzADNOWZP+mghtqb8mEeow6GvB7sjSxP9cLfZCP4PzPrcu3vQ8MIZr3hXsVO8tY2no/U/c90MayzOMH2fLE6g==","signatures":[{"sig":"MEUCIQCVxdoXKvtubGhF2mWVl57VfNkegRLmYBa8SwXK9Jd2LQIgUn0G/H2CQidtrikIDUDPP6UsF1draCx/985qMAaATiw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1113.9cffbdf","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"9cffbdf4bb0c58199f3c1e6ec40c1211d35c6bc6","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1113.9cffbdf","@flighthq/types":"0.3.1-next.1113.9cffbdf","@flighthq/signals":"0.3.1-next.1113.9cffbdf"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1113.9cffbdf_1786760575140_0.21757208531125527","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1114.3ce681d":{"name":"@flighthq/textshaper","version":"0.3.1-next.1114.3ce681d","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1114.3ce681d","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"2a428245ff8f062d589d4a2c8ce89b670fba2815","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1114.3ce681d.tgz","fileCount":54,"integrity":"sha512-3VrsN3aMpryL7RK++41WaoxOPhYHGi8a7jl9rSXYAw7mw/kGOyKhcdRw5SDtdvoyjCZUexhOQvVjTtdVKc/jAg==","signatures":[{"sig":"MEQCIEEGaGPy8FPvXsBYUttk74aDfROoeAegkfgIth1DyUNEAiB8VnpfB8Z1N+vPFLI1GVc4kW9qpThuFa/2r27C600EVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1114.3ce681d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"3ce681df621450aa0fa769d10a8380f6874c958b","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1114.3ce681d","@flighthq/types":"0.3.1-next.1114.3ce681d","@flighthq/signals":"0.3.1-next.1114.3ce681d"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1114.3ce681d_1786763722344_0.9518766303372084","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1116.866c771":{"name":"@flighthq/textshaper","version":"0.3.1-next.1116.866c771","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1116.866c771","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"014e4936480bdb923f92b3fcbcadc37c3597d2ff","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1116.866c771.tgz","fileCount":54,"integrity":"sha512-WBifHvnauN2srH0JmIC4DXXvuUvKDI3nAzSSU2+ku2MK/ojPDM7XL65JS5b0wcS9jBwbZA6JN8VDUVDxLCDCDQ==","signatures":[{"sig":"MEYCIQDgOi9RnNw3POIx/n6lCnYZm1wJkEArYJWYdIZ2j6Jf+QIhANYc6YtDISgN78Jwyf4PaFZEdrdExgaxQ/wVH0TDZH+G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1116.866c771","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"866c7712dfc03ca65960959ea6b5a858c68234aa","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1116.866c771","@flighthq/types":"0.3.1-next.1116.866c771","@flighthq/signals":"0.3.1-next.1116.866c771"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1116.866c771_1786772872845_0.20746802483652638","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1162.1c7f42e":{"name":"@flighthq/textshaper","version":"0.3.1-next.1162.1c7f42e","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1162.1c7f42e","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"3d13cdcce0753d13ffec22896c6a6d1685353467","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1162.1c7f42e.tgz","fileCount":54,"integrity":"sha512-9MOdLZzPMG7qJGizNsAmFPDyYbenOCeUwsiv1eJVbOcf9dRbeGWlMqZ8SF9MCtw2YMt28x8WOvrH0sTAcA+f+A==","signatures":[{"sig":"MEQCIAfPcJXjMZe+ux7B7HzTaMzrHXfVGu7UYzBYppWgziZHAiB6PCVAqz8ATRoMjo4nU+8M+q+4wEW9HEWrHjtGOjjEwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1162.1c7f42e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"1c7f42e0c8a6d050adf50aead913ec7f82037ccd","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1162.1c7f42e","@flighthq/types":"0.3.1-next.1162.1c7f42e","@flighthq/signals":"0.3.1-next.1162.1c7f42e"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1162.1c7f42e_1786893368582_0.6698691095731919","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1165.285e507":{"name":"@flighthq/textshaper","version":"0.3.1-next.1165.285e507","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1165.285e507","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"39f9fb862e161197d47ec14c28d6dd13077be273","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1165.285e507.tgz","fileCount":54,"integrity":"sha512-AfdM/ZNJM49dcH5h+UuwWi5B+POttx9y8PVLBqJShtQJrFQqzjnaOkubW0PdzltRWth6MWLoZc9gxieO9TGqag==","signatures":[{"sig":"MEQCICGN8QvgAaInkLzx17oHXOJQPJ6vhkq5O0odlcmaCVfmAiBe4Os+4+QwBwWExPYbjJAZUcBhFLrQpNioB33mvs1EBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1165.285e507","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"285e507fb9ad8a5f0914347453d841a36136024d","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1165.285e507","@flighthq/types":"0.3.1-next.1165.285e507","@flighthq/signals":"0.3.1-next.1165.285e507"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1165.285e507_1786916310897_0.27222294640642697","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1170.8a733e4":{"name":"@flighthq/textshaper","version":"0.3.1-next.1170.8a733e4","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1170.8a733e4","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"adde46f5ce13ae17bd4f4f52a264485c266a4097","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1170.8a733e4.tgz","fileCount":54,"integrity":"sha512-HenMMjkBxbGCd8QsooVhMUM/5UZOWNDHmJDXPk4Kixl7rFme3+1Gy7yLqtgfRrgddNxZvjsH0UFygi8uwo7iYA==","signatures":[{"sig":"MEYCIQDE+0DFcK481QVGw+9s2Wi1wMkFZ0uCaI9lhT7LE41b4wIhAPh6XHeLrBVxRaS4Gv1uQChTm4VwEXaiGuGh5cpTYqQu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1170.8a733e4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"8a733e40e49c32762c951839d458d92f186a4d5a","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1170.8a733e4","@flighthq/types":"0.3.1-next.1170.8a733e4","@flighthq/signals":"0.3.1-next.1170.8a733e4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1170.8a733e4_1786922358810_0.11870246150221475","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1191.e999f6c":{"name":"@flighthq/textshaper","version":"0.3.1-next.1191.e999f6c","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1191.e999f6c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"e8bfa30346908b4b2cd98b584e290dde27838d75","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1191.e999f6c.tgz","fileCount":54,"integrity":"sha512-5QhKbtK69XxZQkHDzPlRO9ZKUyV0+4BAGWPQujG6QX+S1h8ZfG80g7dwewWxq4YwDsnwgwiQF1z5nBmVowQdaw==","signatures":[{"sig":"MEUCIG8wxcLFBVJq1CHAClvxi5odXUAUzUEOCEx5w+xvQdO0AiEAon96UKFhqO3zoEp08WpbIm6/KRjO8lItZ48+hwaJ86g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1191.e999f6c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"e999f6c5b5759d60dba9f3a50452af8e2eba2168","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1191.e999f6c","@flighthq/types":"0.3.1-next.1191.e999f6c","@flighthq/signals":"0.3.1-next.1191.e999f6c"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1191.e999f6c_1786959894877_0.10609255358147518","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1217.5f07972":{"name":"@flighthq/textshaper","version":"0.3.1-next.1217.5f07972","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1217.5f07972","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"9c6352c63d022a09cee48b3d8597cbe205991291","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1217.5f07972.tgz","fileCount":54,"integrity":"sha512-a++vOMi4hS5GkQQldRMtcX0kB9LnFCzxHynliOK013aDqiLVchGO62m6dEc8uC1zUmQBVD0Ggk6pFwk1z7A2Lg==","signatures":[{"sig":"MEQCIHQTOxuhXyiChBeZAuxcqT9Erugx8XSZSMaViq/+feFdAiAYC3km5JeLn/BiqMCkZrIOsSqXNBbNw4SEFbAr1ydZ1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1217.5f07972","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"5f0797204744d188d3cf2f94caaba730bc49c3d5","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1217.5f07972","@flighthq/types":"0.3.1-next.1217.5f07972","@flighthq/signals":"0.3.1-next.1217.5f07972"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1217.5f07972_1786991316811_0.5904788186928036","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-next.1240.e41e1f0":{"name":"@flighthq/textshaper","version":"0.3.1-next.1240.e41e1f0","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.3.1-next.1240.e41e1f0","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"f8cb3db0c0a292cc4aea1c3e53bb060b04105bbb","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.3.1-next.1240.e41e1f0.tgz","fileCount":54,"integrity":"sha512-a2XdcOxrW8KcKZl8atSpOIaagNlpoZ49muTVCi21zB1QxutlFNe/B5r5CjT6EpH15V+OOfxxtnC+O7UOzektuw==","signatures":[{"sig":"MEQCIF4JYdQlCTWgNwCECJdBlcv9K4kmy6B0AgZy9Jr4CWSPAiBXRyD1W1U2cLD2awg78F9V7KvRCuAlBVOx7n1oBRFflA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.3.1-next.1240.e41e1f0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"e41e1f057a6a80c8aeac7c58383a98af0968b676","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.3.1-next.1240.e41e1f0","@flighthq/types":"0.3.1-next.1240.e41e1f0","@flighthq/signals":"0.3.1-next.1240.e41e1f0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.3.1-next.1240.e41e1f0_1786999541215_0.9890735817186016","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1261.f361161":{"name":"@flighthq/textshaper","version":"0.4.0-next.1261.f361161","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1261.f361161","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"66e513f0e93abfc6c3d04562b641b8ba72b78379","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1261.f361161.tgz","fileCount":54,"integrity":"sha512-Gj/G/IWxo3yKexpDoUvU5yYScb4NVDQrnLmDunKA3S0kA2YGrqVra2/XRZVIW0tJrc5PsBc6LJUd1Rzk0MLH8g==","signatures":[{"sig":"MEYCIQCEJCsfRkTxsG7kE64NelVgQ7UsmEmI4SNd+n/FtJVtsgIhAOtZXcZ1BU3bCXY76BzMX1+KRKsKksVoAjjVvUNOBu3I","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1261.f361161","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f361161ec23e478bc35b88d31c331f0d50f13eeb","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1261.f361161","@flighthq/types":"0.4.0-next.1261.f361161","@flighthq/signals":"0.4.0-next.1261.f361161"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1261.f361161_1787006183618_0.05604529534133729","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1263.aa14a22":{"name":"@flighthq/textshaper","version":"0.4.0-next.1263.aa14a22","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1263.aa14a22","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"138906b2126fd8b5ef43abaca16114bf8f7a4bba","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1263.aa14a22.tgz","fileCount":54,"integrity":"sha512-mWVwzFOBClwqiufwkDR8FbA4p0AkKsElq16Ox3jCITUy5GTyoEfkgdNoVnnFcdQ1ehipcwOcAwICmzpIYGxxtw==","signatures":[{"sig":"MEUCIQDmGnJePM3Hvo+72ueDpfKSDpLMaVgIYXowgdmZW++xggIgYcxl9AYt7EIeYp9yPn/oncMEkNY+pps9rqUANBg2hXM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1263.aa14a22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"aa14a22895fd01758a537a267228fdf4129fb3c0","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1263.aa14a22","@flighthq/types":"0.4.0-next.1263.aa14a22","@flighthq/signals":"0.4.0-next.1263.aa14a22"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1263.aa14a22_1787007252968_0.71814739673172","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1287.1dae9df":{"name":"@flighthq/textshaper","version":"0.4.0-next.1287.1dae9df","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1287.1dae9df","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"7090f59c2917076464ebbf2089ff47b6f2b98708","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1287.1dae9df.tgz","fileCount":54,"integrity":"sha512-o+y974SljRdVMFYy0FahYjozYERIU77Gz4quISDoL9DrIW7U76oSaQcXS4vWGITZ1xdR+I0b8nx+I3wFk8G5aA==","signatures":[{"sig":"MEUCIAksRHixaYhmASimKnSew9GRdFOgyHwuYBWHxcz0R3/tAiEA++E04y+lRvCb1GLwkQDcCcc0Vm4mfyqoFKc6E1duxKs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1287.1dae9df","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"1dae9df025ffb9e821049b01f17339de7f747428","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1287.1dae9df","@flighthq/types":"0.4.0-next.1287.1dae9df","@flighthq/signals":"0.4.0-next.1287.1dae9df"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1287.1dae9df_1787014843745_0.5985205450443689","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1290.99fd889":{"name":"@flighthq/textshaper","version":"0.4.0-next.1290.99fd889","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1290.99fd889","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"7b3d3a0b0adfc8e45fd04186b85124ef9acc5e86","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1290.99fd889.tgz","fileCount":54,"integrity":"sha512-d+XgSrT/ROg9EjVmH/tIPm4l0IITB4DelRNGFGPCEbnrXaJEFdn9p7jAHMgN7vDmxTOwg2YxNL7MZOXAus9MLw==","signatures":[{"sig":"MEYCIQD5qSl/RnkwtqeostJbhJqnuHNsOnipPBUZmaksCTUMRwIhAJIy/8eBRbGQLlRB7ob2Hk3vtLnBAH2V6sICCawYCaMt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1290.99fd889","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"99fd88963a6b0552f04e4a369008a84e1863aacd","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1290.99fd889","@flighthq/types":"0.4.0-next.1290.99fd889","@flighthq/signals":"0.4.0-next.1290.99fd889"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1290.99fd889_1787016191286_0.15380177230887315","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1294.03b2010":{"name":"@flighthq/textshaper","version":"0.4.0-next.1294.03b2010","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1294.03b2010","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"41f16a77247a448368ab0ac4331f02a8bae0e6ad","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1294.03b2010.tgz","fileCount":54,"integrity":"sha512-axRBv7bLdZplqihP+58Y0Kt/7qxvCF8ZhYNQr7iVGsR8nesRHHA/BAMW86jPOnUdA6vFibhZclnCDVJMmP97tA==","signatures":[{"sig":"MEYCIQDs6yORjvE/5qw2zE5BUdM1R03UNIz7NdJiztBaGqFpjgIhALd/2NWwOIntO6AuqNaVr2xusX1YIp2jDwai0+yLIJFH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1294.03b2010","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"03b20100b01fce4383bfb5e3f198d31ac16f94ea","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1294.03b2010","@flighthq/types":"0.4.0-next.1294.03b2010","@flighthq/signals":"0.4.0-next.1294.03b2010"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1294.03b2010_1787020408746_0.8985528310873891","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1296.dfa990a":{"name":"@flighthq/textshaper","version":"0.4.0-next.1296.dfa990a","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1296.dfa990a","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"723bdfbdf680ea2b261eba090fbefd90e4ae219b","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1296.dfa990a.tgz","fileCount":54,"integrity":"sha512-Kzrahk+FV7vgkoIMoqHYgjZyhZAFGL2jmIe65riJflzymL6ZqJH9eeDhJB3M+SOucHPF9WBI90EbddvL8hz/xg==","signatures":[{"sig":"MEQCIEyXgqssw1lscru7GP7FXCGqJlIB3saDH6aJloWuGUYNAiAFOskwosrcHYG6R37fR2WY3gXM9pH/nyXKGK99LuTVBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1296.dfa990a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"dfa990a25f0d30ffc753984cefac6fa02f65bfc1","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1296.dfa990a","@flighthq/types":"0.4.0-next.1296.dfa990a","@flighthq/signals":"0.4.0-next.1296.dfa990a"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1296.dfa990a_1787026941363_0.7106444817088298","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1299.541fadc":{"name":"@flighthq/textshaper","version":"0.4.0-next.1299.541fadc","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1299.541fadc","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"60dc14635415113806133e85a0b5af9136938e62","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1299.541fadc.tgz","fileCount":54,"integrity":"sha512-JdIu3Q0Mn3YbFBr/eiW9zm8kOF0t7pZWHO5euVzs++tSzEdk3085u2gm1LzEX1nrsJ/0A3vzt/It87dK0yLlhg==","signatures":[{"sig":"MEQCIFv75eLGseuz9S2Q9AFRueX5v5b1yLYVkmvDk9/ZL2nOAiAu8Zxpl6PUWkzz6+gszh06Xu6psWOX/aI/yNY9Y/WsBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1299.541fadc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"541fadcc42ff9672e4f0184a4dbc76e0945acd5f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1299.541fadc","@flighthq/types":"0.4.0-next.1299.541fadc","@flighthq/signals":"0.4.0-next.1299.541fadc"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1299.541fadc_1787033974380_0.4883754263594777","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1350.7431bb1":{"name":"@flighthq/textshaper","version":"0.4.0-next.1350.7431bb1","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1350.7431bb1","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"aa1528e7700cb93e0f7593f386e172dd60fdacdc","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1350.7431bb1.tgz","fileCount":54,"integrity":"sha512-y6lR/GHFg5/p69qEE59S4vFmSgUM/njhDUQkxivn97/NyAk29IKkt9bS0GodD1D03Zty6l/LaohsFl5k7WWOiQ==","signatures":[{"sig":"MEQCIERDcWXyQvIY8X8EHf5oKYMMaOpZzW4IEHz/bpTrotJGAiBz5zS9hmB+zDqnI0XFhFvmjTcId9f2u/w4Kx0obfmkQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1350.7431bb1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"7431bb1294fe823c7b7e59844e6a0f58b1ae3bc2","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1350.7431bb1","@flighthq/types":"0.4.0-next.1350.7431bb1","@flighthq/signals":"0.4.0-next.1350.7431bb1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1350.7431bb1_1787067116256_0.6320109109379113","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1351.6ec45d6":{"name":"@flighthq/textshaper","version":"0.4.0-next.1351.6ec45d6","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1351.6ec45d6","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"4cd8629f2c97adb753dcd090dbc706f7ba5be864","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1351.6ec45d6.tgz","fileCount":54,"integrity":"sha512-RBlSO+Jd0TutT2mI11di5kySRB7hGW9/Qv4EeIYyY+s5NK+zFrGEpNzFQNzcoD6ExFp7mPnUdo5nlmXAmKvXYg==","signatures":[{"sig":"MEQCIHiXTvVRzu+Dv0mcu/5blOxBEsEFT/dZ9Px4r2mTrGPaAiBYRIFdxtpmc6whGneL+g+m+TKwfqes4rgjmnCWNzcwMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1351.6ec45d6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"6ec45d6b31d6d287c2e8eba72b0c85fec7667c0c","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1351.6ec45d6","@flighthq/types":"0.4.0-next.1351.6ec45d6","@flighthq/signals":"0.4.0-next.1351.6ec45d6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1351.6ec45d6_1787068116948_0.392713375467985","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1354.5181c5f":{"name":"@flighthq/textshaper","version":"0.4.0-next.1354.5181c5f","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1354.5181c5f","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"701c104eec890b1bd2c1f8838a88dd434b185a71","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1354.5181c5f.tgz","fileCount":54,"integrity":"sha512-SuVOLD2PzppkCTDdwbnppyZbL4BhUjEnGHaW2Ylxsd4yHcColP50oN/l5on6GnNUTNjSNRae6mPwD8BcrNbjdA==","signatures":[{"sig":"MEYCIQC+fGbmESH01FVnD/bWgCN3UznUuO2djkOBCpKAjT6fOQIhAO8YIgqLhQQ8pX8/7/wxcs21OJ1w7pG9suNK//oRLwDR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1354.5181c5f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"5181c5f1c469000694988e1f6e7dc37a98c6b28c","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1354.5181c5f","@flighthq/types":"0.4.0-next.1354.5181c5f","@flighthq/signals":"0.4.0-next.1354.5181c5f"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1354.5181c5f_1787076875257_0.553806116152054","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1356.924bb91":{"name":"@flighthq/textshaper","version":"0.4.0-next.1356.924bb91","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1356.924bb91","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"f89aac36d296f51c7755df755b7579cdb70d1f78","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1356.924bb91.tgz","fileCount":54,"integrity":"sha512-W3JWmG+eBRNvYF2BE3MBONJljE4yPO/emlqzWI6eIIaOFt5pql7updn0fQ79M699A32aR/30wjapGWt8qlyayg==","signatures":[{"sig":"MEUCIQCJ6/LSJj6v5ExWpV363CpVSWRx0/a9ey3dbVHguPJ93AIgdhJ/yxS+0uORYCDNkKTUp2A1qDbaYfRqT/erSNCayYA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1356.924bb91","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"924bb91791102bc3cf5624441610ef3e2b335b68","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1356.924bb91","@flighthq/types":"0.4.0-next.1356.924bb91","@flighthq/signals":"0.4.0-next.1356.924bb91"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1356.924bb91_1787078159349_0.567518187825643","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1357.b87b5c1":{"name":"@flighthq/textshaper","version":"0.4.0-next.1357.b87b5c1","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1357.b87b5c1","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"ae8cdef201c80b9145a07e345698482f610c167d","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1357.b87b5c1.tgz","fileCount":54,"integrity":"sha512-WuJKzVUGUbr9bsRj/RPhVe0CwqQNyqNsc6+atauSBpPI1Q9E0WqZOr6yhbYHD0+1FVnieVKLbOCSib0pJxLhkA==","signatures":[{"sig":"MEYCIQDLhcrz9HNSpo4XWint6X0LT5rzZZi4qECCs0KXACgd6wIhAPUuCz8E4e5WBXIwtPTiR26/dHvLOZNxPVlpzK6YxQCL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1357.b87b5c1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b87b5c15158aa2898caff7f3e3c3867854d29d5f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1357.b87b5c1","@flighthq/types":"0.4.0-next.1357.b87b5c1","@flighthq/signals":"0.4.0-next.1357.b87b5c1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1357.b87b5c1_1787078301638_0.43386738234781363","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1362.3734bd4":{"name":"@flighthq/textshaper","version":"0.4.0-next.1362.3734bd4","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1362.3734bd4","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a2426619075280700be296d063562949c8005296","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1362.3734bd4.tgz","fileCount":54,"integrity":"sha512-5t6TeF3tjolChnZ1mg3sX326BIihgBJrAd067GcfgYQKOM89KuaYmZOxM5B6MnqJF473wDM19ifS6hN98LanJQ==","signatures":[{"sig":"MEUCIQCwhfnJpCl2mzcl9pMVSQLp8Wn01cFCDd7vxe+ZjHUhowIgDvFUJoqHYp06Yt93Ua4TJ91v2wG014JPUZB6muX5m4M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1362.3734bd4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"3734bd4936d51eea42ddfd38f48b995d49e6657c","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1362.3734bd4","@flighthq/types":"0.4.0-next.1362.3734bd4","@flighthq/signals":"0.4.0-next.1362.3734bd4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1362.3734bd4_1787078957009_0.8146430621717906","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1383.b8eb497":{"name":"@flighthq/textshaper","version":"0.4.0-next.1383.b8eb497","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1383.b8eb497","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a680b49739389e7f523c28ffd95d0ac05a455337","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1383.b8eb497.tgz","fileCount":54,"integrity":"sha512-gu9jKBuYUksJfI1/PMDtdKWijYkVsJwcHaKOHRwVZACm2BoGRtW4ElLYvgjyWx33x2smc4Q179Bw2ba8hgsvfw==","signatures":[{"sig":"MEUCIQDI9A5TqqY5TzBl64yLAgRauVeeKKUmv1f8FtbmGa/yUgIgMRLp1ZVJvRQB+7lgyRpagimtxK3gl5eRmRBy3AeMWro=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1383.b8eb497","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b8eb4977f0d1496e8c4b2f47f16c82c0710291d0","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1383.b8eb497","@flighthq/types":"0.4.0-next.1383.b8eb497","@flighthq/signals":"0.4.0-next.1383.b8eb497"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1383.b8eb497_1787080284093_0.5594643518834936","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1385.dc129fd":{"name":"@flighthq/textshaper","version":"0.4.0-next.1385.dc129fd","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1385.dc129fd","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"06521e072ec791015242ab7c7b5a47625d90ce4d","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1385.dc129fd.tgz","fileCount":54,"integrity":"sha512-DWj9LxG6MZNJOf7hRnj3Gbf8wkDMsZSEg01U5Rfrs5Fs3TJ75lujEyPXDNVSCvWjyGECKVoXxQkDYysFxWjKgA==","signatures":[{"sig":"MEUCIHpQ4/x14Gn+Aj9yPnAwnGKrtPVgNY3gCKDTV22JALeRAiEA5WiN/e1bk22quxKAtOxErfetwZzAFlMCQueQ6qQZwcI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1385.dc129fd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"dc129fdaf5719e6fe6da44e8755cbc798806ee74","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1385.dc129fd","@flighthq/types":"0.4.0-next.1385.dc129fd","@flighthq/signals":"0.4.0-next.1385.dc129fd"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1385.dc129fd_1787082051772_0.6840772887514086","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1390.ca3ba2b":{"name":"@flighthq/textshaper","version":"0.4.0-next.1390.ca3ba2b","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1390.ca3ba2b","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"30871227dedaafdbec9ea4de2a59d1b4b8ac4d5d","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1390.ca3ba2b.tgz","fileCount":54,"integrity":"sha512-/3A2cJf8ZsXfHpUUH9hp5jTmuwJ4P15othjHmKW4gavlgGFb/70rEGFOtltM7nA9TIu4cG2uhzBhscSG/8vlXQ==","signatures":[{"sig":"MEYCIQDw6RP2yb6C/352y7koHqludMtnhxupp8tQ2uLfocOOVAIhAKC21jNSazX/9GoEt+ddBy1nzgqw1BtaBicw5bsHYjCg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1390.ca3ba2b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"ca3ba2bc71b176e9f619cdfbee0d0fa5c59769bf","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1390.ca3ba2b","@flighthq/types":"0.4.0-next.1390.ca3ba2b","@flighthq/signals":"0.4.0-next.1390.ca3ba2b"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1390.ca3ba2b_1787084786999_0.5522694223927112","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1391.ef8547e":{"name":"@flighthq/textshaper","version":"0.4.0-next.1391.ef8547e","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1391.ef8547e","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"9eb2ca9fcb5d4a34a5872cc7b642f6492128f02b","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1391.ef8547e.tgz","fileCount":54,"integrity":"sha512-aVWqpuzEDE5D/UuaPB20GbLVUpW5CfUMaIczvabRgOuMagRl0ANUKk09Y+E8P3XUVRaox7uJNGqsRsyhSiUIUg==","signatures":[{"sig":"MEQCIBZyNzOdvMMbFybgtkRlnNAiPL60gbJJr4h7Y38owP5vAiBdEn3F+/Lw3n3QJtSK75J+1gL9mqh7Tl903LtuvGC6Vg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1391.ef8547e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"ef8547e4f1d53ec2c0a70c3df10b9406d13096f9","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1391.ef8547e","@flighthq/types":"0.4.0-next.1391.ef8547e","@flighthq/signals":"0.4.0-next.1391.ef8547e"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1391.ef8547e_1787084945306_0.0167591222894512","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1392.ae73a44":{"name":"@flighthq/textshaper","version":"0.4.0-next.1392.ae73a44","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1392.ae73a44","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"9e68b702c27b3a29e86cb82444cb28da85e90d37","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1392.ae73a44.tgz","fileCount":54,"integrity":"sha512-m+o1fs+efaBLS2qDMLTwAP1FxXo92zDtFGauFIMeYF95uAiLWH0XJkkxMFY3ugxK2lLXD2lWg8rDUOjCRjEWKQ==","signatures":[{"sig":"MEUCIE6CSxSuhZ3eK+5k+hHUyLcHXKrp02ECJanfV2otSQzxAiEA9D8cAsB0uCEkz7L8FHNjaNAWZAy6cTzNnWV0ux8LHmQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1392.ae73a44","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"ae73a4474c40d293f2ab2295ae932102668c6b04","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1392.ae73a44","@flighthq/types":"0.4.0-next.1392.ae73a44","@flighthq/signals":"0.4.0-next.1392.ae73a44"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1392.ae73a44_1787091074479_0.20867445732492684","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1396.66c9814":{"name":"@flighthq/textshaper","version":"0.4.0-next.1396.66c9814","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1396.66c9814","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"b5e8e7d99d0caeb64279b961ecc4a909bbf35b7f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1396.66c9814.tgz","fileCount":54,"integrity":"sha512-rakC7LY4NLAAzP/DkiajUB5VDe+n6r6B+UbgKFbFyhUJ+cquaaN+bpFyGhEXRRolTSE0ZWTHyG0ZsMim69Wvow==","signatures":[{"sig":"MEUCIDzsCCIuIyhsrPDSKi07tP1sPCV9ZXbnPPpiFlE9InISAiEAlgzLEQwDp76t5Ikd+cqPKf3OiIBSi7btooWpquyMTmg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1396.66c9814","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"66c9814f2387abf7cef7a334a4edf573110aadb8","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1396.66c9814","@flighthq/types":"0.4.0-next.1396.66c9814","@flighthq/signals":"0.4.0-next.1396.66c9814"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1396.66c9814_1787095765389_0.47185116313621234","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1398.776fd7a":{"name":"@flighthq/textshaper","version":"0.4.0-next.1398.776fd7a","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1398.776fd7a","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"d97d4d8cdb3f04281c104aebec9fe619956ec5d7","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1398.776fd7a.tgz","fileCount":54,"integrity":"sha512-PFbvftq7NStF14zXYNOTgrucDLPX+Zc//5QMWRy3MbFakLgC1DLjpk0lLUxP2uLiw1d6W8gwNs4WbCVUASupeg==","signatures":[{"sig":"MEUCIBAPGKQsVnoWoq6jRU/YR10VJsC+fsJDWWF9Lqf/CnP7AiEA4iNrM6r4KEPcykWmRLOj4ZSn8r+EnrkFSF/NYRs3W+k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1398.776fd7a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"776fd7a25d706d45456f573331a1884c9b512827","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1398.776fd7a","@flighthq/types":"0.4.0-next.1398.776fd7a","@flighthq/signals":"0.4.0-next.1398.776fd7a"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1398.776fd7a_1787095892776_0.8530086629454674","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1399.9d20d2e":{"name":"@flighthq/textshaper","version":"0.4.0-next.1399.9d20d2e","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1399.9d20d2e","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"8f837069381a7c16da3a49e05350d942d8e829ee","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1399.9d20d2e.tgz","fileCount":54,"integrity":"sha512-bwVR7D0Edm5iXUSyCcSY2YiLPTisOKmm1BDsZdbJaEqs4ao4mwL134v8HhiqJGuzY9UeySvnTDGvWYD6ntiVWg==","signatures":[{"sig":"MEQCIC/gJDHoxqccOnE+LKn8MMicf5ERSNcKc9kqS7eUnwbPAiA3or36445txiR3JKQS0dugSneOMFIvLN4szJ2RcuKVcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1399.9d20d2e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"9d20d2e0317023af656379bb16f54f02cf43c97a","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1399.9d20d2e","@flighthq/types":"0.4.0-next.1399.9d20d2e","@flighthq/signals":"0.4.0-next.1399.9d20d2e"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1399.9d20d2e_1787097494738_0.34628034308687794","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1404.4936e90":{"name":"@flighthq/textshaper","version":"0.4.0-next.1404.4936e90","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1404.4936e90","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"8f3831b5feb62d4745fad96020baf16d0e834c50","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1404.4936e90.tgz","fileCount":54,"integrity":"sha512-vvcfF3cTgf3JA0I3HXgZukCAWTHm/7D6MRqHHj7nuPRKIyjXIYmSESOSjSYZge4wpideYVdIqhNZ97TCZZRwHA==","signatures":[{"sig":"MEYCIQDzHWvFmIf/XhBGGsvq/hAzI7GVpfmZ6tjet1REzsc3UgIhAIBwE7C1UkLz19EfXy+/5z8TBHJqv3h/KGaOTwvvbJTV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1404.4936e90","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"4936e9049b9547aad61b9ae7febd4a41021b45a0","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1404.4936e90","@flighthq/types":"0.4.0-next.1404.4936e90","@flighthq/signals":"0.4.0-next.1404.4936e90"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1404.4936e90_1787102295967_0.37882754928010876","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1405.d7484cf":{"name":"@flighthq/textshaper","version":"0.4.0-next.1405.d7484cf","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1405.d7484cf","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"766b9ce9851f01675599278554afd5e13837cf26","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1405.d7484cf.tgz","fileCount":54,"integrity":"sha512-pt4wsigrtR1b33nleWlvWM90A1j8OBhsL6lPEBC3KAFI3VBWbvRRf+UO4MLrrFU1XtE1Qpodud3d0X1ygEMJkg==","signatures":[{"sig":"MEYCIQCxv3qCvABTr9lv6byij6AQmVg2sZlnjEy7yD72CwYpzQIhAOqQbS34dM+D7e/UueDwIjIztWkIabdmXmomYFalJMQU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1405.d7484cf","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"d7484cfdaa0f9ef0b3e7fd92356d39208e74167f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1405.d7484cf","@flighthq/types":"0.4.0-next.1405.d7484cf","@flighthq/signals":"0.4.0-next.1405.d7484cf"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1405.d7484cf_1787102434589_0.16736760550479346","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1410.a69907a":{"name":"@flighthq/textshaper","version":"0.4.0-next.1410.a69907a","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1410.a69907a","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"e8c988aa67a65de74e61989bc0f34a026ddc21d5","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1410.a69907a.tgz","fileCount":54,"integrity":"sha512-0qp9slmTRyUCysDIDmBH7tsAHAP3Xaic43sLwdBWHR5gnHbDBURkBodTL2naHKbHkyEJIIBZNPN3MMMsdtlR4g==","signatures":[{"sig":"MEQCIEAtEU41VgAB58VQ6x0QpJQzYKBPFDBPPY1Jdj5TkM/CAiA274edcs7Ph/JPzDa16JgHLU3l73Jdr18R6S+oOJr0Ig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1410.a69907a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"a69907a83c6ff3b3de8935e42c221b780c180296","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1410.a69907a","@flighthq/types":"0.4.0-next.1410.a69907a","@flighthq/signals":"0.4.0-next.1410.a69907a"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1410.a69907a_1787118563459_0.7223733195103648","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1412.05a7272":{"name":"@flighthq/textshaper","version":"0.4.0-next.1412.05a7272","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1412.05a7272","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"77b502b9abb6985243e3bdaeb327334dbf16d72d","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1412.05a7272.tgz","fileCount":54,"integrity":"sha512-mKML9ZeiCvQ79yNNYE5fhSIiqsNrfojlErIBcUCRXKyYUtzDxIlxBl8m2iyLFnqCjZUPnSX4B0EWwfXVn4RBjw==","signatures":[{"sig":"MEQCIFe6zGUDI2tt8yiX/VBGl44cCdfMi6y8IKKjy5KKYU9uAiBQyFL2LRJHs9oBLWy0jieHKIEZ5n2q/zMyPaYICoSaGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1412.05a7272","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"05a72726f4579a5cdb44f886630d8f92480764d4","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1412.05a7272","@flighthq/types":"0.4.0-next.1412.05a7272","@flighthq/signals":"0.4.0-next.1412.05a7272"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1412.05a7272_1787120588388_0.7955704498783689","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1415.00028b0":{"name":"@flighthq/textshaper","version":"0.4.0-next.1415.00028b0","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1415.00028b0","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"9247f58a8d241a941366c8b9cf0195388507ec09","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1415.00028b0.tgz","fileCount":54,"integrity":"sha512-SF65z6WD4t5oljVoCRlG/AC6qx1dVgC/pRaanNU3DohB4zNAAfXcy+FMRsfu0854QOSnbRXneOSv5XRj+i1IAA==","signatures":[{"sig":"MEUCIQDLcFXwcA8144WsPxkNbzJ04SYrrVCKRBJbl+gwYCqx4AIgHBJ0+ZWgCz9vFRdEJ5VQ8Vp0jF2Zovrjg6MjfqRNKvw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1415.00028b0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"00028b0f581f46010a9ba6f4d34a54cbfbe90ac0","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1415.00028b0","@flighthq/types":"0.4.0-next.1415.00028b0","@flighthq/signals":"0.4.0-next.1415.00028b0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1415.00028b0_1787121473002_0.8030276607459761","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1416.ef4fae7":{"name":"@flighthq/textshaper","version":"0.4.0-next.1416.ef4fae7","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1416.ef4fae7","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"f05346005f66fb328990ac3b71dab7adb8f0dee9","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1416.ef4fae7.tgz","fileCount":54,"integrity":"sha512-KNn4IlIGDEEw1kz3MgxDnjtLz0uf56vWENFhIYYCpSZm8qyZ+9rA7ie4ojJgxm+/yrw81qSDMba/dOuENJl9NA==","signatures":[{"sig":"MEYCIQDsNBsXAWeN1pjbUlDJXOJCfKHMw/gkP8hKDEImhZp1SQIhANG64zh++kIBFvi0AZ6nmVOHDfT8pief9QmhQsm/76k6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1416.ef4fae7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"ef4fae7fcce4981f09353ef665113c0034491f34","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1416.ef4fae7","@flighthq/types":"0.4.0-next.1416.ef4fae7","@flighthq/signals":"0.4.0-next.1416.ef4fae7"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1416.ef4fae7_1787156010360_0.9335773507261396","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1487.e25e95d":{"name":"@flighthq/textshaper","version":"0.4.0-next.1487.e25e95d","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1487.e25e95d","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"84aa4dacfdbe06b92320a4db869ffedccf63ad0e","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1487.e25e95d.tgz","fileCount":54,"integrity":"sha512-oP+dowhcH+rhbZc4rKv5FwcpT6oI82iiq3KZQRGPL8Wvb6eCgV9P3U/XNBdUcFZlazPwNKlwR3SQwNEE4Tqkcg==","signatures":[{"sig":"MEUCIER5lYS0XPnNLRScUXM4jPpZgQxwO/qZnPMcJMqW+EPuAiEAqbLj3U5I6DkP09QGsCjt6lyivtL1zz5p9QhzYU67y98=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1487.e25e95d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"e25e95d60f7439c174b16b0c9c970d4aba8223bd","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1487.e25e95d","@flighthq/types":"0.4.0-next.1487.e25e95d","@flighthq/signals":"0.4.0-next.1487.e25e95d"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1487.e25e95d_1787182329255_0.5028873872102968","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1488.43bcb37":{"name":"@flighthq/textshaper","version":"0.4.0-next.1488.43bcb37","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1488.43bcb37","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"c1d2182101fa6de8d12e1db85bba2531224a1053","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1488.43bcb37.tgz","fileCount":54,"integrity":"sha512-rmhZIYkRf6j2binqd8dkyH1Byq7wFs4wVzlYs6js6zqa9EPXlroFBbmaRIrvjS+lrH5EnuDs9cTNKmRE161YVw==","signatures":[{"sig":"MEYCIQDHHIeIVQuhJ1TzdDSayc8yMmJkv1Q1AFqRVPyPc+WzHwIhAMmqLu1YQUqs1mQ7T6pzpYuTjLMHYIDYn/VjQXMVADlq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1488.43bcb37","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"43bcb37d9a5a44d81b8490439b9e43ac5d1e82f7","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1488.43bcb37","@flighthq/types":"0.4.0-next.1488.43bcb37","@flighthq/signals":"0.4.0-next.1488.43bcb37"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1488.43bcb37_1787201005241_0.3226321089680102","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1584.a8ddd61":{"name":"@flighthq/textshaper","version":"0.4.0-next.1584.a8ddd61","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1584.a8ddd61","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"8f2a511e1412d87f0e42f4214c9647001c6f6439","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1584.a8ddd61.tgz","fileCount":54,"integrity":"sha512-FuRK+qgMKxVbmWpY4yfGvVAKQwIOoSFamduy1lyOtNA2ripc7t2A9wddnf6OPLOqm+91hXysSPuKbEgqlvEYeA==","signatures":[{"sig":"MEUCIQCrhjUTIx1v/DKWGF3hyXFy2dTpOwOdZIy8/+rZmLgbrgIgRMeUcOqy4iaVscNLT7D+FESLm8eAPx7wh1heRJL9KHs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1584.a8ddd61","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"a8ddd61739924a54b02ef606a8c16d7b66c66807","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1584.a8ddd61","@flighthq/types":"0.4.0-next.1584.a8ddd61","@flighthq/signals":"0.4.0-next.1584.a8ddd61"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1584.a8ddd61_1787250520601_0.7087077423739399","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1585.bf131c8":{"name":"@flighthq/textshaper","version":"0.4.0-next.1585.bf131c8","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1585.bf131c8","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"fb7674e5d6b00a97acb0a28c5ee65d69fcaccbd7","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1585.bf131c8.tgz","fileCount":54,"integrity":"sha512-D56YuOR2BNcry8Ex1VP2yanLXqOPF1HvhUbQexbIflMZm8fffZ6ZCeTBGUGbWj+u78d4434H8Bo5W+3HKP3jYA==","signatures":[{"sig":"MEQCIHLU7qBTv63/wo1+Z5rp3bF3jqfPh/+IfNxZladO8650AiB9T92X3UHZW3gZbQEb0lr5jeISBTNmBRZbzcbVlGk+EA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1585.bf131c8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"bf131c8abe61502de71895639d57db3e2e2c1ab0","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1585.bf131c8","@flighthq/types":"0.4.0-next.1585.bf131c8","@flighthq/signals":"0.4.0-next.1585.bf131c8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1585.bf131c8_1787251181557_0.89964376828444","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1602.af48ed1":{"name":"@flighthq/textshaper","version":"0.4.0-next.1602.af48ed1","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1602.af48ed1","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"6e9a543c2e7acd27be7f470c8384c527b31f1252","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1602.af48ed1.tgz","fileCount":54,"integrity":"sha512-BYPfimMCUNUQlg96fYtTvSGZ8Zw55VO9VknW3cVE10tEfG36DMoxQvAY69tH+n7v/3d+KuUIzH0Q3LudDe14zQ==","signatures":[{"sig":"MEYCIQDIYQe6KfcR51k9pb/JPQEAMPvEb1/Wxrddr65ILq1DSQIhANNCF+zivrMjpnlMBfUmCxPAWmsoPvYDq4Mavj97euEC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIA48fJG/qSPO6dKRlZjypF3HNswMAFCd2VV/Xlcg8LadAiEA7r3mVBQ+sh328mNS03ooNZj3a+9puljzZh2xUEFBtFk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1602.af48ed1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"af48ed1ac05ae5fda74d63d9233f32a9ea8bbaf7","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1602.af48ed1","@flighthq/types":"0.4.0-next.1602.af48ed1","@flighthq/signals":"0.4.0-next.1602.af48ed1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1602.af48ed1_1787267697835_0.4688936829913284","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1652.39f08fd":{"name":"@flighthq/textshaper","version":"0.4.0-next.1652.39f08fd","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1652.39f08fd","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"6c3e7e219f5f3e0308045a3a478f6b5083b94a73","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1652.39f08fd.tgz","fileCount":54,"integrity":"sha512-YM9uaG1LCD77o8ExBL7Qw+dVVm82bXg/DHWIcRMcwEOExkBHhq9TD0ZoPq+9pRiEhB6p+h59QDC62jJMVDPPmw==","signatures":[{"sig":"MEUCIQCE6lBqvQBzycewE2clgokRcsAa3LiCx2VBHAzOG7wRLgIgUqzm2YNurRWLayO6ITEwZ1WzxWoxZJskzpR3Yma8bog=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBKAdE5Zpwzwo6D7hYlCn0lT7McOHrXdIGreEpSqz+v3AiEArvLXUlp0VwFm4wTo6D8CnQj/uIMB+y82HHB/Bhe55Hg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1652.39f08fd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"39f08fd3355ac957ef8965e70140e77c935b6c55","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1652.39f08fd","@flighthq/types":"0.4.0-next.1652.39f08fd","@flighthq/signals":"0.4.0-next.1652.39f08fd"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1652.39f08fd_1787281065552_0.8556586206661594","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1663.d9c5746":{"name":"@flighthq/textshaper","version":"0.4.0-next.1663.d9c5746","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1663.d9c5746","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"355bbbb9463bf76e8beb359dbfc536860eacda51","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1663.d9c5746.tgz","fileCount":54,"integrity":"sha512-J09OiGKMf8IwQ0k1t5VFZWh0AL0gmYgeooFgXOKvG1t1NK2BpdSQaVHXdzCNxFgFu8m/Wg2b4VgAUwa1FOVbqw==","signatures":[{"sig":"MEYCIQCKEOBV/lSR0r74Jh0EYw4lg80WnWd54I8apIRYqmMysAIhAJlIleJBFfLU/12uAXMRfk0ouwBPgQATTrAf0ykrF1X7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIC4k7KnVpRim1PhKp4bghD9HT8Q1/pgrG9GJ0Kn2CcIsAiAYhRq7JVJg2uekYsygdGZAnbSMKUjVf+QHIDL9c3KkNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1663.d9c5746","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"d9c574612a1280ddc4f84bb3486a41579a068085","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1663.d9c5746","@flighthq/types":"0.4.0-next.1663.d9c5746","@flighthq/signals":"0.4.0-next.1663.d9c5746"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1663.d9c5746_1787287791789_0.7693617447782426","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1694.598ef6f":{"name":"@flighthq/textshaper","version":"0.4.0-next.1694.598ef6f","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1694.598ef6f","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"b7db85bfc602fa95687c942f50fa5127398080df","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1694.598ef6f.tgz","fileCount":54,"integrity":"sha512-Gjri6hH/2FfyDLESucDhGPzupNTxa47l2nUKhXUPVP1Boy3V+oBDYTD9a5QZLboYzvry5j6RLCjP+n41Jf57cA==","signatures":[{"sig":"MEUCIQCVSfXM3Pb9Qz+Xjofc2dLJy+ep5+vxLCxRMxzYmZFAFAIgfdOgja72Hr1uv360dguPWpJ99Ucv5YwZZGChrtdbfbA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFtvdsy29dvkJmm4jLi3yD3/meBupwcgIEihXIZI4DRRAiEArl319niiPpHhSMWs0nYy6aWMopCYvWpQqPL4ZYHN8O4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1694.598ef6f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"598ef6f62b6f1ae2873956501069ed824699021a","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1694.598ef6f","@flighthq/types":"0.4.0-next.1694.598ef6f","@flighthq/signals":"0.4.0-next.1694.598ef6f"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1694.598ef6f_1787288686398_0.1357321117040029","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1695.181dea5":{"name":"@flighthq/textshaper","version":"0.4.0-next.1695.181dea5","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1695.181dea5","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"925462b9ddc3327a9f09cec06e8c6e4ef89f61de","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1695.181dea5.tgz","fileCount":54,"integrity":"sha512-4WhsK8Gd14nu8uJKHNwbdquPIA5RGACUKcD8mqMu8jcjZSLsz/8KWLJHliw/GVK6ALaaAc1z9HtkUeAehOs/EQ==","signatures":[{"sig":"MEQCIEYOUpyZAx4IRT0MviNPYHulNminWjF5u+z2xIBdNiI+AiAFJIPxMHFIAkUFTnmcIaFKtbzayNJKYQ3+JlEe01eyCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFb287IKKySnrA6L9uyFtjJh9jXn49UovdlYZNf+NMQhAiEA1uMGD0Me11pzBuys/VcE1hAAssJaJ/DD9vVabWCeymw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1695.181dea5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"181dea5e323d8b0845ede2fade7f67b2ce8d2554","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1695.181dea5","@flighthq/types":"0.4.0-next.1695.181dea5","@flighthq/signals":"0.4.0-next.1695.181dea5"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1695.181dea5_1787293166946_0.6617062548420993","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1696.93f6f63":{"name":"@flighthq/textshaper","version":"0.4.0-next.1696.93f6f63","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1696.93f6f63","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"895152e66fcd6d91912d4e08f6c96b3153666536","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1696.93f6f63.tgz","fileCount":54,"integrity":"sha512-ZBFR/xNYPnw0ZWM+2IIH68l6fHX0bzVFW/9PACN3yIN1QEtYCC/PKD1iE8Sk4T9zpe7KZ4pOkAz1DzaGHSRDyQ==","signatures":[{"sig":"MEYCIQCVlaptu0RqlRgfccSwbWRO7aWxBz7UjotIDUPjbOKapAIhALaQ1PTx0/OgBWUJMamobj2t1K0qsFsyW7jbNGpcfO5G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCizw+qE71RUnOHLA0cMysWxtbm5UA7NRNCrKfjrTIZSwIgReOhLwo65LqVihJoQg+RjWMtphm9z0RNtcaG4EE4Kx4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1696.93f6f63","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"93f6f63eca2b6864dedc151c301be624236f131b","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1696.93f6f63","@flighthq/types":"0.4.0-next.1696.93f6f63","@flighthq/signals":"0.4.0-next.1696.93f6f63"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1696.93f6f63_1787293649203_0.37196421396016355","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1702.61a7a7c":{"name":"@flighthq/textshaper","version":"0.4.0-next.1702.61a7a7c","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1702.61a7a7c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"fc9ee0fd29ffa6374e0f311ea2192a607ba2cf00","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1702.61a7a7c.tgz","fileCount":54,"integrity":"sha512-v2VodHzuW8e1itVaBtDmljGA6QBDkbs65+kowCN/SuzH6ZUykcWbnHXdvrpnMa7QNYzqQakjpWxzSIFyl8J6Kg==","signatures":[{"sig":"MEUCIQCQus/coNfE1HSFl15pPiiFQ8A9pndO1Hlg9gsxfJMjpQIgUD0w7phprb6JkiMKUNKH1tatdxsx8xfqCZpvZKPmN70=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCZertHgm0PPaOyhmrx4c8imijthBJa6bXvD3noSZeBDgIhAIfOezOq2pTzW8TdSYh80Mf9/eGrM/q3u+HDAXNu82kC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1702.61a7a7c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"61a7a7cc67afb80f8df61975bac6404a7e480370","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1702.61a7a7c","@flighthq/types":"0.4.0-next.1702.61a7a7c","@flighthq/signals":"0.4.0-next.1702.61a7a7c"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1702.61a7a7c_1787296463394_0.6943791944018163","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1703.b82d313":{"name":"@flighthq/textshaper","version":"0.4.0-next.1703.b82d313","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1703.b82d313","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a6e207df4ff79876bf1f490b866b74abefa7af61","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1703.b82d313.tgz","fileCount":54,"integrity":"sha512-wKMBbGwNj6xk3a9Qw0UPA2UYTIYr0kBvGTYwpc0bNe6bo55lYySwwhlyXQCoyeoZgmgWGdbNEHhbk2DaNnEh9w==","signatures":[{"sig":"MEQCIGs4IgfCfwNUa1C7gJG6vaYWuVCHAw6Az3xVgpllX94nAiA0aBsMAtL6Uy4WMYXVupxrgUo+hI1VTlKpCTuZOqDcDw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICt6XBmGt/TPl7ptPqqgFy0BTdxj8ZS6nO8Dk0n2Bo+aAiAVU0nB7tVzT6IrK1j6Zd+60e+3QqJsgU4HLhekSZBajA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1703.b82d313","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b82d313abae5abbfe0568f8a0ecf7e7cf834d269","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1703.b82d313","@flighthq/types":"0.4.0-next.1703.b82d313","@flighthq/signals":"0.4.0-next.1703.b82d313"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1703.b82d313_1787298292829_0.2745972584718883","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1704.9eb98e1":{"name":"@flighthq/textshaper","version":"0.4.0-next.1704.9eb98e1","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1704.9eb98e1","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"d83993a87b286bfd59c4d027ef33557395b13f36","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1704.9eb98e1.tgz","fileCount":54,"integrity":"sha512-JTO1pbbJe6xJHP9fWQGw4kyNqVj2g+QbC34QNrh0xFhbq3dc98kltBa1vzzK/mveF3JO3/S+Zo1oQxXqyG/dDA==","signatures":[{"sig":"MEUCIAG2zA8An43UllOOfNMqBP0ToA0EO/XSNS+03JUlG4PTAiEAri/iA+6VXmdDtl7YWh5qXVlY63oQXa8diOPJ6+sFuWY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFM8ZElb+l6Cqrbr2IEKsSatNGiICJS5Q2r0Ua5wRkA7AiEA09uunGkSG5nJZPJxCLaW29Sc0fgWdSWW+xIPTAPJ29Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1704.9eb98e1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"9eb98e11caee246589365df812ece128264ef638","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1704.9eb98e1","@flighthq/types":"0.4.0-next.1704.9eb98e1","@flighthq/signals":"0.4.0-next.1704.9eb98e1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1704.9eb98e1_1787301052964_0.46995081530688343","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1716.1979cc9":{"name":"@flighthq/textshaper","version":"0.4.0-next.1716.1979cc9","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1716.1979cc9","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"11e5ff80b2affbe5b14acebff8d76b241346f661","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1716.1979cc9.tgz","fileCount":54,"integrity":"sha512-Ox5QzdKMw49WQ7h9NnyS1ujFG3tRik8eeHkN3ItdTCTRhdCWqNH/N9RrYXUtdEwCbusZFTzcprnLZMLhT9o1Kg==","signatures":[{"sig":"MEUCIQDxarMbbH3QwOZT9ueoYWZuT+Jz23Q7RUZxyQ4AfxEHIQIgDUveMxcAumXdvRmxjV6rY8ZMUn1gRFiXoyae3mCB/uM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCDmUY7xR6A/U0J5pCGLVoOlzdRkvQFGowMGZDM01Vn5wIgM9kkAktyCfv+OUCqyBtVMhpfSwyWiqJA98q6i2+8UqQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1716.1979cc9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"1979cc9bfdae5161eeac594f0460968a65b852f6","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1716.1979cc9","@flighthq/types":"0.4.0-next.1716.1979cc9","@flighthq/signals":"0.4.0-next.1716.1979cc9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1716.1979cc9_1787305388546_0.31721716136726785","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1717.9d6a20b":{"name":"@flighthq/textshaper","version":"0.4.0-next.1717.9d6a20b","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1717.9d6a20b","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"c3369fd5325bcd2222fb0f4fcb71451c7e345ed2","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1717.9d6a20b.tgz","fileCount":54,"integrity":"sha512-sEkGnrzmYzc7N8ltwgTKTnuh1ofCvzYLDxezcoIWlkXP0AhfgNKVA5ZdCkhKMaFPdqlotSufzIkNO5DMjsPw6w==","signatures":[{"sig":"MEUCIBlytk0M8hfTIDkJOQFrjbnby4OaXTuKxM6/LSUIu5KsAiEAv1NHvwmEQ0DjVevS5ArSfTiz0LmG1Ory5aEoj17iCYQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDPIB+nqb0ho+gKWV99xDC1n+TTUDhR2oWkRpCjZEMu+QIgVOs6vmPal9f0S8mUBWYUmoomllwPJWfE1lyOgd+f5bA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1717.9d6a20b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"9d6a20bc14f3fcb2ef914442e1092ef1711316a4","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1717.9d6a20b","@flighthq/types":"0.4.0-next.1717.9d6a20b","@flighthq/signals":"0.4.0-next.1717.9d6a20b"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1717.9d6a20b_1787307899828_0.32508582767835925","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1725.752ca79":{"name":"@flighthq/textshaper","version":"0.4.0-next.1725.752ca79","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1725.752ca79","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"fa14f062754d685146bffde1f61ae4c87328f13a","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1725.752ca79.tgz","fileCount":54,"integrity":"sha512-HcVIo23oQN1g0CAZXOQQaeXWeK+Vdqgmu7ozFIBPuY4EyOVc0pNo9aU0LcHDxXBFmou0Ic9RApyr5yz2xN4phA==","signatures":[{"sig":"MEYCIQDtb4Wqh/xEtSwLQ+kT/PIFaBsxZqlw/HrTeVZiipkh1AIhAN/k4Zxbf94holOG4nI7rkmfRha/segR1pDKvlwH7mh5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDzzVp7UjNPh5BkKxnMBwEIoCt1i0DHFCugvlR8TZLuAgIhAIvVLK1iIBTfVBjvEXiGRTaf7+1UCt0qvrggO8KKpaiS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1725.752ca79","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"752ca79327a1e07f9d6c63d8704bb8d423500af6","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1725.752ca79","@flighthq/types":"0.4.0-next.1725.752ca79","@flighthq/signals":"0.4.0-next.1725.752ca79"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1725.752ca79_1787311097414_0.003674138435049823","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1728.f69160b":{"name":"@flighthq/textshaper","version":"0.4.0-next.1728.f69160b","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1728.f69160b","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"aae44c2ef91776a7164fc089c081e03946bcb279","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1728.f69160b.tgz","fileCount":54,"integrity":"sha512-00JHGfhoytNJ5a8UCYlI7BoxzvrxKGj4sJx67q1FyzMAqIyH+mEPfgvd47K4ux8j8pNtFnpvLXCu9G7L7nA5VQ==","signatures":[{"sig":"MEUCIQDZX+zDJVgqqWgIhyuuLP3ReyMnPGxjr98jRjbz7ZbZaQIgeTbp+y3RYZWGFW+sFIKLMLcqxwcUuTYHldt5z6VM07A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGaDZ/VwCy3HT58Gg1tpTxzH4cjcviILMhe0sBh42i5yAiEAznBnS/AkgUdAqI4UStCC7stD455FneWa9WeBoACs/vU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1728.f69160b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f69160b30438f81d8ec0f7641b68cd1acef88df2","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1728.f69160b","@flighthq/types":"0.4.0-next.1728.f69160b","@flighthq/signals":"0.4.0-next.1728.f69160b"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1728.f69160b_1787313736654_0.7383370679130778","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1749.d81a21c":{"name":"@flighthq/textshaper","version":"0.4.0-next.1749.d81a21c","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1749.d81a21c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"0a239c35dd52dd62144088d3f4a59fea79604fac","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1749.d81a21c.tgz","fileCount":54,"integrity":"sha512-kWUBYcQs58l8rKW7F2mrqPwkT/imAoN7u8dPTGuNLynp936P4JksnFGaGzc6W4mUajAbWhdMN56i+KbpK1Pgzg==","signatures":[{"sig":"MEYCIQDiWBLouBQaCQ9Gle5SKYRRjMV+5jtg4L2ArQEJjxd3BAIhALPdYs0jy/wnD6zCFPFEJxGYpOxlaLG8JTErS9s9ShDE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEL4goeK5gv6MKI3lFO9q8YvJ1IxUbamhPDHFzlLPIiaAiEAuByBTpfav9iGY/tSs4PDa37Dk93xTyxeE2hNvVfGdFY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1749.d81a21c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"d81a21c7a4f2ee48fe9eb1bdabae6365c8c8694f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1749.d81a21c","@flighthq/types":"0.4.0-next.1749.d81a21c","@flighthq/signals":"0.4.0-next.1749.d81a21c"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1749.d81a21c_1787316021508_0.12936754031041886","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1750.13ec8b1":{"name":"@flighthq/textshaper","version":"0.4.0-next.1750.13ec8b1","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1750.13ec8b1","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"61478c3281464ac2930161503697fccbddfcc88e","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1750.13ec8b1.tgz","fileCount":54,"integrity":"sha512-QlhV7kx/wPbEpp3S/LFAUDIEqzNRK631hD98Km2r3Y4+X20uUYsR4mC3bhSRdmky/qcvdlLw2decD95R0/4QlA==","signatures":[{"sig":"MEYCIQCF+oJi1x1PSPxp/byuQRg7rOfhu5A+GQzSRMhnAkb3zAIhAOs958wsLm4LXbj7Z4BTKSGqniwPMts4v+sK+j3vfedt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCr4VDvI+Jzt3Bnp7j4VkNwXFPNq4IbfI9UmKUATZvjGwIhAIc2LmewMFplIlarQjZ9IWiq8VtP07jC/MOmzAN74/C6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1750.13ec8b1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"13ec8b1cdbc0eb53efb9cafd805987c1259ddb03","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1750.13ec8b1","@flighthq/types":"0.4.0-next.1750.13ec8b1","@flighthq/signals":"0.4.0-next.1750.13ec8b1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1750.13ec8b1_1787327127597_0.7785652431834897","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1751.b3eea5f":{"name":"@flighthq/textshaper","version":"0.4.0-next.1751.b3eea5f","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1751.b3eea5f","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"f7310f886eeb5ac4f8872ec88eb66950d6cafd16","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1751.b3eea5f.tgz","fileCount":54,"integrity":"sha512-u2Et8ULE9tiGqGR6ymaTB2kI4e/nBsy8x6gi6z55P2EeLbg4A+rKzjxfAx1rHZwd/mmw7XDRIHB/t5PoOZygRA==","signatures":[{"sig":"MEUCIF2ejGQA5zIg3fux1JpPPRhEyXGDS7hsk1liw2EvP1pdAiEAjwBmf29wkc3jXAiJ79y4NH+TtkrOSxwVkIlogndr5MQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIC8PRDfoq1AuGfzDUCJL9sKMtuiR5TCdt4dnPkY0iXYrAiBx5bwiq5VsYZ6PGCZwzRc3QzcYOBt/jBeOBa2Ak4UUMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1751.b3eea5f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b3eea5f93b4df315e1bc80cc7af37a9fce30e49d","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1751.b3eea5f","@flighthq/types":"0.4.0-next.1751.b3eea5f","@flighthq/signals":"0.4.0-next.1751.b3eea5f"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1751.b3eea5f_1787327950690_0.8144445117432109","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1752.f250cb9":{"name":"@flighthq/textshaper","version":"0.4.0-next.1752.f250cb9","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1752.f250cb9","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"f3c07cd7b6aa14b60fa783323a6dee67e0f78073","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1752.f250cb9.tgz","fileCount":54,"integrity":"sha512-8zczrI+W3jb2synbD2q4DP5KnHFHZQ7Ckpd6qrmZJQnewxABVNOKzj5QEoLINB4xFbca5ElX4WW+GL6HRO2i0Q==","signatures":[{"sig":"MEQCIANq3sC7hLqkdjqz9heMR4qtD7YBEzsGS8BYx2jdfqoZAiBr+RKWyqh22ngfWr7ADmcbAxzL8BpZqTKVgXbk7PmqSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFi9xHLLzswFu9KA34eg/vCT/d6GtBBlhWYnVGagV/qOAiEA03SC52upNwEIGboda3FJif4H/kpUqcUERUu6pTXtyBg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1752.f250cb9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f250cb9b2929c0c77b66ab527cb4ef52d08f95ef","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1752.f250cb9","@flighthq/types":"0.4.0-next.1752.f250cb9","@flighthq/signals":"0.4.0-next.1752.f250cb9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1752.f250cb9_1787330021998_0.5956958608207967","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1763.f98ae25":{"name":"@flighthq/textshaper","version":"0.4.0-next.1763.f98ae25","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1763.f98ae25","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"3349e41257e9ed9181ad8b2cf58690103d51eec7","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1763.f98ae25.tgz","fileCount":54,"integrity":"sha512-gYhwF1njUoKuvOHR13zUduTnWLHg64RLfs0XrjtwJP2sW2XCQxSNfgXTwx9hcPrJBlUWpKCUZJuevdb20Mruaw==","signatures":[{"sig":"MEQCIAxeJFm/dbaTxhWSGDQR7csdIlXthDp4kbnbP95djs8fAiBslEk7xlrlD5KC9A/6BRFeGKHuVYGA3bb3BH8TBUk25g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCfQyBfLhvBlqpDu6AKYfnU9z6UFn/kvhZEZIj2IS/c2QIgHh5IFUC46qB3uYbI+eRxlfScilX0Zdln+0TMxDnwTMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1763.f98ae25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f98ae2586aa1105186b57f1528e4260424194cfc","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1763.f98ae25","@flighthq/types":"0.4.0-next.1763.f98ae25","@flighthq/signals":"0.4.0-next.1763.f98ae25"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1763.f98ae25_1787330326382_0.17806465613757605","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1771.f4d15c3":{"name":"@flighthq/textshaper","version":"0.4.0-next.1771.f4d15c3","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1771.f4d15c3","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"4235e2fa8c79004146bf0fc4c675dd812ffe764a","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1771.f4d15c3.tgz","fileCount":54,"integrity":"sha512-tW2r/B8b8n3Lo31WXirwvZs2/OpHRMVme3kZJkylIHLCXPLBQTb+JyNF96d2CRueOUGHnNfPun4+cyDJ1xx78A==","signatures":[{"sig":"MEUCIQC5xkojwdZSWGU3h3o08pLiE+1BgUSWamqVM+4KnMvMKwIgWTp//IBhgNWPFtQDUX+fekZ+q8q+R72Yrpvnkd2J8mE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDeRjc2S1cttt0y8Xt4GC5OGOTXyqYnoz2rpnqKFDb7XAIgL2msThIxz+iR1sXbKZJijmGXk6rGVo8d9og1CKccCfs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1771.f4d15c3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f4d15c39c3edf4ef1608dbc61e98cbe82d4cb49d","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.8.2","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@flighthq/log":"0.4.0-next.1771.f4d15c3","@flighthq/types":"0.4.0-next.1771.f4d15c3","@flighthq/signals":"0.4.0-next.1771.f4d15c3"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1771.f4d15c3_1787338289204_0.9978772654464922","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1809.9b3b71b":{"name":"@flighthq/textshaper","version":"0.4.0-next.1809.9b3b71b","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1809.9b3b71b","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"e54d7301c38c28cdbab80aff704197132bee60fc","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1809.9b3b71b.tgz","fileCount":54,"integrity":"sha512-A20c+wPEWRcKxp2SGIdCjVrM5BL1nip7dZPiMUUq5VrUxE07/LAu89Pa6A7kAvhH12uTsykJS7plc4x5RiEI4A==","signatures":[{"sig":"MEYCIQCGmZNGIj2ofRsjVM/TkyKwMDtsw9wX8eKxKGGiDklJcwIhAPKbIHqtsjxn/6eHxSa9ksDH4IDLH00H9C69lbLqttCa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDIGBn3F4lyaaA+AxqXPxKnmtG+vUy3OIjmWcmdu6rpFQIhAP1vFvmwGl3xdBe4fJZmihplPZGwsDnj8UJAVednPKKv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1809.9b3b71b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"9b3b71b019ff48ea6329c16020f37fb72c3123d1","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1809.9b3b71b","@flighthq/types":"0.4.0-next.1809.9b3b71b","@flighthq/signals":"0.4.0-next.1809.9b3b71b"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1809.9b3b71b_1787341231331_0.38495820919092005","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1811.dde7eb1":{"name":"@flighthq/textshaper","version":"0.4.0-next.1811.dde7eb1","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1811.dde7eb1","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"07dcfbf032ef2f9ff787c75d894693bfbbd894b1","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1811.dde7eb1.tgz","fileCount":54,"integrity":"sha512-GLHoV3PTqy2/qqJYyoTOxGlq10qE0KQcOgWbOWorEnQFlqxxasRxI0cbS5s4KqJUx7fSmCZnh5vsAOR2N33WPw==","signatures":[{"sig":"MEYCIQCzmeWZQu+tTdrL7dtGQ2iYRksb5t4UGaacwgqiuek8jwIhAMNF7o15hW+MqsDBcJ/gCHlxLfrbAuzrWCAQZ2hdVOB/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCZAfwzAnl/dOabst+FR5bWmzjjZrJWuGgotTVWkm0ILQIgcWU0uj+eC0xsh0CF74tUwgI4oYCVCPSF/hJIQ0k269g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1811.dde7eb1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"dde7eb194e4d6e17001a6ccc0e53aadfb93c7942","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1811.dde7eb1","@flighthq/types":"0.4.0-next.1811.dde7eb1","@flighthq/signals":"0.4.0-next.1811.dde7eb1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1811.dde7eb1_1787342165490_0.9252160225431483","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1815.e47cc3c":{"name":"@flighthq/textshaper","version":"0.4.0-next.1815.e47cc3c","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1815.e47cc3c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"865d118befcae0fdcd93a7bfb0e5ac766390c90a","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1815.e47cc3c.tgz","fileCount":54,"integrity":"sha512-deGL5RU80FAdN6St7Ufo/WHEWqIby9YmYy3sz4Sk6LVcSgHDAJMlJUo51OteDm7OJpXCTswTmiIVf/xk1iC15w==","signatures":[{"sig":"MEUCIGB7GQbZP4W3FJg6Rg2wg5N9/fooCfhvEuVxzqrNyIhpAiEAk//2TTyXk40SyJqUnlZLST7l+uONZCfd6wjMymIG4OE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEeVQI1Pz/UAXO2DduIcyAJwplCzoXEKvxk68CXQE7ULAiAnejZbP/7z6meHpDkgdkhFu9uoPqaByEhqHBhV3cAPDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1815.e47cc3c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"e47cc3c212c55d19e1b46ced1fdc6c63de9e3916","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1815.e47cc3c","@flighthq/types":"0.4.0-next.1815.e47cc3c","@flighthq/signals":"0.4.0-next.1815.e47cc3c"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1815.e47cc3c_1787344221710_0.4335833255313455","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1821.efb1cbc":{"name":"@flighthq/textshaper","version":"0.4.0-next.1821.efb1cbc","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1821.efb1cbc","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"b54235dc9d22edc31f50fb099a33d88e9b654b8f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1821.efb1cbc.tgz","fileCount":54,"integrity":"sha512-t7IAiWNoE3MhtM7qZ/67/D56BYDS46nMKLgwUQE9S/8YNclMMS9gBRXnFlfQeHV6pSgN5lOPfL5gkkODAIBD+g==","signatures":[{"sig":"MEQCIGMAylxiT08kLrAHL8l4FKZRY8ODbSrsSSeSZIR1Ye5sAiBUpf5qAuljF+5wHSbKCbfPvqlrPdKnV4SmsSXsyzq8HQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCdV2kTxgBnVJTP/2n+YJEb7b3XXi9XHvIj6BCnXWM+lgIhAJ2I0VvvCFNZMdMEWN9Bck/sTVBor3RKOXsUxDPJL0Hn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1821.efb1cbc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"efb1cbc5b3ccef2f43d7cd2dee822b0d152f3f82","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1821.efb1cbc","@flighthq/types":"0.4.0-next.1821.efb1cbc","@flighthq/signals":"0.4.0-next.1821.efb1cbc"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1821.efb1cbc_1787351663769_0.6465583171831482","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1827.9db114b":{"name":"@flighthq/textshaper","version":"0.4.0-next.1827.9db114b","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1827.9db114b","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"3a7c2ae66a67f3a01ac1eb6ab97e830820fe84c9","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1827.9db114b.tgz","fileCount":54,"integrity":"sha512-31m5OTfiw0RNusLvjTHoEpL8R7WBmeT1stlUj3PszFoJT4kKbNT0U6mkaUFU2rBhnb7u++odbt3ZIjQv6mXFjQ==","signatures":[{"sig":"MEQCIAG230U+9iw6axN4M+qK1DFBhSrpTWhr2LVB+YBJZX5eAiBT7g+Qw68GvBTei1PtyW0QcBMkda2Owmf7GyNd6oXXSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCVdbIxIpZwlss817V/G5IPYXpHTdfAhOVf7HY8HPYjtQIhAOqUDOsKfT6LYh5wWiZA3YKlzT7CfiNicBYn2N9+L0BL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1827.9db114b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"9db114b3fe1db90a90a11541649cb3af8bb5ca62","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1827.9db114b","@flighthq/types":"0.4.0-next.1827.9db114b","@flighthq/signals":"0.4.0-next.1827.9db114b"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1827.9db114b_1787356583493_0.8502986290806134","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1836.147ae1e":{"name":"@flighthq/textshaper","version":"0.4.0-next.1836.147ae1e","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1836.147ae1e","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"737594519b382d41d2d1b1df4ff56433f50cd163","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1836.147ae1e.tgz","fileCount":54,"integrity":"sha512-0WZAe98Y4Xks1IfY7gf8QXKG4jQtkNln4RKVscYv3RBmffh0VE9mqP95WqXufgGmzuiulhZNnpm3Sim9p2S5YQ==","signatures":[{"sig":"MEQCIH4hhkHM5BW3orEN1Z+isvDk48ae9VKTa8qxZ5ekEj/cAiA02knKwb45qnK3ZPRrw36aT5XsgsQsUChc+N6QljtJ5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEqc8kY4kIWeZBq6PVd130LQ0NhgMtnCFJ+Y5YITiLC/AiAgaO+lDexPb2opQ/aFxWc/EFUeGPP5TyLAWwGwMgiVcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1836.147ae1e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"147ae1eaea356a2200495b80ae4e42b1101ae647","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1836.147ae1e","@flighthq/types":"0.4.0-next.1836.147ae1e","@flighthq/signals":"0.4.0-next.1836.147ae1e"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1836.147ae1e_1787362745423_0.511993058986355","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1884.6a2d46f":{"name":"@flighthq/textshaper","version":"0.4.0-next.1884.6a2d46f","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1884.6a2d46f","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"c0c4781191082dff9d384094d7f1ad29ca7b6b10","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1884.6a2d46f.tgz","fileCount":54,"integrity":"sha512-z2UqiKd2bsPfCFUB5JzL0EUmXvL2aIqiFBnRYeE0ohy76cTC/boucvjIJgOwne6j5xuCKYLK7S1uyl0AKKIk2Q==","signatures":[{"sig":"MEYCIQCY9IHrawBFJFSaxm8DYTATwXHyA5RLzIebEroeE5649AIhAM1qvuT1Xi71J6fmQDu+ipDV5RjDF5k1Q/1KsflF0dfq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAY4WOJXSueNpCWnwb9b+8Pn0sxCjoU7xvSqgGC4oXMJAiAT7Fi0NJSefi2Z+Xlv/x0sYcMx0WBqhW4egLE6x9PE9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1884.6a2d46f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"6a2d46f4e11232c5175ff79d306602e0378cb55e","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1884.6a2d46f","@flighthq/types":"0.4.0-next.1884.6a2d46f","@flighthq/signals":"0.4.0-next.1884.6a2d46f"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1884.6a2d46f_1787384899329_0.0752143389533726","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1888.e9e80b4":{"name":"@flighthq/textshaper","version":"0.4.0-next.1888.e9e80b4","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1888.e9e80b4","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"8dec143268ccc9b7bc59dda9819d21fb76fb5baa","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1888.e9e80b4.tgz","fileCount":54,"integrity":"sha512-GW549uTLC6RPADixibjwx+jcFgH0nVR44s9CMOB9uTiOjo+x2x1XXno4UbknAdlrRg1Qg7eINqzKDVMFXgsWew==","signatures":[{"sig":"MEQCIHXj1FzYlFZhpNl4dtV8gH3D+PnYzgcqgOZ9f3KDGIooAiB/A82/tgc8x3qPoAqq5iE+0DnB+YSHCwZLONjSCMFTkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDcF/yic9LpiTC8tMVPpmSouW6G69UlnIYroTnDyPX9EQIgbV3geo2qVPACJS9g5mvWLlHFvD/LRGT3rF5Dn0pKgUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1888.e9e80b4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"e9e80b4ab0f5a142c6554f577dfc8c640bb960c9","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1888.e9e80b4","@flighthq/types":"0.4.0-next.1888.e9e80b4","@flighthq/signals":"0.4.0-next.1888.e9e80b4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1888.e9e80b4_1787549346521_0.36063136018887687","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1892.a0b519a":{"name":"@flighthq/textshaper","version":"0.4.0-next.1892.a0b519a","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1892.a0b519a","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"34a393d8cb790a90c31129ab19c8980e25a5454b","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1892.a0b519a.tgz","fileCount":54,"integrity":"sha512-0xtZKrwwOJ3mZoEKiDRHfZ9c/sdzC/2Y/gI9+hI42/sRKafuErnITbBm9RXeRJPtFx72oagk2OjiBamlfRqnAQ==","signatures":[{"sig":"MEYCIQDER/7vIKdUJRfUQ0yN6c6f4uuX23Hqn/x6mbzslYn2NQIhAItvV4MtpSE9p/kN3gLDxo9a8gFhss4dysLw/xFN1rRA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEX+scw7cSbK8bfSb8lBC/n2pde6qs0tUKYs2BlYl9rsAiBf33+f00u+6wJmq/kvXl21/uMKX5F1N4r6DFW6FBEK4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1892.a0b519a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"a0b519a631890913faffe94d1d3ea3287a8c8241","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1892.a0b519a","@flighthq/types":"0.4.0-next.1892.a0b519a","@flighthq/signals":"0.4.0-next.1892.a0b519a"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1892.a0b519a_1787568821447_0.7031490245645362","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1896.60d766c":{"name":"@flighthq/textshaper","version":"0.4.0-next.1896.60d766c","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1896.60d766c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"effaef4678c8257f95611d666f7f19936db84087","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1896.60d766c.tgz","fileCount":54,"integrity":"sha512-WrLLW3Am82TOS0CDNYMT3uzlwHS0iS1T/PbaCwPMfZidmjG9vG82sXCYgi4Onr27SydG8AC/kVQZenVyZWYbAg==","signatures":[{"sig":"MEYCIQCtBu9vekcA83lx8eP9hg2iZFjy3Wj1B+Q1k1zMfCiLDwIhAPMCemgAVKZ7vYfFe9rfsIA+Um1bCtTahe+vswpZzwIV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEvIlKcKgqYT1/Gkg8ltH9oAH8RoaqXBxgTKKW11Jb/pAiBNWGgTRvFmQk/o5yUsjK+Fu0h1tpOwpTcBD1HioN5tSg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1896.60d766c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"60d766ccbf3a4fbe07c603d8acfc13208d476e56","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1896.60d766c","@flighthq/types":"0.4.0-next.1896.60d766c","@flighthq/signals":"0.4.0-next.1896.60d766c"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1896.60d766c_1787571322714_0.40039657672240647","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1898.266773a":{"name":"@flighthq/textshaper","version":"0.4.0-next.1898.266773a","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1898.266773a","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"5adb3d0ea2333ffb5114801b1d3f18323362800f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1898.266773a.tgz","fileCount":54,"integrity":"sha512-Ld11VOWJKAOtDlCjtbUbDTcruDMt6G7yE85ccEiM4Op8QxZU6zN5LFjTVseNw+kajaFs63HEnD8pLTQNN42VkA==","signatures":[{"sig":"MEUCIFBLpJ1fz/b9L+SzUbySpOkN0Kc7s3VOIEoZz/CLprgzAiEAwZTgZx4bAyA+0+PoiAfBArt978WD9Q8kTcvu/uPDKP4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCEllKo1Vk22L11n12UBCbmnS1rejOb/CEGhuR/pCp1DAIhAIzkbyBp8FEXbVdnqD8vHW0U+tas2Chb3Xku8HWLNuIk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1898.266773a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"266773a60a616a3630ef40a7f33737f0697311aa","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1898.266773a","@flighthq/types":"0.4.0-next.1898.266773a","@flighthq/signals":"0.4.0-next.1898.266773a"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1898.266773a_1787575150978_0.25177512506233923","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1903.50bfa67":{"name":"@flighthq/textshaper","version":"0.4.0-next.1903.50bfa67","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1903.50bfa67","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"5972dcaa9eb6d1fa25ac51246aa5640ba15cf40b","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1903.50bfa67.tgz","fileCount":54,"integrity":"sha512-xDwmtPoBly/VMSerO0e9O1DHb2+Xq4I2jcKxGzbL0JAwKZg3XZIWjIQHJrrwR+tmj7VL2c4m3FxuuTE9YKUdNg==","signatures":[{"sig":"MEUCIFnFIYg+vNLdRj/Jw+5ucg43u0HD6d4iIFnKkkx8cNKOAiEAxgOwtSg9Nr87jeUbLrIbpjWCRKVMS2IMhQssdz2gpr8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC+LrVeUAFFuiWVDex3bmUAbbcCJuT3O2lnSytV0VClEAIhALdbeB/NKj68sXTwZlfAEfr8H+FjodOA3nU528tQ/Qs1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1903.50bfa67","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"50bfa67f3f2a3be13410ae4eb2fa3300687b20d9","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1903.50bfa67","@flighthq/types":"0.4.0-next.1903.50bfa67","@flighthq/signals":"0.4.0-next.1903.50bfa67"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1903.50bfa67_1787587934706_0.5522665767188486","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1908.751021c":{"name":"@flighthq/textshaper","version":"0.4.0-next.1908.751021c","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1908.751021c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"ab021852cd4070409fe0faeacd046d343b9a2bce","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1908.751021c.tgz","fileCount":54,"integrity":"sha512-BI9Q4lXK0jZxrk7oq3aaisDSMM4rnO+SYNCFg518uSQ0Vzwca8RztBPk9DHossMsb5QZRnKyGQuDDaSypYKgHA==","signatures":[{"sig":"MEUCIEiDYDeAXx4mPkcvXhGE3ufYBNKajAWTvHuwQE+8sRaJAiEA46sKcBU+e9qyrZct4+csLA2wNbiIe8xqsRextEihYKU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAUrnjYmmvwb2oarSCsZFU2NzSEYSQrgPbjp1OUOD+piAiEA7+oFGSWnQgGsjdg4phoYSqkcAypbVelcYEb9NXq/2o4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1908.751021c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"751021c9e2e79e1445e8a5f4817d61fe375c344e","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1908.751021c","@flighthq/types":"0.4.0-next.1908.751021c","@flighthq/signals":"0.4.0-next.1908.751021c"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1908.751021c_1787607449683_0.9153186800018414","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-edge.1908.751021c":{"name":"@flighthq/textshaper","version":"0.4.0-edge.1908.751021c","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-edge.1908.751021c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"5949e8109512860b66ca9383fa3935f4ed3926df","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-edge.1908.751021c.tgz","fileCount":54,"integrity":"sha512-iv6EVSj/Oqq4Eyq+P53F0ClESg9nQKqmOBVDS4NVXIoKYEN23snWOqcvBYFiDtSUG8GBvv44gr++S1HqHtH/kQ==","signatures":[{"sig":"MEUCIQCOZOfvgYkvIY7yWLXuJrO8JNQSC/TBSOeEminsxgmKNQIgRavNH1cb/vbaKsZyB3UkIsgZiIH31d0lmY0MCrjwLDU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE/H1gpTFsFQUzrUIZciE3v+/Q0hkzHJ/4qTAhYK8jDKAiEA3+R14bbL1QQAK2cgfp+apXHscMe53PjphCGvV7WKRUE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-edge.1908.751021c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"751021c9e2e79e1445e8a5f4817d61fe375c344e","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-edge.1908.751021c","@flighthq/types":"0.4.0-edge.1908.751021c","@flighthq/signals":"0.4.0-edge.1908.751021c"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-edge.1908.751021c_1787607921214_0.5576736826677768","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1909.c102f22":{"name":"@flighthq/textshaper","version":"0.4.0-next.1909.c102f22","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1909.c102f22","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"b1e2085da82b6bace30c1113405e8a400eb43f58","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1909.c102f22.tgz","fileCount":54,"integrity":"sha512-OTmU1FfVZAy3/nmQrUIMm7QtK182oFvgSpKPYKCmONiFvTLcHA3JpgtIr4rUlaQUFqdOYkiPDdru2A97Dc9DGQ==","signatures":[{"sig":"MEUCICHafYBJlXTH4h2kFZkMSm4bbR2QPHoYifHZ2J0iG/JAAiEAyFFAnVB2dsFsOAPzKQKHq5ElIhwmaC8e6vRmtzKgKFc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCEvg0TYaHnh3n1KjsxyCTzwEXbHa6XUGJNAXMEbfWGjAIgAn3tFZLtgHIszEqrv5+oKmv1yS8sYXTBKboBxr45XCo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1909.c102f22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"c102f22a421baa9ae0552573ded0c84f6bd98076","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1909.c102f22","@flighthq/types":"0.4.0-next.1909.c102f22","@flighthq/signals":"0.4.0-next.1909.c102f22"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1909.c102f22_1787607974622_0.5564362056262435","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-edge.1909.c102f22":{"name":"@flighthq/textshaper","version":"0.4.0-edge.1909.c102f22","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-edge.1909.c102f22","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"310a0151165d186ee4cacb51138b6bc94a644c0b","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-edge.1909.c102f22.tgz","fileCount":54,"integrity":"sha512-/uqYf1NbkD/9F46RCO+rE/fAp+ixd55GMq6qhR3PtpkP7siwPUgnUNmKGfxu0iUrcaZ+dGm1W9pKgjjTFfOmQA==","signatures":[{"sig":"MEUCIGUce61KGwzzbpGJnoUbS14E7FJU10IaOjLXeixzcP1xAiEAmlceh9oSF6+HgcWWK4OAyLzxz4ZsNj4cBP0124mqLMY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCID+qSuSCnfKFao3OgZH1xM3jPcg27FR6LAxwnXTHuAlCAiEA9Zbm8rLwZSHZ44XJzIDgL9smuIOQsGz1i9tmQ1hxpbE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-edge.1909.c102f22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"c102f22a421baa9ae0552573ded0c84f6bd98076","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-edge.1909.c102f22","@flighthq/types":"0.4.0-edge.1909.c102f22","@flighthq/signals":"0.4.0-edge.1909.c102f22"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-edge.1909.c102f22_1787608391670_0.11303238780070535","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1917.1b88fee":{"name":"@flighthq/textshaper","version":"0.4.0-next.1917.1b88fee","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1917.1b88fee","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"5c26797c9f6a1de54d98c26657698ccca39d48d0","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1917.1b88fee.tgz","fileCount":54,"integrity":"sha512-XrOQKpJY2MOTGnTW3I2MHLVEKlTEAvDjk0Aq7cKE/8I6pbH6159VPJz5LfMVW2++XzT/Y3IGyJhr9nu+g7ZnaA==","signatures":[{"sig":"MEUCIGwHAVJAFSxVRcg43I4vfhOZgPeN+xuz7xx3g0kgOB/qAiEAkHoCnN1oT6e3jVvYEYdNuMVoVGUBscdRJviCpACv+54=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCjyqAOxvKzpgnvwl8nC8ZFhhBoutxARNCMt3exmJYdpAIgOuVQO07pZSLz0OCOH9dGeO5nE8Sl5yZ3eXbxweUhNVM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1917.1b88fee","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"1b88fee135e113e378973cb548aea45284f8add4","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1917.1b88fee","@flighthq/types":"0.4.0-next.1917.1b88fee","@flighthq/signals":"0.4.0-next.1917.1b88fee"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1917.1b88fee_1787691791275_0.7790650668475552","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1920.b93ad0f":{"name":"@flighthq/textshaper","version":"0.4.0-next.1920.b93ad0f","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1920.b93ad0f","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"d53487c9cfe75fb924bd21ff2c67695e0eb2ede2","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1920.b93ad0f.tgz","fileCount":54,"integrity":"sha512-UR5wAgZqy69Ffh3lxHkQi+lx0iCmstToBmsbQOJvl2UR5YFA5R9M1RaLDoyE0MlSSgd/KWCKNGZc6FC/seDgkQ==","signatures":[{"sig":"MEUCIQC3vOrYOO01vqT6PnPSvU256Zs+zGF2I39HWVysnoiyCgIgIix+mZFiVUKKTHeF1im8u+l3wViQ7VYBd3GNOupOSN4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCsHIr641YOofzkPKkCLy7EOB48hzqPMmxZJjKK19O3tQIhAKnaQEUhQrUaJHUcPWSps7T4ewhzq+zpw4/yO4qePAb3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1920.b93ad0f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b93ad0fa3532228e67f46d0d1842bc339b998c60","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1920.b93ad0f","@flighthq/types":"0.4.0-next.1920.b93ad0f","@flighthq/signals":"0.4.0-next.1920.b93ad0f"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1920.b93ad0f_1787699613795_0.2477239710123431","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-edge.1920.b93ad0f":{"name":"@flighthq/textshaper","version":"0.4.0-edge.1920.b93ad0f","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-edge.1920.b93ad0f","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"fc7a5d23d203371b1657dd87f1bfde33c71c7fb0","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-edge.1920.b93ad0f.tgz","fileCount":54,"integrity":"sha512-BuvGhrU0gH++TiMhvT1/GGRh3SSWy+grph8NMwE+GeR9eT61Tt5MPd6Fbaq1x+mqa1nUmWGw44WkQ6eldyJN6Q==","signatures":[{"sig":"MEYCIQDrkZdjgb8h32q3O7tqMiAiIk/CfHd/FUGB9tKMslk4kQIhAKhlRiNQ4pWzW+hiSPfnCiy9m8f1UQinUszIbye2eXnl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDmKCuWexNMk2yvwhfjgooKaGPzO+GS/9OtwIfU4uULugIgOA5nKpQO7OufGKJXd2MdXxwmwL/1SaoPRBSq//InTdw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-edge.1920.b93ad0f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b93ad0fa3532228e67f46d0d1842bc339b998c60","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-edge.1920.b93ad0f","@flighthq/types":"0.4.0-edge.1920.b93ad0f","@flighthq/signals":"0.4.0-edge.1920.b93ad0f"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-edge.1920.b93ad0f_1787700224253_0.8006400665573197","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1921.0a61bdb":{"name":"@flighthq/textshaper","version":"0.4.0-next.1921.0a61bdb","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1921.0a61bdb","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"142319e09dc4e1f764698f85abde1646bef7b8a2","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1921.0a61bdb.tgz","fileCount":54,"integrity":"sha512-MUgh8s80RJ4Lfy9fG1n1UwOtvUs+jglglCD3FaZQZLrGYpTAuBsUYIl4N54zKrJO0EYbKvpBqsuhye/jz8YpZQ==","signatures":[{"sig":"MEQCIGt8C5Jn7AN0Pe+rbxDH5SrLy2e1lbIuvb85gtc4LjxEAiAI2VZSIt/WWcKxfhCRxazBKa/Fvf8dHqBoxf+SxLC+5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDaHWVG67IpsmA2ItzZ19iv3Ezqd+sHkmxf41GHMwAYjQIgBQegSBJ8NyXixFUl0YFlk5/GRy8/XZQ8T9xFz9F8/Dw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1921.0a61bdb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"0a61bdbaede36f96b016f9c6e70ed736ff3dd94c","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1921.0a61bdb","@flighthq/types":"0.4.0-next.1921.0a61bdb","@flighthq/signals":"0.4.0-next.1921.0a61bdb"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1921.0a61bdb_1787701391409_0.5179898874748565","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-edge.1921.0a61bdb":{"name":"@flighthq/textshaper","version":"0.4.0-edge.1921.0a61bdb","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-edge.1921.0a61bdb","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"4413fc57d5748ec22be39b0688038a2e70c6a8c4","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-edge.1921.0a61bdb.tgz","fileCount":54,"integrity":"sha512-Jinjv4PEhHKuvjpk6agyGaFfyNEPCJWqrbM/mWz7AZlYUDnlfQEQdWPo6/i2SWJ7djxKtpYvRBkR4N83pGMPdw==","signatures":[{"sig":"MEUCIHedFGyhkolpkP8YcBK17vEE4N1kDqvXQiMglHZZJv7tAiEA2HJd1MAwqVvcyxE4tJDkbQR7i2FRIKGn5z3ZuaUlOpA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICoY2MiAUc/5E3+AxvtxvGJxvFjjWCv/i73TqRp8IEKFAiEA9i0zVVEFtHNPLdEZRsDDuHEMR3eOuVoZ/8sCylxPleY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-edge.1921.0a61bdb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"0a61bdbaede36f96b016f9c6e70ed736ff3dd94c","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-edge.1921.0a61bdb","@flighthq/types":"0.4.0-edge.1921.0a61bdb","@flighthq/signals":"0.4.0-edge.1921.0a61bdb"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-edge.1921.0a61bdb_1787701879655_0.526471489457236","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1932.1ef883a":{"name":"@flighthq/textshaper","version":"0.4.0-next.1932.1ef883a","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1932.1ef883a","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"4e81e1ae1441501e116a37276c8e318c026e89bc","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1932.1ef883a.tgz","fileCount":56,"integrity":"sha512-JwuBQeQAD9AEdNH/jjNNAO2cHXVBWGrdW/1Suu3Ecr7RvhU02pzKlyyJtcXyiMSb5PHQTwh9Ao5DYVNEh/qzEQ==","signatures":[{"sig":"MEUCIQCAVHuZWI5HiMb1c/QBrA665NsgSupNx8onC16+9i6bpwIgeCkyVqjkAv2D88ucdUPoPcMKP+K/6BrwOUJ2Rpq7Gdo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCzgDy0k4gKKvIaYjsn/Fj2WJjoxkBYM5snOyzoD3lhagIhAO9DodlhTcdOD60J0hrcXarcrYpEJz0f1Qt2LWhwZRSR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1932.1ef883a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"1ef883a866729a9bc6f461111970f6377de1499f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1932.1ef883a","@flighthq/types":"0.4.0-next.1932.1ef883a","@flighthq/signals":"0.4.0-next.1932.1ef883a"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1932.1ef883a_1787771466288_0.9972534680098426","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-edge.1932.1ef883a":{"name":"@flighthq/textshaper","version":"0.4.0-edge.1932.1ef883a","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-edge.1932.1ef883a","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"ca0f33b5afce1afd6cdd906b8a967b9146869a25","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-edge.1932.1ef883a.tgz","fileCount":56,"integrity":"sha512-WkkXi72TwoKyMRnN7BnLAQA4aCT0QCumI8vvsaGASy6Lt/koTbjxgz/eicvLLVcUYgo5bkSBRcfdL8aKtAvgIg==","signatures":[{"sig":"MEYCIQC1dn2pYzDVl6tyX3djDYVE+BC4OBZkJaqTAgPPhobdNgIhAIGcovTkajZZ3V5RCVGGvnJkAUaMMeHEkGW1ybc5tFN3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIF3lCKukxkInZVzEaZxEBPCO4V2I1m4KDsZDWp0fC4+ZAiEAscDnoIWU7l+6p8WtStvk09pdUmqscozb0rLYFyF5maQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-edge.1932.1ef883a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"1ef883a866729a9bc6f461111970f6377de1499f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-edge.1932.1ef883a","@flighthq/types":"0.4.0-edge.1932.1ef883a","@flighthq/signals":"0.4.0-edge.1932.1ef883a"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-edge.1932.1ef883a_1787771990427_0.7383586479982331","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1933.e4809f4":{"name":"@flighthq/textshaper","version":"0.4.0-next.1933.e4809f4","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1933.e4809f4","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"638e5f80e8480102da244b77f56fa7f50a62a5bb","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1933.e4809f4.tgz","fileCount":56,"integrity":"sha512-Jvg5owczKxjuNuG+VWQ1bsH6DQe9YaVtKj3m680IJOAQTjsap5TTD5xE+OJ/2o13DXLpmu7FvzYPTMfYwKFr1A==","signatures":[{"sig":"MEUCIEL9nVaa6am9AjwnSknL4f5snUfhDJRglKj8T2TMwgpOAiEAlmZy5sSUTNxBQy0s/eq5LqE2wlkEKpuuK/bQwAI2SOw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCPyAq3/IrhrnJPoIfC9be00a05HEMOqQwxfhQbrKWsowIhAP85t6l3uDVphb7ejlB82y0FeuSu+m3NSZOngY1xI2Zy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1933.e4809f4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"e4809f40d738585d4eef938863717f46355ae430","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1933.e4809f4","@flighthq/types":"0.4.0-next.1933.e4809f4","@flighthq/signals":"0.4.0-next.1933.e4809f4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1933.e4809f4_1787775224806_0.9325564521811798","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-edge.1933.e4809f4":{"name":"@flighthq/textshaper","version":"0.4.0-edge.1933.e4809f4","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-edge.1933.e4809f4","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"0e0e9386e87098543fd8be042ee9045db884c2b4","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-edge.1933.e4809f4.tgz","fileCount":56,"integrity":"sha512-0YLiZdt5Tgx9PzPZPBYBBtIpb3V7Y+9tW6fk8/JMcFQlC/E4JqSP7WAc6DulckJ1PoaSc137xZFZrJeI3kVRXw==","signatures":[{"sig":"MEUCIFtmNeLy7Eyjlcz2MxOa5USKJCY7pjjFor/DcC3LrU0lAiEA1lL5n97t0ddndhtBEP36jj+srsdsmGn73lWVKAkh7QQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQClr4IF6abSsh81zw2WIMnH/Qt7pLEsFeQrk2CRB+r76AIhAOGOfQA/NdJ63vvUpV34j7v2Gv+57jh7KU2VB54aor25","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-edge.1933.e4809f4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"e4809f40d738585d4eef938863717f46355ae430","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-edge.1933.e4809f4","@flighthq/types":"0.4.0-edge.1933.e4809f4","@flighthq/signals":"0.4.0-edge.1933.e4809f4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-edge.1933.e4809f4_1787775643706_0.9098512192050792","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1935.74c34fe":{"name":"@flighthq/textshaper","version":"0.4.0-next.1935.74c34fe","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1935.74c34fe","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"3d7a7f7cb5615b9500f6dfd68d34b3b94adb04f2","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1935.74c34fe.tgz","fileCount":56,"integrity":"sha512-xuFAGD8eVAt7Ke7c07r74BpHUweX1x01PpOidepmUSm83RjrtS1bNNyJxDW5F7mEClWjt31dwILYqEDiVe/9mg==","signatures":[{"sig":"MEUCIQDgOu++2hQlnHcvFSXnpO+GT+UpPM3GZF2Z2v5NESRxEAIgQ4ZEfgpb1czW1m/FN5azMfuqpobwGTeFpUDyhLXSuH4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGjgGdvOM4rD1hi3m1ChKMum1QRERfTz1rxwcrzEWJeZAiEAyoBOAwGQj6hV6UXuz/0xw7uFDCDVGqXWikYuTiMu7lA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1935.74c34fe","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"74c34fe734f33f44e48dde5d12a402b0a834cae0","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1935.74c34fe","@flighthq/types":"0.4.0-next.1935.74c34fe","@flighthq/signals":"0.4.0-next.1935.74c34fe"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1935.74c34fe_1787777421540_0.9554200970387965","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-edge.1935.74c34fe":{"name":"@flighthq/textshaper","version":"0.4.0-edge.1935.74c34fe","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-edge.1935.74c34fe","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"814bf1c1b73c3cb95d6b14d7a18bf38aa9eb58cc","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-edge.1935.74c34fe.tgz","fileCount":56,"integrity":"sha512-Sw86wmPPDs32yf7Oq0w9pIpBCKqHllHecyzUDQ7iztgcKp2jRUaS8Wn4Zyg29qqWKb7iVJyMQweOq7mZW78tBg==","signatures":[{"sig":"MEQCIHXqelxyqa2/XqWW+HFvrDyM7uAKjb6aDdGj9DTJ5g1/AiBwhG/7g5bnnxchMPVdRKl90hGY8A4gw+rxSgdpsIm0cg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDlHRSogvN7cire04oi2mGI5BHpaNBANfFjj5UUsZKfigIgakrKXvwUap9lsaigSdoIgbwiugg5sK/xqPgMV4lcs0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-edge.1935.74c34fe","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"74c34fe734f33f44e48dde5d12a402b0a834cae0","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-edge.1935.74c34fe","@flighthq/types":"0.4.0-edge.1935.74c34fe","@flighthq/signals":"0.4.0-edge.1935.74c34fe"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-edge.1935.74c34fe_1787778084087_0.9386074582230461","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1936.bc924d7":{"name":"@flighthq/textshaper","version":"0.4.0-next.1936.bc924d7","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1936.bc924d7","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a9097b230f988664fcda804bc4126f0a92b9d548","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1936.bc924d7.tgz","fileCount":56,"integrity":"sha512-dHHiN3rhEU4YIpmqhy04BtA/dsQpCHXwizBs9hjNAOBmkgYROH3ivSgdCxEUcXX8mb8ZQEhN6cp3R6kiTrdVRQ==","signatures":[{"sig":"MEYCIQCDYe3Y/LkjLoXFLQk7uhKZrxWM6m/6AjezX7d1zHdWmAIhALQ5s2XfxJhVsmfSLSZ50JQRklSjVCMDf8IZ6QhiJJQC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBO3j5fbL8gCR+T/rC4LUTgKri3jRQki1iB20NPU21ZjAiEArH4WRCKZVZ++Tj1FtsuQFQUnC2U3C1OoK1PaceGfERY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1936.bc924d7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"bc924d7bf9e0d88f0ffdff16f0094890448c6ba5","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1936.bc924d7","@flighthq/types":"0.4.0-next.1936.bc924d7","@flighthq/signals":"0.4.0-next.1936.bc924d7"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1936.bc924d7_1787779959144_0.3484229671533339","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-edge.1936.bc924d7":{"name":"@flighthq/textshaper","version":"0.4.0-edge.1936.bc924d7","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-edge.1936.bc924d7","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"edac11992466b3320a8062940473c36d6d1f8291","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-edge.1936.bc924d7.tgz","fileCount":56,"integrity":"sha512-QreKphPDusn1qi4bh55GS6NKhKNZ4rKGE9giWWc9riOxDYmCb4YtopmDMLQy+q3vD3R7QjO2JZdQ2O0AV/NuNQ==","signatures":[{"sig":"MEQCIFr8WrmxjqH+f3g2w9v+M9SbFRTsPpdvgkH5HVKDBoNCAiAqWYNyO+Sf+CcDXoDnKaGjEThVHsN95Enyq+e/E5zapA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIA63a8NmiamjHp/P/L3W+IGACXl0xHdDp5kFZ4oUFMNeAiEAt3YOLq6P3p4Pxb5eRNvSGtrwUxYE1RrE2aDAiPZwRGo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-edge.1936.bc924d7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"bc924d7bf9e0d88f0ffdff16f0094890448c6ba5","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-edge.1936.bc924d7","@flighthq/types":"0.4.0-edge.1936.bc924d7","@flighthq/signals":"0.4.0-edge.1936.bc924d7"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-edge.1936.bc924d7_1787780147621_0.4478955289747497","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1937.0d089b3":{"name":"@flighthq/textshaper","version":"0.4.0-next.1937.0d089b3","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1937.0d089b3","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"3c48a6dd5204fe3484c668a251d7611e49402acc","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1937.0d089b3.tgz","fileCount":56,"integrity":"sha512-XCsOist+Ik/yjv2nOOHCzGtPDGdaytp/dHj4zQ+Ix3oTyXxXK/pMW4xo4ob4kX3O71ZQZD19KAurOmiSyS1GVQ==","signatures":[{"sig":"MEUCIDegkuUCEoZKHiMsKjVEpJ3fAkGF2bc0e9GScKGDmFQcAiEAgMMWnqqXBCgE36roqugNC2oomtS3G/Ckk0KRACR01Qk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBmfAvioZpc4fW4+4gbHWJ16OG3RXJ9th09AMwERHknZAiA2svtpDVfb2maZvgCNPjmdFdmgqD5ciY065WRbtbJM6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1937.0d089b3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"0d089b3b3aeb9d68f93ed71d526ca4b1a073b948","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1937.0d089b3","@flighthq/types":"0.4.0-next.1937.0d089b3","@flighthq/signals":"0.4.0-next.1937.0d089b3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1937.0d089b3_1787783038085_0.9763205661565597","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-edge.1937.0d089b3":{"name":"@flighthq/textshaper","version":"0.4.0-edge.1937.0d089b3","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-edge.1937.0d089b3","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"efb744f14ab348ce55cdc37d5ee427dbda3fa715","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-edge.1937.0d089b3.tgz","fileCount":56,"integrity":"sha512-mTyC/cx+4ZgLO1gO6Fqqn1wt+J8sKFcHTRPhm4JERpLNc5Q2SbK9IIK0FNq39Bysz0qP5W5m3Bbpsqo/ubgUsA==","signatures":[{"sig":"MEYCIQCQLKRV7Fqs2p/DN+sWt3Rop1J46cz3c5/EYRUYZxWzKgIhAM6ag83cPWSldpfDBsLIS0NgSLq1elZHGN0cYiPfHE8N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCroJvXBcUnk4sqLj4sC0TLw0o5yGPrekLGeDJXsFfoHwIgOpwoN4kLhH9cX9ASQHV6j1ih3HrJLDjWrc6DS+SZfXE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-edge.1937.0d089b3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"0d089b3b3aeb9d68f93ed71d526ca4b1a073b948","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-edge.1937.0d089b3","@flighthq/types":"0.4.0-edge.1937.0d089b3","@flighthq/signals":"0.4.0-edge.1937.0d089b3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-edge.1937.0d089b3_1787783472144_0.4032083568493001","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1939.481bde5":{"name":"@flighthq/textshaper","version":"0.4.0-next.1939.481bde5","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1939.481bde5","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"9087927c7991831a788626f7b204c94545970ed3","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1939.481bde5.tgz","fileCount":56,"integrity":"sha512-6mtR+u2D2vwE+PoGUdfBZMi9rlGCzq9gQZAfQzwvn8qYw8RrZ0NziV0Gnb5RKRkwq60GsH57uYKQA05GrowDow==","signatures":[{"sig":"MEYCIQDaZoZEmlvpy4+YhrnOh/F10X5+EyuStThpeRyNJHSy0AIhAJoQ0pZFC9qp4yfE8Lp2EbBDngg/QYUkbbX64Zl/0C1G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICcO0H2ZmAwsssh3HRTdfSVeOWOoQt3ERBU1pwy4Xe39AiAKqeqZRZTTpbb9h0+e2wS6LY4b6AhxWy7pKOR/gyH/LQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1939.481bde5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"481bde5ee766ed84d7e6cc2f0d9e7f0ced06025d","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1939.481bde5","@flighthq/types":"0.4.0-next.1939.481bde5","@flighthq/signals":"0.4.0-next.1939.481bde5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1939.481bde5_1787790016519_0.13127468694600064","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-edge.1939.481bde5":{"name":"@flighthq/textshaper","version":"0.4.0-edge.1939.481bde5","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-edge.1939.481bde5","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"be29488d25a00816c4483dead20ceb54bbec937c","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-edge.1939.481bde5.tgz","fileCount":56,"integrity":"sha512-4Afw1pv6446DLgRaHi+VWAAa6l/FpGXU9aGqVw9zwtPM3CcbGT35F0SUmq+qmJjb8Qk9q153B6VrbhJaZQ+kLA==","signatures":[{"sig":"MEUCIQC2pG280AefEafihSuRZeq1Q4f4fAlGcCcVb9r/bLoVCAIgIIfRAtVl96XZivvhXpkRoUqSMytnFQL6XnIIQqPESoA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEoDliT+xfvXjWwV+GnmkmvpWESI5+uA4f8ZF5hOAMmJAiEAoQclbAa0x1VwtRQ85IVa6wFvky7gKdM0vPHJys/MW28=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-edge.1939.481bde5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"481bde5ee766ed84d7e6cc2f0d9e7f0ced06025d","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-edge.1939.481bde5","@flighthq/types":"0.4.0-edge.1939.481bde5","@flighthq/signals":"0.4.0-edge.1939.481bde5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-edge.1939.481bde5_1787790419514_0.6783303964541514","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1940.b8a4265":{"name":"@flighthq/textshaper","version":"0.4.0-next.1940.b8a4265","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1940.b8a4265","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"26ec3ee57b7e866c40d788b795bd03b7f70b8f4e","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1940.b8a4265.tgz","fileCount":56,"integrity":"sha512-80Y7jGSirpXHX3FO3HLvgKWRm6Xdh8X5l5Jor9JJYS/GbUkiDXbYItNdsl6Vh8yhOvjyue2o6AbHL0fcYNjazw==","signatures":[{"sig":"MEUCIQDE7Yq/LfiKicEGzcr9DTQ6B8m1KZWNWU4qcxrChYs6kwIgdbhqhu3HVwx/6Y0h1zSVd+rJxYznFVITS+kXjTH3w9I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCO8IObGqakTieoOyrd3en4wNrIfaNQ8d46dxIHWRqffwIhAPROuOCtj8yOLmAxCovPkZFZWiTSrPtet7KFdHHKxr3h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1940.b8a4265","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b8a4265e84fbd17f79cdfcb9197c61552d17389c","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1940.b8a4265","@flighthq/types":"0.4.0-next.1940.b8a4265","@flighthq/signals":"0.4.0-next.1940.b8a4265"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1940.b8a4265_1787792956868_0.5956370598433598","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1941.1d7f2bd":{"name":"@flighthq/textshaper","version":"0.4.0-next.1941.1d7f2bd","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1941.1d7f2bd","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"c901d60f423c07823833a2d2c246d265723854a4","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1941.1d7f2bd.tgz","fileCount":56,"integrity":"sha512-j8rM4sq+AdvXDInXtYSS1qsJuLw2n6OR8B+cJUc4qsdvMx8ag2slCqAs8TITykrrJxe6kSrERx5DbsUhHBoR/g==","signatures":[{"sig":"MEQCIA3b5+5DjOJewDsSDXvAFMRAEnCUKL/zdiG/C/97F10yAiA/wzq2pOs2ua68WYajvrQV1Do2Kdt9SAvgHfx1cK9Z1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDYdAkpm3ryWtabB6xidxWrs3RjE6fqNcS2zE+PJSRA+AiA8Z9g79MaV39YF0UmWIwtOXHI64e9HZnkFsJVaKqgZMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1941.1d7f2bd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"1d7f2bd9dc6fe0561ebd3833c0bf513486a4c768","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1941.1d7f2bd","@flighthq/types":"0.4.0-next.1941.1d7f2bd","@flighthq/signals":"0.4.0-next.1941.1d7f2bd"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1941.1d7f2bd_1787794201874_0.6946251687414942","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-edge.1941.1d7f2bd":{"name":"@flighthq/textshaper","version":"0.4.0-edge.1941.1d7f2bd","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-edge.1941.1d7f2bd","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"6c8b3c338214c52aed8a5d5d2f1edc1844a2236c","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-edge.1941.1d7f2bd.tgz","fileCount":56,"integrity":"sha512-JFNPOCwAs9KidieMm/8N+/6mD3iUo95mJczAzP1quG8a+pGrQ4BfEcDLQAu8E39rgN8HpJPOVle6SMXghG2BVA==","signatures":[{"sig":"MEQCIGXRL7YwMlC6Vw16WV5VuFTzolKJz11kgazZBXUItdkAAiAmbQ13yRrzPIifcKeihMpdAdMRTi9cJd3aaneC4uX/Uw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIH5NSv26l2FBWVRuRr6ZxZ4BZ0k5Lbw88wULoTA+W3bkAiBXKPEYoQhkYJD0VM7WlI7uOCg2squwHpzwauAuChG5lA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-edge.1941.1d7f2bd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"1d7f2bd9dc6fe0561ebd3833c0bf513486a4c768","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-edge.1941.1d7f2bd","@flighthq/types":"0.4.0-edge.1941.1d7f2bd","@flighthq/signals":"0.4.0-edge.1941.1d7f2bd"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-edge.1941.1d7f2bd_1787794628263_0.5889643379551053","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.1943.b4c3e61":{"name":"@flighthq/textshaper","version":"0.4.0-next.1943.b4c3e61","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-next.1943.b4c3e61","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"8ede5fd01e8df6f67346087cd62f19e032239e3c","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-next.1943.b4c3e61.tgz","fileCount":56,"integrity":"sha512-Eu9lIVFE8QHnHJcHtofPfnOl+N/JMvw2rfqdFxBeDuUWRfdDUdl/72q33J+B7FQQD+lK2ixn/WLFXpCTbYVYZQ==","signatures":[{"sig":"MEUCIEapfRNM97HknApkft9DemJeDVhyk9oAlIaI+QxQyp9xAiEAqr4iS9kihjJIB9rrJ9O+4KKbK20aAIGqBFtnNagbWT4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDNXz0EBreccSJZkjBE4LHt1Nzw/O3A5A8g3bRxodG4DAiAr5zTSFL+/kOutmt6RFdIscS25kNyv6E1k++XqarpwTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-next.1943.b4c3e61","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b4c3e61e891e0afe8c26204db16be794b9f41214","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-next.1943.b4c3e61","@flighthq/types":"0.4.0-next.1943.b4c3e61","@flighthq/signals":"0.4.0-next.1943.b4c3e61"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-next.1943.b4c3e61_1787795291535_0.959220787231992","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.1944.cd6b6e7":{"name":"@flighthq/textshaper","version":"0.5.0-next.1944.cd6b6e7","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.0-next.1944.cd6b6e7","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"b8184409c6311e0ad9698ad9a0e5453987ffeb7d","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.0-next.1944.cd6b6e7.tgz","fileCount":56,"integrity":"sha512-CTj9muX6/AzDGZlk0lI8jaYWgcr8D6yavNimTrpKV2NvXJDeMK2CdMq/t7oLiFa2VULgdAWZf5qyWRV1AEhwug==","signatures":[{"sig":"MEUCIGtG0z96l1T9Bc38c8Bt+yoYJ0WBtq4rtI3Th1NK6887AiEAhNZWXqgEDwaWZq6Herx061FR3N3kPtR7EqdDxeoTztQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC9FIdPS/whW8Zkc1vr9M1gDaaaYVTd9pJFfmI/fFDQjwIhAJJEQbZNJNPIXVDSdricJiJU6LfN3NQOnmpzBRjJiYeL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.0-next.1944.cd6b6e7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"cd6b6e71eb472b3a4249830a7743333f019fa7b7","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.0-next.1944.cd6b6e7","@flighthq/types":"0.5.0-next.1944.cd6b6e7","@flighthq/signals":"0.5.0-next.1944.cd6b6e7"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.0-next.1944.cd6b6e7_1787795648522_0.12946891947647088","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-edge.1943.b4c3e61":{"name":"@flighthq/textshaper","version":"0.4.0-edge.1943.b4c3e61","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0-edge.1943.b4c3e61","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"7d148bb912d836737e5bd15e96c201535119d86c","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0-edge.1943.b4c3e61.tgz","fileCount":56,"integrity":"sha512-QBMPLn0q+a0LHx+MlQrJLX3vSCJ2hmz8KjLHYbkU3UnmuyqAxYpqC6XSe3g54OrhPFc0GO1AiKUEPwJQLkOXgA==","signatures":[{"sig":"MEYCIQCyFdHT8jxbjSk8h7ZeduXPXy1IvaPvkl8yDFNTv8KDJAIhAJ0iB+LNHLreHKNgDF/FZ78pTCiuuWn//8jlC6aGd4+y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDRLsbO2eL8nHHFaCsPGHoajeXZsvdR2oIj1SwsrtM8DgIgG1TSwEpVfAjhHS5CmraE+aMcoEKTZxNcxy9+0Vv4J4I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0-edge.1943.b4c3e61","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b4c3e61e891e0afe8c26204db16be794b9f41214","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0-edge.1943.b4c3e61","@flighthq/types":"0.4.0-edge.1943.b4c3e61","@flighthq/signals":"0.4.0-edge.1943.b4c3e61"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0-edge.1943.b4c3e61_1787795752924_0.34943121206086114","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-edge.1944.cd6b6e7":{"name":"@flighthq/textshaper","version":"0.5.0-edge.1944.cd6b6e7","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.0-edge.1944.cd6b6e7","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"4ebcc4a760f882f9dc0f6697f4fc0094175c6ce9","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.0-edge.1944.cd6b6e7.tgz","fileCount":56,"integrity":"sha512-TxBkZrBtwtur9FIaARuMwzc2Xx6IBxcV431OZUZrjUSUg18tH4SWETD4hJAaNmmacxbnwLhAousIT48UnbETzg==","signatures":[{"sig":"MEYCIQD4Hdq+ZBbIt0ABNJLeNPM3WH7JiUocuJ2ih39lzjEOmQIhAPe+rQIyUkp/VPgY9SLUFf52g2+WwZEprpTMbkHOgZQO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHbI59OQoXQmDYiwJJlf79Suvd4uNjjWMbmSQGZq0rjEAiEA3FI0MAK1W75GQHvHaLATv3XsY/uGVYcYtlczxwcdGHo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.0-edge.1944.cd6b6e7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"cd6b6e71eb472b3a4249830a7743333f019fa7b7","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.0-edge.1944.cd6b6e7","@flighthq/types":"0.5.0-edge.1944.cd6b6e7","@flighthq/signals":"0.5.0-edge.1944.cd6b6e7"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.0-edge.1944.cd6b6e7_1787796154957_0.6497512906864584","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@flighthq/textshaper","version":"0.4.0","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.4.0","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"0160cd40fc23ea165688ccc72a8f830156c174d6","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.4.0.tgz","fileCount":56,"integrity":"sha512-vpHsS8Ym+FZEOP/SAiCRutFTUs2e1EDi8us/oFU6Odid0cI4Xi8Au12yqKZtQbrlsYobPej6rXrvkb87EfKtFw==","signatures":[{"sig":"MEYCIQC095H1GUfhLRudyKoyS7aGtPJ2XR1o21hwBO6d7r6lMAIhAJnEwV6ZFHj2E+ELoPthbOHx+JQEZ7rg91uo5gtm3kHP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHXAU1rMCG8cmN6OTRxIsqDMBSF18a1rB+c9kSjmOJB+AiEA4YsyVfdMU1otjc+39YrVJCs7DUWvgxgAru0QGFvWJSA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93376},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"cd6b6e71eb472b3a4249830a7743333f019fa7b7","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.4.0","@flighthq/types":"0.4.0","@flighthq/signals":"0.4.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.4.0_1787796187005_0.760710602601963","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.597.ab004dd":{"name":"@flighthq/textshaper","version":"0.5.1-next.597.ab004dd","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.597.ab004dd","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"81c56823c7eb83a12709626401bcce1b9fce871b","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.597.ab004dd.tgz","fileCount":56,"integrity":"sha512-GHu98TWHmRUl/6xFzSoTVlaXyzF41pWW3AL74xyiduAUORob0EFN8j98Tluyq+8UiUWJIO3VBvlirJUb0kP0Tw==","signatures":[{"sig":"MEUCIGAM2HLeQpsOxR6fWbRyiz9cjpmZjVE2LiZC746gFLUMAiEA2ZGD9C77ID7qvpO58KxCobrPs+ARYMfvxguVPnrqpPs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHfZGs1P88zRmlUBfVkBsoUME5jKmNSGCHHSE1cKBeXrAiA+coJBaxqQp5qAuzkHbknCSTt26UwFwDl87mHy/FY1xg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.597.ab004dd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97671},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"ab004ddc85b350cbd99a944e1e8108a016ae8af0","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.597.ab004dd","@flighthq/types":"0.5.1-next.597.ab004dd","@flighthq/signals":"0.5.1-next.597.ab004dd"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.597.ab004dd_1788159535223_0.4429718804081031","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.597.ab004dd":{"name":"@flighthq/textshaper","version":"0.5.1-edge.597.ab004dd","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.597.ab004dd","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"bfb97f1e79f7416df137a49dc99c21637540e43a","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.597.ab004dd.tgz","fileCount":56,"integrity":"sha512-nrNi/hJzPdacBep/QscmaS+WtC/h9abvIx2zMmOkjgBIP8sDmJ3lUHHtRGTWyzlr+8CG5ZMqMMZMRYpup9NFcw==","signatures":[{"sig":"MEUCIQC5JY/JjNSCJHSQU+Vji9r09dTgTDbxsL6uE5KkNlEWZwIgCps4LZfjV1XdoYtOYK5B30UwV1bWYyVmPlDybZ5MNPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDC4jvE3X2jMPPFw0Zg37wqKsN3u8HfOYkKOlXygE+k1gIgXQogEnvuQF0MxW2zJ4srb5bOISHS1y1D8p9DkAPb5os=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.597.ab004dd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97671},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"ab004ddc85b350cbd99a944e1e8108a016ae8af0","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.597.ab004dd","@flighthq/types":"0.5.1-edge.597.ab004dd","@flighthq/signals":"0.5.1-edge.597.ab004dd"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.597.ab004dd_1788160009095_0.6813863839909051","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.601.e6e16ba":{"name":"@flighthq/textshaper","version":"0.5.1-next.601.e6e16ba","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.601.e6e16ba","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"ebb758e1916a66fcdfb4d8017678f29749abdc83","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.601.e6e16ba.tgz","fileCount":56,"integrity":"sha512-MW2gXXj7jU0cQVmpP1RKXHXTLIMzbDjYR6ciyHbz8m99VoR6O+/1j/zZAJHrixQ+6KHJv5T2978dQY+TItJpfg==","signatures":[{"sig":"MEQCIApZ0rE6n5ZoNNXCQtoFo9PfdoEncdRKhrgdw9+0HBGGAiAismdPC+SieAeho8iryS0KXB7Ppbrm2cy+vMso5lo6zQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCID0HieMZCz9RN2CpcbZcsNhY8viAawim8aDJvY9h/M6SAiEAioOUXfK0zbvEtVi9RO6fNV+pVnZUvexawIg4NiLHCto=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.601.e6e16ba","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97671},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"e6e16ba4e02530d9579d14d496d5df29f0784c68","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.601.e6e16ba","@flighthq/types":"0.5.1-next.601.e6e16ba","@flighthq/signals":"0.5.1-next.601.e6e16ba"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.601.e6e16ba_1788163143565_0.9352249819712328","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.638.d4dbd4e":{"name":"@flighthq/textshaper","version":"0.5.1-next.638.d4dbd4e","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.638.d4dbd4e","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"aa55262a3fe2a8ce9a2537790240728aababf4c4","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.638.d4dbd4e.tgz","fileCount":56,"integrity":"sha512-dKe3mbLGoPcwM3JsCqWN+KSlQPnGiYMpm6y4vpSFsc3w77oJI3FTMw7qeDNz0OGPTz1zhRNUqA4iJuffNHjywg==","signatures":[{"sig":"MEQCIHlBi0ZR63wlr5Y2difw5hsO+/Md9zUQKHuOK3v8Pz6vAiBEwk2xOVsMZacw7VAIY+hmaHmBS2R5nQxn9R95ctB2fg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDmQaUDK7Fx4RNLCTQGB40fdYS+CpzCDSLK1O3vet9aOgIhALgSKm5+g6EYez6IT43l3edOTFD9qEHqhjcnQPTi8iEb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.638.d4dbd4e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97671},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"d4dbd4e347dc8be10b180c85a766ab50333dcb51","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.638.d4dbd4e","@flighthq/types":"0.5.1-next.638.d4dbd4e","@flighthq/signals":"0.5.1-next.638.d4dbd4e"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.638.d4dbd4e_1788193974406_0.2749905949572622","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.638.d4dbd4e":{"name":"@flighthq/textshaper","version":"0.5.1-edge.638.d4dbd4e","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.638.d4dbd4e","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"abf7a22505e7e973376d9599208553c1e69edf80","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.638.d4dbd4e.tgz","fileCount":56,"integrity":"sha512-J9EyUEms54Vi3QjNBFK8OO6qa8JZ2bHc2CwNyFcGu2XIaehmi61Bz5KZdN5QdgJlj3ZPA4+Vvs1OVd3TTGHb+w==","signatures":[{"sig":"MEYCIQCpgPWztk0LaVl671r1NF4pjrIZKykpN/eN3gpXWoXe+gIhAPQO3hPmNG/OYZPzh4MsSxX1+18iZ87Y7+4fwcENjTQo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDRDr77nwsdpS2CN0L7sUQPyo8jdivUK+hS3lJC9wMtcAiEAsoIwHSMCIXdnNoLvz6em+IVtdGsqfYlh9cVPm3tuS1c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.638.d4dbd4e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97671},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"d4dbd4e347dc8be10b180c85a766ab50333dcb51","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.638.d4dbd4e","@flighthq/types":"0.5.1-edge.638.d4dbd4e","@flighthq/signals":"0.5.1-edge.638.d4dbd4e"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.638.d4dbd4e_1788194569358_0.4466881049836795","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.640.24b4c62":{"name":"@flighthq/textshaper","version":"0.5.1-next.640.24b4c62","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.640.24b4c62","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"c5528eda6cfa77bbcf886f2ee2af6b7f9763a80a","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.640.24b4c62.tgz","fileCount":56,"integrity":"sha512-wqrR0I5qPvufXTtSd+o/OsYrtxJ2n1ibCDwpTcnmMdmY9ZhtVv2S5nclm3sE2IQTLMTvj7MDqyEW2XrVD9Ob6A==","signatures":[{"sig":"MEUCIQC1pB/ThfpeRkZwVbJ3INLsArGCEqE2qxrJZAUzttPXuAIgaqIcAhDigdQjdZVk/9ZZMy5vLfbVxyDQ1Oeekl53DdE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDhQplvOOipHE7uDga3veS7u83/1CPOhbMpLAfW9PrmZAiEA/8ZSodLPvByfxW8rGLvzimtj6uAg2PcNu7++fSW7+as=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.640.24b4c62","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97671},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"24b4c624056b5bbe9efac4e229f95754c500f5ec","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.640.24b4c62","@flighthq/types":"0.5.1-next.640.24b4c62","@flighthq/signals":"0.5.1-next.640.24b4c62"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.640.24b4c62_1788200121119_0.6511543090981695","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.640.24b4c62":{"name":"@flighthq/textshaper","version":"0.5.1-edge.640.24b4c62","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.640.24b4c62","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"f561cccdd97605f94ac7681993a9ae47df503793","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.640.24b4c62.tgz","fileCount":56,"integrity":"sha512-hbydoTwZuFj05wCxqz95O1+xw/KkohY0tZIfcK2kcoMmZ5hP7yR3+vZvao+jJCycx8P7BnDyvryK3Qse8BYVPA==","signatures":[{"sig":"MEYCIQCfR3QfbpWfcAk8+SglqOhQNroK/2GZAT87Mg7FxxmD0AIhALMtRJ51xce/XLsfHlMfiVY/GEgnDZoFZPR3gyzOH2QW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDnsfNQ3Y8tsS931N97XjhOcBHVLJhzihPLtgZUcs3JDAiEAqcZRDJsQ00kdA5h7YMB5Pb/AOXL9vWp09KQVcabWSqA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.640.24b4c62","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97671},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"24b4c624056b5bbe9efac4e229f95754c500f5ec","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.640.24b4c62","@flighthq/types":"0.5.1-edge.640.24b4c62","@flighthq/signals":"0.5.1-edge.640.24b4c62"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.640.24b4c62_1788200587679_0.1685381681317808","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.650.5d3df0b":{"name":"@flighthq/textshaper","version":"0.5.1-next.650.5d3df0b","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.650.5d3df0b","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"85c8d2305a6da7827c3cefa61dfc7dd83f5331ce","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.650.5d3df0b.tgz","fileCount":56,"integrity":"sha512-PFLtFevRB9/isC16Y2QvJzQ5Z5hGs00JTTlKpanZ1t02fPDJEVbpzIYbAePHBr0fgBdSSY1Xiy8LkWFoqlg8sg==","signatures":[{"sig":"MEYCIQCizdhLsX7FyWCq46o9DKThvgQoLk/AoEvl/I52zkdvHAIhAOIsEpUqW3vUx99nruExnxQ2z5UVCDq6dNQ3OAqj5gas","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCEzZk5FuLuli0wMFFbOOm/p+kgpcZekT+qnbGGPi2++gIhAIW0ptDDBApuLt6A63rIZ11DHQNgxtSLwICvMv1VqUwh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.650.5d3df0b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97671},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"5d3df0b3bd7071e51898ec6ca5f733b81cb94a54","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.650.5d3df0b","@flighthq/types":"0.5.1-next.650.5d3df0b","@flighthq/signals":"0.5.1-next.650.5d3df0b"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.650.5d3df0b_1788220882539_0.7011285784834398","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.650.5d3df0b":{"name":"@flighthq/textshaper","version":"0.5.1-edge.650.5d3df0b","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.650.5d3df0b","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"5ddb700362b6b218e36b3445f2313fbd4a3c1e4d","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.650.5d3df0b.tgz","fileCount":56,"integrity":"sha512-/mq3O7oK0VXirDWuoBPz1uTJLt4O6E6IcFn0PtXune2i1LclX8NawmpmYVQractVjPIrVvztcv/s9g3k5Puvrw==","signatures":[{"sig":"MEUCIHd7UFCgM31ymEKnM1zqpoo6s5Gpj1ZnPEXYiwl3vGnNAiEAy42aOgQGgVwG3HWO9LUmwt6LxXjfQ8b9TW5vcN2u9FI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC6X/ckUo76olr2/lFnF6hvstR+J0fQWFwkkZvq7ljgfQIgH+lbAP9oycr0138vceZqndoPqd1jjhP1cOz4hNjJmMw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.650.5d3df0b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97671},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"5d3df0b3bd7071e51898ec6ca5f733b81cb94a54","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.650.5d3df0b","@flighthq/types":"0.5.1-edge.650.5d3df0b","@flighthq/signals":"0.5.1-edge.650.5d3df0b"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.650.5d3df0b_1788221370720_0.8263821788136216","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.654.b54779d":{"name":"@flighthq/textshaper","version":"0.5.1-next.654.b54779d","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.654.b54779d","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"c3ee6b9852474d8cc9f1f9db37db3cc232aa303e","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.654.b54779d.tgz","fileCount":56,"integrity":"sha512-/CwLUNvnNNiAA5XlrVstVHz4QxppMRB0FH5ywMfUV1ohXO+SMA2p4qjB79fq1vYLJfxPzqtiV2NifWbLjMozCw==","signatures":[{"sig":"MEUCIQCqdoGobNBJKYp6BvPUT1cMMHZY+++MZu5SRxCVPNF2LQIgFwkvWCkKKv0hr7Pg2xsPunrll3bSYucFYv+NcLkWMRc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCjMRkXYjW2zpRBYrZzJpIw15/2WfxR7i3UBgDvZp4WYQIhAJ9KgQor/PnFM+2ewDLOOI3b+T8kaV8ouzDfuwLhQci4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.654.b54779d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97671},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b54779d8e000aedff716f72779c6a2a77aeabefe","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.654.b54779d","@flighthq/types":"0.5.1-next.654.b54779d","@flighthq/signals":"0.5.1-next.654.b54779d"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.654.b54779d_1788233921510_0.335828788060192","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.654.b54779d":{"name":"@flighthq/textshaper","version":"0.5.1-edge.654.b54779d","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.654.b54779d","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"3fc3243d14122fd6a4fcb9d299567639247fbd2f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.654.b54779d.tgz","fileCount":56,"integrity":"sha512-CALaNPDKhTQLHNhZ7lwzFL0uyDiinaiYBdgNqxdE5vGNCLs54+sM/ARhnRhfEejr22Cw2HxMBjQbmpFtek/90A==","signatures":[{"sig":"MEQCIG4lo0PYSqj57Fj9VIeMrbq2beSFWYYQmz9m1Cf/V725AiBgOBV+kDH1/PvGboxC3BXoKdgOk5VTGC53dffvV8tmZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIG5v7JRryJXyJuj8Mrm6asLo1gzeALmyGq8hFVte+GX2AiEAh9iyQBUYQskCvS5LB6yt9fDpwOuTWvoTqSbdrfVCmoM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.654.b54779d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97671},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b54779d8e000aedff716f72779c6a2a77aeabefe","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.654.b54779d","@flighthq/types":"0.5.1-edge.654.b54779d","@flighthq/signals":"0.5.1-edge.654.b54779d"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.654.b54779d_1788234365136_0.8401707663162779","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.658.9cb44d7":{"name":"@flighthq/textshaper","version":"0.5.1-next.658.9cb44d7","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.658.9cb44d7","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"857a4fdbc4cb7348aedd59784ce84434ddf3b080","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.658.9cb44d7.tgz","fileCount":56,"integrity":"sha512-IJx0xrApA0mwGIJNkbhDEzRVKQMZEaqoj0uOzUjKzRE9pfRvt3WvcKXpHH5IMir2y1TCUEbhR2jBmvpm9zbkzg==","signatures":[{"sig":"MEUCICnKEqqDFPyRWT/VZZYqJKiCEBbHGAsoiIHi4Qm0oWcpAiEAwtnv4V8YJ2bExa76ZfJgYQVplrqYuq9/wQ2yrCXKUAU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCwGV/GI9Ww3/Csup3TG5o0IosDABFZLTiGpNr81/+nGwIga20rNzQF5dg41NbzGEHXIp8n8RvZUKoq9fwt4PZdRYQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.658.9cb44d7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97671},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"9cb44d76b981adad2503d5e62207be99adb35c55","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.658.9cb44d7","@flighthq/types":"0.5.1-next.658.9cb44d7","@flighthq/signals":"0.5.1-next.658.9cb44d7"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.658.9cb44d7_1788290299271_0.8917695245951418","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.658.9cb44d7":{"name":"@flighthq/textshaper","version":"0.5.1-edge.658.9cb44d7","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.658.9cb44d7","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"fa5431635bb2cad1fb900754e6c3c2d7f56cbf94","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.658.9cb44d7.tgz","fileCount":56,"integrity":"sha512-Um4EtgifhGdTvQaOB8yjelClpXDiFgbohXSdJRc7Chz+ULL8+pmtEvnKmeIDOWlhMY7CO5GJLjiKHCXlIlTq6A==","signatures":[{"sig":"MEYCIQCTmvC4Nnr6/y2HzZSUc8JuNukXFohRKSASWioKgBb42AIhANRMj8nvEkDguGU/yOGoxuzOXqTsjJMO6e2WdTNEgrur","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDHM+IxaqT8Dp7M4XTSqNdNO8gsT+qm7N7G2z0v0azHUQIgQtUV2nwpqoRgRQ6647QACeVbzx+HKS/XLpOZMApY9B4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.658.9cb44d7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97671},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"9cb44d76b981adad2503d5e62207be99adb35c55","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.658.9cb44d7","@flighthq/types":"0.5.1-edge.658.9cb44d7","@flighthq/signals":"0.5.1-edge.658.9cb44d7"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.658.9cb44d7_1788290779555_0.8936824764377027","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.685.f72fc7f":{"name":"@flighthq/textshaper","version":"0.5.1-next.685.f72fc7f","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.685.f72fc7f","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"6b4b2f0544ab81ace70c5bcc4769e6fb74a4d53c","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.685.f72fc7f.tgz","fileCount":56,"integrity":"sha512-bkvCswSL1jNtWY1b5KyDPEVr8s+J+7MgAiejH9fGyGw3ZR/P5uLJM/mgm+YUhY3K/Y4a46B5RlNyV4whOHACVw==","signatures":[{"sig":"MEUCIBi2vIFbJocIKibyhk5jAqXlMcU4rgeHnaVrkN8PX8tIAiEAj4oXyMTTyVtezZEzjfY4nhmviRowZuul1PMHlnJP/ho=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEeuzuqnbd6X0JwITfQAb3k5TpQe7nlMV0y8lPqbw7+xAiEA1OsPZHqQ7EeVJw0Ewiy6Y+lvxTWYriCofJXTv7wjH0s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.685.f72fc7f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97671},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f72fc7feaa9653d950f39c7d2fe6365f48e82e51","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.685.f72fc7f","@flighthq/types":"0.5.1-next.685.f72fc7f","@flighthq/signals":"0.5.1-next.685.f72fc7f"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.685.f72fc7f_1788311510168_0.6875926309566622","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.685.f72fc7f":{"name":"@flighthq/textshaper","version":"0.5.1-edge.685.f72fc7f","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.685.f72fc7f","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"ee5b82194e817d6ea654cb013ae262b9d6f48e2b","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.685.f72fc7f.tgz","fileCount":56,"integrity":"sha512-c1TLaCsiR4NpXTLo+6vRnur3lYI05DvzY9lB0JlkzQ5Ua0nCWRCmcpcgs1RYEAMAgVSJUCjeP9dsyG+rOXHJqA==","signatures":[{"sig":"MEYCIQCgmQmtUP/NbvnhRaIW9ZUn6JMEluij+h9ts+GhzWMoOAIhAPHFu9HI2ph+uVq+7psImqDec+jDmIxCdlO8SXT7yhaL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD9MS8VbUlqk2i6GZuR59PbMPYdLPQswEnc8Mt31k/FjAIgZpCkVL+fuHiRRPV673E6Feuf7spxqUpfRu1eOUoeUEk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.685.f72fc7f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97671},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f72fc7feaa9653d950f39c7d2fe6365f48e82e51","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.685.f72fc7f","@flighthq/types":"0.5.1-edge.685.f72fc7f","@flighthq/signals":"0.5.1-edge.685.f72fc7f"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.685.f72fc7f_1788312099934_0.8001251402317804","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.693.478551c":{"name":"@flighthq/textshaper","version":"0.5.1-next.693.478551c","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.693.478551c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"c192d18bb0a480939f78c40b63d66beac0372771","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.693.478551c.tgz","fileCount":56,"integrity":"sha512-ChPZugg4JhzE41whctEny6fUcNR6k+HHE4MbsExi7sJ7/wj9S6UeSwwOUjlTfSFU3ye2D8f0t4lYTCP4Fs+mzA==","signatures":[{"sig":"MEUCICJONfbeBwUFyw+w7cLdZZgYziWUjKSA8I9GE2DgQcgZAiEAroxa7it3REIKc2asYZav8GTezv9T5XdqMsgDdSnq454=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD4Ih69VQFGmlRPqGSMLucZSPkLmg0tiShDMwULYwMr8QIhAOXnU24NMMEr/kZNTVYcHyjOZyHogZJx+CIyjI9rRrot","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.693.478551c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97671},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"478551cf7887f05c42c11f75e59034c715c8495f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.693.478551c","@flighthq/types":"0.5.1-next.693.478551c","@flighthq/signals":"0.5.1-next.693.478551c"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.693.478551c_1788320743005_0.7294044350482829","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.693.478551c":{"name":"@flighthq/textshaper","version":"0.5.1-edge.693.478551c","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.693.478551c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"cc15721915ecb58fcdbc52268c9b184853f48cb9","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.693.478551c.tgz","fileCount":56,"integrity":"sha512-cpzCJgT/grH5Oh9zn7OtAAgpkhRJBcdaVOkEh8pZzKTd/TeCfC3U+ERYRimPiI9TWWS7Dgyid90wkuwCbQT8tA==","signatures":[{"sig":"MEYCIQCS8ZmzGiCs6n9xntaFSopAKTPqrRx4lRvLx43b0D5gnQIhAM0OZDCiYf0C2BvPudSf7fgd/xVxOJEXwL4srCGJqt4G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIG4uvrH3XsMrjG2n2kXx39he+3jNJojtr5Ck2eRgKbTeAiEAxD0iLlmOCeSIdwzIZ2+KyzkwLGy0DzBXLYhqJRUd1eo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.693.478551c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97671},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"478551cf7887f05c42c11f75e59034c715c8495f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.693.478551c","@flighthq/types":"0.5.1-edge.693.478551c","@flighthq/signals":"0.5.1-edge.693.478551c"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.693.478551c_1788321310968_0.23873580196266486","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.704.19c91ec":{"name":"@flighthq/textshaper","version":"0.5.1-next.704.19c91ec","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.704.19c91ec","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"1e9aa99f92f1408f68499dfaa8e9ec57cc8fd573","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.704.19c91ec.tgz","fileCount":56,"integrity":"sha512-k9WNKry46r6yMMNvbGixI6WzRUMcLpQf3FP3TWa99LtQH0jfHeL4JXQc9nBaIyB4yLVKwBPysGCsxZ0lmLfITw==","signatures":[{"sig":"MEYCIQCImuXRwn0iw9Le1wQ8IgHywc5mIj0kgKZKXt/q/hZJYwIhALQyM4CyoUejw3cRvIdVTZomkaxiXgsBJTDXIEG1gFas","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHXrK481NNwS1aLsanxd/v5MiRAUQBHwONN6U84TA7I9AiEAlTtyaNfzMzgVEh/2l7Ip+qHi6Sh1GgHL4CkNj4QXD/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.704.19c91ec","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97671},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"19c91ec3e569d6b3b471682726465a79fba9f8cb","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.704.19c91ec","@flighthq/types":"0.5.1-next.704.19c91ec","@flighthq/signals":"0.5.1-next.704.19c91ec"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.704.19c91ec_1788384523134_0.9418421963432306","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.729.2aeb707":{"name":"@flighthq/textshaper","version":"0.5.1-next.729.2aeb707","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.729.2aeb707","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"d100c79eb8258e463e83e7e29dadbb5808f37232","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.729.2aeb707.tgz","fileCount":56,"integrity":"sha512-fr+ip1h4uebZblYTdHA+FtgFm/2gqTSpHWIozzXKD6M4s8ITtI7E0eUJagT/zkc6J604WdI0qq5oeGPRIu8JnA==","signatures":[{"sig":"MEUCIQDAJqnQDqpTixzhd+mf8aJ3lsEq/XFIeRBGDZB1+thL1AIgMN8sd9bGgYAwbQ9zfdFt1yJSUf47fszPPYWDc/v3GaE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDYottp66zXPyuyLFmuiHkDs0DaIgGjC6ItiphQoDU9mQIhAN1JIjgaMtsDmlVhQXKeD+3Pcw+oDASigJythCsk5/a8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.729.2aeb707","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103453},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"2aeb707259007d61c5aaf2e31fe47447a260fe2a","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.729.2aeb707","@flighthq/types":"0.5.1-next.729.2aeb707","@flighthq/signals":"0.5.1-next.729.2aeb707"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.729.2aeb707_1788400639315_0.8727084721529961","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.730.f29a5aa":{"name":"@flighthq/textshaper","version":"0.5.1-next.730.f29a5aa","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.730.f29a5aa","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"6b36150b68adefa486772c1519d175033ccffd44","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.730.f29a5aa.tgz","fileCount":56,"integrity":"sha512-yCmuK7INnl9ZAdEV3JVdZsA3eC29QbsDPwqSedY4GOMgIq+b4ZTO3slYn/6MXcK4MQ/XTlPuqkEmAXKcJM0xfQ==","signatures":[{"sig":"MEMCIB1B75OAdkLWvhlGimxTXesDG4B0qk7IlEsTpyDEXX+JAh9z8WIZNCGli3qzeVAWPS6zn5kMi0WsJDJRkM2qXxEU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAJcPgcgbI77FRqtEawFBYDzb/b5yF0J3kzPnlPyuMZ5AiEAysIDn+E1KBYODcKzVex7Dx4T+nDl5oOz38zvZG1HBvE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.730.f29a5aa","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103453},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f29a5aab5db192284ce5cadf08ffae2649a598ea","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.730.f29a5aa","@flighthq/types":"0.5.1-next.730.f29a5aa","@flighthq/signals":"0.5.1-next.730.f29a5aa"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.730.f29a5aa_1788404801755_0.9261929184727271","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.730.f29a5aa":{"name":"@flighthq/textshaper","version":"0.5.1-edge.730.f29a5aa","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.730.f29a5aa","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"daf3a1ff312b53b0cf4c8a82c8b5a56bd66a8437","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.730.f29a5aa.tgz","fileCount":56,"integrity":"sha512-bike17+puCdViVMnrLhw6Kt6nF2HqvdnPlAISIAcArrMe27tdvpK78GQMlb73Xuzxdc8KZ/O93FDHmUvw25Thw==","signatures":[{"sig":"MEUCIAD6GYa5+V+CkSjEXQ4fFjW1yMLU+poAP7XPGgbMuu9kAiEA/Sk1FMagBwQSoKvTncJJDAaxFLp50guVW6aQ5cdWnEU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAxQ3GwFamVb0Owq+hxFZqdyo+cJeT7x/XTqURVaWSq+AiEA/9hYtT/iIFaejWdEr/vAMZvXpg4NeFmZvW3d7iAyDJI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.730.f29a5aa","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103453},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f29a5aab5db192284ce5cadf08ffae2649a598ea","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.730.f29a5aa","@flighthq/types":"0.5.1-edge.730.f29a5aa","@flighthq/signals":"0.5.1-edge.730.f29a5aa"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.730.f29a5aa_1788405343314_0.5912508824490932","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.731.0ae0aa4":{"name":"@flighthq/textshaper","version":"0.5.1-next.731.0ae0aa4","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.731.0ae0aa4","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a80dd398c3373ed6775b1cc3afcf28df2da7678f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.731.0ae0aa4.tgz","fileCount":56,"integrity":"sha512-H1k5FbgNoEOHzu/TftiHHXL5sF7SgtQ/yvP5evb/tSjA+7YVJZiMxLjXYiRu7fmezBPvHkRgOcsEiHTImAsvKw==","signatures":[{"sig":"MEYCIQCGHCu+3Yq8jpNvdTtW4RZ8nPMLYM3h8KEeP3B2zfFeNgIhANZvqTLHaFNOwH7ErEm+J1puEVIzWLscjsUK/Pzq2BXF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD/iiP/4TJTJlTJcbIWhE4TRWXZXFLbMnXAX3o2bbxaWAIgDB3FPncHRSaNVhw2EtAI/dDg96yv18c4oGTIrVrjgZ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.731.0ae0aa4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103453},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"0ae0aa49d8251d23b546f64bc242f3ad59a98dcb","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.731.0ae0aa4","@flighthq/types":"0.5.1-next.731.0ae0aa4","@flighthq/signals":"0.5.1-next.731.0ae0aa4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.731.0ae0aa4_1788405502247_0.3179725433142795","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.731.0ae0aa4":{"name":"@flighthq/textshaper","version":"0.5.1-edge.731.0ae0aa4","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.731.0ae0aa4","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"b15fb1c1b7515138574d0b0b936394e881b02478","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.731.0ae0aa4.tgz","fileCount":56,"integrity":"sha512-ieLI7LXR44mP/XyToyxVKPwq2rfgRzLr3276dKjTM7nsSTgajh7kqBxS6WaTy9gpaWZ/L/MAAlkdh0LwZg5T6w==","signatures":[{"sig":"MEYCIQD0Had4eKidAQFLktn1bPuy4sZQdjbVfWKnogOWSz39nQIhAL+fjaJyhhRotWCQMpgv7m5Ul67iBXwMJBinmaCGZEeC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAns0sYM+Tm84aNXGTRq5mtvjn4zoMlBataSySzOcqKaAiBVwI7wLkrMPElZWlfzh/s/1X3UrLK9HjPwIy59GrvGOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.731.0ae0aa4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103453},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"0ae0aa49d8251d23b546f64bc242f3ad59a98dcb","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.731.0ae0aa4","@flighthq/types":"0.5.1-edge.731.0ae0aa4","@flighthq/signals":"0.5.1-edge.731.0ae0aa4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.731.0ae0aa4_1788406117626_0.6617456297080302","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.743.8d09db1":{"name":"@flighthq/textshaper","version":"0.5.1-next.743.8d09db1","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.743.8d09db1","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"f8176ee05579d71c4de48d892c6b849182da8571","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.743.8d09db1.tgz","fileCount":56,"integrity":"sha512-nyH1WRx20dTArgN0vo+CA2Vo9RDGjQ4cfrQxG1AeiMf5mQn9oSqHB2LTGMtzhsvcwk+VVOn6zOzAMuDuw3OhqA==","signatures":[{"sig":"MEUCIQC88f9A4SzyHNXOlIVrtQDIBBt96DUtC1Xp0S0wVmThXwIgASMK0efAzHfRZLzNe5LXQ4vjaNiJbpilmrEfoXtkhQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCbSEle7HLNZY2E8SwtkJ1ynLTp4o5I3q99Cf2MJ09tDAIhAIX+cTFi5uh1OUAZvmYhDfnQTS4NGIPwMmCkINA8fM6d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.743.8d09db1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103453},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"8d09db125a0afd3b73ca6e039a7dd25bcb9737d0","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.743.8d09db1","@flighthq/types":"0.5.1-next.743.8d09db1","@flighthq/signals":"0.5.1-next.743.8d09db1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.743.8d09db1_1788426886122_0.012093847409880842","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.743.8d09db1":{"name":"@flighthq/textshaper","version":"0.5.1-edge.743.8d09db1","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.743.8d09db1","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"59254df5e5fae64a9aba709063b3bb1408d9d8a4","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.743.8d09db1.tgz","fileCount":56,"integrity":"sha512-qwCS2guipcqMG1gS9UznmSn/WvtBX8Q8lWJ4jC7UW02fj0hZRGojlwhjWJrW/J8vAI336CBXHcxmbDhOOlbdkQ==","signatures":[{"sig":"MEYCIQCvOeT2K8jvyzuoeZLYge2MRDxDEZmfaSDLzvMbrobBMwIhAPp8gUEkDTex4ubLuAbvIaw9GA9a/UgqAAXYsPAdKce4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCiQpkuZRm8McBeisqcKWKr36gf6PBgAj0xpjSLeYcJaAIhAI0j4Oj5oLUjipZC9Rnj1q3NCmEuNeFl8e6jEN8H6/0C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.743.8d09db1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103453},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"8d09db125a0afd3b73ca6e039a7dd25bcb9737d0","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.743.8d09db1","@flighthq/types":"0.5.1-edge.743.8d09db1","@flighthq/signals":"0.5.1-edge.743.8d09db1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.743.8d09db1_1788427344903_0.6205771171998082","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.799.62ef0c7":{"name":"@flighthq/textshaper","version":"0.5.1-next.799.62ef0c7","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.799.62ef0c7","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"99e2dc4a677a8410966c96c6e68d506df673004b","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.799.62ef0c7.tgz","fileCount":56,"integrity":"sha512-+KZFn0FoLM8SWDuGsy1SP0Im+WHjyFqycfum0Kbd8dCY2aH7Yble5OknV4DY/gW2XdJ0ErQInDP8S6k4YrtcGA==","signatures":[{"sig":"MEUCIDOyEEqGfTVs87ETgPEEMQyc8EXcwuozCx9R5MtRaEzCAiEAu9NSAbkf27ZK1CPvtF9vbUnYweut8FTk4FRoSwTc2B0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCS/NbdWoW2EUvqBiixuOSSLTeN0A+neX6tETGr/UymwwIhALCAJc80OwFXC8tUk/LB2mzbBO3wpchszfdBxbaYiC0e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.799.62ef0c7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103932},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"62ef0c74f09f24177aac3695b2487b2d743d4fe6","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.799.62ef0c7","@flighthq/types":"0.5.1-next.799.62ef0c7","@flighthq/entity":"0.5.1-next.799.62ef0c7","@flighthq/signals":"0.5.1-next.799.62ef0c7"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.799.62ef0c7_1788447388342_0.24973007772822364","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.799.62ef0c7":{"name":"@flighthq/textshaper","version":"0.5.1-edge.799.62ef0c7","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.799.62ef0c7","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"62e30d4bf15220e62a9e01d20105efee0935685b","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.799.62ef0c7.tgz","fileCount":56,"integrity":"sha512-c3Tc0UbDSd9MhL32UcX5MiCKO6/kPhjUsUgGGot8WQi3R0h0clB0RI3+ypworxRGcZyPGy9fBkYUAXhMOJ0p3w==","signatures":[{"sig":"MEYCIQDejJ34M1te5NNenm3KLv0O4sDms29cFeenXfAELsHWWwIhAIuBMsSBC25tD6WY/5XnTad8Fp9V6v9jlZqNaJZnRlgX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIARWP4Nfi6vQIaDb7gPlFRy1HBelQXTxVCHSzPw2ulfeAiEA6xWy3tNsjCAxP2nWSnNBzMFdq/KeCW59A3bXK9JE2nc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.799.62ef0c7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103932},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"62ef0c74f09f24177aac3695b2487b2d743d4fe6","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.799.62ef0c7","@flighthq/types":"0.5.1-edge.799.62ef0c7","@flighthq/entity":"0.5.1-edge.799.62ef0c7","@flighthq/signals":"0.5.1-edge.799.62ef0c7"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.799.62ef0c7_1788447887587_0.5555353637987452","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.815.cc08b93":{"name":"@flighthq/textshaper","version":"0.5.1-next.815.cc08b93","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.815.cc08b93","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"18e64b3d3a33daf5ed36ced2c94f08550048471a","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.815.cc08b93.tgz","fileCount":56,"integrity":"sha512-jNd5D6BoGguAXppKDn7tIqnVL+oFCMRvYcXKpD7y3g6tAuAfDbkxIljXQjt8Yrr8IPy81jBorLB32/2kWjdFjQ==","signatures":[{"sig":"MEYCIQC4uritk8AHMwP/IlQVEDcOmieDIr9/0Fq/D+n0zAjmEwIhAKPBBewyrd39RS1PgxSrmAbZIW9FZEbHsVEJf/wY4XF5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE8HF4dJ5Fv/SRvEGoLX20iMwRDeUvYxxpCdtl6wTxnPAiEA17R2iyRbxBUDpt8AWhBQgokqATDJgAa9IrrbMiPu008=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.815.cc08b93","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103932},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"cc08b93ef981080fa86bdd5143dc61dbdbf2665b","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.815.cc08b93","@flighthq/types":"0.5.1-next.815.cc08b93","@flighthq/entity":"0.5.1-next.815.cc08b93","@flighthq/signals":"0.5.1-next.815.cc08b93"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.815.cc08b93_1788461178974_0.4112780784586736","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.820.97b3830":{"name":"@flighthq/textshaper","version":"0.5.1-next.820.97b3830","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.820.97b3830","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"317346a38baae58db14e3fe5ac279a9a9b51e2ce","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.820.97b3830.tgz","fileCount":56,"integrity":"sha512-xr9Ud67GoRSdtWKxTqjSB8QvDnBySaNm3aKNk692F2YtA/d1KBGHc+IGDi26tDTpImdb6dIsV6uA/Hmo4A7UBQ==","signatures":[{"sig":"MEYCIQDgL+LV8U8JNba4LSHu9WdImBBOnZVMqhaUM/uKhmsltQIhAO3QcICx1uUU7Ti2dJngUyS+KKn5jqEgNynKzzWecJCt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE3QsI50tu9g4N21JztkPbeMsqWELV9lUwTbf1Z0GZHXAiEAkD24mxvJllUZQSqORuXPnj4BZr02DuNrOWbGJ4lPcHI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.820.97b3830","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103932},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"97b3830e843209d92da169e02a52c0574efe5c09","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.820.97b3830","@flighthq/types":"0.5.1-next.820.97b3830","@flighthq/entity":"0.5.1-next.820.97b3830","@flighthq/signals":"0.5.1-next.820.97b3830"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.820.97b3830_1788469940856_0.4255116846168081","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.903.f434bc2":{"name":"@flighthq/textshaper","version":"0.5.1-next.903.f434bc2","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.903.f434bc2","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"6aad2ad4ae884f41f8bbfdb4c09638dff073bc5f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.903.f434bc2.tgz","fileCount":56,"integrity":"sha512-SlzjrvJDbrYDeIzxFQfics+GfU4Sq+lW6b6Hx653lHtglIoWJovEOsG7ogmrw9cvAlwBJOUC+NI4x1pWeDZlFA==","signatures":[{"sig":"MEQCIFQFj/uoeiIh9gUq7EOG3M92xyP6cZSMp3l9ifUNSX3CAiAPMddLyW9So4z1trkOXPRWqAs9BW5473e9S0qn+mJAmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBTB89tZ7h+UNv8vnMjEdf2Y7Njr+Qn8gwd2TxDRu52kAiA+1EOIi8RrfJPZxZUvzOp0wsq+fcD45RzdBHgX0Ul0Kg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.903.f434bc2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":105974},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f434bc233778d75aeea61995df3a8cfaec459a85","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.903.f434bc2","@flighthq/types":"0.5.1-next.903.f434bc2","@flighthq/entity":"0.5.1-next.903.f434bc2","@flighthq/signals":"0.5.1-next.903.f434bc2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.903.f434bc2_1788551245777_0.15910806898453922","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.904.b545d9c":{"name":"@flighthq/textshaper","version":"0.5.1-next.904.b545d9c","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.904.b545d9c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"01cafecd4f09054f3792115cca17ba8442dadb5c","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.904.b545d9c.tgz","fileCount":56,"integrity":"sha512-eVyOVDwyQOq6ThnoVIehGsEyipg2yCTzbgVskXVwKOhYDPUYhgRAz40bW3hnOiawxMhu0GlFiByU5Gk879vYPw==","signatures":[{"sig":"MEQCIDTTyfQQuyg1ex5BcNZ0eUferScSOPUnCxK07/SHsif/AiA3ut4EfJRWyVVdZkafiOm8YX4SumGUKXzNk94yDYXKDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIF2N+GgVUWJOKLdpT9mB8vTjA8nfseMnzZqs5Jp4rWyRAiEAgdFQdX4qqNj5Qqv+OD3r0aaWYDbNtQBS3S/AGRU8l48=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.904.b545d9c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":105974},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b545d9cfe622400923a81685c78547f2be54eff5","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.904.b545d9c","@flighthq/types":"0.5.1-next.904.b545d9c","@flighthq/entity":"0.5.1-next.904.b545d9c","@flighthq/signals":"0.5.1-next.904.b545d9c"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.904.b545d9c_1788554817304_0.6766294435322913","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.905.5fbf787":{"name":"@flighthq/textshaper","version":"0.5.1-next.905.5fbf787","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.905.5fbf787","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"fc2d792b90cb05d6fb379d74a8653b731d57624d","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.905.5fbf787.tgz","fileCount":56,"integrity":"sha512-PiOvSluQwFOGJirgksu7dy4rxQQjcPj4zC7FuU2E/D3DrVFEN8stn+KUDzaqv3Ykl/xpu89RgwTTVTB9v0GJkQ==","signatures":[{"sig":"MEUCIEiPwTKLYd4DOcN6Ek8K7ZIrFpxemnPNVaCImtamydInAiEAi6E69+L+LjM0uFm1OD4Im/TeyQKh6R1cpV9/vzICZz8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICbAxICR0I+P0xC96N4QcfiXAk76X+nDQk7ySOl9JbhXAiBPTfGgjbUdptCwcvNF5CfYX+WcvZ+19AaIEXP0eNLXVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.905.5fbf787","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106628},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"5fbf7874064c384307542d68b4dcb6a895ff0dcf","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.905.5fbf787","@flighthq/types":"0.5.1-next.905.5fbf787","@flighthq/entity":"0.5.1-next.905.5fbf787","@flighthq/signals":"0.5.1-next.905.5fbf787"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.905.5fbf787_1788556035076_0.01619029108930614","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.906.419e5c9":{"name":"@flighthq/textshaper","version":"0.5.1-next.906.419e5c9","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.906.419e5c9","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a2291d85b2aba8be12570eaa1b64d8bb48b18130","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.906.419e5c9.tgz","fileCount":56,"integrity":"sha512-dcIneRMn8UfWaH92iFvKh+TCxYUNOuWIsI1qaTk/5ehRFXbsG61wY0EZ7ezEdCY3w+ET+9LG01/KkHsQTx/Vbw==","signatures":[{"sig":"MEYCIQCOnD6i2mrJRewdOgT3HrTBQWH8p24cwoWT85JVhFCOFgIhAPg9et0zh72hcZtw/aDynQrAO4VVP+1i1rSniOvsZ8Pf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIC2fq30/NwVBRNGySHx6oZ9slBXiWn7OrBAWSIYQQTS/AiEAgR8EPYgM0yojmiZil1cIJN0qgNRN8NAYaTtg64kTk0k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.906.419e5c9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106628},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"419e5c925b366b5053ed7711ce371eee89dc31e7","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.906.419e5c9","@flighthq/types":"0.5.1-next.906.419e5c9","@flighthq/entity":"0.5.1-next.906.419e5c9","@flighthq/signals":"0.5.1-next.906.419e5c9"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.906.419e5c9_1788559736993_0.3742811769782175","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.908.b072fbc":{"name":"@flighthq/textshaper","version":"0.5.1-next.908.b072fbc","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.908.b072fbc","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"ab1e4dbbe2878ffe97f08eaa6ae87fc475158ca3","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.908.b072fbc.tgz","fileCount":56,"integrity":"sha512-xxBBrriTHxjYiurAZJIpt9lshsP1Ig4FEaoN/U8sMU3nr+paPZ6ZREK+S2DLVBbz7Ku+2SngWhonCZcF4dcVyg==","signatures":[{"sig":"MEUCIQDxJ46eq2O3P6jlg35NJf3irITAYwoiIDjZmB03oAb9IQIgCAh8U0ul49rqi49mBBQSn6yULNKVzzDveUFLhMSb0OY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCafTz4rTGW1MFE2XtpxM4G0+zT74V1rBkChLnyealfSAIgOYWF6gtzmyD8siYPbHfWOw4CUErL2nFxJ6J6yHPDF2M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.908.b072fbc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106628},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b072fbc49d0745bb96842601b864551b37ab3ca1","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.908.b072fbc","@flighthq/types":"0.5.1-next.908.b072fbc","@flighthq/entity":"0.5.1-next.908.b072fbc","@flighthq/signals":"0.5.1-next.908.b072fbc"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.908.b072fbc_1788564421006_0.7971516323097894","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.909.a5d1857":{"name":"@flighthq/textshaper","version":"0.5.1-next.909.a5d1857","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.909.a5d1857","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"dd7f42e4cac632140d4dceffaccddbf0570bd8fd","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.909.a5d1857.tgz","fileCount":56,"integrity":"sha512-3WMnXoYivrfNc5Rk4eq9kewUMrnU1+YJ92qxA1CUt178Mwbw/ry6dIpHG7NT/5j+6xnlhTorJk29D2tCM+vcPA==","signatures":[{"sig":"MEUCIQDkre3cpRC5r1BZiWRNv0MfLI5pE/ZEljYfTiQ5K5bQhQIge1MCe8dszEDoBXlc1oIqssTAG7M97n9VW5pclx9yhNk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDgwnd2Udb/OzeyH9w0WC2VSy+1Jbn4/rpsCTRVjfHWmgIhAOiSXgRMCnA9xTQv9BKKIQIBi04HdYvrTzY61e7PdaNV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.909.a5d1857","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106628},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"a5d18571cd3176400ab4dd8e03a2ed880037b213","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.909.a5d1857","@flighthq/types":"0.5.1-next.909.a5d1857","@flighthq/entity":"0.5.1-next.909.a5d1857","@flighthq/signals":"0.5.1-next.909.a5d1857"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.909.a5d1857_1788564929709_0.7531804696523632","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.909.a5d1857":{"name":"@flighthq/textshaper","version":"0.5.1-edge.909.a5d1857","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.909.a5d1857","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"7177cba8433a362f014c9c41fe2ea97ae5b42a33","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.909.a5d1857.tgz","fileCount":56,"integrity":"sha512-pTNSrY+k6dFFPtVgjoiDbanZPC4h9Vi7NvUVXBzHXJrLnh6UX4gjMjzcwezBGyfiLoJ7dH7NnPNzGMriw5EQLg==","signatures":[{"sig":"MEQCIAr1JuaK1US9uEA2J/ryT+xpKcKKo1LQn91q9tacDndZAiAKhvIdA6EngXysWFMw+wtLRKwnOKrtTjWEZk4yVTxXBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHobTk/TDLh8S4GCJnwnT2veX0bNJuFXrO7qi2X2NMdGAiBEIVdGtl/i2NbT12j2FBtPN24ptgJZhWN9HW34ibABZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.909.a5d1857","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106628},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"a5d18571cd3176400ab4dd8e03a2ed880037b213","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.909.a5d1857","@flighthq/types":"0.5.1-edge.909.a5d1857","@flighthq/entity":"0.5.1-edge.909.a5d1857","@flighthq/signals":"0.5.1-edge.909.a5d1857"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.909.a5d1857_1788565514821_0.4886279136485836","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.911.32a089f":{"name":"@flighthq/textshaper","version":"0.5.1-next.911.32a089f","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.911.32a089f","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"d799c53df7f5834305af2970d1aa62efead542d8","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.911.32a089f.tgz","fileCount":56,"integrity":"sha512-OA8Fsjun509rg24h02+yQF1LY1OxJDkkY5v/janQxHjRjwBA0d2dogBSX4rkjap0PlT9VOQM7xutKware0SQ9g==","signatures":[{"sig":"MEQCIEvnZwa/UC6JA70nuI3ub08HEKgYKyyW8xXvn6C6kI8EAiAhLo3hb1mcTRDuL0YQT1xCplTdzuLjHmaNZhzi46z4EA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEdydZ9vUA+p2/rO0uwH8VZcL3izP2iwn34zl613rkJtAiEAwYIdQ3bXwTWG+pr0MJR2oJjloNi6LQPw1s4CS3tn2cI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.911.32a089f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106628},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"32a089f1342d08547fc2359dfd5e8fe9f7e3c12e","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.911.32a089f","@flighthq/types":"0.5.1-next.911.32a089f","@flighthq/entity":"0.5.1-next.911.32a089f","@flighthq/signals":"0.5.1-next.911.32a089f"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.911.32a089f_1788585512274_0.5492691824508384","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.911.32a089f":{"name":"@flighthq/textshaper","version":"0.5.1-edge.911.32a089f","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.911.32a089f","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"d49615169c4e51801199a6f65fced9d9b61caffc","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.911.32a089f.tgz","fileCount":56,"integrity":"sha512-QThwUsVc06S01mO97XVua7T3lnurZlLPxkd0swo2OjlXOJMedqx0tfNa7sqM27OZDENq/ij1r2p3Mapg79BXaw==","signatures":[{"sig":"MEYCIQDcUlDGjg70R1XADYiMckE4scSekpWysnKsqp5iaIHrKAIhANRUV51b3AqYQXHtOjib89sR6mKD/TrxNVf+ZP8+6282","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC7GOz22AT8teQYxt4NXwm89ODlE9962AecGi3bKPpQcwIgfwabsddIYTdamqXe0ZJ/PLrbPgXIwY/iggyXm2VTHR4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.911.32a089f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106628},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"32a089f1342d08547fc2359dfd5e8fe9f7e3c12e","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.911.32a089f","@flighthq/types":"0.5.1-edge.911.32a089f","@flighthq/entity":"0.5.1-edge.911.32a089f","@flighthq/signals":"0.5.1-edge.911.32a089f"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.911.32a089f_1788585920782_0.1096940265326829","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.912.289aaa0":{"name":"@flighthq/textshaper","version":"0.5.1-next.912.289aaa0","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.912.289aaa0","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"f6771037e7c64ed56012251afaa968c29aacc59b","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.912.289aaa0.tgz","fileCount":56,"integrity":"sha512-ottEwurlw3+4Deggh5F4Hmlcj4nQ3mlued0J8edvIjVkZ7z1vykKnnL4wJorpcuOgsKgDjRXwTyqBcRm4rIgXA==","signatures":[{"sig":"MEYCIQDdE56okbYao+8v/QY8WY7ojfaqvvB9Efs6C65lmlM6ZQIhAIvYG421HCOK6aSuCik0/QD38ApTXuIYGdepHsIArI3j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDAiVTmIuvvdmAGsRP+WgSKHpWN03MxyD9R3rjsE1kX3AiApOhKCAK5OsUuGPAf1kpeSVMlJIx6B3DU9lNb/Y2kgGg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.912.289aaa0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106628},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"289aaa01f9bb829f06c361b687b6c15a4ba4f9db","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.912.289aaa0","@flighthq/types":"0.5.1-next.912.289aaa0","@flighthq/entity":"0.5.1-next.912.289aaa0","@flighthq/signals":"0.5.1-next.912.289aaa0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.912.289aaa0_1788587365289_0.2886037120796656","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.912.289aaa0":{"name":"@flighthq/textshaper","version":"0.5.1-edge.912.289aaa0","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.912.289aaa0","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"fdd2d0d002b9e42d971d61e7ee6d9901312f3739","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.912.289aaa0.tgz","fileCount":56,"integrity":"sha512-ZwlWNJLxLFncBAhyCBkQLPBDtRTtOoC9n3eg8JeztHlDkMaSMhtwZ8/G9+H8gxKbTBJEdVtl/yPOwxa2Sy3G5Q==","signatures":[{"sig":"MEUCIQCGUXVHc6y8AFRQ804NQWUOuuIhrTBNPxIOeHik/kgc0QIgVtekj6vQGV7oYFow740MOTzfNGtaiCsV+JtmG71B8fk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIETH07UjBmmy3U/5e6feX4oZqDYm2P9G9hqooGiVWgjaAiAW7+rwaUhRGKcr7CRXo1MZAeRuHJA+sgbXvTC3eTuhxg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.912.289aaa0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106628},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"289aaa01f9bb829f06c361b687b6c15a4ba4f9db","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.912.289aaa0","@flighthq/types":"0.5.1-edge.912.289aaa0","@flighthq/entity":"0.5.1-edge.912.289aaa0","@flighthq/signals":"0.5.1-edge.912.289aaa0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.912.289aaa0_1788587683777_0.05410963713744876","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.914.ed01add":{"name":"@flighthq/textshaper","version":"0.5.1-next.914.ed01add","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.914.ed01add","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"d683199b4a6f6d9a1b84605ba5443ab99c574406","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.914.ed01add.tgz","fileCount":56,"integrity":"sha512-uCGwfkDig5fNCmBX7S9F4TKXhPZgvTZYErAN4JzAoEeDYnNS6fVr6qujvhu68Yi4c1oD9M25y1q9wv9Q7f5HcA==","signatures":[{"sig":"MEYCIQCIzhOfev7tzdYMcROq2bVPakEdbqd7pRCET0DSfmeDOQIhANReKoWkrhkOfl89+QVs6Tyt1Os8NiclCGORmQi1h7Um","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGTjtIO3qAClQRRMg9kHDE6fr7BfslFqyvmBZzc8cppOAiEAvqzAgRCctbTUevkm5Jviw+gBguy8vlpNeoKFI1VpXPM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.914.ed01add","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106628},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"ed01addb10f223ccc2cf89a73d3150ebc84d0b01","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.914.ed01add","@flighthq/types":"0.5.1-next.914.ed01add","@flighthq/entity":"0.5.1-next.914.ed01add","@flighthq/signals":"0.5.1-next.914.ed01add"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.914.ed01add_1788630854884_0.519978347961706","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.914.ed01add":{"name":"@flighthq/textshaper","version":"0.5.1-edge.914.ed01add","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.914.ed01add","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"7f00c4c2b8556e22587ed448792d7eacdf2350cd","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.914.ed01add.tgz","fileCount":56,"integrity":"sha512-MFIQoXMEtjhY8UmZoHrWqoLL0YseR9Zk82cjG55qxzzTxqCoOnAynQWbVrf728vsG3sy6QrfHZdFwUHPLvWWDg==","signatures":[{"sig":"MEYCIQCyC4g3BFkWGYlDku2Dl0Tu7LjzLMVLwCJ53eOXn7cH9wIhAOAuIlTE4jPXQzDENDZNJ0jdnjwv6Fd0nKeboSldj31b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCdatyMhOpRYiTKihX5wk57DM8vVqEDYQJF7HPgehiwUQIhAK2e0vOarIAH/sfo1BVbDQE2Ia/eJitbkIw35fqfUHO4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.914.ed01add","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106628},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"ed01addb10f223ccc2cf89a73d3150ebc84d0b01","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.914.ed01add","@flighthq/types":"0.5.1-edge.914.ed01add","@flighthq/entity":"0.5.1-edge.914.ed01add","@flighthq/signals":"0.5.1-edge.914.ed01add"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.914.ed01add_1788631351455_0.6288056807560347","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.915.d4da7e7":{"name":"@flighthq/textshaper","version":"0.5.1-next.915.d4da7e7","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.915.d4da7e7","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"b37ee3a6e7bb3d90b3b48867cf738d3986ae3fee","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.915.d4da7e7.tgz","fileCount":56,"integrity":"sha512-vEPz9e1SFsSy89Q4pWyW3uGb4TXYbA0oPfdVFfPBv5HUX5dMMcqALRdUm6qLNuOxEqugoEh6MNzp2mNkZ3Daow==","signatures":[{"sig":"MEUCIAqb8VtXlnAuYNsTXDUgwpGY3eCsCvNMNPNhkTx4oA1XAiEA/seafRBXNHg8WdQwfK/k6kZWzJu7vND29GqE46eLgL4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCkpnQObTBnGlmM22uFKmN0FVFAItRY5S/ATNnHOeV49AIgMoAgxsWhxGtftgSQCMTCSJbDs8OCObsyfX79jmf89es=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.915.d4da7e7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106628},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"d4da7e7eaf7e58b0a32c4c4098023b670ac1e76b","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.915.d4da7e7","@flighthq/types":"0.5.1-next.915.d4da7e7","@flighthq/entity":"0.5.1-next.915.d4da7e7","@flighthq/signals":"0.5.1-next.915.d4da7e7"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.915.d4da7e7_1788632491782_0.7592220796870615","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.915.d4da7e7":{"name":"@flighthq/textshaper","version":"0.5.1-edge.915.d4da7e7","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.915.d4da7e7","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"66b85809f21c02c7f496872de043a081cfaa2958","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.915.d4da7e7.tgz","fileCount":56,"integrity":"sha512-BfNC262lV0CMVzq+U/blVot2H0NVDX30r0v5QfsHJnre2DYtcXfqJnC3rRi+GvbD85VxDqqEkldI0eI/u/Mr8Q==","signatures":[{"sig":"MEUCIQDun9Bodv0ZQjV3z33DRUfAYJiDpfWdayQgA3qqFZZKIgIgBMjVX5ukLakB48dXcERc+0As+yNDkvHnN/dh+SxWjho=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBsoCJkQBfX59GX1lJdanLXssnBrgKR2s0GCF6hTAIp2AiEA9wBbtX8G5EQyhbW9cthZ0pC94UkLPgBGqdXwZYt3zAc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.915.d4da7e7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106628},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"d4da7e7eaf7e58b0a32c4c4098023b670ac1e76b","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.915.d4da7e7","@flighthq/types":"0.5.1-edge.915.d4da7e7","@flighthq/entity":"0.5.1-edge.915.d4da7e7","@flighthq/signals":"0.5.1-edge.915.d4da7e7"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.915.d4da7e7_1788632894325_0.42170158587697526","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.919.354c575":{"name":"@flighthq/textshaper","version":"0.5.1-next.919.354c575","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.919.354c575","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"b5bcd1fd5425e2506eb644118f3c1b79d29c6ec6","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.919.354c575.tgz","fileCount":56,"integrity":"sha512-K3SpVdUiCOHgOxIBxr/vrAb9DPoNeOhDnyEvoR/o+ng0zf58rrGbU825iT4zPr4WZM3lrncQeX3H74b7rTa+8g==","signatures":[{"sig":"MEUCIQDnme0vO8QeVeFw/lGKlgHPxiLrZqhaamgp+wkQtAIn+QIgZP75LR3raP3j+EBnqObZ2Ojf4wh3oR+Q/9msmXIx5SM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBPZuo3WDJcbxgGOpHdynlCWWbWHXI5iEePGmPdj+3ObAiEAjppQU2sK4LcLMU/BQUYMeP/a7aoGLdIxTgDvGaAwSBU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.919.354c575","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106628},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"354c575656605d83e51b525716705b91317a5dd9","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.919.354c575","@flighthq/types":"0.5.1-next.919.354c575","@flighthq/entity":"0.5.1-next.919.354c575","@flighthq/signals":"0.5.1-next.919.354c575"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.919.354c575_1788649906246_0.03730388841772947","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.919.354c575":{"name":"@flighthq/textshaper","version":"0.5.1-edge.919.354c575","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.919.354c575","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"ac0a815a724d8951b16efac83c3962e3c2005396","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.919.354c575.tgz","fileCount":56,"integrity":"sha512-sgMM5FFdvLQk7q5MUrl21nVCGQqaTQWoteS84LLfyTcb8j9ymeHfVAYn967mOdAe215xKsSaen7j+uRxlw5EIA==","signatures":[{"sig":"MEUCIQC4PEYkqyjcs0pmrnyvAiVA1anZtcInMxFIApckViyNCgIgL9g3WiMyeszQgAV7ec8JuK9tw4DLT7hIDVEDr4SoHQw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDtvJ02q2eEtbDCTMhWXwgpyzaaE45uvK7rnHVt2t/hlwIgYYZqcclz5JMlbOTFYpRSwxKqRZAPm+L4IFdrvECIhbI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.919.354c575","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106628},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"354c575656605d83e51b525716705b91317a5dd9","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.919.354c575","@flighthq/types":"0.5.1-edge.919.354c575","@flighthq/entity":"0.5.1-edge.919.354c575","@flighthq/signals":"0.5.1-edge.919.354c575"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.919.354c575_1788650505655_0.7040111867239818","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.920.da8f530":{"name":"@flighthq/textshaper","version":"0.5.1-next.920.da8f530","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.920.da8f530","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"c872a50391ced8cf996a71f50261dfd7fbf2b708","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.920.da8f530.tgz","fileCount":56,"integrity":"sha512-qFN3fWP3h/9B7MiB2cu7mrfAothFt+0NaIhHXppa0gJnvZzkWHcq/zCoGD8GOoesf7U1BNsVmypFBcNNJBThUQ==","signatures":[{"sig":"MEUCIF1V7+3cbnvrwXyhfLqg1QgZeDFRlGzk92QT07T4AI21AiEAyIauCKd8jBu+nMTNsu/ngZ++Mcd2qPQ75gYSXVmGsko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEL9YQS2V8L7PbFmAXMs8s5cnDc8oKFF8Odmvp6RRfksAiEA+Tlka8XDND+6jFKJYV3Igjz2XJIYJolrru9fB0PI1vQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.920.da8f530","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106628},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"da8f530894916f9baa6a9f6822b4f393b9e70a85","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.920.da8f530","@flighthq/types":"0.5.1-next.920.da8f530","@flighthq/entity":"0.5.1-next.920.da8f530","@flighthq/signals":"0.5.1-next.920.da8f530"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.920.da8f530_1788726280852_0.47563566694291093","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.920.da8f530":{"name":"@flighthq/textshaper","version":"0.5.1-edge.920.da8f530","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.920.da8f530","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"c0bd9da9aafbd35d63bf37814f709129b3795d7b","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.920.da8f530.tgz","fileCount":56,"integrity":"sha512-0ga25jQQI0DuRwoELj+eLZnWUOCwKG35biNXofo/BXwu6ASt+gwslYRh1T1IlITiQTgS0HlaHKhW2gDRgbr2aA==","signatures":[{"sig":"MEUCIGjHEgNlqwMpIqOocyODL2E1Vm8ewqFuLQx7IEdQVhvTAiEA1LVRrrBz/3tMophKAktUQcSQCkOWF6MMkYlNrjKgrDA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDADLCrQaBIUfSiu119AROnfdsFJz+j1nM4qilkSL2cXQIgCAPCqECVLnYUqcnCXf+AawcXTwRi7JyA4jDLkqPXyag=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.920.da8f530","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106628},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"da8f530894916f9baa6a9f6822b4f393b9e70a85","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.920.da8f530","@flighthq/types":"0.5.1-edge.920.da8f530","@flighthq/entity":"0.5.1-edge.920.da8f530","@flighthq/signals":"0.5.1-edge.920.da8f530"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.920.da8f530_1788726828928_0.27775685934264227","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.973.788d3d7":{"name":"@flighthq/textshaper","version":"0.5.1-next.973.788d3d7","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.973.788d3d7","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"ed06fe6af8e846acc8dfd41221eeb16e0b4ae3df","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.973.788d3d7.tgz","fileCount":56,"integrity":"sha512-3ASN8kFkt8M8Q8NECqts9MoIPwrk5VVxgIygJgBWP1fgEFUcESib4VLx7IT4UQ8FeJx9RFpGs9Vi7XSxLm4eEA==","signatures":[{"sig":"MEYCIQCiwsSenCeC67kV1rKTQHqsSSIPezh13liTJ3p6yOFltwIhAIGfe9TRJ/aNX/s4sCFAnhY6SXWVEMpYZSVPlCUcnj88","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCOpn6zqX2R4nB6EFAW6+Hw+0wnviGgFuuht4PaQKEsfwIhALXKNZvrkYyC3BEARYBHB89CGl3ZvSxQCaaaVbcRi3h6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.973.788d3d7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108027},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"788d3d7375cca3a0233cecedda1a4e031bd26dec","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.973.788d3d7","@flighthq/types":"0.5.1-next.973.788d3d7","@flighthq/entity":"0.5.1-next.973.788d3d7","@flighthq/signals":"0.5.1-next.973.788d3d7"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.973.788d3d7_1788898807400_0.6826339814536027","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1017.13841a8":{"name":"@flighthq/textshaper","version":"0.5.1-next.1017.13841a8","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1017.13841a8","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"5fd07d66e28b41d60c1251c96fbf546287c13387","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1017.13841a8.tgz","fileCount":56,"integrity":"sha512-xTMNWoQtdiPOEMTk/Kbz7vOub1MY8l6QHMa8ayyTXOMCiBzUzQqBd3fWwL0U8Yb5Hrng2naj3dBmLxxXUswerg==","signatures":[{"sig":"MEQCIACdaOhDggkPDFrjU8khwtigXRD5m6Fja5ZIfVszFIZrAiAGx75vOVWYx2NAKlXv1+lxKA99iVJdX6XKZdZE5oAung==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD7WxVOz0hjh/uyycobcIGFPjReRqWN+DQw/CCROSK1/QIgTPtNW7DVV498yrKTAH5GzboVsid/j9Em4b9JEHv7Npc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1017.13841a8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"13841a81e0ac1421eae7411a678d38d72b3e358f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1017.13841a8","@flighthq/types":"0.5.1-next.1017.13841a8","@flighthq/entity":"0.5.1-next.1017.13841a8","@flighthq/signals":"0.5.1-next.1017.13841a8"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1017.13841a8_1788927340331_0.640246698279938","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1019.1274ec5":{"name":"@flighthq/textshaper","version":"0.5.1-next.1019.1274ec5","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1019.1274ec5","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"789f2f279c5186819dbef71feedc17978f8b4fe4","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1019.1274ec5.tgz","fileCount":56,"integrity":"sha512-5SZCklr3GuanDjAo+aFS2eGUgTM9CCDMr85gfFcuWFswUlopG5OcyiUEziomNI8Jebu7fFRyzqYJYZHRte823g==","signatures":[{"sig":"MEYCIQDrCZeB+NHWYKeb5Uy9dz+5gmcz4zl2Rg6hXJQ48LY5EgIhAPzK3vTT7t4JcxRhd444Lsvp+x7VkRy5vZ9+1U6XBl37","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHVS6yvK0QVU7ETu3xg/Hd9fReed+z4rb+jTLvikRbhzAiBXIhP+PiaYhPg/R47sbvrLapFZvzLRzO0xVjdyxCikAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1019.1274ec5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"1274ec5c923947dc64d5ffedcbd8169fc758cd9f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1019.1274ec5","@flighthq/types":"0.5.1-next.1019.1274ec5","@flighthq/entity":"0.5.1-next.1019.1274ec5","@flighthq/signals":"0.5.1-next.1019.1274ec5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1019.1274ec5_1788934526234_0.7942334670203592","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1019.1274ec5":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1019.1274ec5","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1019.1274ec5","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"c71be0b199f4ca0008e04919b0ea90faa41c38f5","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1019.1274ec5.tgz","fileCount":56,"integrity":"sha512-UAooyKOemKIz32NfPp5jcfCxoaBWPWmTXWjSK1dAxdMd9pH/rn0YlguwZxzOkavJDQ5xWeXwmAR4E6Cda9eNqw==","signatures":[{"sig":"MEYCIQCzdpAt45IrYzp+7kFjeAbycDntwXH876+dWKyfm6nj6QIhALXkP43gKVTRV/ZOQuvgrusmPnCw96nTtALTBx2H5n4w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD9B1piItbihgWw4fOgAB6CYmrKnJZYxjROLNWhMvK8vAIhAPb2RhC9cTbGo8l+JvYMCze/N7XOcE/63FrV4f8ZIKaX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1019.1274ec5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"1274ec5c923947dc64d5ffedcbd8169fc758cd9f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1019.1274ec5","@flighthq/types":"0.5.1-edge.1019.1274ec5","@flighthq/entity":"0.5.1-edge.1019.1274ec5","@flighthq/signals":"0.5.1-edge.1019.1274ec5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1019.1274ec5_1788934956223_0.1200635615784098","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1047.858b9b6":{"name":"@flighthq/textshaper","version":"0.5.1-next.1047.858b9b6","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1047.858b9b6","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"334cd26b553cced825d6f433f925767edcbb8d59","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1047.858b9b6.tgz","fileCount":56,"integrity":"sha512-jm0PyTWdcgyfQ2FYbn1qxR2SbphlOQjWTidYEy1ydFA2j73GXZfyU2+B/KgjNwRYyMfR7VCMGhQgwiVl2qBqPA==","signatures":[{"sig":"MEYCIQCV5oDmKUXl82ReLSleVwOPUAfnfpSHmBObxLeARhi5HgIhAMG/yVgJUcj/DduqpdUhQlHXwc8vBrZg0wmg/QR1uSoc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEQChdK2V7YP42zFQeiKdVkaV/Uis7s8HVjHMlMXYKIAAiBDBoqxzztdOmlcrUSNIiJiV5vHo2e6gke6aJEnVVDkLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1047.858b9b6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"858b9b601de814f6b6940cbb1ffff0916b903268","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1047.858b9b6","@flighthq/types":"0.5.1-next.1047.858b9b6","@flighthq/entity":"0.5.1-next.1047.858b9b6","@flighthq/signals":"0.5.1-next.1047.858b9b6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1047.858b9b6_1788973288723_0.7252588499715349","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1047.858b9b6":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1047.858b9b6","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1047.858b9b6","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a7a2cce86478152107518f9877edf20d7adfccdf","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1047.858b9b6.tgz","fileCount":56,"integrity":"sha512-vTZoxPIbJFER08bXhDwuKZB64ri7d/DPxNwEtBaUlxDIOBeuKbMN5M4Q80hdvGAkedVoUgB53d0U8JjWrsKDcw==","signatures":[{"sig":"MEYCIQCQ/ytnk3/YQM9zPA3UYuZ7nyuPVhKSvSCUAukLOSAZRAIhAMcycvzoh9Dav9Hk7JARXlQHuK+KB4DEARMeuTz+j3UM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGEZhXpgnzK3a8KWnt8Xd/ud4CMDCr/eAYV6NOph/eW8AiEAkIhADsjjDtNwCLB5aO2ivZk2u3bzhi4tVh8Tl07fbmE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1047.858b9b6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"858b9b601de814f6b6940cbb1ffff0916b903268","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1047.858b9b6","@flighthq/types":"0.5.1-edge.1047.858b9b6","@flighthq/entity":"0.5.1-edge.1047.858b9b6","@flighthq/signals":"0.5.1-edge.1047.858b9b6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1047.858b9b6_1788973601428_0.8545008487374113","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1050.0bd43cc":{"name":"@flighthq/textshaper","version":"0.5.1-next.1050.0bd43cc","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1050.0bd43cc","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"c193591e8dfcf079ccb051d11c13eaaa07d663f6","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1050.0bd43cc.tgz","fileCount":56,"integrity":"sha512-RWJqwko5FLMoWqmn4MxyQPK54A+WThWdhWEO4kULtJIyFSV+0V7dfhmsf7RruVAKTc1IRoT51uRJp7gJMIQCEQ==","signatures":[{"sig":"MEQCICiJo4ie5MhIWzfMn1uMGswwdzoBtRb7JrU8sVWvOEKoAiAKqr5jHMA87C80ZV7NCvyHCNc/lF9viyF8dk9TrM/c9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCIRiZOfzXy+l5VE6QdYACv5KQ7WYij0Rubz+zKeb2O5QIgHH7KkYpho0WDodDFEy6yh81DXj+Pohgd2OPqWJARneI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1050.0bd43cc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"0bd43ccdf62d9977512bf6c0fd6dc3ec177a8c8f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1050.0bd43cc","@flighthq/types":"0.5.1-next.1050.0bd43cc","@flighthq/entity":"0.5.1-next.1050.0bd43cc","@flighthq/signals":"0.5.1-next.1050.0bd43cc"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1050.0bd43cc_1788988619644_0.5258119476095919","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1051.65889a1":{"name":"@flighthq/textshaper","version":"0.5.1-next.1051.65889a1","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1051.65889a1","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"6d9c7504166a453183d8a2f36d52097f0dda52dd","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1051.65889a1.tgz","fileCount":56,"integrity":"sha512-b1wWmMCYQeMPY1HUQavZGmscZwKERBRbqfAUGcMzztK4BBiMdOoL2G/wXBWwYuLSkoJ1NRiOrP3q2dQtplZGEA==","signatures":[{"sig":"MEUCID4Hhdc8hJGXnHoYVI07VvN4G/QdoS9yfqX39Z8qMCq8AiEA+u84Lm0raM8V/oPaH5EY2r16A5hXuzHMjjehEdviQ+c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIC0gun6Gdq6qD4EWeA/nSrI89L7BglUuu/CO9vlZWxGtAiAsHSULdtO4ICBxCZaj994xNC7Mhea3dF5ZhmzvNOu6Zg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1051.65889a1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"65889a191bb0d2f5f2f95148590874f3e49bf9d4","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1051.65889a1","@flighthq/types":"0.5.1-next.1051.65889a1","@flighthq/entity":"0.5.1-next.1051.65889a1","@flighthq/signals":"0.5.1-next.1051.65889a1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1051.65889a1_1788990962645_0.7859247742577997","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1051.65889a1":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1051.65889a1","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1051.65889a1","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"3f92f87954eded4fde47eac491aed6ba51db1a88","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1051.65889a1.tgz","fileCount":56,"integrity":"sha512-CkKFBBHPhX7qS4BaFqkjHKRg8yUwfLxkgBKE583kdLXUeRvpg5DJUt3qlXaIj0hTPYgvKavKHalwX1LTYeIMMA==","signatures":[{"sig":"MEQCIBQFd7CBMvE27w6xSJeQzLuWU7jmgQcPWVESrqnKjCFYAiBk/I/OgOqs4Zidq8GhzIAR/u/OAeH8RlbhR65XWISCcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCA9JTxUWzO9mv+Pr2PGtT8nguxJ1MF/JeeeXgMUudIEwIhAPC+Py2oE3K2fhmrrUN3/9RppBK4w8eXnQ/5ji8Hb2Xd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1051.65889a1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"65889a191bb0d2f5f2f95148590874f3e49bf9d4","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1051.65889a1","@flighthq/types":"0.5.1-edge.1051.65889a1","@flighthq/entity":"0.5.1-edge.1051.65889a1","@flighthq/signals":"0.5.1-edge.1051.65889a1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1051.65889a1_1788991567650_0.40780126080595847","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1052.ea38f97":{"name":"@flighthq/textshaper","version":"0.5.1-next.1052.ea38f97","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1052.ea38f97","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"bac7c5ff154345041495dffcbc7969d883119e62","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1052.ea38f97.tgz","fileCount":56,"integrity":"sha512-GJgbVwPaQMxj/eZKTXoqFw/+HN9R+taDEY6vHPPMby1Bifp3lZRHPBKKHSixmfXrLW8S5tCRIMsautwYQiJnKw==","signatures":[{"sig":"MEQCIDnhsr2Nr0V7sKqh4p+T4IZ0ooWalSDJoLJXUexkkO9jAiB4aGDIBBwsgcr6asq6HgziVv+WHr0Ig/WL6a0JHBCsTQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDOFX+rKAb2YkdgT5gHaEQuCNdisvJ9x6kRVrx74FQ45AIgcKa8iqfzznBIbxm5ZfsUOYu5tamZ+1rTy+2Xjk8ebHo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1052.ea38f97","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"ea38f9774bbb5b1696c25c9ba02dfae381db021d","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1052.ea38f97","@flighthq/types":"0.5.1-next.1052.ea38f97","@flighthq/entity":"0.5.1-next.1052.ea38f97","@flighthq/signals":"0.5.1-next.1052.ea38f97"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1052.ea38f97_1789013746831_0.10949309800467377","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1052.ea38f97":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1052.ea38f97","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1052.ea38f97","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"c9035cd7251ad545798ff0265a7f5134c7330dd1","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1052.ea38f97.tgz","fileCount":56,"integrity":"sha512-L1Mxj5S5lPCcnhOJV23lQPG6f5CL7jAQ4dV3wVXuUF6f/GGrkl/SfPaPOuQ5dJ27upYtoIbiuOMU5tg8lqs+Hg==","signatures":[{"sig":"MEYCIQCn79aFYhQL3MQAKQgr7rJ2ResJMe3O/d1/oPj041Gx5gIhAMNaIv0EMUhoiIjDXeNV9cgZ6IdMBYErNOoXRWJEEoOe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDneJNWRlSbgrdQCCgJbk5zhwM3rvDNW/LrgTKYi7OSqwIhAKFSEBk9JrGgukZs/Ncf+v3vHfr57U1FsHKQ1SHYrVW6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1052.ea38f97","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"ea38f9774bbb5b1696c25c9ba02dfae381db021d","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1052.ea38f97","@flighthq/types":"0.5.1-edge.1052.ea38f97","@flighthq/entity":"0.5.1-edge.1052.ea38f97","@flighthq/signals":"0.5.1-edge.1052.ea38f97"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1052.ea38f97_1789014042518_0.07159906970000862","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1056.4945b81":{"name":"@flighthq/textshaper","version":"0.5.1-next.1056.4945b81","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1056.4945b81","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"9808bf57786a0f8633a232e492dbd5b9b77f9bec","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1056.4945b81.tgz","fileCount":56,"integrity":"sha512-dtAKowM8X0U5csM5haXFRYtitct1c0Qcydfov1dA8SpdxIPaCh9j4QAK/acTWQL4mynV1xrfcIv3DkxOPOtABg==","signatures":[{"sig":"MEUCIQDIuFaFZgapX/hHhWR7hw0pE0v5eoHA8+J/0jUxHq/fQwIgaDTOXSEeZnTgHaGOCY6j1WygZXSYqWouxAJARfvrvKE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIClxW80sLPlAnBozlaAKJXhSlmbSNZ9S3ZlLsULidOKaAiEA0rTmvVmeCu85jAYerNUC2rgpjVh4rZozR2K5tvYgbwc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1056.4945b81","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"4945b81fd2d8dc61f234442ef77169e0f3ae2316","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1056.4945b81","@flighthq/types":"0.5.1-next.1056.4945b81","@flighthq/entity":"0.5.1-next.1056.4945b81","@flighthq/signals":"0.5.1-next.1056.4945b81"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1056.4945b81_1789060627013_0.9845389033903584","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1056.4945b81":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1056.4945b81","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1056.4945b81","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"f54ea800d234de9fbc8d8a0a0c99d0acf1844941","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1056.4945b81.tgz","fileCount":56,"integrity":"sha512-SZt56rhKptOLsJ97Zc1Ht2omwAN93k1A3iS8SBIoodsNKt7+PjH44d9cHZXysmzrRO9xqjLE+7eh7lWAUH+M7Q==","signatures":[{"sig":"MEQCIGE8zq38SPi+V2HeXbiTAdXDdJYayiXyc6nR/9s0ICKOAiAbJHXS5yZ5zFw9GNYH8XLZthTsXnlQNbFdhneG10A0hw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCoqazly6QV6YI0hegLn7ZbtIMvc4sjw3abdA6FG/jAkwIhAOaA+UEl0K8yYjZNvGHbtthkccLhZtIjuCrEwPAdFzNc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1056.4945b81","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"4945b81fd2d8dc61f234442ef77169e0f3ae2316","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1056.4945b81","@flighthq/types":"0.5.1-edge.1056.4945b81","@flighthq/entity":"0.5.1-edge.1056.4945b81","@flighthq/signals":"0.5.1-edge.1056.4945b81"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1056.4945b81_1789061172808_0.37945245056836896","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1058.751c53a":{"name":"@flighthq/textshaper","version":"0.5.1-next.1058.751c53a","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1058.751c53a","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"d5cfb618a9b797f6a1916e1726f11daf9bd405c1","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1058.751c53a.tgz","fileCount":56,"integrity":"sha512-QgC3YnloN3YhXKSKOGhGoyyvYDRvD/DKWOBzfRuifRaL8blpq+pOfpBpCqVsOtqOsAgCbok9UlcGx7ZNLzSRnQ==","signatures":[{"sig":"MEQCIBC+zOG++c4nRjvcU+M6uYCyeOxH5wyNUiNYFMn7zOHpAiANUBveFshry23o4CTYiBHF3YDOlgbGtagweT3YdO4LZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICAfMzim8LMaKA3P27UkqeVIGwS1zkpcr3IAQ8HrkH8RAiEAxjw7vnAVn/ZVcuBrAYAoJOovPiBzSU+NTX7+Fc4MjCs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1058.751c53a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"751c53a7765e345d4c3e29d3a6089601b35c2bad","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1058.751c53a","@flighthq/types":"0.5.1-next.1058.751c53a","@flighthq/entity":"0.5.1-next.1058.751c53a","@flighthq/signals":"0.5.1-next.1058.751c53a"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1058.751c53a_1789079937633_0.1283487389740403","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1059.c56d3cd":{"name":"@flighthq/textshaper","version":"0.5.1-next.1059.c56d3cd","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1059.c56d3cd","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"fa331b970d89973e674edbd777c9ff6e845a9e5c","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1059.c56d3cd.tgz","fileCount":56,"integrity":"sha512-FCmhFXjZxbJ9Gz7gT1Fk2qOcFyhn6YsVHEjbzsQVapVug9U+85zhcriUlMXClVRdO81Cx24z6NTMYXgzN4g56Q==","signatures":[{"sig":"MEYCIQC3o1wE7arqvYDINX/Crf7P5tdBypJ1wN+7j+u5CS/nQAIhAJdBWsRzWKYAQr/XdhLeOVuM9yOPYYmJma10b3PUHpHG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDSXUYxFYLmyfN1YzPhNgAINyrwVl3KC235+OzRoBgc9gIhAKuylfXAhZuekcZS09jgXAS10HQTVZF/3x4cmvUyPdPt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1059.c56d3cd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"c56d3cda9aa3602334632ba5110c8ff1279391d5","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1059.c56d3cd","@flighthq/types":"0.5.1-next.1059.c56d3cd","@flighthq/entity":"0.5.1-next.1059.c56d3cd","@flighthq/signals":"0.5.1-next.1059.c56d3cd"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1059.c56d3cd_1789080069154_0.3556463182660001","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1058.751c53a":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1058.751c53a","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1058.751c53a","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"21e923892bffcd0f7706d5c4d5fae1de91d68b9e","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1058.751c53a.tgz","fileCount":56,"integrity":"sha512-6gJjn5/b/e08X+sckugSpKdcecme/iR6f8M8oJKk28m2nV3lLTzFIY1OLtcSsX+2gpGeji+k3YKVM/vVmXR1pQ==","signatures":[{"sig":"MEYCIQDFmhP74jOq2sOJaq4gIqG5c1ah401ENoDI+yzhAaFORgIhAIFv7EUTv553zJiZHPvp41oH5xlsSn2Sq1WpzaSRIX9q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCH+wYkWB0ph0i+xjvpAnc7QWeLGv7tsS3pi9lz4BXxJAIhAP9AQy3VhVqnHzzlfAxzGai+cyTzroyY8x1iMPko/p1u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1058.751c53a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"751c53a7765e345d4c3e29d3a6089601b35c2bad","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1058.751c53a","@flighthq/types":"0.5.1-edge.1058.751c53a","@flighthq/entity":"0.5.1-edge.1058.751c53a","@flighthq/signals":"0.5.1-edge.1058.751c53a"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1058.751c53a_1789080281457_0.15551746430399693","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1059.c56d3cd":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1059.c56d3cd","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1059.c56d3cd","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"f36fc93209b2c6f4fb9ded16808a7b187f64013c","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1059.c56d3cd.tgz","fileCount":56,"integrity":"sha512-KYJwe9ux6uSkGWyE2LxF2li7dYD3S7Y7oJxFF4d1W03Nq8xzpnGlHYUC+eNC0Llsb8Kzgbh0U6bJx7OHByKP5Q==","signatures":[{"sig":"MEYCIQDYOWwdtg/9RjxBrGzrsAlRKYeGCNDGrOx6/kKcl2iBFAIhAIsNucyWJRW7P86vXbK3PbrY2DDNJmvsz+y6g8wiOKGT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD4WYQfHMwa97BFb8NC/ARkieqS5OrJKvHBnUotuyCaOQIhANCyuQtCHWwZtlgCJ08CfhVuE54OcXCQk8GfdPIh6rau","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1059.c56d3cd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"c56d3cda9aa3602334632ba5110c8ff1279391d5","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1059.c56d3cd","@flighthq/types":"0.5.1-edge.1059.c56d3cd","@flighthq/entity":"0.5.1-edge.1059.c56d3cd","@flighthq/signals":"0.5.1-edge.1059.c56d3cd"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1059.c56d3cd_1789080461781_0.61202079824185","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1066.36fe89b":{"name":"@flighthq/textshaper","version":"0.5.1-next.1066.36fe89b","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1066.36fe89b","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"4060b4915adb060b33202b661dd4f9f45bef68a6","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1066.36fe89b.tgz","fileCount":56,"integrity":"sha512-nabXv8qt2wOn7ZAaPjh2SCZOXfYQ24QRl969NtDJYf3EcaBc6AbT7Z/JneptGGmcWlgNH9vPPONynnPGv+5SPA==","signatures":[{"sig":"MEYCIQDG33uq+msIpiTPdTje8S/Xt4DsmBIRJaa+I4Lf3gorrAIhAO9JKmI1FuuSuNIpsP3qtMDLQ2czaKTEfn5Oe6Inezb7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDUDscJl41mLUg15zicH7u400lkvhPT9fbVy5IIZrVZCgIhAMwLYLk8w95SU2nP8fCF322k7djvWG1sUJjhIFBamwEv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1066.36fe89b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"36fe89ba6c64ce8afd3d789f17c5d9730a46f50f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1066.36fe89b","@flighthq/types":"0.5.1-next.1066.36fe89b","@flighthq/entity":"0.5.1-next.1066.36fe89b","@flighthq/signals":"0.5.1-next.1066.36fe89b"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1066.36fe89b_1789109469663_0.7326583537587201","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1069.554a2ac":{"name":"@flighthq/textshaper","version":"0.5.1-next.1069.554a2ac","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1069.554a2ac","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"2add3eeee935169ef84d6709551e7ba7cdb9332f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1069.554a2ac.tgz","fileCount":56,"integrity":"sha512-0u2aOI2PBHhAQ5nBaBL719mW4OfDw9mpcq8RwzWsA0stqhX/YCh5JCRSJauXfdSKChbGhXPagy7Lh15cB6lJ4g==","signatures":[{"sig":"MEYCIQDcWrC0tGzeGhqlJxjFOt7ghmMO3ZPR4QLEKhyCKVFlHwIhAI/EAyAcpdH3Tu/lfh+8yoVFpX4MguIb+dvYY+t2G75z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCG/CqRdwdfnPIebUjzk1i3VSH/a6Ji9OYt1yxN7jPnQAIhAIHY38m6GGR/NXeBqWvoHnCLKNzny6ShkVHyYiYGt2Ld","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1069.554a2ac","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"554a2acc3fecf189b89b0729308ff890a15c21cc","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1069.554a2ac","@flighthq/types":"0.5.1-next.1069.554a2ac","@flighthq/entity":"0.5.1-next.1069.554a2ac","@flighthq/signals":"0.5.1-next.1069.554a2ac"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1069.554a2ac_1789112141534_0.6939043314800615","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1197.6a425ce":{"name":"@flighthq/textshaper","version":"0.5.1-next.1197.6a425ce","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1197.6a425ce","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"38221d79f0e90bff553db93378660e9251e682fc","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1197.6a425ce.tgz","fileCount":56,"integrity":"sha512-elDsQ9O7KdU8W0eh5aQHT6B26r1EYLAjr/+ax0+qO2YehO+BM+Q5lAZR99tLI8w0KIMAVDmYYEmsKf4vgMefTg==","signatures":[{"sig":"MEQCIAdNSVywHwAGRSUm/bYEr5/gkw4bHXYYLJ6U2i0f855SAiAUPk8ardndSvbg4pmb9DPv0QHyVeDDSP3yyaq3Ux9I2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCRYtHPG5wfvOM39cZHS/r6aRoXFwZImhwuAf3uD9CH/wIgd6mk7aoFEqszgwkZNU9t62j8rDbu+C3/xKxAJFidep8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1197.6a425ce","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"6a425ce64e6d501dac8218fe625e73d58da88639","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1197.6a425ce","@flighthq/types":"0.5.1-next.1197.6a425ce","@flighthq/entity":"0.5.1-next.1197.6a425ce","@flighthq/signals":"0.5.1-next.1197.6a425ce"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1197.6a425ce_1789241136776_0.09594798445457076","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1201.9b49dee":{"name":"@flighthq/textshaper","version":"0.5.1-next.1201.9b49dee","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1201.9b49dee","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"7ac7808eb012d171fb342155085941212e26a770","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1201.9b49dee.tgz","fileCount":56,"integrity":"sha512-UcB3K1tdyFj4DOANEAj4QYILTmZYRm6vd5EH+/8q6XkDdImG5n6OPGF4AS+Fr6jnMCZMHILs1nLgis93JLbWJQ==","signatures":[{"sig":"MEUCIBTGLcDdi5hhRd1hJQY2cstnvikN3m32zgJa/b89NxzlAiEAjb0Ba7N1mRreQUM2YLKTaYl11vHYEdVM2MifFOehsxc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDg6zTolLM4+LkOuUrDZ1+1ZlXLFR5uWnAMNvFR1rxWFQIgeh9PhfByJpzX3Xp+9PaEG+lZHnueqcB33iW8HoZGNwo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1201.9b49dee","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"9b49dee3f22f6b2838c3d237edcc77bca65734f2","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1201.9b49dee","@flighthq/types":"0.5.1-next.1201.9b49dee","@flighthq/entity":"0.5.1-next.1201.9b49dee","@flighthq/signals":"0.5.1-next.1201.9b49dee"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1201.9b49dee_1789245763540_0.31377296450199665","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1202.e31f126":{"name":"@flighthq/textshaper","version":"0.5.1-next.1202.e31f126","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1202.e31f126","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"022e04e3231378fef828fa99c4d6d8c53b9e7bb4","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1202.e31f126.tgz","fileCount":56,"integrity":"sha512-FqKUc9rEHdI/MrFqiOHOYQgv17PGfpRB8T9M94aD6EnNyd0E59vFzM7YBXFYUeSGrkaWma6OyiP1mNfu05zB4w==","signatures":[{"sig":"MEUCIH6eQtKCUj6nYot0RCg7BFdtju1nRA669uwaGBQL1t2wAiEA/ECErkNmNd2wHaGZkUAFKVb8MFOa5wEgOd+qmt7KniM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCAvfOwdWU8vnKXyYF1v4DXAJsdkOaOI1ovXYR1wsYTxAIgNZ+w9bVDjfGVNT9A2YdC93qZXgv0XymWWYuf7TsPxjQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1202.e31f126","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"e31f12600309de6161f5523f2b3c17698a5ff664","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1202.e31f126","@flighthq/types":"0.5.1-next.1202.e31f126","@flighthq/entity":"0.5.1-next.1202.e31f126","@flighthq/signals":"0.5.1-next.1202.e31f126"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1202.e31f126_1789249489629_0.6415860256353132","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1204.e33a1ac":{"name":"@flighthq/textshaper","version":"0.5.1-next.1204.e33a1ac","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1204.e33a1ac","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"11d07f14aa55e72721f028497a938e39221d0b7b","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1204.e33a1ac.tgz","fileCount":56,"integrity":"sha512-JNj/aua0RQY3ziA6J+HaTA8OgsiSfEBMOf4WYoSSVtcWLZxZtDCvkd5M/ZmQCJaSUzBxGuASuqpaqCIS5oXNTg==","signatures":[{"sig":"MEYCIQCrXRdqVwzjwnhRJ0PoaipZq37gdE/3ysvaMSN0zzWf7QIhAKZmWTwn4Yrei4oqpcU6pBcT2ggIXbYJyRn1EQgrfLPs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEaavaltLJdPbPztwXeyCTqLvQF0wqeUc9rkV26alFp5AiEAm8UUtfx+gqr0dhqocyHUaOShH0+O1g18lpOtwv9t0TI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1204.e33a1ac","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"e33a1acd62afea4078e3aae31f675f8ed642b3a1","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1204.e33a1ac","@flighthq/types":"0.5.1-next.1204.e33a1ac","@flighthq/entity":"0.5.1-next.1204.e33a1ac","@flighthq/signals":"0.5.1-next.1204.e33a1ac"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1204.e33a1ac_1789256103244_0.00513368371272338","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1225.129b76d":{"name":"@flighthq/textshaper","version":"0.5.1-next.1225.129b76d","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1225.129b76d","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"5f9f1666493d4ff7a40ac712f75b6caae340868f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1225.129b76d.tgz","fileCount":56,"integrity":"sha512-b2XPqtWMV1BUQRGF50w2V5ezJ6JI9YmvMZ3pUwm5BevkE3neArE99yX3OSNsHy9gap4uLjKfw3Xy49jkXHxZPg==","signatures":[{"sig":"MEUCIFTr4aH5dQ93Cx1ENxOic9xfjhi6f753/hhreBhDJ+KwAiEArhd/qCgJPDDAzGcPaJoSWvWsm9sxCXJiMi/Rw9K+zCs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICaH/x/CsxxcDjhy0qBAuAjMSJEWoAHpyYz9OFUwAseYAiEA3ncnsUpGM7uUiv4STcs3kX711xPm7S8s8eRq/ab+8Mo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1225.129b76d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"129b76d4025138e3fbbe6fcdccc31a89f6bfd500","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1225.129b76d","@flighthq/types":"0.5.1-next.1225.129b76d","@flighthq/entity":"0.5.1-next.1225.129b76d","@flighthq/signals":"0.5.1-next.1225.129b76d"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1225.129b76d_1789269929480_0.2601829066454855","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1244.12290e1":{"name":"@flighthq/textshaper","version":"0.5.1-next.1244.12290e1","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1244.12290e1","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a6657e9a538fbfa3e880a9b89b3a640fafef2560","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1244.12290e1.tgz","fileCount":56,"integrity":"sha512-ZdnHPCcXBSGEd9lfVKzN6PR7OsWI5BhD/tlvUjXJeKkJTKSen6cJs+761FDXMtBh0ee8MYxzpucwJoaI975O3g==","signatures":[{"sig":"MEYCIQDQ3n/cXe4kQTkCQQQ8X8pgHJK9tChkzrs+Xq7HX/JMogIhAPi1bPPcpvjloiuPyLrZ0JyQP1fdG7lr2cHSRD2SSimK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBeEgI8AyUfdftxPaMu30lpPlKYGEMpqB3dn2z4vg4fsAiBxbj4cZoNdBbFZam+svNZU+uEPiM0hC+vfR88YVlt2PQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1244.12290e1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"12290e1f9b322ecdc5d521dc3c3597796c75045a","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1244.12290e1","@flighthq/types":"0.5.1-next.1244.12290e1","@flighthq/entity":"0.5.1-next.1244.12290e1","@flighthq/signals":"0.5.1-next.1244.12290e1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1244.12290e1_1789288256486_0.342014142817592","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1251.918ea64":{"name":"@flighthq/textshaper","version":"0.5.1-next.1251.918ea64","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1251.918ea64","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"32c8c6bf241b160d9860f7a0c047698054be0fa3","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1251.918ea64.tgz","fileCount":56,"integrity":"sha512-5zEseN0vVV8jBRUK+DKQPKStlTcN8NF0mvXr7xeqSqdxpUl/9LCKoUZAmr4Oe/O7HR4pjqWtS1DDwhBeguwflw==","signatures":[{"sig":"MEUCIQCA3DYUNSpCyJqCGZiBfACFas40qZzSkvPAgSBvgDO9NwIgA0z1jL7kU/kezs/g8zur3+l+S2GqUf934HnuAtLrb7I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDG8BU7b4iaZx4hPR4zlgbZIdOieXXhitkIz9DcSvNLzgIhAMJTqiZCndO4VCH78N8eSHYjhdKRKtdkf9YuLBVw4b15","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1251.918ea64","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"918ea648938b20a45e9c7ba1a5ae1f002d6f8931","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1251.918ea64","@flighthq/types":"0.5.1-next.1251.918ea64","@flighthq/entity":"0.5.1-next.1251.918ea64","@flighthq/signals":"0.5.1-next.1251.918ea64"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1251.918ea64_1789314062945_0.4949989620481332","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1252.15e4611":{"name":"@flighthq/textshaper","version":"0.5.1-next.1252.15e4611","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1252.15e4611","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"30054532ab33b64fe40c2b94d99645bbbf69a1eb","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1252.15e4611.tgz","fileCount":56,"integrity":"sha512-fhdX9tYoDNEgdsrRhXv3E6bfO6kw/ldobP69EUKUWsn9gT/YVVIOFgSY+8oqHjIhDNiL98hvhKaslwyRmaBoew==","signatures":[{"sig":"MEQCIEUHckLqBLqK1NF56/ZmKJyX/K6d7pR8EZa44IKniUO/AiAhIpTGGu1iN578qk/l1aR1osuqfJJNwDeZz8HtsVR6bg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGAKO0Egr9gWcuh5/jAp4OsgzkFIYPYJrZkVs6/l162/AiEA8RFES/qf7ta4I+T3Tm8WarldLX0UVr8azY2LinaKmFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1252.15e4611","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"15e4611773b9704eb3965924ef12a0a8d99c4a77","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1252.15e4611","@flighthq/types":"0.5.1-next.1252.15e4611","@flighthq/entity":"0.5.1-next.1252.15e4611","@flighthq/signals":"0.5.1-next.1252.15e4611"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1252.15e4611_1789315142998_0.9051213188215874","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1253.6fe252c":{"name":"@flighthq/textshaper","version":"0.5.1-next.1253.6fe252c","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1253.6fe252c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a3365c7d9869dfc4785343f021f3f7a2694fd050","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1253.6fe252c.tgz","fileCount":56,"integrity":"sha512-0/OVMLz9Nrv5W3XKt4fy3MatKoaRwXZP1WBiKKDtSNtQvCbspKMxeBXmTCSSX4+ZxWAa/igqCtceoif7T9BqOg==","signatures":[{"sig":"MEQCIGLUtTDvL5krhAS1/EsxW6y46Ij1GQxlZRCwqUmxPlVtAiAKH4Tp+J9YOgtgIG3X3c4xEqCyGAB8ONHAwX79E4m5Rg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDkrKcv6GN5JC1zBRJjKOcltUSHuqCTlt5sMJl4+dGoWAIgb57K0lxoa2Q1XTh+kr7nxfbfBRfnPVYge87R1lghgeU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1253.6fe252c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"6fe252ca721620db74125e4efd624bdf0fc88c04","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1253.6fe252c","@flighthq/types":"0.5.1-next.1253.6fe252c","@flighthq/entity":"0.5.1-next.1253.6fe252c","@flighthq/signals":"0.5.1-next.1253.6fe252c"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1253.6fe252c_1789334691710_0.47284626211945713","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1254.2ab4a06":{"name":"@flighthq/textshaper","version":"0.5.1-next.1254.2ab4a06","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1254.2ab4a06","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"216fdda8ba395380cf25c5370aafe901f79c0d4e","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1254.2ab4a06.tgz","fileCount":56,"integrity":"sha512-xHBSFzNVRkXdRAxPNMzoaoAfbZ7cuiMjoLgvWcxqB1u9Kmx8XS2ZQOW3si08j4FSHizrLagVpPEXGEwZ/5n5Nw==","signatures":[{"sig":"MEQCIBeVkf6GSMLdSkCgSZbARk3DtdZuJ9ooaoGvvgUa57klAiB3oEsv+GrSt4Hr+gNkONxIyTNBOiNEHa5QOq9FPtRYzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICFwC3uI+x5k2CzNFtGo93mDHmBSWYPNOPxP5x+eFV2GAiBQoCZewCjH6kBwezHkgGu33eKNXgfKCtDoGCEQx6DUIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1254.2ab4a06","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"2ab4a06667b0db0751b848e22fd7999f391b29b2","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1254.2ab4a06","@flighthq/types":"0.5.1-next.1254.2ab4a06","@flighthq/entity":"0.5.1-next.1254.2ab4a06","@flighthq/signals":"0.5.1-next.1254.2ab4a06"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1254.2ab4a06_1789341207160_0.202640374374788","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1257.b2a4509":{"name":"@flighthq/textshaper","version":"0.5.1-next.1257.b2a4509","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1257.b2a4509","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"6e12e478a28c25951bb5c4901a95177c616a2c26","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1257.b2a4509.tgz","fileCount":56,"integrity":"sha512-iomfuI3yAm56JRFzfjE73yYIMctqZYTsaR3baNV4QabbJ2iG07gcRJZ5booJt8T+IqOLKElwGMErED6AI1b+tw==","signatures":[{"sig":"MEYCIQCG9R8VK/V2L2XW4EfeB/7B/SzFvIm7UN97HKY2mc+L1gIhANVL/9RldDJzDCUr4cAHa2VYKAyOsAN5yW/YsewNI+LT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIG/bnOIGgn9U1ljvLWtivZQqofCKnaaoIVC43a+mX6Q9AiEAhPEdDSSYfiWLimEv+lZmkPlEd2ZisLPlNglHJB4nH5E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1257.b2a4509","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b2a45090723e9546e5620ee9984c9c4c0340143c","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1257.b2a4509","@flighthq/types":"0.5.1-next.1257.b2a4509","@flighthq/entity":"0.5.1-next.1257.b2a4509","@flighthq/signals":"0.5.1-next.1257.b2a4509"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1257.b2a4509_1789363783008_0.6724534326320559","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1295.2b6bfa3":{"name":"@flighthq/textshaper","version":"0.5.1-next.1295.2b6bfa3","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1295.2b6bfa3","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"0972ee1cbcaa1f9291c0137a893a11875baa4f65","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1295.2b6bfa3.tgz","fileCount":56,"integrity":"sha512-CUlRKutL2tGvn6hixKcZxqmvsYYNLnqTaEuED4CPFEOtc8USJsxI5ylOPQLUxpuuKIti/HCjMl127nOTaL5aMg==","signatures":[{"sig":"MEUCIBb+wjnYAz/GeB261+BMqLH8LtUlKcAHNTNTQf1RvUNXAiEApvDfrIUCM032IruzprzA5TiV+vOyIa9PDc/4tOhEovU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAxuhDUZp+MC4uwnjZ1mm1EYgCQCaUEJG8iwsrX7SVn0AiA0+TRPsxykw2P8U42k8spdMwiyOalWf/3lv2LqUG1oiA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1295.2b6bfa3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"2b6bfa33110e26cbdd959441a6c36a4c78109ab8","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1295.2b6bfa3","@flighthq/types":"0.5.1-next.1295.2b6bfa3","@flighthq/entity":"0.5.1-next.1295.2b6bfa3","@flighthq/signals":"0.5.1-next.1295.2b6bfa3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1295.2b6bfa3_1789417359192_0.1819157046260822","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1344.b88acc1":{"name":"@flighthq/textshaper","version":"0.5.1-next.1344.b88acc1","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1344.b88acc1","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"f55da274b969b97b79c7aab19240f6e871ae14f3","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1344.b88acc1.tgz","fileCount":56,"integrity":"sha512-BJrYCE7E/oyN4ZjezRFK3o/bTdxUQ95uJWCLUkvKePTr7NZak2Y0yNnUoWTUzuUdf3xvJZ5D3MJ979b/fuGxBg==","signatures":[{"sig":"MEUCIAkZe/cHxf8XvMucZrz3+byJUuI06Y3PwiTmhi1x3Qx8AiEAilTmTlHzQMK9hwaA0jo4U7nr+wH5YdM63MfeGXQf6cc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDpKbLQrVv969Mzwrg/GU1brt8DbS+pFQabepvXx9UkGAiEAyXZEXB+9+Dk9WF8D4JEHppz2ls2rhbIsr6G1p3GCnBM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1344.b88acc1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b88acc1d080c49af69bcc979eb38073d63c72ba2","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1344.b88acc1","@flighthq/types":"0.5.1-next.1344.b88acc1","@flighthq/entity":"0.5.1-next.1344.b88acc1","@flighthq/signals":"0.5.1-next.1344.b88acc1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1344.b88acc1_1789452602896_0.36385465296221664","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1345.0995dc5":{"name":"@flighthq/textshaper","version":"0.5.1-next.1345.0995dc5","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1345.0995dc5","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"46235d8aea250ee39c53a8c23f6131a478143a84","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1345.0995dc5.tgz","fileCount":56,"integrity":"sha512-Qk96esvMzG9JL4fbqDO+TuAXNLgCc5v/zloPsrbLrsLNVgwjwAvLyASKl3er4E6E9BbuGw788axZDhIrJzSmWA==","signatures":[{"sig":"MEUCIQDioPDJUbxCGNECKg+xAp35mOF3JY8ij4OHAlqz+iTFkwIgNC5pQ1NiLSan/Z6mosY6X2tv3Z+ueTObKA4MMLsWQLQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQClyOmSuVh1RhyALHOW/tlLWM74cC5+VDJSL2k0lX6qWAIhAOhDSkxNrBKWD9femYx0lFVrZd6IQBDtYFP4gqYtCuMJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1345.0995dc5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"0995dc5f840e6b57c3e85ecd2123aa798cf60b29","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1345.0995dc5","@flighthq/types":"0.5.1-next.1345.0995dc5","@flighthq/entity":"0.5.1-next.1345.0995dc5","@flighthq/signals":"0.5.1-next.1345.0995dc5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1345.0995dc5_1789454778663_0.5215073225013269","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1347.54f97d8":{"name":"@flighthq/textshaper","version":"0.5.1-next.1347.54f97d8","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1347.54f97d8","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"79d933189107b215a3a30de08c1040dcef535c0d","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1347.54f97d8.tgz","fileCount":56,"integrity":"sha512-Fpc6Ql3DfAL54CF3vMvv1Y13Q+rlTc593CpnPXCj+PcWyMytq8puFR5g7jcBlCZ2WTqkQBv9QHiZOiq+JtXDgg==","signatures":[{"sig":"MEQCIEetVxrCenRL/5lIcJhp/lwS2FA1TL2pD2OroiFhq+uUAiB7ebZpenX4a5T9sXAd28VcXi8vrzBc5hA5T71rBmVxDw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC5/Ih2iRlPp1yMfw6d8fg/TGaGlb6V0YNr3ax73OYucQIgb8t0V+804I6GrN+47KklZMqq7rPx2V6asCeCi4VjO2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1347.54f97d8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"54f97d868253fefb8e74e59b3d615ea9df99d8d5","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1347.54f97d8","@flighthq/types":"0.5.1-next.1347.54f97d8","@flighthq/entity":"0.5.1-next.1347.54f97d8","@flighthq/signals":"0.5.1-next.1347.54f97d8"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1347.54f97d8_1789461093853_0.5392072501968845","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1348.e71a747":{"name":"@flighthq/textshaper","version":"0.5.1-next.1348.e71a747","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1348.e71a747","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"c5ae61c6c33821905af28b9fe7f3513fca84cbe1","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1348.e71a747.tgz","fileCount":56,"integrity":"sha512-aoZqefg0vTBCM9/explTAqhc0spqN6x4Tvcv6Rz7Ys3ZyNUU8rBI5U/O0xSgkPrYT9Qb6HSyqdhU/iKix9Bjeg==","signatures":[{"sig":"MEUCIH/jo68DwR2VIysHKyHoYjPqg5exGA6rz1SU/ylgN1rEAiEAu4zGOphqRHXeKJfYkt0h6MDvrBj+A1AT0p6KBAvUN1g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDW7iceyfIl47rvmiVE2SGQVuaePe2hZKM1XcUAePcfegIhAJBMdl4vnqYOw6aTudbTRSdLQwjrXZWmUsv1CDxUFJoz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1348.e71a747","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"e71a74762e2d9d7f9a9b28927e2fa19f0f8d83b8","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1348.e71a747","@flighthq/types":"0.5.1-next.1348.e71a747","@flighthq/entity":"0.5.1-next.1348.e71a747","@flighthq/signals":"0.5.1-next.1348.e71a747"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1348.e71a747_1789465027939_0.0116396661372562","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1349.05b053d":{"name":"@flighthq/textshaper","version":"0.5.1-next.1349.05b053d","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1349.05b053d","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"6862cdfa220395829789ef865cdf5aaf19e654e0","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1349.05b053d.tgz","fileCount":56,"integrity":"sha512-x+on2N9a8Q816cy94ohX7iMpYeLhmX1u43cgwbkrTTZ+v/PglLzSmmYx0kupUNlFuNa5nzREVbzaJ2UECZqgKQ==","signatures":[{"sig":"MEYCIQD4d9wQTWOm6G7hol17ZjPRJ5Wt9bplKCcjp6R+HL3hMAIhAN40g1Lhl+Eb0Tb8ULxblJHkHahRL+4uooHZyfpFiacn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDuInpTkRJNWGLPGjMHire62ujw3Fd1WzXCPmJRfYX9bAiBbXdacywLJ3Rhey1W00agzITnYeFs2EtHySj6J0r+CyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1349.05b053d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"05b053d22f5f4864112afbed6f0d255d360c783f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1349.05b053d","@flighthq/types":"0.5.1-next.1349.05b053d","@flighthq/entity":"0.5.1-next.1349.05b053d","@flighthq/signals":"0.5.1-next.1349.05b053d"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1349.05b053d_1789469078964_0.7556493328135978","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1349.05b053d":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1349.05b053d","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1349.05b053d","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a31c060cde340677dade75d735b52f6b83093413","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1349.05b053d.tgz","fileCount":56,"integrity":"sha512-XxcF8apSW2hccnpMgVh9REUPo//ZzsQhnuHDjHohCd9qCQNi+Swj0V1oLeciR0SQwYgiZgP6iGCMEVRMIygJpg==","signatures":[{"sig":"MEUCIH1fWp/O13MG/6e9svIS0YnvlT37VOuzAv0PGw4hrpsxAiEAvSwhOaiJEDY4bhWXpT587b09gIW364q4Q8San830oYM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCrw3wcdMM5CAh4gcMNqoehX2sGyh0Wok9YEHwtWB7K4gIgSgCpTdxS8tI6/+C32haDbYwL4FSxpefcSQDBEnIYsA0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1349.05b053d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"05b053d22f5f4864112afbed6f0d255d360c783f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1349.05b053d","@flighthq/types":"0.5.1-edge.1349.05b053d","@flighthq/entity":"0.5.1-edge.1349.05b053d","@flighthq/signals":"0.5.1-edge.1349.05b053d"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1349.05b053d_1789469455330_0.3869191090405011","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1350.8ce488b":{"name":"@flighthq/textshaper","version":"0.5.1-next.1350.8ce488b","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1350.8ce488b","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"4528fb031b25abea3f0ecaa56cd11f9571acdb4f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1350.8ce488b.tgz","fileCount":56,"integrity":"sha512-MJb345olFug9WH1SjlfPJOycqsNnPWSq+8yLME05NRYqNU7w76Jn88hkhNzyv2eUnvb47AaOIJ2/KobsAmuaww==","signatures":[{"sig":"MEUCIDOus9ZxmPFYZVd2ztHJ2WXWbhpNDANrokOl8uPsm01RAiEAwRw1pbKB8fVWojBxB1DSa9DOGMY34hLCC359kyC+1vU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIH4L+FnYVv1UwoU8sBW7CxmuVImveYH7FHEzWg6tH4irAiEAnQaP2snGdWailwFEPtLyDMTAon1bntBiNfNSHeosSi4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1350.8ce488b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"8ce488bfe444eded2fb281e7b9696e5ce7fabdc0","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1350.8ce488b","@flighthq/types":"0.5.1-next.1350.8ce488b","@flighthq/entity":"0.5.1-next.1350.8ce488b","@flighthq/signals":"0.5.1-next.1350.8ce488b"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1350.8ce488b_1789489768871_0.7506205541295556","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1350.8ce488b":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1350.8ce488b","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1350.8ce488b","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a10e43fd71919dcb26092b46816c349909b918e1","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1350.8ce488b.tgz","fileCount":56,"integrity":"sha512-htyMst8N9hJJITRHrWzePjVvd3H5h+cJVXdZb1v43/FEasV2wtfM8ZKrW2y87q29I9FS25UWjAp8NZ7hp2glJA==","signatures":[{"sig":"MEUCIQDfn5O4xEbiw7ufu9OvwrpEmUDNWZ9VPtqUVML4W6haDgIgdzmXoc6TB5z8JWnYre+t2fG1gc8wCkZ51yyZUWLJX2E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGCWY9UZTji3JYSWThvgVO7ToolQH8mIfjEP7sBrSEBDAiBn17qs4PTVzRUMwbviCNgneI8YwkpQX7zdIJXPqQXUmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1350.8ce488b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"8ce488bfe444eded2fb281e7b9696e5ce7fabdc0","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1350.8ce488b","@flighthq/types":"0.5.1-edge.1350.8ce488b","@flighthq/entity":"0.5.1-edge.1350.8ce488b","@flighthq/signals":"0.5.1-edge.1350.8ce488b"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1350.8ce488b_1789490194263_0.5823329857611634","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1370.903f328":{"name":"@flighthq/textshaper","version":"0.5.1-next.1370.903f328","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1370.903f328","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"6f7cb0dc3551b0b03d26439b0e8bcaf84b2eab7f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1370.903f328.tgz","fileCount":51,"integrity":"sha512-PX2kFcH3Ss+RLw86VwFEmx5FpQ95VhApct53IjKpP62WsvOJa0fAJ+YdZ2cvu5LUPDr2xwAh05WUQ6Rh/PPN6g==","signatures":[{"sig":"MEYCIQCnijYVGm76NVhx3T1p+NTlOIP7rp6VsG5CHSvOMq3G8wIhAPLfuvS5ujY5Az+3IlcedeAQUxjZiVjVEOFlgM6FRSHo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCS8rHJZmLdaVekgZHqFcF9nZjDAT0nHbXdMmiGqOMxIAIhAJrqHh9fkusdLAY5AJGZZPIS66j4EQCuHiLUqPfgS43l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1370.903f328","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93370},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"903f3289590358eacc20698525e6982da2ab0e9d","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1370.903f328","@flighthq/types":"0.5.1-next.1370.903f328","@flighthq/entity":"0.5.1-next.1370.903f328","@flighthq/signals":"0.5.1-next.1370.903f328"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1370.903f328_1789538073867_0.5352434044210166","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1370.903f328":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1370.903f328","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1370.903f328","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"383a1bd4b70e1ffa7c6ede3f9fe3a14e336aac2e","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1370.903f328.tgz","fileCount":51,"integrity":"sha512-u2ghbXXn9zcpdoc9jcXE1jEVpgR5Nnh0IPWTPjpYM6gbNfvttqZxBsJzfeqlcvUONw0xCgzTMcTWgJZ+j2NZ+Q==","signatures":[{"sig":"MEUCIQCpPfovw61kuZp89DevlED04gX1d6B/QlKXG2tdYm+RzQIgbXmtbG5hRWINIYeKodU4aldH4kE9IzG/RjFSP31Yj/o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCuJ69ERPlFQN2e0AcX4gU0cjj8EOqa2EdwCqbgAgg55QIgLq23HAo6sbCaw6jnLWH+J+1oM2XJ7ReBrjiGQK2DlA8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1370.903f328","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93370},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"903f3289590358eacc20698525e6982da2ab0e9d","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1370.903f328","@flighthq/types":"0.5.1-edge.1370.903f328","@flighthq/entity":"0.5.1-edge.1370.903f328","@flighthq/signals":"0.5.1-edge.1370.903f328"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1370.903f328_1789538355872_0.029191469647507073","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1404.457d1da":{"name":"@flighthq/textshaper","version":"0.5.1-next.1404.457d1da","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1404.457d1da","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"48074eccec468b60eb1faf41628caab3794ec86c","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1404.457d1da.tgz","fileCount":51,"integrity":"sha512-d4uBmKjP7YhWh6AUuq64zc8tkca0B3jd1qBq2Q4fXErRZYOPy+6Xo7T84/LL0fo6CkObLukUgnIoanqzYazyDQ==","signatures":[{"sig":"MEUCIHWVYCXnGmX2N8uQh1T0nZghXGStv+QwQJ0oi9ZfeRuWAiEA4Pe28vidL7vZQz8m1Nq1e9JsfEkLkesLvSpqUltdNDo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCNgYkhB+m1Agoad3NdMMG/Terjg4RlcGIdEvRq5gMXRgIgdDegZkspFTKbmrMuLvb0gkN6bljq7I1k1DTafVxsGqc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1404.457d1da","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93452},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"457d1da918a60be5853b84eb6c25530a66662cef","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1404.457d1da","@flighthq/types":"0.5.1-next.1404.457d1da","@flighthq/entity":"0.5.1-next.1404.457d1da","@flighthq/signals":"0.5.1-next.1404.457d1da"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1404.457d1da_1789626001927_0.3406879359565651","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1405.69d9356":{"name":"@flighthq/textshaper","version":"0.5.1-next.1405.69d9356","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1405.69d9356","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"9702644f169809eef732ca7ee6e10640d8d56a73","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1405.69d9356.tgz","fileCount":51,"integrity":"sha512-YtMCVZzmrAHu6mkZVPjQIkxCcQXA0etit1Lh14p7mgB7NeRAgTs84psmROVUH/sP1kYY4I0XeQ1YvEoJ7a3zgg==","signatures":[{"sig":"MEUCIQDW7XYLKLaWadfGTiKjhGPn2wBO8lBXjGmb3DXqUbHC/QIgNYDXse1FRfg/8dg4oXKmfHbYOw/0Yb+sOZElyn/FWgM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC3DNEntaRaQ/SywujowMuxt6YIbSN5FEuDbqvVMCObRgIhANSuXLuAeHqabYem9PkWKyTpD2C0ELQPteoP5NbFCq/1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1405.69d9356","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93452},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"69d9356a1305e2930dafb82973aba2dd640600a1","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1405.69d9356","@flighthq/types":"0.5.1-next.1405.69d9356","@flighthq/entity":"0.5.1-next.1405.69d9356","@flighthq/signals":"0.5.1-next.1405.69d9356"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1405.69d9356_1789627661969_0.4693427532472172","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1405.69d9356":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1405.69d9356","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1405.69d9356","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"4a300226ae015ea92b6d4f6590756c1fd00912bb","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1405.69d9356.tgz","fileCount":51,"integrity":"sha512-Ys6N0kJzaSlqBuTgK9Jv6Rk9HC3rOcGpCpHHM4E7MyTJm+3fR7CDJnWpmNEihO9hEjYPLwITlbh0W/yXvHAuEw==","signatures":[{"sig":"MEYCIQDD2OfVvzfSA0WflhHd4+iPNclJWpJMYwkIvTXUjMsaZQIhAPYhGj581BFyusY/yKBUv0rqY2ZsRtNy8LY2PROysat0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIC2Ms9SwGo/wNsE3xVjGlM6ArBADbwgPkMq9yrj1+SZBAiBCl+bg9l+G7g2Mbj4dkx2Zj2h1k2J6wGrnKafgKmDmEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1405.69d9356","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93452},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"69d9356a1305e2930dafb82973aba2dd640600a1","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1405.69d9356","@flighthq/types":"0.5.1-edge.1405.69d9356","@flighthq/entity":"0.5.1-edge.1405.69d9356","@flighthq/signals":"0.5.1-edge.1405.69d9356"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1405.69d9356_1789659798395_0.37250151572172596","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1410.b534771":{"name":"@flighthq/textshaper","version":"0.5.1-next.1410.b534771","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1410.b534771","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"571942d79cf16e585ad4abb0fe43a5213abad46f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1410.b534771.tgz","fileCount":51,"integrity":"sha512-M8OASi7V1l6s7zEKxfvn44YkgWCIYs3AAYb13gNJJwXNmVaflbviR9B5uZ/HZwqgeUC3USsGpfJ8W+Mzral96A==","signatures":[{"sig":"MEUCIQD978Qf06LFxg3iGLzyRvJTeWYNNDLmkzBi0B/Q1fY4sQIgLxGoBG38oTOEBCHY5LyOPV3dMqRcxiJJwEQIovnn7BQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIB3ALVDZwRPmBvEM+c/b4MyjXpSuztXG5GV7iUAUFP5tAiBtbUInhXcvCpuse792Q+9bXsECEK0Yq9EbZQ3FB2ohWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1410.b534771","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93452},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b53477179b2672048eb54d134f94ee8af050d130","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1410.b534771","@flighthq/types":"0.5.1-next.1410.b534771","@flighthq/entity":"0.5.1-next.1410.b534771","@flighthq/signals":"0.5.1-next.1410.b534771"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1410.b534771_1789670567744_0.31393801770185803","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1410.b534771":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1410.b534771","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1410.b534771","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"0e6fd5d95c64389500dfe7da0c26dcd2d5e8b049","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1410.b534771.tgz","fileCount":51,"integrity":"sha512-hlFV4xKutDaKUVgyuPDR1XOSOAkJwkNRU34Nd8O6F9XZJ8sW/c89trtuR6hA912pxu0/D2UXw5cbqGUBx4Um2w==","signatures":[{"sig":"MEUCIFZd4vPg7CrhMtPGtvM2pcfo8USQSkhhlEu5lpVarJAZAiEAwRjKJTTcCLNB+grVzgi3WFfHkgPRYiz599+qEy1OCjY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHjsKq57q0CGdOQcatvrjaJodeS2NNlPQQiFTd5R8DaJAiEAgkmaBR2JGMZIZ1uTaJD9a+tVxwISKUUC9hWcSrmNvZg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1410.b534771","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93452},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b53477179b2672048eb54d134f94ee8af050d130","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1410.b534771","@flighthq/types":"0.5.1-edge.1410.b534771","@flighthq/entity":"0.5.1-edge.1410.b534771","@flighthq/signals":"0.5.1-edge.1410.b534771"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1410.b534771_1789671188493_0.9152219810529634","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1450.5738463":{"name":"@flighthq/textshaper","version":"0.5.1-next.1450.5738463","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1450.5738463","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"b6cbfa82228381fe30ef09e64e24a7e07a7fc5d8","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1450.5738463.tgz","fileCount":51,"integrity":"sha512-YhgiYR/wZLz7xKTkGRbOJQw9hgFJaD4NgYAXt4WIhXSqALrKAo6B1KSGdh5fa1lQIsnomDwSTxyDb2ofnMZ3Pg==","signatures":[{"sig":"MEQCIEpdRN7PT5EzPUcPajbcePXuqsCPxQWJrcYwiFNtAY6gAiAd/yHdQ6NnNDGAZOyQQ0AeYKjRVaiLbtUFnq1ajHiXBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDbpW8NlBmofK8tQm6Frkp75x8eZRqrDquiU31SFbwmVAIhAOLWBNo/g+7eBFWFnhlF5Y1BhW3Klj3Qj13Snnu+yqDK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1450.5738463","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93452},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"5738463479690d1fd0a89839d92fcc6164a3d23b","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1450.5738463","@flighthq/types":"0.5.1-next.1450.5738463","@flighthq/entity":"0.5.1-next.1450.5738463","@flighthq/signals":"0.5.1-next.1450.5738463"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1450.5738463_1789779676776_0.05275462221270932","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1462.5a251b6":{"name":"@flighthq/textshaper","version":"0.5.1-next.1462.5a251b6","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1462.5a251b6","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"bc1c2db209605356520cc67b2ded263cb31e6e39","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1462.5a251b6.tgz","fileCount":51,"integrity":"sha512-6rsjEtWkonPjYaYkj0NoqT8NHaTWVWiw/WsFxxn48fBXza6QOXMHLc2WOdkyieCViuV2Cyyak8dS6oSWdQlhDA==","signatures":[{"sig":"MEUCIQCsfv9HjSUWH+vc+ndjZtxHhhTLiwVzZSe2LIGXzgektwIgdmm9sET0wjsOfjyVEEvRs86tMnYH2Ndhi6s3v/VUFYs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIF7wVzIVjJn1mZkWo5BLqg6AQb0Fj5wEDpOQaXgJqZ5OAiEAusJJBGzNIsxGioyeREFLxO/NCvNhYmipocHOB5xDUiM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1462.5a251b6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93452},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"5a251b69a59b84e26ddf36ecfc42ffc0e1be8a9a","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1462.5a251b6","@flighthq/types":"0.5.1-next.1462.5a251b6","@flighthq/entity":"0.5.1-next.1462.5a251b6","@flighthq/signals":"0.5.1-next.1462.5a251b6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1462.5a251b6_1789840254714_0.2947000039101568","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1462.5a251b6":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1462.5a251b6","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1462.5a251b6","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"587f77beeb9a4354362b260f3c68e827246f32f3","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1462.5a251b6.tgz","fileCount":51,"integrity":"sha512-il2+FbL6Xv3LkDhUUrQGkOcs5BOkmoZjVizbVog5S0B9PDTkx92Byw8vPAngGDumz+NEAWRHqu9EoBtZQCeTMQ==","signatures":[{"sig":"MEUCICXkmZdSrutiIktZK85NmWSpQSqgDXK3uhYX3QLVqWm0AiEA7KjuGGfDJ4ipkhjg+6Ru1X3eXLahhcS6G5wFtCQqlnw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEFw1QOHdYTS4/Jrt+bsAzpeuHGZJnOrKNsU4zD4VgQ+AiEA8kueTc7bAXq8Y5j1RMRje1OK1ismjn7M+exMUvMTvuA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1462.5a251b6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93452},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"5a251b69a59b84e26ddf36ecfc42ffc0e1be8a9a","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1462.5a251b6","@flighthq/types":"0.5.1-edge.1462.5a251b6","@flighthq/entity":"0.5.1-edge.1462.5a251b6","@flighthq/signals":"0.5.1-edge.1462.5a251b6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1462.5a251b6_1789840955317_0.4811915688048989","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1467.7e2fc7d":{"name":"@flighthq/textshaper","version":"0.5.1-next.1467.7e2fc7d","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1467.7e2fc7d","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"97d150c2603179007e2413e031b3c7ba969768fb","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1467.7e2fc7d.tgz","fileCount":51,"integrity":"sha512-gg74zh/u9yiYk3lnwHmcTMoB3Z+2ZBRp7XBdFbS2ijHbvx7iJ+VR936S3Me1mGkmA8xeKEVVLJ/ULYUP0x31DA==","signatures":[{"sig":"MEUCIA3KldBvPiJo2PF1MBg768wDiAk5Y3yIHvPYEfqXFu+DAiEA4sjzLrFibizdaRqVHLs66YsEx9qgpYW06HpJIXi2Ru4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDWfgJctNPGAJiP9D7ACm+Hi2kGx34TTU/Q5Aekrk3PyAIgKPyhFS4iQYHR81HLdDfD+t5oqgJ/Tk1lzBJj4ns6AhQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1467.7e2fc7d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93452},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"7e2fc7df5378313ceaf21ba8d6ef39cc18a6f4ad","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1467.7e2fc7d","@flighthq/types":"0.5.1-next.1467.7e2fc7d","@flighthq/entity":"0.5.1-next.1467.7e2fc7d","@flighthq/signals":"0.5.1-next.1467.7e2fc7d"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1467.7e2fc7d_1789850330156_0.31215051425108453","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1467.7e2fc7d":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1467.7e2fc7d","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1467.7e2fc7d","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"9f59b15447b0ffa51afb554bd9c351b7e94d9f87","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1467.7e2fc7d.tgz","fileCount":51,"integrity":"sha512-3qd5cclJVsHFtlF29qkR+ziUQY24vDcPkti06ptXyi/x8kwIf4qWzxF1L+Bayh7zF8/sY3kFF+nQZ3u96eLlnw==","signatures":[{"sig":"MEYCIQCBYjH/l0CHXZ0HuV1oacY179Rnz/O6J6bzwY85vJ801wIhAKe8nBau4ArRPhq3lXl2cB5AdsYhG3d9KheQlqgHDvSp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGb8jVqDvuP4MwgIOlEgn1ZWAaXP1ql9l6fBhrC3DTKTAiEA55jnfdU5rZFywc91MbQaJS1p3X5DP5W2fnyvn2ER9d8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1467.7e2fc7d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93452},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"7e2fc7df5378313ceaf21ba8d6ef39cc18a6f4ad","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1467.7e2fc7d","@flighthq/types":"0.5.1-edge.1467.7e2fc7d","@flighthq/entity":"0.5.1-edge.1467.7e2fc7d","@flighthq/signals":"0.5.1-edge.1467.7e2fc7d"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1467.7e2fc7d_1789850890716_0.9958719780603305","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1468.61b1d9d":{"name":"@flighthq/textshaper","version":"0.5.1-next.1468.61b1d9d","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1468.61b1d9d","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"6c5bdfa222aae3968ef5eb076d9ade0e0292bf5b","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1468.61b1d9d.tgz","fileCount":51,"integrity":"sha512-ZGHC7DtA8uffM7xbzsTc1muLO+zd/HYj7eWRG6CLKgJ+5/Z6kX871PEycbwKovuHAJOUd5wyJ4YNmKkYaeThTw==","signatures":[{"sig":"MEYCIQCjQTdWP5sUHACcBxoUhcIcq5VN6QLyf3RgID+GjpliKwIhAOMXPW26C+yyUNEwYCyUKszoXoxS12uaxMGvOc3b6JnM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBdA3S+RyKwRDDPpnCutD+XXg+CgYP5m14BE3V+rMzs5AiB2oSOVMFB3VRAuWOqe/JOJuqyz+y9u58DAUExE3vmJUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1468.61b1d9d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93452},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"61b1d9ddaae8549afd9487e4be09aab718eccf10","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1468.61b1d9d","@flighthq/types":"0.5.1-next.1468.61b1d9d","@flighthq/entity":"0.5.1-next.1468.61b1d9d","@flighthq/signals":"0.5.1-next.1468.61b1d9d"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1468.61b1d9d_1789852906621_0.27383953798453087","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1468.61b1d9d":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1468.61b1d9d","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1468.61b1d9d","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"d3c5a6164782b71220c1008660a3fb2c10d20590","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1468.61b1d9d.tgz","fileCount":51,"integrity":"sha512-oIG2kCQ1LMfW2cfyj6aX1mirFJrCqaMVgwP+lyngtvnq4oPUNOmC4bJ+ktZGGIi6cB+p1vs4h185oPEyN1FUCA==","signatures":[{"sig":"MEQCIDboGXGMahAfYji2vd70cQ+HuStRZPIZlg3bJLhjhac3AiB2Iu8/CwgY+CiWknO9sZI5TkdNfy/Wqw3l8BqcViIT7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIF2KUNyXMYmrx5ASWpnlrQe4ebmTWRnGEQn4J0olnGviAiAsNnx9csMI/kU5vC8TAUHatrkBLJD4Ruv6olDv3rzLgA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1468.61b1d9d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93452},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"61b1d9ddaae8549afd9487e4be09aab718eccf10","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1468.61b1d9d","@flighthq/types":"0.5.1-edge.1468.61b1d9d","@flighthq/entity":"0.5.1-edge.1468.61b1d9d","@flighthq/signals":"0.5.1-edge.1468.61b1d9d"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1468.61b1d9d_1789853502633_0.2951145573173617","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1471.4e82419":{"name":"@flighthq/textshaper","version":"0.5.1-next.1471.4e82419","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1471.4e82419","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"406856aa3f29cba0e169c30efcad6a024509f0ec","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1471.4e82419.tgz","fileCount":51,"integrity":"sha512-kbBWekaHWVKyTZbiL3HaQoCIOTHhOOopZ03TJUCrq+a8x7fkRYytLzEQxF0IgyhJmCfHoGt3a8bPUUEdps2TtA==","signatures":[{"sig":"MEUCIDGyjM6+qj8PY2AcMrwV4shLJj3x4OxiIHXnBCUfxK9fAiEAwwrvX4baHDYjufbXM1PSHU0IGt03Qs+KgyYxlWwpI4k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCX6eg5tXqEHQ/heC9MLSGmuYRprEkZwuv+OME6SRf0HwIhAPgqbUYsUkCHQ/TskoXQR7SnHYT8VmcfJl9DM28rVSRb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1471.4e82419","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93452},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"4e82419a6322f8a673da169994c79fa561016515","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1471.4e82419","@flighthq/types":"0.5.1-next.1471.4e82419","@flighthq/entity":"0.5.1-next.1471.4e82419","@flighthq/signals":"0.5.1-next.1471.4e82419"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1471.4e82419_1789886191656_0.5055001878004319","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1471.4e82419":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1471.4e82419","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1471.4e82419","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"d106ac7df6987b5dd98d4a18f5455c58420d3d64","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1471.4e82419.tgz","fileCount":51,"integrity":"sha512-D7sxIvTn8WBXeh6P8PQIuYQ5P8UAzNnPaVCfdqC3sbl+ZSEAgbM/gY86drfTmrivBBJL6RkYveq2IS3JABHFrQ==","signatures":[{"sig":"MEUCIBrTxCh/L+wY+5EClSCnCcZszTd495fPxz/2dioBfwq6AiEAo/S2FW+LliULQ90hBrBRWUWwf30ZDDjH/Fk+D8SPvTY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBDd9+OGvoz0X0GstK1DlZhnm9JhwqB7N4PuqRhftqtTAiABOTsXWtPuJ7/KGp+nvAbq4GrMLLje+ezGJKcKJDHEuQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1471.4e82419","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93452},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"4e82419a6322f8a673da169994c79fa561016515","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1471.4e82419","@flighthq/types":"0.5.1-edge.1471.4e82419","@flighthq/entity":"0.5.1-edge.1471.4e82419","@flighthq/signals":"0.5.1-edge.1471.4e82419"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1471.4e82419_1789886790201_0.5113051790837717","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1505.5790c72":{"name":"@flighthq/textshaper","version":"0.5.1-next.1505.5790c72","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1505.5790c72","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"00686e6169ba7c78be16133d0976548eb7c7f1ae","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1505.5790c72.tgz","fileCount":51,"integrity":"sha512-3j1mNPGxZG+1PixByPVF/xJMOJTKPHedqIuHzbOllGtntKy4vsIV903/nldbdnjhO2OVskADbVOei7Rp9Gb78w==","signatures":[{"sig":"MEUCIQD4j5tciBjCPzUI+6Oj7ZgF5sXSh7Ns2GAFZFt5Z7UWDgIgHIoPrFDeLlYYL79RqTBukjRpTPPCD+0xjTtxsxE0otU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEK0NmQUhARJtv4EBWlMi1SG7Qk2ETZecFVYgC00x4SsAiEA0DTOCW0RInu6AIXbYOZjHcxLMD4BsqYHyEYkXfzM1JU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1505.5790c72","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"5790c722bf2e004f1af3f1d1f9a8fa7469a0a449","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1505.5790c72","@flighthq/types":"0.5.1-next.1505.5790c72","@flighthq/entity":"0.5.1-next.1505.5790c72","@flighthq/signals":"0.5.1-next.1505.5790c72"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1505.5790c72_1789901662046_0.9253170371392547","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1520.4887418":{"name":"@flighthq/textshaper","version":"0.5.1-next.1520.4887418","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1520.4887418","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"fa817b792399aa5b3b3eca013f1f2725b478d296","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1520.4887418.tgz","fileCount":51,"integrity":"sha512-9U9Q5KT4nfmTZvV/zR7qUfDrc5Se58zZjVs/OZVmK9ihOT/EEWwtzRQiKyzHsYrUEFl75v4oub7h2HI1Q/pb+Q==","signatures":[{"sig":"MEUCIEUScWzEbeaevBkTIFGS+UHaGD2yPeIUjqdcLns25LiOAiEA4Nbo9GCTvwm169YUmTp7AUjdmomPHhX/LgLHx64lYac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCS4jD5QW+9YMmI4QORaYMdEOAuGAqUA1FS4VSKNbN8BwIhAKjJ9xbbKHW6dA47BY0nZARqwwGhvv6uVLBTrAos2qNp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1520.4887418","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"4887418ca29a53ac811258c3112aead6594c343f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1520.4887418","@flighthq/types":"0.5.1-next.1520.4887418","@flighthq/entity":"0.5.1-next.1520.4887418","@flighthq/signals":"0.5.1-next.1520.4887418"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1520.4887418_1789918194180_0.5938812489634189","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1523.c47f79f":{"name":"@flighthq/textshaper","version":"0.5.1-next.1523.c47f79f","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1523.c47f79f","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"2ba83d30c45f9f675628b234fe875deac26f4987","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1523.c47f79f.tgz","fileCount":51,"integrity":"sha512-zRTi3bV8iuiIiXwH6isww2sZIATiVaCPbsz9u7HVsNj4MzcAfE2+62eFeOLJZbqxA0e/D7USIZLC2MQI7dP6Sg==","signatures":[{"sig":"MEUCIEQkSS/wOESPlIEmZcpsB1tV67R9o3j6o7CMJL7UcuOGAiEAnkodjxvXE6JoFpfh1yh1vGl56MEnzBD/W9jyjHjFN3E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC0csCnCsqJLcyld4ExuauTz/HQupQqcRUj4znxytoVZwIhAIAXaFLlSnMJHCcY66aF6E5jQytVa0c5ui/MeSG2FjEK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1523.c47f79f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"c47f79f8248faeab7069d097e2c2bd6a94e053a9","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1523.c47f79f","@flighthq/types":"0.5.1-next.1523.c47f79f","@flighthq/entity":"0.5.1-next.1523.c47f79f","@flighthq/signals":"0.5.1-next.1523.c47f79f"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1523.c47f79f_1789921690810_0.7133720282700564","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1533.2910b54":{"name":"@flighthq/textshaper","version":"0.5.1-next.1533.2910b54","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1533.2910b54","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"1365a4f419c5888a3cdf60043e30a879eb85e5d7","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1533.2910b54.tgz","fileCount":51,"integrity":"sha512-qCfsHPVHsb3znV8YEUG7DVaSEyo9TCAmPBTtpXMv35PHhBP6OVwysJ8soQu/AQh9PcOgCFo3api4rMBfrVhahw==","signatures":[{"sig":"MEUCIQCjUsFe74PeYCJcRuED+rzk9XNhL0Oi4bRPjwvCDv4jqgIgU68eCN22A9Yv+DIDFpCc59TKUsK2D/Iw9vXlBqNy1LI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCSNAT8huoGe6QMnIZRmMi6TfpBM5GHh02nksmt8MkbTQIhAMfrO/BwDEaim4qURgR301OGSXC75NLYcdIq6JIvw6Nu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1533.2910b54","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"2910b54a4525a2830906ebd551dfc64576a7d650","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1533.2910b54","@flighthq/types":"0.5.1-next.1533.2910b54","@flighthq/entity":"0.5.1-next.1533.2910b54","@flighthq/signals":"0.5.1-next.1533.2910b54"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1533.2910b54_1789930268248_0.31000629669089297","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1538.09885fb":{"name":"@flighthq/textshaper","version":"0.5.1-next.1538.09885fb","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1538.09885fb","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"d518ecc69419d680d5e7208b3b7aac64d40d114f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1538.09885fb.tgz","fileCount":51,"integrity":"sha512-5VSIRjr9YHZuroGTzR/vP2Aq1W0msbC7qr91pkIGOi3TmJ08T/TBziVD1xCZApNjZhykQTLJGu5yg0sx4hPOJQ==","signatures":[{"sig":"MEYCIQCazXyU5EeNAw+URq2AQKToDltR0GkS70Mhj5YOkdKtaQIhAMt92Kneb1WFfh1rPgcNjmwxKGUWhMVT1J081+iiogd+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCBAnU1FOrSHwfIzivZUiRw+iHEVEukq+xHhb3DSGQ6tAIhAKNeWpQ0l0x5fmpLIgsFifpab/Dwr6RMGcHyGPcwMll+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1538.09885fb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"09885fb5711fcfd0841b52d59d24bd568ebdb284","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1538.09885fb","@flighthq/types":"0.5.1-next.1538.09885fb","@flighthq/entity":"0.5.1-next.1538.09885fb","@flighthq/signals":"0.5.1-next.1538.09885fb"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1538.09885fb_1789973385554_0.35594453192029984","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1541.b94031c":{"name":"@flighthq/textshaper","version":"0.5.1-next.1541.b94031c","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1541.b94031c","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"8ae0bf62769d01d5b617c42d5b856dc07f1bf77d","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1541.b94031c.tgz","fileCount":51,"integrity":"sha512-zipLTAiSZYjrrnYB5y0DjfzaLXq6S2SSgSG8PI/SUzeWKUl1iXMJtIrV0l68nJGY+OlyAvr6NsLRMtaDjLRdrw==","signatures":[{"sig":"MEUCIDOmdogJvXPL0kUlemtu9m384G9p/HyLrGQKuUX/IlbPAiEAjeTAFc+aM11SqX70f7nqzE9m2LOAsqrrKlu2SmCBdX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBz0f0pwPHKoePj4obhEiAzpqhLrSPkmHIX3DlJ+p6tGAiAMlgi3ywnKpZix+sX/mDq7x04284dauKCCshurkng9wQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1541.b94031c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b94031c0a2d146c3a17b00fb3c830387d43730ab","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1541.b94031c","@flighthq/types":"0.5.1-next.1541.b94031c","@flighthq/entity":"0.5.1-next.1541.b94031c","@flighthq/signals":"0.5.1-next.1541.b94031c"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1541.b94031c_1789974682321_0.9115185938525345","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1543.41f4a99":{"name":"@flighthq/textshaper","version":"0.5.1-next.1543.41f4a99","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1543.41f4a99","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"6f936acf9ad5106d7f4e74136653ea5dbe034637","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1543.41f4a99.tgz","fileCount":51,"integrity":"sha512-g5ieAWR4I6BDNkF/nG1vZIJIkZ4LZmiL4fklJMXw4kVVw1yoLBMRwcZqEQUwlL8iKWZFt81RYAI5g2YTfREzLw==","signatures":[{"sig":"MEQCIHN0EBBQczvnk2rBTJFM59ALJuIQYOK1D8xmdG91AqTAAiAG9cSqrY9j24sOlW3wsFAsFJlm70R2m0fhw8vsRKWlMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEsUrx04yh73ker+WXM0Hk0M9/7eZCB9PNwNwariPlwJAiBog732JAmGd3wbQ8epzTwDm6y+AGS8yyYva2QMScw90Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1543.41f4a99","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"41f4a99526099b604048da7bb63aaaa5563d252b","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1543.41f4a99","@flighthq/types":"0.5.1-next.1543.41f4a99","@flighthq/entity":"0.5.1-next.1543.41f4a99","@flighthq/signals":"0.5.1-next.1543.41f4a99"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1543.41f4a99_1789975241675_0.5377588283616264","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1545.a3a19e0":{"name":"@flighthq/textshaper","version":"0.5.1-next.1545.a3a19e0","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1545.a3a19e0","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"1dabed24f4b3dfe1addbd02f5a7d5998e53c137d","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1545.a3a19e0.tgz","fileCount":51,"integrity":"sha512-bEw8grqvaQYw36r4YD4f6xs3sgJtyls3hHSq8ntHoPhTGpks0hY97f/1mH/REHN2SHt0b3KufLJg8heYdXmp0Q==","signatures":[{"sig":"MEYCIQDl4zPUcHli+ObXkbPsjH3u5NMowIgD0eNh4GJDq7WwWwIhANjrc2iyV6mjdIfFX29xcff522Cx1zBgi59EY/j7Cc8s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICj+1P34Bh6YuM3xoWeWPy2a2020vyvuPFA1fEeejeUAAiEA6cbqznKB39zmb2HcPYLA2oBFQy+4XGyW79r2BS70gG0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1545.a3a19e0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"a3a19e0bfd5f8f90503930e951dcb891ff31c674","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1545.a3a19e0","@flighthq/types":"0.5.1-next.1545.a3a19e0","@flighthq/entity":"0.5.1-next.1545.a3a19e0","@flighthq/signals":"0.5.1-next.1545.a3a19e0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1545.a3a19e0_1789976505868_0.06404536510825909","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1545.a3a19e0":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1545.a3a19e0","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1545.a3a19e0","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"f47b393740011cb6b21f31afec784c3a454e6913","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1545.a3a19e0.tgz","fileCount":51,"integrity":"sha512-mCZ1rTIMgto9Kr46NwNDx44tlfeozuMU34vV5FxlaN87VaAgg5IxKokgOvTgroRdzlrdnV4+Fi/CaPk2vWw3pw==","signatures":[{"sig":"MEQCIHIWp90Vba0sUIpNfEXPm1mU5z5WYPcP/riZfMK88l0aAiBwb522zy78ynNCimxq+gFgzYMQQsqonpgorb/YHJVrHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHqMC/Hkysy/g7hS+cKr/r1ud82FuDQAdhrsgRDcnYeMAiAzgprqeO7cyk61VqO6IsJ7VbxTFzwv9cRkajWcMIMtKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1545.a3a19e0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"a3a19e0bfd5f8f90503930e951dcb891ff31c674","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1545.a3a19e0","@flighthq/types":"0.5.1-edge.1545.a3a19e0","@flighthq/entity":"0.5.1-edge.1545.a3a19e0","@flighthq/signals":"0.5.1-edge.1545.a3a19e0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1545.a3a19e0_1789977223676_0.4580841218842533","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1556.ff9e615":{"name":"@flighthq/textshaper","version":"0.5.1-next.1556.ff9e615","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1556.ff9e615","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"0d8a8a8640ec9c84aba5e7624834112ec791f8be","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1556.ff9e615.tgz","fileCount":51,"integrity":"sha512-B8+Ai0N0vl/MBDsyXbFYuQDaLYzEkkcmsusaZBm5BNhilxq6brEMyhnqzSQ8sKjgldKycSHBzjOmT2UPwxf6IA==","signatures":[{"sig":"MEYCIQD+XdhCrjWqfAouX06VDS8CjD89dtYD5gA/7Z9KEJdc7gIhANt+u1J1Es5jGMVg63CA/ufBq7Kjz1n/vrS/Ac8JXFgY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICg7rw/he7V30b87FRsge61TniRegZu7OmBFXdziEpmuAiEA9g1BcRs5gKz9QlmHmRduwboTuhA1q3sZT1aayivaa2k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1556.ff9e615","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"ff9e615c3b9df79b718bc750dc04e1cb5f39e5cd","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1556.ff9e615","@flighthq/types":"0.5.1-next.1556.ff9e615","@flighthq/entity":"0.5.1-next.1556.ff9e615","@flighthq/signals":"0.5.1-next.1556.ff9e615"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1556.ff9e615_1790028141488_0.19270704179315046","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1584.db3c393":{"name":"@flighthq/textshaper","version":"0.5.1-next.1584.db3c393","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1584.db3c393","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"87dce869b8ba43f7dedd2c2272bc74d17490b781","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1584.db3c393.tgz","fileCount":51,"integrity":"sha512-u8Dhf4fV6eWaJFS1K82al2VH/QbQnHNLCPfzGMzTfGAq1G9JJvZM6tHljXG7hlEXvU55yzijJpBdB1Qxvazp3w==","signatures":[{"sig":"MEUCIC65A0IABXwIYfKKb9LOEvFTJiNddshE/FOtScNWeKI0AiEA1W5c/iijD2wxQz0tw3xQMKshSWQ5tVUVih9DjBpo7zg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE0mSuMBNRdpEBRsM9kMUxjzFazoG8VWrKSg8xxVw/YqAiEAgqNUYAssJ8l6RWr7KyMog8aO6tssoBbMsKg6H2mAjQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1584.db3c393","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"db3c393cc51ac6ab80c0fa7e6af97ef7b354298c","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1584.db3c393","@flighthq/types":"0.5.1-next.1584.db3c393","@flighthq/entity":"0.5.1-next.1584.db3c393","@flighthq/signals":"0.5.1-next.1584.db3c393"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1584.db3c393_1790054532967_0.6683299288142437","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1629.669e7c5":{"name":"@flighthq/textshaper","version":"0.5.1-next.1629.669e7c5","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1629.669e7c5","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"9aab6af10c4ba4aa295957464cd127c77ac2736f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1629.669e7c5.tgz","fileCount":51,"integrity":"sha512-Sd8YZorUR5cKWdl8CVgboc5feNycqFxjEb8md63e8IwQyj+FB8nK18WOzaRyqzTZvMvuGS1bLWUpVo5idTVU+w==","signatures":[{"sig":"MEUCIQD98Dw8ygRJyaGWwM0e8PpA2CLmv102PQWH5bNDsqLDLgIgf/Y9bMXJVOYkg+/kBq2k5+qKhFIzCcnkc/ajVD48l9g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCndQYVYsO/mhaknYLhHXPXcBlL0zMR3bf+EJDNEIYwIgIgUbdvMc9OhGGppn7h/Yifzc0IW/GnJoXn5bqplqwjCc8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1629.669e7c5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"669e7c57b5177f4dba43dd9e861db543c4d72d2d","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1629.669e7c5","@flighthq/types":"0.5.1-next.1629.669e7c5","@flighthq/entity":"0.5.1-next.1629.669e7c5","@flighthq/signals":"0.5.1-next.1629.669e7c5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1629.669e7c5_1790140614931_0.9769984075212517","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1669.c9827a8":{"name":"@flighthq/textshaper","version":"0.5.1-next.1669.c9827a8","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1669.c9827a8","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a772eb6a9ae652f1d884c315431e82506a16035e","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1669.c9827a8.tgz","fileCount":51,"integrity":"sha512-YkEDG/Fj2OTIimgtg/9W61oDhiBFqTDmMgqkJLil6ExRuvqy54evIP5HcLGXV7QMIuqz9vYYY3vVaDVIcBTpvQ==","signatures":[{"sig":"MEUCIGGFZqKnYZpFJviM4cMBA6x1brBw5Kywhc3Ij9fAFtp9AiEA0cjGrrGmL5+fPJqQbErmVzdGKI8EQsaiG/W2Sf6Mif8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIC6D/Y7RtlPBOx0Q0FrDNjwaqGH5GX/a5OgFrXmPXmP4AiAEABsXZj6BsMbbiTDbbI1c+RbOSD6JaGhpdVIRhy2gRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1669.c9827a8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"c9827a8363ff130c75c633b9455fecfcf27c36bb","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1669.c9827a8","@flighthq/types":"0.5.1-next.1669.c9827a8","@flighthq/entity":"0.5.1-next.1669.c9827a8","@flighthq/signals":"0.5.1-next.1669.c9827a8"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1669.c9827a8_1790192806220_0.31184114708494914","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1680.bdc44c6":{"name":"@flighthq/textshaper","version":"0.5.1-next.1680.bdc44c6","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1680.bdc44c6","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"f5439b8a36330caeb7d6c6bca6deefbcf2495c29","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1680.bdc44c6.tgz","fileCount":51,"integrity":"sha512-UZnAadR6PNsMEEET4iO7tXTJjfS4YwC5FmFDVS3nW2CGN4yG1S1BfxpbY7lIq4DruZvPgNYs1SaKb4KB8mP7AA==","signatures":[{"sig":"MEQCIAfn1jWtqkjAOHY5iQhFaViP2a3yNkA8XThX1gxwjysnAiAkLya4s45uIFmQSaECQRV3bB1SoOon/XXy4XQux5nEKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFBpXyUlNzlPrIXxO/L4+6r/GNrECC4S2wJgQ1QYeLXjAiA1Woh/meyawO7nrxL8/X2c85DHU4evDDmvVjUP8k2xqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1680.bdc44c6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"bdc44c63675b7c50301154e66b79e2d29d6262da","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1680.bdc44c6","@flighthq/types":"0.5.1-next.1680.bdc44c6","@flighthq/entity":"0.5.1-next.1680.bdc44c6","@flighthq/signals":"0.5.1-next.1680.bdc44c6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1680.bdc44c6_1790216435307_0.08598721766472872","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1681.3f21b44":{"name":"@flighthq/textshaper","version":"0.5.1-next.1681.3f21b44","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1681.3f21b44","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"886f503f3b469a89c603a627268b53e984630bd7","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1681.3f21b44.tgz","fileCount":51,"integrity":"sha512-+Ehis76M8MXgo8aiDzrXZoCoU7l+hqUtFcqwwpTGkQO3mndQBVkUPAknA71Mujqw9zGZnQ9dUyU7mNC+zX17Tw==","signatures":[{"sig":"MEQCID20wQjy1RINUCQe3i0T+V469TjJ9D2gTGGK+fbXut4QAiAtrFrz+THU34ppW+iJyMbvEs+YAuU/fuQf3N8lcbkhvw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDQJIvmN4lavHnGqRw3FkHiDiD2UNcn01IYtwE/Ih67CAIgENg7I2Kvv6D1OGuJedjNHcidKmk+YbW6CeXz2yHOa/E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1681.3f21b44","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"3f21b444ff660aaf3293008834d8bf1986835e04","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1681.3f21b44","@flighthq/types":"0.5.1-next.1681.3f21b44","@flighthq/entity":"0.5.1-next.1681.3f21b44","@flighthq/signals":"0.5.1-next.1681.3f21b44"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1681.3f21b44_1790224439538_0.12443206242946325","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1682.f1470fe":{"name":"@flighthq/textshaper","version":"0.5.1-next.1682.f1470fe","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1682.f1470fe","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"a184546e7b4577677df8b565920621459a071e5f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1682.f1470fe.tgz","fileCount":51,"integrity":"sha512-qrKgQ2Lb62nTl9z1CYC7RG6wTmfYL6ULIxTofsPy4JvPv9mUNUQnUkVp6rQ4AS1tRUrzJpBbduydh6tpaOS3oQ==","signatures":[{"sig":"MEUCIHBM9zDOTp73ktUjG+aNJ01Zt67CU0YvtDutKqtF+LXaAiEA1sU8saEa1CVU5hw/g6RxF9J1VsVcz/55qs2USRcb/yw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICCtD5L+E7t1NteY4QAWLCsZbEYRLpDomYLc/jUoi+NWAiBTntYhvWE6rUuyfmjbkHteA17h7uasaDxZuW1erWwrOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1682.f1470fe","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f1470fee18ecd2f002ece6cf219a2bcf9dab5426","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1682.f1470fe","@flighthq/types":"0.5.1-next.1682.f1470fe","@flighthq/entity":"0.5.1-next.1682.f1470fe","@flighthq/signals":"0.5.1-next.1682.f1470fe"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1682.f1470fe_1790226295241_0.35045607556072866","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1685.dc0e23a":{"name":"@flighthq/textshaper","version":"0.5.1-next.1685.dc0e23a","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1685.dc0e23a","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"f43d787868c581d075f92ac5289c8113765342be","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1685.dc0e23a.tgz","fileCount":51,"integrity":"sha512-6uvlOt7O6iQ5vNzYdg3Bu/WIdPDCxEFFKNEcaLkeNPBd5+9i42FqRySO7LLrPYuBjeiJJArIVA6llHE9xw4O3A==","signatures":[{"sig":"MEYCIQCdUxa6MUhaikNjiPEOakPJC7WbSvNQ7WeaAH0n4lJTOgIhAJ0bgis9V0ulIhJed1p/qlW4lJyctorsRl6UiMHgXqA2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEnYYh1i60kxxER8JlXYfXJRwb8KfCDTuejdByCFMoorAiEAgiDdQAgLrrso6EW2JCw6baFHcsSUOghDsEZSi2D0mjc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1685.dc0e23a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"dc0e23a17453ec75c20ccbf07058a57b5ef10c4c","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1685.dc0e23a","@flighthq/types":"0.5.1-next.1685.dc0e23a","@flighthq/entity":"0.5.1-next.1685.dc0e23a","@flighthq/signals":"0.5.1-next.1685.dc0e23a"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1685.dc0e23a_1790262526709_0.7823522263689602","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1685.dc0e23a":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1685.dc0e23a","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1685.dc0e23a","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"94d3573ff16e0b0134497839444069e99c485999","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1685.dc0e23a.tgz","fileCount":51,"integrity":"sha512-FDg+eGHI3b51IxNTStnse9/Dml/gGzjBnag8e5KvV1O/SGuAPuTIbamHnxozLrKjM1uo1gnO1eFMTuzk8TRGyw==","signatures":[{"sig":"MEYCIQDHfYfwemfDKS1lGJt+97N1rg22uxEPSUeLLG/Z92+1zgIhANfjvm4FmkbUZO4iyuA5sZJMUb3+pRTKpIHLAnkWnvsy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD65aB80aeo2++HmEsFga7zPj0UJyZCWu3u2OKo2oQgTwIgX1x7Q/lJht7kK+wSTaIZuQytETd+6n4OtFXm0sDx9us=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1685.dc0e23a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"dc0e23a17453ec75c20ccbf07058a57b5ef10c4c","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1685.dc0e23a","@flighthq/types":"0.5.1-edge.1685.dc0e23a","@flighthq/entity":"0.5.1-edge.1685.dc0e23a","@flighthq/signals":"0.5.1-edge.1685.dc0e23a"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1685.dc0e23a_1790263377240_0.9303983933134186","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1687.b63c819":{"name":"@flighthq/textshaper","version":"0.5.1-next.1687.b63c819","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1687.b63c819","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"afd0a2daa57310f98c50b2f63d5a375c75facf5f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1687.b63c819.tgz","fileCount":51,"integrity":"sha512-v9o5S07LCnpT7u77fCzoWXnC2KZeJOjSrjvIhus/GyDFzF00tIVQJ5ITs2Z5+rasdrZDBDuErB7XVurMT5qVtQ==","signatures":[{"sig":"MEQCIHuoS0KeX85OrV0/iWp+MMD96tF1eRaaDiLyF32s/ghZAiAu0Plx2GK5qSun6clR3bYl0X0t7+d8fo++psiAQTqY7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIC71w2DOoMwsta0PopYPSNEP0i/MWU90ERXdWKmrlrzVAiEA/Cu1n+3aqv975VW5Ee+/vsEfygOWsNxmH9KNuQlqRY0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1687.b63c819","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b63c8193c1ec49b8fe402b65be6f25d981f64937","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1687.b63c819","@flighthq/types":"0.5.1-next.1687.b63c819","@flighthq/entity":"0.5.1-next.1687.b63c819","@flighthq/signals":"0.5.1-next.1687.b63c819"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1687.b63c819_1790271414803_0.39398693636784965","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1687.b63c819":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1687.b63c819","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1687.b63c819","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"3ced519108afe2279de866eb2271062b3224d4ca","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1687.b63c819.tgz","fileCount":51,"integrity":"sha512-9Rh3ou8n+P3fi/EONaf2+0RAjT6n3Jq5ba8q4+IjowxyfRkhZi9yqaVvUBtbQVk6mbSt4uKvrqgh9UwIHzFRdg==","signatures":[{"sig":"MEUCIQCxJbOJvkfQvHn6xRe47q4CU+WZ90eCeddwDMkbrXJdZgIgShNktyjy5OE/DSKPl+u5AGiU0YU9iOLtqnID15bV9ng=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD0OZoCiUXx+FqgS6y5k65FXPjNtYSTH1q5nk8neDFlCAIhAImgu1iz9+U8hNKBv+rJnQQzcYpxlhrsYCv7p1/b2n7O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1687.b63c819","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"b63c8193c1ec49b8fe402b65be6f25d981f64937","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1687.b63c819","@flighthq/types":"0.5.1-edge.1687.b63c819","@flighthq/entity":"0.5.1-edge.1687.b63c819","@flighthq/signals":"0.5.1-edge.1687.b63c819"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1687.b63c819_1790271971874_0.2612374480927284","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1692.64cda40":{"name":"@flighthq/textshaper","version":"0.5.1-next.1692.64cda40","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1692.64cda40","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"def415a706d3629d977de48db40b3ea0bb3ecc72","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1692.64cda40.tgz","fileCount":51,"integrity":"sha512-ImimRHWBfP1P8X4f8G6cXIAstNzdnlfcBIKU6JEJxNrwKfHrGYgTUtQ1idRcHCDzl0a+SvYcrqSQvBEzIIcVeQ==","signatures":[{"sig":"MEUCIQCrCOVIo3wdzXBPQ6wrJZYdufccYmF622ptd3nis3o4IAIgaLhWDpWU2lzGlVmajzWb0Wj0K6FeODQIwdquCupVvdM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIG2BTMoFjT+KSH6g3V9vmmo/FergQjAvG+K0RoJhIZvRAiEAlb8r0ZurBHKf+PrnWPwDVtV+PpzpfKGwr9wL+yPvUGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1692.64cda40","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"64cda403571cb0bbdc7ab29b4ec6cdf5929fff6d","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1692.64cda40","@flighthq/types":"0.5.1-next.1692.64cda40","@flighthq/entity":"0.5.1-next.1692.64cda40","@flighthq/signals":"0.5.1-next.1692.64cda40"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1692.64cda40_1790294227658_0.42070324891738076","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1692.64cda40":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1692.64cda40","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1692.64cda40","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"18e1dc504fce57717b4a39c548e43b34c83a6dcf","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1692.64cda40.tgz","fileCount":51,"integrity":"sha512-ps0qXHCRZKsdFS+kIDU5q9q1QkPJB0guUH9fWW4JfJ+pZTERpHVBtUX7llZ5A3YZ7JrabKIIJa55Hz4QmHmesg==","signatures":[{"sig":"MEYCIQDgxjd7Vg40bZqFTc6aNKjXcaQ4JEFiLULXhJ8DqZRXhwIhAMRbmt/AVqi4lcfghey3tt4H0qjpgn2BMjm/dNz9SGB0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDm27pduQ5347hMhqrqhNfiudLsI5+soslOdKKE+pe5tAiAFr/JIiwzWHHoK13Lbutpv6WzHx2JkrRXKOphqiG1+nQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1692.64cda40","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"64cda403571cb0bbdc7ab29b4ec6cdf5929fff6d","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1692.64cda40","@flighthq/types":"0.5.1-edge.1692.64cda40","@flighthq/entity":"0.5.1-edge.1692.64cda40","@flighthq/signals":"0.5.1-edge.1692.64cda40"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1692.64cda40_1790294779780_0.7984041825355761","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1694.112d897":{"name":"@flighthq/textshaper","version":"0.5.1-next.1694.112d897","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1694.112d897","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"0b187b9696b6f93fb482a9c97b83ecde40815e97","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1694.112d897.tgz","fileCount":51,"integrity":"sha512-vrtk6HnnHY+B/ULJn2E+tiiCIxBCqEArj0o8i0exinfy5HD9NxfLb8LN7LTxB7829DSld2HWsKlw7neiqcN2LA==","signatures":[{"sig":"MEUCIQDoqkfZ41m+yCYubNP1EI1XCZIcgb/mD/AeZIQS5r/BxQIgOG7GVCp/K9Oer1BUTONO0C9hoi4VMA5jiv1AqL9Tt8o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAy/9paQ+3BR0lz7air6FusIvzJFACekKddNwwHi4xRYAiEA0fPwwQ13jjH7sanU6zA6TczO98ICeUCz23Xnv+XSSgY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1694.112d897","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"112d897004918b8eedd98c3436e05e3d478c12b4","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1694.112d897","@flighthq/types":"0.5.1-next.1694.112d897","@flighthq/entity":"0.5.1-next.1694.112d897","@flighthq/signals":"0.5.1-next.1694.112d897"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1694.112d897_1790302468655_0.14972367192878178","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1700.cefb2f9":{"name":"@flighthq/textshaper","version":"0.5.1-next.1700.cefb2f9","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1700.cefb2f9","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"069a8f12ae7acd4329448e3f54d477b5521af628","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1700.cefb2f9.tgz","fileCount":51,"integrity":"sha512-961m5wralS3RMmbMEhFuZ4ANOjWb3KZHT/HUACjjGFholdi/sNdJUibWkQgbXF9LKHi3cmyKPmN0f/N2k2E1sw==","signatures":[{"sig":"MEUCIQCbF4gKZ/OS3CEXMnstmlIiA5WjU93+Io3unu/REKxPswIgK27GOM/SuDvHhY3Z1VW2g7CWZE1nsp+HQYowRF80pEM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAfPrmzxkjacn5aqWkf21OfgIBF6SsISLrVN6iI3QaPqAiEA4mw+kPNEL/d1p6jFPJrXp1Q3OkLqCCQWTaHXzKUqKQA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1700.cefb2f9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"cefb2f9914270340afd4cc39e407f1202bcf8fc5","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1700.cefb2f9","@flighthq/types":"0.5.1-next.1700.cefb2f9","@flighthq/entity":"0.5.1-next.1700.cefb2f9","@flighthq/signals":"0.5.1-next.1700.cefb2f9"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1700.cefb2f9_1790305290761_0.8016756217059149","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1703.1905242":{"name":"@flighthq/textshaper","version":"0.5.1-next.1703.1905242","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1703.1905242","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"3dedd07e7580e3d0132e5fd13ae44bf24873d316","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1703.1905242.tgz","fileCount":51,"integrity":"sha512-nup00VwmesUbeBPjR9tKOWasVg/KrQ0ZpOOWN1GH7p6/ton+nMABEyhdLNEoS9kVkqpsdz/LGZ8LHhN87GhQ5g==","signatures":[{"sig":"MEUCIQCu/upJvc+OXZDjvB+CBs2WgnSPEPi0rUToOFQDK0k85QIgDci19Z5mRJ92QONcMa0ahvLE6kFM5E+yRop+r8va1Y4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBN4TVq5T1mTy/nVUwm/refn3amNdbkIed94iz+e/DgxAiEAmMmzwyUX4ueSooQOMdGhrls5ltWFSaRC/xbGijuDA8Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1703.1905242","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"19052424445f045bf033e5555d3851bb373c2c39","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1703.1905242","@flighthq/types":"0.5.1-next.1703.1905242","@flighthq/entity":"0.5.1-next.1703.1905242","@flighthq/signals":"0.5.1-next.1703.1905242"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1703.1905242_1790323762311_0.9894151344728941","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1704.1832e8b":{"name":"@flighthq/textshaper","version":"0.5.1-next.1704.1832e8b","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1704.1832e8b","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"efc2aa7baa41f3ec5856c2f15192380f16cc6ccb","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1704.1832e8b.tgz","fileCount":51,"integrity":"sha512-IhovoLj2zxLfCNV2Yr3BdXerrisM0UtXrEru0BRDKXq8iV0i6Ebc1QozzerUTOxnZXMnTbR3RSHGKypMPpOTCg==","signatures":[{"sig":"MEQCIEV4pW+ZywDFBr2G6+ReqNaOIkb3n3rsd3OULL+uSzeCAiBDWjChtMM1n4jfXLgELHsUMp9YAoBDmuXhRzOWEji7OA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCEkw4yhCmiP0rCdvSkOqyxneAlE5JYzXgp5HRjKOcg0gIhAMfIUWCrqUe1pUYmzYjO+S+UkRqKAWikcg+EVWWIl5Ou","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1704.1832e8b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"1832e8b8f7a898d2b15ad3712c3262f0dbfddda1","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1704.1832e8b","@flighthq/types":"0.5.1-next.1704.1832e8b","@flighthq/entity":"0.5.1-next.1704.1832e8b","@flighthq/signals":"0.5.1-next.1704.1832e8b"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1704.1832e8b_1790326977871_0.7086951242432453","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1704.1832e8b":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1704.1832e8b","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1704.1832e8b","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"034e56aebd9af26cceb6b948aa122163e21472fd","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1704.1832e8b.tgz","fileCount":51,"integrity":"sha512-o7g7HHaEkl0MdAnUdGNuuzJ5SDKCMw+4nldaD5p09Z23SwCRupvIghTFKEYCZ2uxUPkxcOE1Dkhy+lYU697hCw==","signatures":[{"sig":"MEYCIQCCNFOYfxz6H4tAj/hYmhok1u5WLoQy40p0HtpdWiRgIAIhAIGRxv8AWU8LJhXzlbp0lTFzNCIgIx9lqGuGDpgtAcEL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDVUG2sI2Cs7gJ+qmMSTpeJ76qHOZ7DrmditchutOpp+gIhAIpzU4pVT3nqm8NNNYcSpr92yY4pXZGT5FzxUjcroUHz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1704.1832e8b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"1832e8b8f7a898d2b15ad3712c3262f0dbfddda1","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1704.1832e8b","@flighthq/types":"0.5.1-edge.1704.1832e8b","@flighthq/entity":"0.5.1-edge.1704.1832e8b","@flighthq/signals":"0.5.1-edge.1704.1832e8b"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1704.1832e8b_1790327498738_0.9791515161142252","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1710.81c05dd":{"name":"@flighthq/textshaper","version":"0.5.1-next.1710.81c05dd","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1710.81c05dd","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"fab86b3e89be619e440a87d874f6888d4507c103","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1710.81c05dd.tgz","fileCount":51,"integrity":"sha512-wpY1WlTMPTQ37vVtFbd/teMc1DPEZRZ86vJcwreK6rO41QbRbixIFqZhedlHxnVzTFfvkwaXXkoB9b0wKmgjTw==","signatures":[{"sig":"MEUCIF90WtT86m+y/MfYKoIpE0bCAuo8VpEQ9rkOdabaWsCSAiEApUfss8ns9vCQ6Yf11Dh6UyM2zPZpuA7KRMF3gRPu2gs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBiXGv+zeRP7hwb6jXFIICD2S6Ax8bCGGMxJ6qQ+FrhTAiBLMeHrISyor7U/+/NnnBXaDWW3KXM2F8ROZ5BEMm1b5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1710.81c05dd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"81c05dd8111a6bd75c7fb1e35d3ef5914a479aeb","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1710.81c05dd","@flighthq/types":"0.5.1-next.1710.81c05dd","@flighthq/entity":"0.5.1-next.1710.81c05dd","@flighthq/signals":"0.5.1-next.1710.81c05dd"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1710.81c05dd_1790356428522_0.9156830722545739","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1717.f605ef3":{"name":"@flighthq/textshaper","version":"0.5.1-next.1717.f605ef3","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1717.f605ef3","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"3b0705d7c67204f8e7b9d04b45b404763dafbcc9","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1717.f605ef3.tgz","fileCount":51,"integrity":"sha512-xI08TjD/JZ6Yrst3XahoKpe+g7zuQY0qGPQPikSRbFHaj8sjqZ7OIEWaVa9NwvhDmV3aPnXG3IFS7xLdJVIu/g==","signatures":[{"sig":"MEYCIQDu9djfDdFX+27sHw99gxsmPSMT/1p6DuQ7DQzuEJNPFAIhAIBn4CckXApYCIBZDBSGIvl3qAyi6WaFO+342jxj/I0+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDlevksCOKkg44B+Uy4r/REGkfxuidydATG/fpUFKL5mQIhAMmrpxXLd+cF7oN/oiBp5UkmSUT8JJhPrfq5XavC0US9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1717.f605ef3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"f605ef3e89da885484e634fa47228d68233f20f7","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1717.f605ef3","@flighthq/types":"0.5.1-next.1717.f605ef3","@flighthq/entity":"0.5.1-next.1717.f605ef3","@flighthq/signals":"0.5.1-next.1717.f605ef3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1717.f605ef3_1790363796027_0.8264987720042032","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1723.553fc7a":{"name":"@flighthq/textshaper","version":"0.5.1-next.1723.553fc7a","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1723.553fc7a","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"b7f19178251a79303b0d990ddbb1bddad789f069","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1723.553fc7a.tgz","fileCount":51,"integrity":"sha512-Ckg9RJppljLkHpYkQedI5Ne7nM9ST3296SOS69tDLcnQmIiSqZVl/lHpYmwq7trEdgB1Qq/uaDuMIvGCtIiymQ==","signatures":[{"sig":"MEUCICv0kjh+AmSOqfUZ9XSvDGb6J03B4GECy5TQFbqbiWLQAiEAqlztgS39SPf+Cf4rgjbZGW72Ol5TLzqXEyhkiEAIeps=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFIcYOYyfbfOPXNwdMTJBaalUg2LKMqC71l+6OmwiCQvAiBb2U1kU42ThwVANwayKBgLZXUy4FhBpCxw5bJTYy95zg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1723.553fc7a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93420},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"553fc7a1292841a9d196d6a6c7e366a888c90e0f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1723.553fc7a","@flighthq/types":"0.5.1-next.1723.553fc7a","@flighthq/entity":"0.5.1-next.1723.553fc7a","@flighthq/signals":"0.5.1-next.1723.553fc7a"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1723.553fc7a_1790371711445_0.9917360683026832","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1724.c250cb4":{"name":"@flighthq/textshaper","version":"0.5.1-next.1724.c250cb4","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1724.c250cb4","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"307708a4477688d7802d962e24b072368b1f5b9f","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1724.c250cb4.tgz","fileCount":51,"integrity":"sha512-xUXKMflI61i+2PQ7jdtupTm3Zpc5QV9W7FCj/rNN05obrtEA7GhgDxaYvkmK0oSVzJ5Wlv3Yd+8QAJXfSlkPgg==","signatures":[{"sig":"MEUCIBUF/1sb/ievO8Iy91shEaFtaK5xO5piOZuSufXHOJ3MAiEA/FJATfYlIQIMEfBCM+QaQRcejyB8bB1nLCpvEuBz8hU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBRdRF8m1iTL2T0JScgOD+HLGd8eDMDzSrfJJBJC2VIKAiA8V99mK+PB10r8vAFUox1s9pKPVWmp/EpgMS8muXCBgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1724.c250cb4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"c250cb4b50daa2af7ec8390f9ae207aa0b2110dc","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1724.c250cb4","@flighthq/types":"0.5.1-next.1724.c250cb4","@flighthq/entity":"0.5.1-next.1724.c250cb4","@flighthq/signals":"0.5.1-next.1724.c250cb4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1724.c250cb4_1790377645757_0.32728569309320155","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1725.30f1dd0":{"name":"@flighthq/textshaper","version":"0.5.1-next.1725.30f1dd0","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1725.30f1dd0","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"d3723a169da94a37b149bc6dc3d18bcdbf814485","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1725.30f1dd0.tgz","fileCount":51,"integrity":"sha512-6yyy+Q4j9stsf6FPSNvAoRj310dtEpULwh3qhBl8pUt8WFBZ8ow//hhbq6rBaltcnPLyJtn5NQd4JyIy/ljOag==","signatures":[{"sig":"MEQCIB286/NEmJj5cESutU2dpecY30XQ6kuo7xLsN44/pBZvAiA3QbODQIGApUl1fyewv7kFmZ/hbOnKkL4J595rspfMhA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDTsHVNzTcQG5xpQSlEmafAkgK7XoDl6I6A8rapasGeugIgNmlY9bGCI0X4CTOQLA1u4RYVRc6iKlIY9IvFwS/iqqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1725.30f1dd0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"30f1dd00901e92f8432551d37220ebf80ee82f51","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1725.30f1dd0","@flighthq/types":"0.5.1-next.1725.30f1dd0","@flighthq/entity":"0.5.1-next.1725.30f1dd0","@flighthq/signals":"0.5.1-next.1725.30f1dd0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1725.30f1dd0_1790380190430_0.30225955133804994","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1728.e0a1ceb":{"name":"@flighthq/textshaper","version":"0.5.1-next.1728.e0a1ceb","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1728.e0a1ceb","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"b6bfda6ce7b465a49ee63a95b1d16959fe4ca659","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1728.e0a1ceb.tgz","fileCount":51,"integrity":"sha512-3ZEvHAK4KqN4UDW1Es84K2rL1iGPRxqwYij0UxepWDIqE3Fd9lpx+gFIb18iz6BwUhOqxAiykIJlz7C06TCFqg==","signatures":[{"sig":"MEUCIEcX8OButPBN3Gw3P5Gi43Xo5KoLsbFXrvQccxCHwK4CAiEAkSwB8DbETEr+O/b6/hpPuJZ9GueuKwRLpEjQ6oOUOM8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDOinF0FNg/B3DFuSCtuPvK44FmJJ/Bpx9Ev6Qd39iekAIhAKiTMGRHIdTPlP7zxB79t1fvvyYec974kvr8uw/raxyZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1728.e0a1ceb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"e0a1ceb82c07f5c88655e3d3188bfd74b11ade04","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1728.e0a1ceb","@flighthq/types":"0.5.1-next.1728.e0a1ceb","@flighthq/entity":"0.5.1-next.1728.e0a1ceb","@flighthq/signals":"0.5.1-next.1728.e0a1ceb"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1728.e0a1ceb_1790401804704_0.3675856787709755","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1801.21234f6":{"name":"@flighthq/textshaper","version":"0.5.1-next.1801.21234f6","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1801.21234f6","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"c4d336e3be32b3bceddd35ebcf9fae87d13dbded","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1801.21234f6.tgz","fileCount":51,"integrity":"sha512-SHZzBbfB9jKPUgrDZMjwRQ7x41frkiWYFoSxMjfBj/1DAMCxgYmoUxdwjg8o6QLtunqnioET928e85N/xn9JiQ==","signatures":[{"sig":"MEUCIQDar2+LvQGrX8sFcUb3XZxfMTjH9j9+V+FXxjhPzGfUXgIgCpYD6oa4BmUwWgnmReViOuIJ2/oFT3zYeEbSyYd7cK8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCMMQK8y790lckKZg2d3/DwLlMS/lG8AFd54f53DgXiiAIhANTZ7za7L1nWV1DHr/5P0J11SVZ7sh3QDPrdg6X2sycb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1801.21234f6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"21234f6e8f040b56271730e8ff5b29c5e0934b68","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1801.21234f6","@flighthq/types":"0.5.1-next.1801.21234f6","@flighthq/entity":"0.5.1-next.1801.21234f6","@flighthq/signals":"0.5.1-next.1801.21234f6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1801.21234f6_1790486420281_0.860572305023223","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1831.a0b57d4":{"name":"@flighthq/textshaper","version":"0.5.1-next.1831.a0b57d4","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1831.a0b57d4","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"8f7f73f578a6fabab9053cd75366934354408c13","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1831.a0b57d4.tgz","fileCount":51,"integrity":"sha512-uI0kmQ/E9NjPObsZ6UXk5NpZk67FpwbBJmJzUdSYUXvkZpqt44o0FinnJlPXW0vF14qZTKrhFnBoyKLHLRHWkA==","signatures":[{"sig":"MEUCIFjrXBFU9uZU5E4M/bSkoOBTC8vmVkw/dDGPpuHeTh3lAiEAjx+JYWR7zEgEGh5or/DuUFKCvZiKFBZ3tJg7RW1iSUw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDLjrkjspLVt/87Ki4mLf9s016/7Fxj89c5c3eLTOONFAIhAI8DvmWdInS97PrnZdjOOPG6e+i0gQL6guMIdJQq6/Tq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1831.a0b57d4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"a0b57d41beda1480a09f659e4750ea9d71415249","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1831.a0b57d4","@flighthq/types":"0.5.1-next.1831.a0b57d4","@flighthq/entity":"0.5.1-next.1831.a0b57d4","@flighthq/signals":"0.5.1-next.1831.a0b57d4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1831.a0b57d4_1790553588297_0.5332122300723225","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1850.5adb645":{"name":"@flighthq/textshaper","version":"0.5.1-next.1850.5adb645","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1850.5adb645","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"def773e223ae892d098de653f899f57fa688240b","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1850.5adb645.tgz","fileCount":51,"integrity":"sha512-LhrcR/wyj+D10wtrDCNVmMZpxGDwbEdezLS8vVeuNmQSfWJHO3JMmZkFFLXDdDdr4hivPyjUbhmwS3m0MweR/g==","signatures":[{"sig":"MEQCICbvronI9rPZhy+E83v/pb0mJIpZzaEzHbjjRGzAlgM0AiBEvP3jINmZAiuAdKS+y1iyXce4mOlXvm0X/pLrfEeHxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHp8SDbCzUsfgASLf6lkU3KisruTdFmSehrFBGkHfdGWAiAQl6HvsnZ4idZ+8KZ4s43RhML7raD3q07MP3rHBdKK9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1850.5adb645","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"5adb6452e4ef06da8814f178dbfa85856a092f4f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1850.5adb645","@flighthq/types":"0.5.1-next.1850.5adb645","@flighthq/entity":"0.5.1-next.1850.5adb645","@flighthq/signals":"0.5.1-next.1850.5adb645"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1850.5adb645_1790568820812_0.5995907860312555","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1892.cbd15bd":{"name":"@flighthq/textshaper","version":"0.5.1-next.1892.cbd15bd","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1892.cbd15bd","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"14061b8253a5cd8fb5e83a3358f5bdd54abe5e74","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1892.cbd15bd.tgz","fileCount":51,"integrity":"sha512-kxYlv+Ep1PqVsuLDn46rXIGWJbpRoV97AKV8gxcq2F6qYenQOxGAtdb7Go53WjS83oIllRcMkerMwhwipDo1pQ==","signatures":[{"sig":"MEUCIBsG70/j/cFD3RP17awUiMi31ogy/UtBQz928McabKqlAiEAso2lIPuK3lDhJY6PFcPf6vVrLMZihpSs7zognH5183g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDgT4/wf7A+oVzjmgLHzDg3Gge/OOa/ayWe0rSvHKxOCgIhAIig4b/WjVT8k5enBX48NCNDLBtuF59Ym7nW6cUCPZ36","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1892.cbd15bd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"cbd15bd13373265e8f6dcf0cb057a16aee812919","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1892.cbd15bd","@flighthq/types":"0.5.1-next.1892.cbd15bd","@flighthq/entity":"0.5.1-next.1892.cbd15bd","@flighthq/signals":"0.5.1-next.1892.cbd15bd"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1892.cbd15bd_1790599474171_0.22535486736335564","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1892.cbd15bd":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1892.cbd15bd","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1892.cbd15bd","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"6808a8bab2fc33ad0281cbf33b4b81ada316a833","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1892.cbd15bd.tgz","fileCount":51,"integrity":"sha512-ThzvjQqox0DkMnbGlT4lMDDwYhTD7yeIXhIRzXriCoJa8GYtDVF3E+eU7+aW0Ppe/fJf/wMQn9FViqrGKsUNGw==","signatures":[{"sig":"MEUCIQCYalbErK7huZAUPaWwOYGaGw2R6kQNj1mReOo5o48NiAIgftbLNjpZrkb+1z+fKOsNJDM6pOGnHtZ+1Ud5T+amrGU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDGfusRkD0H5Y3iPX1qaTpJflvJl4ScyibB2iyDMG+j5AiEA2nC8vbQcivawWljpS4TibAGEopQ1RphDdVxWYFXW9DY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1892.cbd15bd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"cbd15bd13373265e8f6dcf0cb057a16aee812919","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1892.cbd15bd","@flighthq/types":"0.5.1-edge.1892.cbd15bd","@flighthq/entity":"0.5.1-edge.1892.cbd15bd","@flighthq/signals":"0.5.1-edge.1892.cbd15bd"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1892.cbd15bd_1790600168543_0.5702887523246472","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1899.4b1311e":{"name":"@flighthq/textshaper","version":"0.5.1-next.1899.4b1311e","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1899.4b1311e","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"d52cda70f464f7045f356a10730a9323690828ed","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1899.4b1311e.tgz","fileCount":51,"integrity":"sha512-48NNGI7zgXDc58JI7+BO1BQwPBp8YDQ8oUeQnyda2po7J1X/CeE4IfeEeQV84hpjbf3d8W4f0X6uFiSqXONRhA==","signatures":[{"sig":"MEYCIQCcULk25FM48baCnbWvNEOJpTFt8+mGlhQg73nA3E5NdAIhAME2jnbFUM0pIx9I212mpIDU9vKwQpyU6HhyWrRZ+sAC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDjyCWKd6wTpoB6i+c/3BR4m/UNKFB1WrlMDYDOcTQ/rQIgcASYuINz7EvL/3jIgWrQ8xSWu67hnFXdjPOE/olYNI8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1899.4b1311e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"4b1311ec30f129daf0dab31c3059cb7ac12dd2de","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1899.4b1311e","@flighthq/types":"0.5.1-next.1899.4b1311e","@flighthq/entity":"0.5.1-next.1899.4b1311e","@flighthq/signals":"0.5.1-next.1899.4b1311e"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1899.4b1311e_1790630698738_0.6869699038006658","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1899.4b1311e":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1899.4b1311e","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1899.4b1311e","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"5905c62ccb62cb9786b76ffc9a51c54cdcce0c22","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1899.4b1311e.tgz","fileCount":51,"integrity":"sha512-IQtgLu0hGbqzn1cFCVVJgd/R40B5df5VZgpxsnk7YqzqJCpXsWl/SCSm4UN2TpnIENHlgu/MU3q59agA2EKsjw==","signatures":[{"sig":"MEUCIBG3kEkdyLfFx8KKJsDtnsxhO4KRdYdUabjeeIB3DY+CAiEAjy2BH9Z12hB9FKH6iVs2LRhYOSTccg/YwaTAoEOmwPY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDo5EP5CbkMn4ocAK+67oLUrCeiaJ5Ch1E6eNVfDZPzawIhAPN79+C6nylIU4McM9MkzUsJootUqVEMGKwBBMh5GGxa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1899.4b1311e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"4b1311ec30f129daf0dab31c3059cb7ac12dd2de","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1899.4b1311e","@flighthq/types":"0.5.1-edge.1899.4b1311e","@flighthq/entity":"0.5.1-edge.1899.4b1311e","@flighthq/signals":"0.5.1-edge.1899.4b1311e"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1899.4b1311e_1790631609148_0.911730125770206","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1903.956d5a5":{"name":"@flighthq/textshaper","version":"0.5.1-next.1903.956d5a5","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1903.956d5a5","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"4a1eee27163a997311f0f6e224f8590b2c74efe7","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1903.956d5a5.tgz","fileCount":51,"integrity":"sha512-ukpBiqSXCYd9B5DTIokrEG7AHgGmIbGz0KIhFFbDZofYErFQrfz73UjTGDj15yB0iFWb1w4Xv1PAmeOQyVdeSA==","signatures":[{"sig":"MEYCIQD/qKAKOEXdqMxP0h6XeDa6M7REDO4XcapUnZBUepq54QIhAPLrYWrAJ/LySFvsirftPYTRbq05aUjPEwxiwBsEWnuf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIACT0Gu/xtjqUyEpj3KPVr2KUGJZeuS66PeqY44VmcObAiBKHq9ZjvvC6EGotU5rbyYVy5mIiND11/NqltBkPqtH1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1903.956d5a5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"956d5a53eb1e420690b274e7c05edca23821d094","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1903.956d5a5","@flighthq/types":"0.5.1-next.1903.956d5a5","@flighthq/entity":"0.5.1-next.1903.956d5a5","@flighthq/signals":"0.5.1-next.1903.956d5a5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1903.956d5a5_1790658388493_0.45193209526561584","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1903.956d5a5":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1903.956d5a5","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1903.956d5a5","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"320475115ea8d8ace64fd501173672ba2bc2028d","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1903.956d5a5.tgz","fileCount":51,"integrity":"sha512-33niJ3i/NOGclxQlrBRXCJKnKVf9NclgTHAuCXz4o3+KphcReO4FwM+0HpUz5RJt7tUDtvu6DOCHvtsoKQVApw==","signatures":[{"sig":"MEYCIQClO/TGhaZrmfuv9RWGz84Y3wIrfpbzrlFKQEH1CnCQigIhAIAn9+ia5Qx9hi6bdzcFKapJzmlcHXIDkUAPHE5VybGB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD4seIOYptY7FaYBgt6vgIzdydIwa1OzupLYqHxJQDWXgIhAJVG8qMEJh6gVzMRqOBLw2k8fpUC9i0lQ4J5S77mqZFW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1903.956d5a5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"956d5a53eb1e420690b274e7c05edca23821d094","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1903.956d5a5","@flighthq/types":"0.5.1-edge.1903.956d5a5","@flighthq/entity":"0.5.1-edge.1903.956d5a5","@flighthq/signals":"0.5.1-edge.1903.956d5a5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1903.956d5a5_1790659179222_0.5263940980096438","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1906.1e09ca0":{"name":"@flighthq/textshaper","version":"0.5.1-next.1906.1e09ca0","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1906.1e09ca0","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"d2bd020e96c1ac24e3b4cdde9eef5061b5248d1c","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1906.1e09ca0.tgz","fileCount":51,"integrity":"sha512-TaNytjsSt1RVro0PwcqYnS1cwwfa+Cir68Db5yoJPq4BJEtdj/FECCmvh/p8j61ZNlmWvZc15RISdTb5fv1vow==","signatures":[{"sig":"MEYCIQDj9VzY27A/FVdSj3pi7w9hdHdxJ59nmiXxrNPj94Z4uAIhAKDmYx9DnVImZ55q0bSa6boeq1sdTA6v9wzdQWEo7Z46","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGvY0gXcZewSmB7kJiviuXUeRjBRNxDf59J+i4TopBP2AiA0RdrCRxveRhJBWaFblRhMTJKKcXRnLiGWVdpjZhoXDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1906.1e09ca0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"1e09ca02b760fa96a3c7f09d078419f6e75e8158","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1906.1e09ca0","@flighthq/types":"0.5.1-next.1906.1e09ca0","@flighthq/entity":"0.5.1-next.1906.1e09ca0","@flighthq/signals":"0.5.1-next.1906.1e09ca0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1906.1e09ca0_1790785010206_0.2862629322505703","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1908.309c1e7":{"name":"@flighthq/textshaper","version":"0.5.1-next.1908.309c1e7","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1908.309c1e7","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"e65c90820b1cfdfb8c7a8bbc58219961964feb85","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1908.309c1e7.tgz","fileCount":51,"integrity":"sha512-kNjN05ieb+SYVEIUO/qxtlRDS50Tl+Azvc6xMg2UZycKc8VusNLeEaFg2bOu6PDhpNHe/A9C2Wdo+/nckh492A==","signatures":[{"sig":"MEQCIBB4U1XawHN4AIzRklBtb6tEL7atiYc1hKIJKnjA1VHUAiBhFhiMab4s5WHkydIcZYZwNq4ckRp+WS9GkNvUoyuP3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDxjJPC4uki2kyzSXPKbNo8wg9kMmzyuUYTFeCpqHUMigIgaHTmineyJVyTnceMFhGrT8KumQhTF6wdv+tcWPfr1T0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1908.309c1e7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"309c1e7296b5e24f7199a317883af0e470e7b294","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-next.1908.309c1e7","@flighthq/types":"0.5.1-next.1908.309c1e7","@flighthq/entity":"0.5.1-next.1908.309c1e7","@flighthq/signals":"0.5.1-next.1908.309c1e7"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1908.309c1e7_1790785873226_0.9464423594395317","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1908.309c1e7":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1908.309c1e7","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1908.309c1e7","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"bef36477b92f7b5eaa3fd8d9573aa45f6740a927","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1908.309c1e7.tgz","fileCount":51,"integrity":"sha512-qCdiKe5IX+6XIAch5N6KD7gEI2H/v9KRHzzCuBtnE24FnP99KVu5nE35O9JfvGOq4eIPGz5AeDUI3ynTSrAM4A==","signatures":[{"sig":"MEUCIQCjRvw4Vj16chNbff2g7y9Z5DqhJFLCOQ8HkGqTZgbHKgIgJarP+pKkopHJBM0NAdaxU92hBMk9GXQ3J9Fb3HjOZEs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICX8VuDkO8G1/aye5mCxs5xnQDtSLeuGy/TvGx9pM9b0AiBp27EwZ4AGbylQD3MqWheV5YJSW7fzu6+6izY8lgVRLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1908.309c1e7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"309c1e7296b5e24f7199a317883af0e470e7b294","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1908.309c1e7","@flighthq/types":"0.5.1-edge.1908.309c1e7","@flighthq/entity":"0.5.1-edge.1908.309c1e7","@flighthq/signals":"0.5.1-edge.1908.309c1e7"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1908.309c1e7_1790786601481_0.7386625481239508","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1909.7bccf72":{"name":"@flighthq/textshaper","version":"0.5.1-next.1909.7bccf72","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1909.7bccf72","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"d8392172c8e3d6e58aecc4d128e97cf61e825ffe","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1909.7bccf72.tgz","fileCount":51,"integrity":"sha512-tPogv4/mTwtYC9XvrB9YHsqwKJZBnOG/cazrSHUYWSLOB0aYJxolcijZiGv50MEDNudlLTz058OGs6J5an3dkw==","signatures":[{"sig":"MEQCIDA0LFMQd7iZ5wqlk68ibhP7gMthmhTQV9vnA15aET6RAiBaxv1CegseqkqaPxVfm4onZ+bWiISQ88Rxyn1ot4mtXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDlbnwGludxtZjWBpXI8oI+owNcL38cACz0HZiiNYA3SQIhANbaytiNnCG26Q5or0EAUg34MKQSR+NZs+wuJb3M9dMR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1909.7bccf72","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"7bccf727ab75a84d3334e8d61a7f5716745d433f","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.9","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.3","dependencies":{"@flighthq/log":"0.5.1-next.1909.7bccf72","@flighthq/types":"0.5.1-next.1909.7bccf72","@flighthq/entity":"0.5.1-next.1909.7bccf72","@flighthq/signals":"0.5.1-next.1909.7bccf72"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1909.7bccf72_1790789913754_0.060733632731639675","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1910.85d85a3":{"name":"@flighthq/textshaper","version":"0.5.1-next.1910.85d85a3","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1910.85d85a3","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"0fb82d12c6448007d0599a2a138b3d9b42d7e2af","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1910.85d85a3.tgz","fileCount":51,"integrity":"sha512-fT0y4CeExu2zuKoROA0jaV1HCcVDf+JspyGmpRZ3Jj3H6et8wgojITBqI8PmJ6LZY3YXreOiCZVqwlV//QzCQQ==","signatures":[{"sig":"MEUCIBPKIfvuiKZERzJuJgvxbcgdZZo8xoOyLnBkG6yvKvp/AiEA0dtgK70YeShG0OU2MUQxQb7rV5/9bO9+rEse54D439c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCSSZMI374t4od0Atw/fukpvwjOFDuHOS3vLtfa43vWBQIgIWRwburPXm1m46eypXjp0CrzSxSF1/Y3+ZTPJxEDgKU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1910.85d85a3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"85d85a3b1f7cc95730b7a359bbb9bf6f8ec2e8f8","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.9","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.3","dependencies":{"@flighthq/log":"0.5.1-next.1910.85d85a3","@flighthq/types":"0.5.1-next.1910.85d85a3","@flighthq/entity":"0.5.1-next.1910.85d85a3","@flighthq/signals":"0.5.1-next.1910.85d85a3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1910.85d85a3_1790796609627_0.2553298113092417","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1910.85d85a3":{"name":"@flighthq/textshaper","version":"0.5.1-edge.1910.85d85a3","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-edge.1910.85d85a3","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"903ee43502a9cc4c482fe869db10627bd95a83e4","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1910.85d85a3.tgz","fileCount":51,"integrity":"sha512-9ATOCNeqQiYBIYDcQSAGteLYQvaciIO34evdgpsnCf0hRTto6kJlKV7GA+FNuA7OrLSZPgsnfs9H5VF6cVrk1g==","signatures":[{"sig":"MEQCIFPOrFtPH8TcGPeH3P5twb+WCEFKNkreDf2lCdnhyrcAAiB2a/CFNUbEsg4BHdy5q3IpS+X2qv9qUEkNXv/TMgqJIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBO8AYxP/0TiMMN1iWXLxs/3cyuAAcXMPfxYcZCEfZ/AAiEAqifREbC654vZpc1/Wu3qSBmA/m5I9A0mjx7AB70dWrU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1910.85d85a3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"85d85a3b1f7cc95730b7a359bbb9bf6f8ec2e8f8","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.8","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@flighthq/log":"0.5.1-edge.1910.85d85a3","@flighthq/types":"0.5.1-edge.1910.85d85a3","@flighthq/entity":"0.5.1-edge.1910.85d85a3","@flighthq/signals":"0.5.1-edge.1910.85d85a3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-edge.1910.85d85a3_1790797263479_0.5771366148955426","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-next.1912.a627849":{"name":"@flighthq/textshaper","version":"0.5.1-next.1912.a627849","author":{"name":"Joshua Granick and other contributors"},"license":"MIT","_id":"@flighthq/textshaper@0.5.1-next.1912.a627849","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"homepage":"https://github.com/flighthq/flight#readme","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"ca3fc3b863b7409272c426038647acbe7d0fd5d3","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-next.1912.a627849.tgz","fileCount":51,"integrity":"sha512-aHrw1Qif7yqm/N0nuQZ7Mc8mp2GKCQmdhgrGR0mlfD+lqWrfdxpOu84bjHqNqICT3uZ2rUDfb7zhSptXtnJfLw==","signatures":[{"sig":"MEYCIQDwawV/e/taYnDkYI0FfjnqiugZVufkRaVEDDlAEPsf1wIhAMbMDqtDb4t+EabIh+KjWNHjQ19D0zkkXwOOAFiaoOoT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBXe3QK3Hqnu9OJ126D/n+FSdoL9oby/3+dgyT+Dka97AiEA2kx9KtkMlC2Cma54gueNLmb7sm4xKxk7eIeuvyuloaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-next.1912.a627849","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"a62784923f3be814463286c9fb28edfe6ab15789","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.9","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"sideEffects":false,"_nodeVersion":"22.23.3","dependencies":{"@flighthq/log":"0.5.1-next.1912.a627849","@flighthq/types":"0.5.1-next.1912.a627849","@flighthq/entity":"0.5.1-next.1912.a627849","@flighthq/signals":"0.5.1-next.1912.a627849"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/textshaper_0.5.1-next.1912.a627849_1790860378771_0.42716813302350065","host":"s3://npm-registry-packages-npm-production"}},"0.5.1-edge.1912.a627849":{"_id":"@flighthq/textshaper@0.5.1-edge.1912.a627849","bugs":{"url":"https://github.com/flighthq/flight/issues"},"dist":{"shasum":"658c26bfeb4149e08b4c697bb2d324ef2a34d65c","tarball":"https://registry.npmjs.org/@flighthq/textshaper/-/textshaper-0.5.1-edge.1912.a627849.tgz","fileCount":51,"integrity":"sha512-HkNkRoxUVfcmmToAHZICs2vbou+gcBIiMpkE0Ua9m5h5xHQq2BrztBgm0sRmd7+3R8FBFcH6o2rZSJm7JtGt3w==","signatures":[{"sig":"MEUCIQCYSOIoRHO7ubJckfh+UKwaNKool3WxKLP73B2lt5xV6gIgHRhyk26svdDUMqFxUl/EiZjROCVG5sRF5Bk/znb4yXg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAe4ivQzoMh+6HeAKwnCW+lHNurS6czQN5kSJcISNJMkAiEAsn+IXJ+c99tcFKI4QWwIkbOISIE4n4jup9Eoxc74XOw="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flighthq%2ftextshaper@0.5.1-edge.1912.a627849","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93563},"main":"dist/index.js","name":"@flighthq/textshaper","type":"module","types":"dist/index.d.ts","author":{"name":"Joshua Granick and other contributors"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"a62784923f3be814463286c9fb28edfe6ab15789","license":"MIT","scripts":{"test":"vitest run --config vitest.config.ts","build":"tsc -b","clean":"tsc -b --clean","prepack":"npm run clean && npm run clean:dist && npm run build","clean:dist":"tsx ../../scripts/clean-package-dist.ts","test:watch":"vitest --watch --config vitest.config.ts"},"version":"0.5.1-edge.1912.a627849","_npmUser":{"name":"jgranick","email":"noreply@joshuagranick.com"},"homepage":"https://github.com/flighthq/flight#readme","repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"_npmVersion":"10.9.9","description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","directories":{},"maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"sideEffects":false,"_nodeVersion":"22.23.3","dependencies":{"@flighthq/log":"0.5.1-edge.1912.a627849","@flighthq/types":"0.5.1-edge.1912.a627849","@flighthq/entity":"0.5.1-edge.1912.a627849","@flighthq/signals":"0.5.1-edge.1912.a627849"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.3.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/textshaper_0.5.1-edge.1912.a627849_1790872438805_0.19394268010122362"}}},"time":{"created":"2026-07-10T06:06:31.010Z","modified":"2026-10-01T16:33:59.309Z","0.1.0":"2026-07-10T06:06:31.367Z","0.2.0":"2026-07-13T20:15:28.983Z","0.2.1-next.410.a23f189":"2026-07-20T19:54:50.489Z","0.2.1-next.423.3350e53":"2026-07-21T06:32:06.724Z","0.2.1-next.444.a313478":"2026-07-21T15:56:09.508Z","0.2.1-next.448.afbdd31":"2026-07-21T19:55:32.206Z","0.2.1-next.449.355834c":"2026-07-21T20:04:30.022Z","0.2.1-next.451.d9a4a4e":"2026-07-21T21:32:55.614Z","0.2.1-next.459.fb59cc5":"2026-07-21T21:41:35.376Z","0.2.1-next.530.a223ca9":"2026-07-23T14:29:41.483Z","0.2.1-next.585.c7219b8":"2026-07-23T21:33:03.780Z","0.2.1-next.624.d23e6a9":"2026-07-24T07:29:24.158Z","0.2.1-next.640.ec2ea9a":"2026-07-24T15:05:24.371Z","0.2.1-next.647.2252e02":"2026-07-24T17:31:52.831Z","0.2.1-next.652.c550eaa":"2026-07-24T18:05:03.441Z","0.2.1-next.666.4af7f8b":"2026-07-24T19:08:04.064Z","0.2.1-next.701.409c279":"2026-07-25T03:56:02.210Z","0.2.1-next.738.07b221d":"2026-07-25T05:19:30.792Z","0.2.1-next.840.857425c":"2026-07-26T00:54:31.302Z","0.2.1-next.841.373388f":"2026-07-26T06:07:56.926Z","0.3.0-next.906.07cea63":"2026-07-28T06:30:32.205Z","0.3.0-next.1021.f5f1ee0":"2026-07-30T15:29:47.391Z","0.3.0-next.1032.e2b99fc":"2026-07-30T18:37:20.256Z","0.3.0-next.1162.e90e518":"2026-07-30T23:20:28.965Z","0.3.0-next.1220.6982c21":"2026-07-31T13:56:10.315Z","0.3.0-next.1248.f867198":"2026-07-31T15:41:36.999Z","0.3.0-next.1272.222de94":"2026-07-31T17:12:07.698Z","0.3.0-next.1280.6369398":"2026-07-31T18:14:06.981Z","0.3.0-next.1297.43a5ef8":"2026-07-31T20:32:27.833Z","0.3.0-next.1299.b32cbdc":"2026-07-31T20:57:29.632Z","0.3.0-next.1315.1d4eb64":"2026-07-31T22:53:57.638Z","0.3.0-next.1383.c61de17":"2026-07-31T23:45:25.310Z","0.3.0-next.1392.f0bd0cc":"2026-08-01T00:48:17.835Z","0.3.0-next.1422.b585c0c":"2026-08-01T02:00:16.626Z","0.3.0-next.1435.f870241":"2026-08-01T03:03:13.898Z","0.3.0-next.1436.388ef5e":"2026-08-01T03:12:25.325Z","0.3.0-next.1445.14ca01c":"2026-08-01T03:56:56.519Z","0.3.0-next.1452.011a16e":"2026-08-01T05:25:08.113Z","0.3.0-next.1454.b17f8a5":"2026-08-01T06:01:13.847Z","0.3.0-next.1456.ace2107":"2026-08-01T14:21:08.179Z","0.3.0-next.1458.0c01b63":"2026-08-01T15:02:08.897Z","0.3.0-edge.1458.0c01b63":"2026-08-01T15:22:27.207Z","0.3.0-next.1460.2c18805":"2026-08-01T16:07:34.139Z","0.3.0-next.1463.b454aa8":"2026-08-02T00:01:27.948Z","0.3.0-next.1466.e0866d4":"2026-08-02T01:37:49.261Z","0.3.0-next.1473.098a860":"2026-08-02T04:29:08.505Z","0.3.0-next.1494.7333e82":"2026-08-02T05:39:39.397Z","0.3.0-next.1498.065f223":"2026-08-02T06:54:43.671Z","0.3.0-next.1511.9977321":"2026-08-02T16:26:30.979Z","0.3.0-next.1512.edc0fee":"2026-08-02T16:48:49.612Z","0.3.0-next.1514.a24d43f":"2026-08-02T17:01:39.853Z","0.3.0-next.1515.d4dc88e":"2026-08-02T17:04:47.138Z","0.3.0-next.1516.1b4fb2b":"2026-08-02T17:36:36.356Z","0.3.0-edge.1516.1b4fb2b":"2026-08-02T17:58:52.985Z","0.3.0-next.1529.90e58ad":"2026-08-02T18:22:12.340Z","0.3.0-next.1530.70058bd":"2026-08-02T18:51:53.396Z","0.3.0-next.1543.f490ae8":"2026-08-02T20:13:26.230Z","0.3.0-next.1560.03a2b36":"2026-08-02T20:28:16.447Z","0.3.0-next.1562.75af469":"2026-08-02T20:41:07.577Z","0.3.0-next.1566.dcdf1d3":"2026-08-02T20:53:57.609Z","0.3.0-next.1584.a68fe91":"2026-08-02T21:56:20.850Z","0.3.0-next.1585.17d10c4":"2026-08-02T22:28:55.556Z","0.3.0-next.1593.a47f94a":"2026-08-02T22:34:31.555Z","0.3.0-next.1595.4d49b41":"2026-08-02T22:43:55.403Z","0.3.0-next.1601.12b771e":"2026-08-02T23:26:03.998Z","0.3.0-next.1665.6235922":"2026-08-03T03:47:50.921Z","0.3.0-next.1669.5808974":"2026-08-03T04:25:32.172Z","0.3.0-next.1689.2810c05":"2026-08-03T05:57:28.552Z","0.3.0-next.1692.f1a7a9a":"2026-08-03T06:32:19.882Z","0.3.0-next.1702.8973fda":"2026-08-03T06:39:14.798Z","0.3.0-next.1704.8557784":"2026-08-03T06:50:12.215Z","0.3.0-next.1714.3bd86f1":"2026-08-04T18:55:36.197Z","0.3.0-next.1728.26853f6":"2026-08-04T19:53:58.243Z","0.3.0-next.1729.f927a3b":"2026-08-04T20:30:28.935Z","0.3.0-next.1781.5d072ef":"2026-08-05T00:02:04.820Z","0.3.0-next.1783.cd11ab1":"2026-08-05T00:24:54.642Z","0.3.0-next.1848.58f06fb":"2026-08-05T01:10:22.624Z","0.3.0-next.1849.a370765":"2026-08-05T01:16:11.678Z","0.3.0-next.1872.c2b1f7c":"2026-08-05T19:29:10.159Z","0.3.0-next.1883.9cd374b":"2026-08-06T00:13:24.618Z","0.3.0-next.1887.cad72aa":"2026-08-06T15:07:30.367Z","0.3.0":"2026-08-06T20:47:51.708Z","0.3.1-next.209.43ef1bc":"2026-08-07T21:03:10.035Z","0.3.1-next.320.fe56fc2":"2026-08-08T03:10:03.786Z","0.3.1-next.348.8115937":"2026-08-08T05:11:27.998Z","0.3.1-next.385.e32d957":"2026-08-08T08:56:40.594Z","0.3.1-next.401.5d59659":"2026-08-08T09:58:57.882Z","0.3.1-next.407.d03a0bb":"2026-08-09T17:50:19.893Z","0.3.1-next.409.5c00b00":"2026-08-10T04:14:12.580Z","0.3.1-next.425.a3192ab":"2026-08-10T04:28:35.339Z","0.3.1-next.493.539802d":"2026-08-10T20:01:11.085Z","0.3.1-next.509.c235802":"2026-08-10T20:41:40.652Z","0.3.1-next.575.c1f8e01":"2026-08-11T02:43:04.018Z","0.3.1-next.616.aa7ae7f":"2026-08-11T15:08:32.294Z","0.3.1-next.617.89baf58":"2026-08-11T15:12:29.418Z","0.3.1-next.625.675880d":"2026-08-11T15:30:54.193Z","0.3.1-next.703.e259040":"2026-08-12T18:34:07.929Z","0.3.1-next.704.69286f6":"2026-08-12T18:49:29.973Z","0.3.1-next.733.f1845ac":"2026-08-12T19:31:29.204Z","0.3.1-next.780.12e6944":"2026-08-12T23:29:55.582Z","0.3.1-next.794.0bfc53e":"2026-08-13T00:41:25.259Z","0.3.1-next.836.609b031":"2026-08-13T01:20:08.277Z","0.3.1-next.837.46a9259":"2026-08-13T02:24:37.766Z","0.3.1-next.845.b5a7c82":"2026-08-13T03:02:38.205Z","0.3.1-next.847.2e6f8bf":"2026-08-13T03:59:51.815Z","0.3.1-next.861.5a56d7a":"2026-08-13T04:02:20.483Z","0.3.1-next.887.9f59a84":"2026-08-13T06:23:00.791Z","0.3.1-next.948.85d9f30":"2026-08-13T15:34:50.768Z","0.3.1-next.970.9691e7b":"2026-08-13T15:51:36.969Z","0.3.1-next.971.33e20ba":"2026-08-13T16:02:23.035Z","0.3.1-next.975.01aea94":"2026-08-13T16:45:54.397Z","0.3.1-next.996.06087b5":"2026-08-13T20:31:58.552Z","0.3.1-next.1041.35b950c":"2026-08-14T00:06:08.413Z","0.3.1-next.1050.9114695":"2026-08-14T01:42:08.647Z","0.3.1-next.1055.12501ae":"2026-08-14T03:49:26.939Z","0.3.1-next.1076.4f48950":"2026-08-14T16:04:08.309Z","0.3.1-next.1079.38fd007":"2026-08-14T18:09:21.658Z","0.3.1-next.1084.04b8d9a":"2026-08-14T19:03:24.031Z","0.3.1-next.1086.d0d073b":"2026-08-14T19:52:27.365Z","0.3.1-next.1088.2bde749":"2026-08-14T20:28:00.680Z","0.3.1-next.1090.6e79e6c":"2026-08-14T20:33:06.651Z","0.3.1-next.1091.b7aa6f2":"2026-08-14T20:37:07.931Z","0.3.1-next.1095.16f1704":"2026-08-14T20:55:47.853Z","0.3.1-next.1096.4ddf1ab":"2026-08-14T21:08:56.556Z","0.3.1-next.1097.b8126d8":"2026-08-14T21:14:23.920Z","0.3.1-next.1099.671eaf4":"2026-08-14T21:18:57.781Z","0.3.1-next.1104.8453d3d":"2026-08-14T21:53:50.115Z","0.3.1-next.1107.0b5d347":"2026-08-14T22:41:07.654Z","0.3.1-next.1108.66cc86c":"2026-08-14T22:59:39.172Z","0.3.1-next.1112.dea9723":"2026-08-15T01:50:33.295Z","0.3.1-next.1113.9cffbdf":"2026-08-15T02:22:55.304Z","0.3.1-next.1114.3ce681d":"2026-08-15T03:15:22.485Z","0.3.1-next.1116.866c771":"2026-08-15T05:47:52.990Z","0.3.1-next.1162.1c7f42e":"2026-08-16T15:16:08.715Z","0.3.1-next.1165.285e507":"2026-08-16T21:38:31.052Z","0.3.1-next.1170.8a733e4":"2026-08-16T23:19:18.936Z","0.3.1-next.1191.e999f6c":"2026-08-17T09:44:55.059Z","0.3.1-next.1217.5f07972":"2026-08-17T18:28:36.968Z","0.3.1-next.1240.e41e1f0":"2026-08-17T20:45:41.364Z","0.4.0-next.1261.f361161":"2026-08-17T22:36:23.760Z","0.4.0-next.1263.aa14a22":"2026-08-17T22:54:13.125Z","0.4.0-next.1287.1dae9df":"2026-08-18T01:00:43.887Z","0.4.0-next.1290.99fd889":"2026-08-18T01:23:11.425Z","0.4.0-next.1294.03b2010":"2026-08-18T02:33:28.907Z","0.4.0-next.1296.dfa990a":"2026-08-18T04:22:21.511Z","0.4.0-next.1299.541fadc":"2026-08-18T06:19:34.518Z","0.4.0-next.1350.7431bb1":"2026-08-18T15:31:56.408Z","0.4.0-next.1351.6ec45d6":"2026-08-18T15:48:37.109Z","0.4.0-next.1354.5181c5f":"2026-08-18T18:14:35.409Z","0.4.0-next.1356.924bb91":"2026-08-18T18:35:59.498Z","0.4.0-next.1357.b87b5c1":"2026-08-18T18:38:21.788Z","0.4.0-next.1362.3734bd4":"2026-08-18T18:49:17.137Z","0.4.0-next.1383.b8eb497":"2026-08-18T19:11:24.268Z","0.4.0-next.1385.dc129fd":"2026-08-18T19:40:51.912Z","0.4.0-next.1390.ca3ba2b":"2026-08-18T20:26:27.159Z","0.4.0-next.1391.ef8547e":"2026-08-18T20:29:05.474Z","0.4.0-next.1392.ae73a44":"2026-08-18T22:11:14.640Z","0.4.0-next.1396.66c9814":"2026-08-18T23:29:25.548Z","0.4.0-next.1398.776fd7a":"2026-08-18T23:31:32.947Z","0.4.0-next.1399.9d20d2e":"2026-08-18T23:58:14.890Z","0.4.0-next.1404.4936e90":"2026-08-19T01:18:16.122Z","0.4.0-next.1405.d7484cf":"2026-08-19T01:20:34.804Z","0.4.0-next.1410.a69907a":"2026-08-19T05:49:23.608Z","0.4.0-next.1412.05a7272":"2026-08-19T06:23:08.533Z","0.4.0-next.1415.00028b0":"2026-08-19T06:37:53.199Z","0.4.0-next.1416.ef4fae7":"2026-08-19T16:13:30.526Z","0.4.0-next.1487.e25e95d":"2026-08-19T23:32:09.409Z","0.4.0-next.1488.43bcb37":"2026-08-20T04:43:25.391Z","0.4.0-next.1584.a8ddd61":"2026-08-20T18:28:40.774Z","0.4.0-next.1585.bf131c8":"2026-08-20T18:39:41.742Z","0.4.0-next.1602.af48ed1":"2026-08-20T23:14:57.933Z","0.4.0-next.1652.39f08fd":"2026-08-21T02:57:45.641Z","0.4.0-next.1663.d9c5746":"2026-08-21T04:49:51.864Z","0.4.0-next.1694.598ef6f":"2026-08-21T05:04:46.485Z","0.4.0-next.1695.181dea5":"2026-08-21T06:19:27.034Z","0.4.0-next.1696.93f6f63":"2026-08-21T06:27:29.299Z","0.4.0-next.1702.61a7a7c":"2026-08-21T07:14:23.479Z","0.4.0-next.1703.b82d313":"2026-08-21T07:44:52.907Z","0.4.0-next.1704.9eb98e1":"2026-08-21T08:30:53.137Z","0.4.0-next.1716.1979cc9":"2026-08-21T09:43:08.628Z","0.4.0-next.1717.9d6a20b":"2026-08-21T10:24:59.904Z","0.4.0-next.1725.752ca79":"2026-08-21T11:18:17.558Z","0.4.0-next.1728.f69160b":"2026-08-21T12:02:16.767Z","0.4.0-next.1749.d81a21c":"2026-08-21T12:40:21.612Z","0.4.0-next.1750.13ec8b1":"2026-08-21T15:45:27.730Z","0.4.0-next.1751.b3eea5f":"2026-08-21T15:59:10.790Z","0.4.0-next.1752.f250cb9":"2026-08-21T16:33:42.092Z","0.4.0-next.1763.f98ae25":"2026-08-21T16:38:46.500Z","0.4.0-next.1771.f4d15c3":"2026-08-21T18:51:29.376Z","0.4.0-next.1809.9b3b71b":"2026-08-21T19:40:31.432Z","0.4.0-next.1811.dde7eb1":"2026-08-21T19:56:05.584Z","0.4.0-next.1815.e47cc3c":"2026-08-21T20:30:21.813Z","0.4.0-next.1821.efb1cbc":"2026-08-21T22:34:23.888Z","0.4.0-next.1827.9db114b":"2026-08-21T23:56:23.601Z","0.4.0-next.1836.147ae1e":"2026-08-22T01:39:05.526Z","0.4.0-next.1884.6a2d46f":"2026-08-22T07:48:19.425Z","0.4.0-next.1888.e9e80b4":"2026-08-24T05:29:06.604Z","0.4.0-next.1892.a0b519a":"2026-08-24T10:53:41.532Z","0.4.0-next.1896.60d766c":"2026-08-24T11:35:22.837Z","0.4.0-next.1898.266773a":"2026-08-24T12:39:11.097Z","0.4.0-next.1903.50bfa67":"2026-08-24T16:12:14.792Z","0.4.0-next.1908.751021c":"2026-08-24T21:37:29.837Z","0.4.0-edge.1908.751021c":"2026-08-24T21:45:21.295Z","0.4.0-next.1909.c102f22":"2026-08-24T21:46:14.734Z","0.4.0-edge.1909.c102f22":"2026-08-24T21:53:11.764Z","0.4.0-next.1917.1b88fee":"2026-08-25T21:03:11.360Z","0.4.0-next.1920.b93ad0f":"2026-08-25T23:13:33.971Z","0.4.0-edge.1920.b93ad0f":"2026-08-25T23:23:44.342Z","0.4.0-next.1921.0a61bdb":"2026-08-25T23:43:11.494Z","0.4.0-edge.1921.0a61bdb":"2026-08-25T23:51:19.740Z","0.4.0-next.1932.1ef883a":"2026-08-26T19:11:06.410Z","0.4.0-edge.1932.1ef883a":"2026-08-26T19:19:50.520Z","0.4.0-next.1933.e4809f4":"2026-08-26T20:13:44.911Z","0.4.0-edge.1933.e4809f4":"2026-08-26T20:20:43.796Z","0.4.0-next.1935.74c34fe":"2026-08-26T20:50:21.645Z","0.4.0-edge.1935.74c34fe":"2026-08-26T21:01:24.170Z","0.4.0-next.1936.bc924d7":"2026-08-26T21:32:39.227Z","0.4.0-edge.1936.bc924d7":"2026-08-26T21:35:47.746Z","0.4.0-next.1937.0d089b3":"2026-08-26T22:23:58.182Z","0.4.0-edge.1937.0d089b3":"2026-08-26T22:31:12.236Z","0.4.0-next.1939.481bde5":"2026-08-27T00:20:16.608Z","0.4.0-edge.1939.481bde5":"2026-08-27T00:26:59.614Z","0.4.0-next.1940.b8a4265":"2026-08-27T01:09:16.963Z","0.4.0-next.1941.1d7f2bd":"2026-08-27T01:30:01.965Z","0.4.0-edge.1941.1d7f2bd":"2026-08-27T01:37:08.363Z","0.4.0-next.1943.b4c3e61":"2026-08-27T01:48:11.633Z","0.5.0-next.1944.cd6b6e7":"2026-08-27T01:54:08.639Z","0.4.0-edge.1943.b4c3e61":"2026-08-27T01:55:53.013Z","0.5.0-edge.1944.cd6b6e7":"2026-08-27T02:02:35.034Z","0.4.0":"2026-08-27T02:03:07.087Z","0.5.1-next.597.ab004dd":"2026-08-31T06:58:55.289Z","0.5.1-edge.597.ab004dd":"2026-08-31T07:06:49.199Z","0.5.1-next.601.e6e16ba":"2026-08-31T07:59:03.655Z","0.5.1-next.638.d4dbd4e":"2026-08-31T16:32:54.522Z","0.5.1-edge.638.d4dbd4e":"2026-08-31T16:42:49.440Z","0.5.1-next.640.24b4c62":"2026-08-31T18:15:21.197Z","0.5.1-edge.640.24b4c62":"2026-08-31T18:23:07.764Z","0.5.1-next.650.5d3df0b":"2026-09-01T00:01:22.750Z","0.5.1-edge.650.5d3df0b":"2026-09-01T00:09:30.799Z","0.5.1-next.654.b54779d":"2026-09-01T03:38:41.596Z","0.5.1-edge.654.b54779d":"2026-09-01T03:46:05.238Z","0.5.1-next.658.9cb44d7":"2026-09-01T19:18:19.443Z","0.5.1-edge.658.9cb44d7":"2026-09-01T19:26:19.649Z","0.5.1-next.685.f72fc7f":"2026-09-02T01:11:50.272Z","0.5.1-edge.685.f72fc7f":"2026-09-02T01:21:40.018Z","0.5.1-next.693.478551c":"2026-09-02T03:45:43.106Z","0.5.1-edge.693.478551c":"2026-09-02T03:55:11.063Z","0.5.1-next.704.19c91ec":"2026-09-02T21:28:43.219Z","0.5.1-next.729.2aeb707":"2026-09-03T01:57:19.408Z","0.5.1-next.730.f29a5aa":"2026-09-03T03:06:41.849Z","0.5.1-edge.730.f29a5aa":"2026-09-03T03:15:43.403Z","0.5.1-next.731.0ae0aa4":"2026-09-03T03:18:22.327Z","0.5.1-edge.731.0ae0aa4":"2026-09-03T03:28:37.707Z","0.5.1-next.743.8d09db1":"2026-09-03T09:14:46.222Z","0.5.1-edge.743.8d09db1":"2026-09-03T09:22:24.971Z","0.5.1-next.799.62ef0c7":"2026-09-03T14:56:28.438Z","0.5.1-edge.799.62ef0c7":"2026-09-03T15:04:47.671Z","0.5.1-next.815.cc08b93":"2026-09-03T18:46:19.089Z","0.5.1-next.820.97b3830":"2026-09-03T21:12:20.953Z","0.5.1-next.903.f434bc2":"2026-09-04T19:47:25.868Z","0.5.1-next.904.b545d9c":"2026-09-04T20:46:57.409Z","0.5.1-next.905.5fbf787":"2026-09-04T21:07:15.179Z","0.5.1-next.906.419e5c9":"2026-09-04T22:08:57.097Z","0.5.1-next.908.b072fbc":"2026-09-04T23:27:01.097Z","0.5.1-next.909.a5d1857":"2026-09-04T23:35:29.789Z","0.5.1-edge.909.a5d1857":"2026-09-04T23:45:14.912Z","0.5.1-next.911.32a089f":"2026-09-05T05:18:32.356Z","0.5.1-edge.911.32a089f":"2026-09-05T05:25:20.870Z","0.5.1-next.912.289aaa0":"2026-09-05T05:49:25.380Z","0.5.1-edge.912.289aaa0":"2026-09-05T05:54:43.859Z","0.5.1-next.914.ed01add":"2026-09-05T17:54:14.971Z","0.5.1-edge.914.ed01add":"2026-09-05T18:02:31.535Z","0.5.1-next.915.d4da7e7":"2026-09-05T18:21:31.869Z","0.5.1-edge.915.d4da7e7":"2026-09-05T18:28:14.397Z","0.5.1-next.919.354c575":"2026-09-05T23:11:46.322Z","0.5.1-edge.919.354c575":"2026-09-05T23:21:45.743Z","0.5.1-next.920.da8f530":"2026-09-06T20:24:40.933Z","0.5.1-edge.920.da8f530":"2026-09-06T20:33:49.021Z","0.5.1-next.973.788d3d7":"2026-09-08T20:20:07.479Z","0.5.1-next.1017.13841a8":"2026-09-09T04:15:40.418Z","0.5.1-next.1019.1274ec5":"2026-09-09T06:15:26.319Z","0.5.1-edge.1019.1274ec5":"2026-09-09T06:22:36.339Z","0.5.1-next.1047.858b9b6":"2026-09-09T17:01:28.813Z","0.5.1-edge.1047.858b9b6":"2026-09-09T17:06:41.525Z","0.5.1-next.1050.0bd43cc":"2026-09-09T21:16:59.743Z","0.5.1-next.1051.65889a1":"2026-09-09T21:56:02.759Z","0.5.1-edge.1051.65889a1":"2026-09-09T22:06:07.765Z","0.5.1-next.1052.ea38f97":"2026-09-10T04:15:46.922Z","0.5.1-edge.1052.ea38f97":"2026-09-10T04:20:42.588Z","0.5.1-next.1056.4945b81":"2026-09-10T17:17:07.113Z","0.5.1-edge.1056.4945b81":"2026-09-10T17:26:12.908Z","0.5.1-next.1058.751c53a":"2026-09-10T22:38:57.755Z","0.5.1-next.1059.c56d3cd":"2026-09-10T22:41:09.249Z","0.5.1-edge.1058.751c53a":"2026-09-10T22:44:41.542Z","0.5.1-edge.1059.c56d3cd":"2026-09-10T22:47:41.895Z","0.5.1-next.1066.36fe89b":"2026-09-11T06:51:09.761Z","0.5.1-next.1069.554a2ac":"2026-09-11T07:35:41.619Z","0.5.1-next.1197.6a425ce":"2026-09-12T19:25:36.898Z","0.5.1-next.1201.9b49dee":"2026-09-12T20:42:43.620Z","0.5.1-next.1202.e31f126":"2026-09-12T21:44:49.729Z","0.5.1-next.1204.e33a1ac":"2026-09-12T23:35:03.319Z","0.5.1-next.1225.129b76d":"2026-09-13T03:25:29.562Z","0.5.1-next.1244.12290e1":"2026-09-13T08:30:56.570Z","0.5.1-next.1251.918ea64":"2026-09-13T15:41:03.028Z","0.5.1-next.1252.15e4611":"2026-09-13T15:59:03.082Z","0.5.1-next.1253.6fe252c":"2026-09-13T21:24:51.795Z","0.5.1-next.1254.2ab4a06":"2026-09-13T23:13:27.265Z","0.5.1-next.1257.b2a4509":"2026-09-14T05:29:43.118Z","0.5.1-next.1295.2b6bfa3":"2026-09-14T20:22:39.303Z","0.5.1-next.1344.b88acc1":"2026-09-15T06:10:02.998Z","0.5.1-next.1345.0995dc5":"2026-09-15T06:46:18.751Z","0.5.1-next.1347.54f97d8":"2026-09-15T08:31:33.932Z","0.5.1-next.1348.e71a747":"2026-09-15T09:37:08.029Z","0.5.1-next.1349.05b053d":"2026-09-15T10:44:39.057Z","0.5.1-edge.1349.05b053d":"2026-09-15T10:50:55.418Z","0.5.1-next.1350.8ce488b":"2026-09-15T16:29:28.955Z","0.5.1-edge.1350.8ce488b":"2026-09-15T16:36:34.367Z","0.5.1-next.1370.903f328":"2026-09-16T05:54:33.963Z","0.5.1-edge.1370.903f328":"2026-09-16T05:59:15.971Z","0.5.1-next.1404.457d1da":"2026-09-17T06:20:02.014Z","0.5.1-next.1405.69d9356":"2026-09-17T06:47:42.143Z","0.5.1-edge.1405.69d9356":"2026-09-17T15:43:18.478Z","0.5.1-next.1410.b534771":"2026-09-17T18:42:47.844Z","0.5.1-edge.1410.b534771":"2026-09-17T18:53:08.589Z","0.5.1-next.1450.5738463":"2026-09-19T01:01:16.887Z","0.5.1-next.1462.5a251b6":"2026-09-19T17:50:54.795Z","0.5.1-edge.1462.5a251b6":"2026-09-19T18:02:35.407Z","0.5.1-next.1467.7e2fc7d":"2026-09-19T20:38:50.253Z","0.5.1-edge.1467.7e2fc7d":"2026-09-19T20:48:10.816Z","0.5.1-next.1468.61b1d9d":"2026-09-19T21:21:46.718Z","0.5.1-edge.1468.61b1d9d":"2026-09-19T21:31:42.732Z","0.5.1-next.1471.4e82419":"2026-09-20T06:36:31.724Z","0.5.1-edge.1471.4e82419":"2026-09-20T06:46:30.289Z","0.5.1-next.1505.5790c72":"2026-09-20T10:54:22.132Z","0.5.1-next.1520.4887418":"2026-09-20T15:29:54.277Z","0.5.1-next.1523.c47f79f":"2026-09-20T16:28:10.895Z","0.5.1-next.1533.2910b54":"2026-09-20T18:51:08.326Z","0.5.1-next.1538.09885fb":"2026-09-21T06:49:45.655Z","0.5.1-next.1541.b94031c":"2026-09-21T07:11:22.413Z","0.5.1-next.1543.41f4a99":"2026-09-21T07:20:41.766Z","0.5.1-next.1545.a3a19e0":"2026-09-21T07:41:45.964Z","0.5.1-edge.1545.a3a19e0":"2026-09-21T07:53:43.749Z","0.5.1-next.1556.ff9e615":"2026-09-21T22:02:21.590Z","0.5.1-next.1584.db3c393":"2026-09-22T05:22:13.071Z","0.5.1-next.1629.669e7c5":"2026-09-23T05:16:55.020Z","0.5.1-next.1669.c9827a8":"2026-09-23T19:46:46.291Z","0.5.1-next.1680.bdc44c6":"2026-09-24T02:20:35.424Z","0.5.1-next.1681.3f21b44":"2026-09-24T04:33:59.621Z","0.5.1-next.1682.f1470fe":"2026-09-24T05:04:55.338Z","0.5.1-next.1685.dc0e23a":"2026-09-24T15:08:46.809Z","0.5.1-edge.1685.dc0e23a":"2026-09-24T15:22:57.327Z","0.5.1-next.1687.b63c819":"2026-09-24T17:36:54.870Z","0.5.1-edge.1687.b63c819":"2026-09-24T17:46:11.962Z","0.5.1-next.1692.64cda40":"2026-09-24T23:57:07.735Z","0.5.1-edge.1692.64cda40":"2026-09-25T00:06:19.888Z","0.5.1-next.1694.112d897":"2026-09-25T02:14:28.734Z","0.5.1-next.1700.cefb2f9":"2026-09-25T03:01:30.847Z","0.5.1-next.1703.1905242":"2026-09-25T08:09:22.395Z","0.5.1-next.1704.1832e8b":"2026-09-25T09:02:57.957Z","0.5.1-edge.1704.1832e8b":"2026-09-25T09:11:38.839Z","0.5.1-next.1710.81c05dd":"2026-09-25T17:13:48.609Z","0.5.1-next.1717.f605ef3":"2026-09-25T19:16:36.131Z","0.5.1-next.1723.553fc7a":"2026-09-25T21:28:31.559Z","0.5.1-next.1724.c250cb4":"2026-09-25T23:07:25.850Z","0.5.1-next.1725.30f1dd0":"2026-09-25T23:49:50.513Z","0.5.1-next.1728.e0a1ceb":"2026-09-26T05:50:04.788Z","0.5.1-next.1801.21234f6":"2026-09-27T05:20:20.374Z","0.5.1-next.1831.a0b57d4":"2026-09-27T23:59:48.395Z","0.5.1-next.1850.5adb645":"2026-09-28T04:13:40.891Z","0.5.1-next.1892.cbd15bd":"2026-09-28T12:44:34.259Z","0.5.1-edge.1892.cbd15bd":"2026-09-28T12:56:08.636Z","0.5.1-next.1899.4b1311e":"2026-09-28T21:24:58.824Z","0.5.1-edge.1899.4b1311e":"2026-09-28T21:40:09.246Z","0.5.1-next.1903.956d5a5":"2026-09-29T05:06:28.585Z","0.5.1-edge.1903.956d5a5":"2026-09-29T05:19:39.324Z","0.5.1-next.1906.1e09ca0":"2026-09-30T16:16:50.303Z","0.5.1-next.1908.309c1e7":"2026-09-30T16:31:13.302Z","0.5.1-edge.1908.309c1e7":"2026-09-30T16:43:21.565Z","0.5.1-next.1909.7bccf72":"2026-09-30T17:38:33.847Z","0.5.1-next.1910.85d85a3":"2026-09-30T19:30:09.709Z","0.5.1-edge.1910.85d85a3":"2026-09-30T19:41:03.556Z","0.5.1-next.1912.a627849":"2026-10-01T13:12:58.843Z","0.5.1-edge.1912.a627849":"2026-10-01T16:33:58.892Z"},"bugs":{"url":"https://github.com/flighthq/flight/issues"},"author":{"name":"Joshua Granick and other contributors"},"license":"MIT","homepage":"https://github.com/flighthq/flight#readme","repository":{"url":"git+https://github.com/flighthq/flight.git","type":"git","directory":"packages/textshaper"},"description":"Text-shaping seam: measure/shape text into advances over a swappable backend (canvas default, HarfBuzz future)","maintainers":[{"name":"jgranick","email":"noreply@joshuagranick.com"}],"readme":"","readmeFilename":""}