{"_id":"@alwatr/embedded-data","_rev":"19-e229bd8324ec29819fa048d84a1c95d9","name":"@alwatr/embedded-data","dist-tags":{"latest":"10.2.0"},"versions":{"9.19.0":{"name":"@alwatr/embedded-data","version":"9.19.0","keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"author":{"url":"https://ali.mihandoost.com","name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com"},"license":"MPL-2.0","_id":"@alwatr/embedded-data@9.19.0","maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"dist":{"shasum":"12300c3b1525fa6ed749e86affd36ca899520cf9","tarball":"https://registry.npmjs.org/@alwatr/embedded-data/-/embedded-data-9.19.0.tgz","fileCount":11,"integrity":"sha512-LWk1eXPApsj9wOkE9X7oyPWFEoy3iDYnaa2RTw/YH/rtaXiWZFjx0oUb+NQzYktsqTZacy/dImbC1K1dyFR5aQ==","signatures":[{"sig":"MEUCIDuyuyIxiBMU2LKZvgY7a/Nrj0jzUWjI7wHsSWZKYc1RAiEAirE78KOh02uh74wpJFkQ/WxlcOEdtMz5ByEuDM0kyrg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45976},"type":"module","exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js","default":"./dist/main.js"}},"gitHead":"20106a8e95925e2b6f895325afe1c7b7c263e2cc","scripts":{"b":"bun run build","t":"bun run test","w":"bun run watch","cl":"bun run clean","lint":"eslint src/ --ext .ts","test":"ALWATR_DEBUG=0 bun test","build":"bun run build:ts && bun run build:es","clean":"rm -rfv dist *.tsbuildinfo","watch":"bun run watch:ts & bun run watch:es","format":"prettier --write \"src/**/*.ts\"","build:es":"nano-build --preset=module src/main.ts","build:ts":"tsc --build","watch:es":"bun run build:es --watch","watch:ts":"bun run build:ts --watch --preserveWatchOutput"},"_npmUser":{"name":"alimd","email":"ali.mihan.doost@gmail.com"},"repository":{"url":"git+https://github.com/Alwatr/alwatr.git","type":"git","directory":"pkg/nanolib/embedded-data"},"_npmVersion":"lerna/5.2.0/node@v20.20.2+x64 (linux)","description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@alwatr/logger":"9.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@alwatr/standard":"9.16.0","@alwatr/nano-build":"9.14.0","@alwatr/type-helper":"9.14.0","@happy-dom/global-registrator":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/embedded-data_9.19.0_1777402486046_0.10631192139864898","host":"s3://npm-registry-packages-npm-production"}},"9.19.1":{"name":"@alwatr/embedded-data","version":"9.19.1","keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"author":{"url":"https://ali.mihandoost.com","name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com"},"license":"MPL-2.0","_id":"@alwatr/embedded-data@9.19.1","maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"dist":{"shasum":"8a7263b13842e45635c6b3af1915118ae3787d96","tarball":"https://registry.npmjs.org/@alwatr/embedded-data/-/embedded-data-9.19.1.tgz","fileCount":11,"integrity":"sha512-EUEnIJiUJBycrXmzDPgLl4bNJRBso3IOuPGXwCPnkWGSaijquzFZMrLkGvla++478zLyzXwxZ6o8vVNNxSTZBA==","signatures":[{"sig":"MEYCIQDnTdCf/MowyxgrZ4jZvzqqpddBoW67g/59TuZDd7RPwQIhAJ0qbyGQ5QvP4ON1TxHesGHZpNntpUeO4sJ37QFBDKbR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45735},"type":"module","exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js","default":"./dist/main.js"}},"gitHead":"63f91e7a209c8d38d53b3042e0301941b231411b","scripts":{"b":"bun run build","t":"bun run test","w":"bun run watch","cl":"bun run clean","lint":"eslint src/ --ext .ts","test":"ALWATR_DEBUG=0 bun test","build":"bun run build:ts && bun run build:es","clean":"rm -rfv dist *.tsbuildinfo","watch":"bun run watch:ts & bun run watch:es","format":"prettier --write \"src/**/*.ts\"","build:es":"nano-build --preset=module src/main.ts","build:ts":"tsc --build","watch:es":"bun run build:es --watch","watch:ts":"bun run build:ts --watch --preserveWatchOutput"},"_npmUser":{"name":"alimd","email":"ali.mihan.doost@gmail.com"},"repository":{"url":"git+https://github.com/Alwatr/alwatr.git","type":"git","directory":"pkg/nanolib/embedded-data"},"_npmVersion":"lerna/5.2.0/node@v20.20.2+x64 (linux)","description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@alwatr/logger":"9.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@alwatr/standard":"9.16.0","@alwatr/nano-build":"9.14.0","@alwatr/type-helper":"9.14.0","@happy-dom/global-registrator":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/embedded-data_9.19.1_1777559152144_0.2545634973417781","host":"s3://npm-registry-packages-npm-production"}},"9.20.1":{"name":"@alwatr/embedded-data","version":"9.20.1","keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"author":{"url":"https://ali.mihandoost.com","name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com"},"license":"MPL-2.0","_id":"@alwatr/embedded-data@9.20.1","maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"dist":{"shasum":"5489bae62ecb52cea8d515f4be6c6118579c5c0f","tarball":"https://registry.npmjs.org/@alwatr/embedded-data/-/embedded-data-9.20.1.tgz","fileCount":11,"integrity":"sha512-IqMckjJAzWzkZwj117EK2cTE9zHQ8kyHLctYatv2r74d24BcU/PS2TALaeWiIZH1NfklKfHDxTscino78dVBQA==","signatures":[{"sig":"MEQCIBF9Bk6wJSnjNwHEn2odKsuiMUqUeRjo7dQSVlDtX/IbAiBV2NHW8D1Rk9Kw3HpSWjAVLlREUNsHvpayjmiC9K+uvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45735},"type":"module","exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js","default":"./dist/main.js"}},"gitHead":"73461cfe9ed6d5f18f606d585057203103ea05fa","scripts":{"b":"bun run build","t":"bun run test","w":"bun run watch","cl":"bun run clean","lint":"eslint src/ --ext .ts","test":"ALWATR_DEBUG=0 bun test","build":"bun run build:ts && bun run build:es","clean":"rm -rfv dist *.tsbuildinfo","watch":"bun run watch:ts & bun run watch:es","format":"prettier --write \"src/**/*.ts\"","build:es":"nano-build --preset=module src/main.ts","build:ts":"tsc --build","watch:es":"bun run build:es --watch","watch:ts":"bun run build:ts --watch --preserveWatchOutput"},"_npmUser":{"name":"alimd","email":"ali.mihan.doost@gmail.com"},"repository":{"url":"git+https://github.com/Alwatr/alwatr.git","type":"git","directory":"pkg/nanolib/embedded-data"},"_npmVersion":"lerna/5.2.0/node@v20.20.2+x64 (linux)","description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@alwatr/logger":"9.20.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@alwatr/standard":"9.16.0","@alwatr/nano-build":"9.14.0","@alwatr/type-helper":"9.14.0","@happy-dom/global-registrator":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/embedded-data_9.20.1_1777578607348_0.9519147373426644","host":"s3://npm-registry-packages-npm-production"}},"9.21.0":{"name":"@alwatr/embedded-data","version":"9.21.0","keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"author":{"url":"https://ali.mihandoost.com","name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com"},"license":"MPL-2.0","_id":"@alwatr/embedded-data@9.21.0","maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"dist":{"shasum":"d9ab1cd4170db473e13f671d4943d29cc8086561","tarball":"https://registry.npmjs.org/@alwatr/embedded-data/-/embedded-data-9.21.0.tgz","fileCount":11,"integrity":"sha512-K2Z+K8VEq9f1ypPiZmIdn8G1XTApGkZumIIqo9Eu35FOuyUtu05gIIgr7rddKxpvFVfkRB7D06Y+7qRjEIJlgw==","signatures":[{"sig":"MEUCIE0mmxeKuY5hv82k+thWFIkrAp4FLBd1A0RWEBOsitd7AiEAj4TR4ejisZifqAfSk6SlQPMcDuSYBIAIb1TvR+XMJTc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48904},"type":"module","exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js","default":"./dist/main.js"}},"gitHead":"40e9e1a2e6f5b6a6f769beb1cc70e518129db32e","scripts":{"b":"bun run build","t":"bun run test","w":"bun run watch","cl":"bun run clean","lint":"eslint src/ --ext .ts","test":"ALWATR_DEBUG=0 bun test","build":"bun run build:ts && bun run build:es","clean":"rm -rfv dist *.tsbuildinfo","watch":"bun run watch:ts & bun run watch:es","format":"prettier --write \"src/**/*.ts\"","build:es":"nano-build --preset=module src/main.ts","build:ts":"tsc --build","watch:es":"bun run build:es --watch","watch:ts":"bun run build:ts --watch --preserveWatchOutput"},"_npmUser":{"name":"alimd","email":"ali.mihan.doost@gmail.com"},"repository":{"url":"git+https://github.com/Alwatr/alwatr.git","type":"git","directory":"pkg/nanolib/embedded-data"},"_npmVersion":"lerna/5.2.0/node@v20.20.2+x64 (linux)","description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@alwatr/logger":"9.20.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@alwatr/standard":"9.16.0","@alwatr/nano-build":"9.14.0","@alwatr/type-helper":"9.14.0","@happy-dom/global-registrator":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/embedded-data_9.21.0_1777710036447_0.1553050589893319","host":"s3://npm-registry-packages-npm-production"}},"9.23.3":{"name":"@alwatr/embedded-data","version":"9.23.3","keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"author":{"url":"https://ali.mihandoost.com","name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com"},"license":"MPL-2.0","_id":"@alwatr/embedded-data@9.23.3","maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"dist":{"shasum":"e9c298d27ac89c5d6af098b8917ff684689a9035","tarball":"https://registry.npmjs.org/@alwatr/embedded-data/-/embedded-data-9.23.3.tgz","fileCount":11,"integrity":"sha512-4kXItd1U/dkTLQ+uw0vw66jVIdpy/jNNi5aPaURKcmdet4pG3xX2XG9LvdUtNgzB1nroGCVCOhf0j6/K8/q/cQ==","signatures":[{"sig":"MEQCIBapPCcGfV+CsjvAh6itHANMRkT5ItztnT96jpC9BtOFAiBJSw55P+IJfCmkDVFUU3OibXJcy5pgcScky9x2gh9E/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48904},"type":"module","exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js","default":"./dist/main.js"}},"gitHead":"e38ea606b08ee85402fe112d4e32e741a446dcad","scripts":{"b":"bun run build","t":"bun run test","w":"bun run watch","cl":"bun run clean","lint":"eslint src/ --ext .ts","test":"ALWATR_DEBUG=0 bun test","build":"bun run build:ts && bun run build:es","clean":"rm -rfv dist *.tsbuildinfo","watch":"bun run watch:ts & bun run watch:es","format":"prettier --write \"src/**/*.ts\"","build:es":"nano-build --preset=module src/main.ts","build:ts":"tsc --build","watch:es":"bun run build:es --watch","watch:ts":"bun run build:ts --watch --preserveWatchOutput"},"_npmUser":{"name":"alimd","email":"ali.mihan.doost@gmail.com"},"repository":{"url":"git+https://github.com/Alwatr/alwatr.git","type":"git","directory":"pkg/nanolib/embedded-data"},"_npmVersion":"lerna/5.2.1/node@v20.20.2+x64 (linux)","description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@alwatr/logger":"9.23.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@alwatr/standard":"9.16.0","@alwatr/nano-build":"9.14.0","@alwatr/type-helper":"9.14.0","@happy-dom/global-registrator":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/embedded-data_9.23.3_1778589507112_0.21127063933165569","host":"s3://npm-registry-packages-npm-production"}},"9.24.0":{"name":"@alwatr/embedded-data","version":"9.24.0","keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"author":{"url":"https://ali.mihandoost.com","name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com"},"license":"MPL-2.0","_id":"@alwatr/embedded-data@9.24.0","maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"dist":{"shasum":"eaffd56218d070c2f05bf0300207b639fc80dcce","tarball":"https://registry.npmjs.org/@alwatr/embedded-data/-/embedded-data-9.24.0.tgz","fileCount":11,"integrity":"sha512-Lkx6MFSr+uTAiR0Vx/mpehGJCaGSLDibBOGC9c12cEnbZ2eEmhCjPxpZx9EiMMtl9l0sUVuG0v3G6kiwou/aGA==","signatures":[{"sig":"MEYCIQCo6ntdKoqkFWUix1bIRvB3Zv0kmrj6bCVlX5eH8kenwAIhAKY6iENkW/i2N0hOYHj32CtkzIryTZuJTlRAChVg4rLh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48904},"type":"module","exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js","default":"./dist/main.js"}},"gitHead":"7953ae95627dcfcea72516a288560769c7d8fb06","scripts":{"b":"bun run build","t":"bun run test","w":"bun run watch","cl":"bun run clean","lint":"eslint src/ --ext .ts","test":"ALWATR_DEBUG=0 bun test","build":"bun run build:ts && bun run build:es","clean":"rm -rfv dist *.tsbuildinfo","watch":"bun run watch:ts & bun run watch:es","format":"prettier --write \"src/**/*.ts\"","build:es":"nano-build --preset=module src/main.ts","build:ts":"tsc --build","watch:es":"bun run build:es --watch","watch:ts":"bun run build:ts --watch --preserveWatchOutput"},"_npmUser":{"name":"alimd","email":"ali.mihan.doost@gmail.com"},"repository":{"url":"git+https://github.com/Alwatr/alwatr.git","type":"git","directory":"pkg/nanolib/embedded-data"},"_npmVersion":"lerna/5.2.1/node@v20.20.2+x64 (linux)","description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@alwatr/logger":"9.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@alwatr/standard":"9.16.0","@alwatr/nano-build":"9.14.0","@alwatr/type-helper":"9.14.0","@happy-dom/global-registrator":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/embedded-data_9.24.0_1778786713807_0.25211090545119297","host":"s3://npm-registry-packages-npm-production"}},"9.25.0":{"name":"@alwatr/embedded-data","version":"9.25.0","keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"author":{"url":"https://ali.mihandoost.com","name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com"},"license":"MPL-2.0","_id":"@alwatr/embedded-data@9.25.0","maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"dist":{"shasum":"29c71a7a3e5111598d6cd159620eef3b76c8ff81","tarball":"https://registry.npmjs.org/@alwatr/embedded-data/-/embedded-data-9.25.0.tgz","fileCount":11,"integrity":"sha512-Q1T3wpFs/qZ0WK8QDQ/GNG2ns0fTIsMcqaBzfYM+njPdLpUZZZbRmN6M8H61MgI35OtMUZqsXubEsVRpsEmU3A==","signatures":[{"sig":"MEYCIQD4KQhI+nWNIovSfUknG/T+gc4+30mzOJC08yGH009U+QIhAJ96SDy/H13q4gYtQ2rk8hje1y/fjucPNupJ3gm1osQc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48910},"type":"module","exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js","default":"./dist/main.js"}},"gitHead":"a49ae304180faab79539b5ddfe62d18ac91a232e","scripts":{"b":"bun run build","t":"bun run test","w":"bun run watch","cl":"bun run clean","lint":"eslint src/ --ext .ts","test":"ALWATR_DEBUG=0 bun test","build":"bun run build:ts && bun run build:es","clean":"rm -rfv dist *.tsbuildinfo","watch":"bun run watch:ts & bun run watch:es","format":"prettier --write \"src/**/*.ts\"","build:es":"nano-build --preset=module src/main.ts","build:ts":"tsc --build","watch:es":"bun run build:es --watch","watch:ts":"bun run build:ts --watch --preserveWatchOutput"},"_npmUser":{"name":"alimd","email":"ali.mihan.doost@gmail.com"},"repository":{"url":"git+https://github.com/Alwatr/alwatr.git","type":"git","directory":"pkg/nanolib/embedded-data"},"_npmVersion":"lerna/5.2.1/node@v20.20.2+x64 (linux)","description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@alwatr/logger":"9.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@alwatr/standard":"9.16.0","@alwatr/nano-build":"9.25.0","@alwatr/type-helper":"9.14.0","@happy-dom/global-registrator":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/embedded-data_9.25.0_1779366171802_0.7606984745206151","host":"s3://npm-registry-packages-npm-production"}},"9.29.0":{"name":"@alwatr/embedded-data","version":"9.29.0","keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"author":{"url":"https://ali.mihandoost.com","name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com"},"license":"MPL-2.0","_id":"@alwatr/embedded-data@9.29.0","maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"dist":{"shasum":"3c1024a92d8d3e76224152e69b1fcd2c82ddc172","tarball":"https://registry.npmjs.org/@alwatr/embedded-data/-/embedded-data-9.29.0.tgz","fileCount":11,"integrity":"sha512-mk3eW0qeyFlOHtBk3YSVCQ4IVN8pW3wLFwXlBzHg13m8hPnErwbhgAP4hMi4pvXqFKncLUlZoUGNS8lrUPWiHg==","signatures":[{"sig":"MEYCIQCMAgKPlWVchlsS5Q4jIQn7NoMt1r6yLNnb4tjXkDvbcwIhAKgqZyniLAX+o8iSQVNBFC2eeJo86lFm4Mq9zE5/hieI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48910},"type":"module","exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js","default":"./dist/main.js"}},"gitHead":"2f80c615d90e038dca634a2dfba8d900d3df6248","scripts":{"b":"bun run build","t":"bun run test","w":"bun run watch","cl":"bun run clean","lint":"eslint src/ --ext .ts","test":"ALWATR_DEBUG=0 bun test","build":"bun run build:ts && bun run build:es","clean":"rm -rfv dist *.tsbuildinfo","watch":"bun run watch:ts & bun run watch:es","format":"prettier --write \"src/**/*.ts\"","build:es":"nano-build --preset=module src/main.ts","build:ts":"tsc --build","watch:es":"bun run build:es --watch","watch:ts":"bun run build:ts --watch --preserveWatchOutput"},"_npmUser":{"name":"alimd","email":"ali.mihan.doost@gmail.com"},"repository":{"url":"git+https://github.com/Alwatr/alwatr.git","type":"git","directory":"pkg/nanolib/embedded-data"},"_npmVersion":"lerna/5.2.2/node@v22.22.3+x64 (linux)","description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@alwatr/logger":"9.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@alwatr/standard":"9.16.0","@alwatr/nano-build":"9.25.0","@alwatr/type-helper":"9.14.0","@happy-dom/global-registrator":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/embedded-data_9.29.0_1780236916390_0.7739161835343842","host":"s3://npm-registry-packages-npm-production"}},"9.31.0":{"name":"@alwatr/embedded-data","version":"9.31.0","keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"author":{"url":"https://ali.mihandoost.com","name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com"},"license":"MPL-2.0","_id":"@alwatr/embedded-data@9.31.0","maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"dist":{"shasum":"61f800c2ae841359315bcc3cd87cef26b3c74e88","tarball":"https://registry.npmjs.org/@alwatr/embedded-data/-/embedded-data-9.31.0.tgz","fileCount":11,"integrity":"sha512-QsfLmSDRxE6onQ/RmXsm3tTofnNedG2T91u21gbX6fWpUpMatNOnd0OO4QOaLzI2lzyoVCbPLPfWCRkxcWCPaA==","signatures":[{"sig":"MEUCIQC64BLV5LmtKw49hdyhhT+w3M5gxsWX+mbA1pjcycLEoAIgNi1TPMFv8F/lCgDW03ZLkBs7i3BS5X2nEus1/U4XXG8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48911},"type":"module","exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js","default":"./dist/main.js"}},"gitHead":"a2bdb86945c56f8b99b6dd0f8ec714df70dfa3e5","scripts":{"b":"bun run build","t":"bun run test","w":"bun run watch","cl":"bun run clean","lint":"eslint src/ --ext .ts","test":"ALWATR_DEBUG=0 bun test","build":"bun run build:ts && bun run build:es","clean":"rm -rfv dist *.tsbuildinfo","watch":"bun run watch:ts & bun run watch:es","format":"prettier --write \"src/**/*.ts\"","build:es":"nano-build --preset=module src/main.ts","build:ts":"tsc --build","watch:es":"bun run build:es --watch","watch:ts":"bun run build:ts --watch --preserveWatchOutput"},"_npmUser":{"name":"alimd","email":"ali.mihan.doost@gmail.com"},"repository":{"url":"git+https://github.com/Alwatr/alwatr.git","type":"git","directory":"pkg/nanolib/embedded-data"},"_npmVersion":"lerna/5.3.0/node@v22.22.3+x64 (linux)","description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@alwatr/logger":"9.31.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@alwatr/standard":"9.16.0","@alwatr/nano-build":"9.25.0","@alwatr/type-helper":"9.14.0","@happy-dom/global-registrator":"^20.10.2"},"_npmOperationalInternal":{"tmp":"tmp/embedded-data_9.31.0_1780835153619_0.19124354606464866","host":"s3://npm-registry-packages-npm-production"}},"9.33.0":{"name":"@alwatr/embedded-data","version":"9.33.0","keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"author":{"url":"https://ali.mihandoost.com","name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com"},"license":"MPL-2.0","_id":"@alwatr/embedded-data@9.33.0","maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"dist":{"shasum":"6245a54083ab3f4ec7c24453aa8107b0d7afe544","tarball":"https://registry.npmjs.org/@alwatr/embedded-data/-/embedded-data-9.33.0.tgz","fileCount":11,"integrity":"sha512-f9Nof+GpMAUEptNVFP8gGYAuShzHbdE43GEnBfgQs8ndisnDkYcWUEPgPh6p8VdaDGsOuRtH3lal2+KkYRHgeQ==","signatures":[{"sig":"MEUCIQCo1f0xbF/R+XfeO0ZdB67MctbuE3kFOb3nFeFrpBNyDAIgc+HjcldDJjInsE1X9VodT4+Ook6OB/093PJtlXnpNyY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48911},"type":"module","exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js","default":"./dist/main.js"}},"gitHead":"ba7e63efa62c86c7845269f94c4cc9924c38ff21","scripts":{"b":"bun run build","t":"bun run test","w":"bun run watch","cl":"bun run clean","lint":"eslint src/ --ext .ts","test":"ALWATR_DEBUG=0 bun test","build":"bun run build:ts && bun run build:es","clean":"rm -rfv dist *.tsbuildinfo","watch":"bun run watch:ts & bun run watch:es","format":"prettier --write \"src/**/*.ts\"","build:es":"nano-build --preset=module src/main.ts","build:ts":"tsc --build","watch:es":"bun run build:es --watch","watch:ts":"bun run build:ts --watch --preserveWatchOutput"},"_npmUser":{"name":"alimd","email":"ali.mihan.doost@gmail.com"},"repository":{"url":"git+https://github.com/Alwatr/alwatr.git","type":"git","directory":"pkg/nanolib/embedded-data"},"_npmVersion":"lerna/5.3.0/node@v22.22.3+x64 (linux)","description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@alwatr/logger":"9.33.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@alwatr/standard":"9.33.0","@alwatr/nano-build":"9.25.0","@alwatr/type-helper":"9.14.0","@happy-dom/global-registrator":"^20.10.2"},"_npmOperationalInternal":{"tmp":"tmp/embedded-data_9.33.0_1781057075485_0.923593460805249","host":"s3://npm-registry-packages-npm-production"}},"9.33.1":{"name":"@alwatr/embedded-data","version":"9.33.1","keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"author":{"url":"https://ali.mihandoost.com","name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com"},"license":"MPL-2.0","_id":"@alwatr/embedded-data@9.33.1","maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"dist":{"shasum":"880d4cb460373889d32252c31648238c1935f26a","tarball":"https://registry.npmjs.org/@alwatr/embedded-data/-/embedded-data-9.33.1.tgz","fileCount":13,"integrity":"sha512-GuqVxhWwfKJ4edx0Qq9sswK6Qn5bljSpU73Nt3uOGsOa97b7IXzCSBx8HuEaIrpbn8tW3ymsPgaJUX2bCVcqTw==","signatures":[{"sig":"MEQCIEI/4mvm+dY4Nlebx//PWWmysHDoyAmt3hox+2JRDuqYAiAPQ2mxZh0NU6P8SoERqDVc8LRjBIdiSXyg/RWtYhvyAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57059},"type":"module","exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js","default":"./dist/main.js","development":"./dist/dev/main.js"}},"gitHead":"84fba5b7b428188be17aaaaf062b0b7eaae96555","scripts":{"b":"bun run build","t":"bun run test","w":"bun run watch","cl":"bun run clean","lint":"eslint src/ --ext .ts","test":"bun test","build":"bun run build:ts && bun run build:es","clean":"rm -rfv dist *.tsbuildinfo","watch":"bun run watch:ts & bun run watch:es","format":"prettier --write \"src/**/*.ts\"","build:es":"bun run build:es:dev && bun run build:es:prod","build:ts":"tsc --build","watch:es":"bun run build:es:dev --watch","watch:ts":"bun run build:ts --watch --preserveWatchOutput","build:es:dev":"nano-build --preset=module --outdir=dist/dev src/main.ts","build:es:prod":"NODE_ENV=production nano-build --preset=module --outdir=dist src/main.ts"},"_npmUser":{"name":"alimd","email":"ali.mihan.doost@gmail.com"},"repository":{"url":"git+https://github.com/Alwatr/alwatr.git","type":"git","directory":"pkg/nanolib/embedded-data"},"_npmVersion":"lerna/5.3.0/node@v22.22.3+x64 (linux)","description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@alwatr/logger":"9.33.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@alwatr/standard":"9.33.0","@alwatr/nano-build":"9.33.1","@alwatr/type-helper":"9.33.1","@happy-dom/global-registrator":"^20.10.2"},"_npmOperationalInternal":{"tmp":"tmp/embedded-data_9.33.1_1781089517755_0.2108234290457629","host":"s3://npm-registry-packages-npm-production"}},"9.35.0":{"name":"@alwatr/embedded-data","version":"9.35.0","keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"author":{"url":"https://ali.mihandoost.com","name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com"},"license":"MPL-2.0","_id":"@alwatr/embedded-data@9.35.0","maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"dist":{"shasum":"a348a96e59c7bf7e750428e2f856b61edbffa9be","tarball":"https://registry.npmjs.org/@alwatr/embedded-data/-/embedded-data-9.35.0.tgz","fileCount":13,"integrity":"sha512-LpVUHDeQMrKhmvLRPrOEYXu/GT/UD2J7T5MeC1V3osRxt4QLUWjy4VyWDyrQn2hQSTtfoPTdlAN2wjHnAn08ZQ==","signatures":[{"sig":"MEUCIHmljbPwt99j7bPWzJM9FLeMmpbEsAGL3prdGPIuJSGKAiEAyaxdTX+2WjD1xWeL6C3dHfSZClg1bVaNpZ9seEWMVls=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56852},"type":"module","exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js","default":"./dist/main.js","development":"./dist/dev/main.js"}},"gitHead":"85e47c26720607e780d06e568a6734ac20e5bc82","scripts":{"b":"bun run build","t":"bun run test","w":"bun run watch","cl":"bun run clean","lint":"eslint src/ --ext .ts","test":"bun test","build":"bun run build:ts && bun run build:es","clean":"rm -rfv dist *.tsbuildinfo","watch":"bun run watch:ts & bun run watch:es","format":"prettier --write \"src/**/*.ts\"","build:es":"bun run build:es:dev && bun run build:es:prod","build:ts":"tsc --build","watch:es":"bun run build:es:dev --watch","watch:ts":"bun run build:ts --watch --preserveWatchOutput","build:es:dev":"nano-build --preset=module --outdir=dist/dev src/main.ts","build:es:prod":"NODE_ENV=production nano-build --preset=module --outdir=dist src/main.ts"},"_npmUser":{"name":"alimd","email":"ali.mihan.doost@gmail.com"},"repository":{"url":"git+https://github.com/Alwatr/alwatr.git","type":"git","directory":"pkg/nanolib/embedded-data"},"_npmVersion":"lerna/5.3.0/node@v22.22.3+x64 (linux)","description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@alwatr/logger":"9.33.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@alwatr/standard":"9.33.0","@alwatr/nano-build":"9.33.1","@alwatr/type-helper":"9.33.1","@happy-dom/global-registrator":"^20.10.2"},"_npmOperationalInternal":{"tmp":"tmp/embedded-data_9.35.0_1781189805088_0.8668379586219617","host":"s3://npm-registry-packages-npm-production"}},"9.36.0":{"name":"@alwatr/embedded-data","version":"9.36.0","keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"author":{"url":"https://ali.mihandoost.com","name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com"},"license":"MPL-2.0","_id":"@alwatr/embedded-data@9.36.0","maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"dist":{"shasum":"a14fc77cfa350b58add00675a509db5d1aa1ac19","tarball":"https://registry.npmjs.org/@alwatr/embedded-data/-/embedded-data-9.36.0.tgz","fileCount":13,"integrity":"sha512-A6IvJ2OhbYsdi82QZ3LwXh1ShK/tSj1XGkX0vysWso9PuaTrWQQ9idIzHT0U7BeZ2G2YPpI2lkURloqGBwDLiw==","signatures":[{"sig":"MEUCIQDN6APs0342nvBIWa8TlHJzmna5niFPwjHAPvvDnLwlEAIgDUJTQ+Eibwpy9ZD8xMwBVuQ237C3fb0yEYti9PCnfls=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56852},"type":"module","exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js","default":"./dist/main.js","development":"./dist/dev/main.js"}},"gitHead":"252426e3bf06fdf5331691d5e8c09a4808104275","scripts":{"b":"bun run build","t":"bun run test","w":"bun run watch","cl":"bun run clean","lint":"eslint src/ --ext .ts","test":"bun test","build":"bun run build:ts && bun run build:es","clean":"rm -rfv dist *.tsbuildinfo","watch":"bun run watch:ts & bun run watch:es","format":"prettier --write \"src/**/*.ts\"","build:es":"bun run build:es:dev && bun run build:es:prod","build:ts":"tsc --build","watch:es":"bun run build:es:dev --watch","watch:ts":"bun run build:ts --watch --preserveWatchOutput","build:es:dev":"nano-build --preset=module --outdir=dist/dev src/main.ts","build:es:prod":"NODE_ENV=production nano-build --preset=module --outdir=dist src/main.ts"},"_npmUser":{"name":"alimd","email":"ali.mihan.doost@gmail.com"},"repository":{"url":"git+https://github.com/Alwatr/alwatr.git","type":"git","directory":"pkg/nanolib/embedded-data"},"_npmVersion":"lerna/5.3.0/node@v22.22.3+x64 (linux)","description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@alwatr/logger":"9.36.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@alwatr/standard":"9.33.0","@alwatr/nano-build":"9.33.1","@alwatr/type-helper":"9.36.0","@happy-dom/global-registrator":"^20.10.2"},"_npmOperationalInternal":{"tmp":"tmp/embedded-data_9.36.0_1781214297697_0.6760080704741587","host":"s3://npm-registry-packages-npm-production"}},"9.37.0":{"name":"@alwatr/embedded-data","version":"9.37.0","keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"author":{"url":"https://ali.mihandoost.com","name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com"},"license":"MPL-2.0","_id":"@alwatr/embedded-data@9.37.0","maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"dist":{"shasum":"3ca401a1330bf8a61696dbbf6f489b28d6c976ca","tarball":"https://registry.npmjs.org/@alwatr/embedded-data/-/embedded-data-9.37.0.tgz","fileCount":13,"integrity":"sha512-0Ww6Z0P/5zU0sFldzix2Bl+tY8t0ei6u6z5RmnNqlo9UeXDto+95ogd5W+eq5I4W5jJLyKsSwOGrrOpu7IWvSA==","signatures":[{"sig":"MEUCIQDlM3whcijgxSDvYm2I3Kiisawc8S/zLR0OvklFz0bt1gIgdbys3+b/4qUOQM6XQQ1p0IVhfmZigPBCOg14Tb6aZrs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56852},"type":"module","exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js","default":"./dist/main.js","development":"./dist/dev/main.js"}},"gitHead":"726ee4a94d5cbd08344fabcf329ebc383dcc7504","scripts":{"b":"bun run build","t":"bun run test","w":"bun run watch","cl":"bun run clean","lint":"eslint src/ --ext .ts","test":"bun test","build":"bun run build:ts && bun run build:es","clean":"rm -rfv dist *.tsbuildinfo","watch":"bun run watch:ts & bun run watch:es","format":"prettier --write \"src/**/*.ts\"","build:es":"bun run build:es:dev && bun run build:es:prod","build:ts":"tsc --build","watch:es":"bun run build:es:dev --watch","watch:ts":"bun run build:ts --watch --preserveWatchOutput","build:es:dev":"nano-build --preset=module --outdir=dist/dev src/main.ts","build:es:prod":"NODE_ENV=production nano-build --preset=module --outdir=dist src/main.ts"},"_npmUser":{"name":"alimd","email":"ali.mihan.doost@gmail.com"},"repository":{"url":"git+https://github.com/Alwatr/alwatr.git","type":"git","directory":"pkg/nanolib/embedded-data"},"_npmVersion":"lerna/5.3.0/node@v22.22.3+x64 (linux)","description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@alwatr/logger":"9.36.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@alwatr/standard":"9.33.0","@alwatr/nano-build":"9.33.1","@alwatr/type-helper":"9.36.0","@happy-dom/global-registrator":"^20.10.3"},"_npmOperationalInternal":{"tmp":"tmp/embedded-data_9.37.0_1781355013867_0.7553474848365052","host":"s3://npm-registry-packages-npm-production"}},"9.38.1":{"name":"@alwatr/embedded-data","version":"9.38.1","keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"author":{"url":"https://ali.mihandoost.com","name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com"},"license":"MPL-2.0","_id":"@alwatr/embedded-data@9.38.1","maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"dist":{"shasum":"ee593cc63c576f0d94dc227333cc0b5f6831ccaa","tarball":"https://registry.npmjs.org/@alwatr/embedded-data/-/embedded-data-9.38.1.tgz","fileCount":13,"integrity":"sha512-YykgoPWBWl0iiqjKLoJe6U8arLoWmBrd423aiKizjnNIJ9plFpY6tkH0jibVh0//HiEWJxxA34wBI9ZumkUR7Q==","signatures":[{"sig":"MEUCIFjVzuerrTgDqeEJBVAUan9V6xw4rglV1Lc93csx93zpAiEArfeI9hHNlNLFDZOTPlQ+DTy/ZZz5FlTs4So3CttBSLc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56852},"type":"module","exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js","default":"./dist/main.js","development":"./dist/dev/main.js"}},"gitHead":"918e99e7142b84f69eaa703ce9e27c3ac9d9300b","scripts":{"b":"bun run build","t":"bun run test","w":"bun run watch","cl":"bun run clean","lint":"eslint src/ --ext .ts","test":"bun test","build":"bun run build:ts && bun run build:es","clean":"rm -rfv dist *.tsbuildinfo","watch":"bun run watch:ts & bun run watch:es","format":"prettier --write \"src/**/*.ts\"","build:es":"bun run build:es:dev && bun run build:es:prod","build:ts":"tsc --build","watch:es":"bun run build:es:dev --watch","watch:ts":"bun run build:ts --watch --preserveWatchOutput","build:es:dev":"nano-build --preset=module --outdir=dist/dev src/main.ts","build:es:prod":"NODE_ENV=production nano-build --preset=module --outdir=dist src/main.ts"},"_npmUser":{"name":"alimd","email":"ali.mihan.doost@gmail.com"},"repository":{"url":"git+https://github.com/Alwatr/alwatr.git","type":"git","directory":"pkg/nanolib/embedded-data"},"_npmVersion":"lerna/5.3.0/node@v22.23.0+x64 (linux)","description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","dependencies":{"@alwatr/logger":"9.38.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@alwatr/standard":"9.38.1","@alwatr/nano-build":"9.38.1","@alwatr/type-helper":"9.36.0","@happy-dom/global-registrator":"^20.10.6"},"_npmOperationalInternal":{"tmp":"tmp/embedded-data_9.38.1_1782630641722_0.4429646660916755","host":"s3://npm-registry-packages-npm-production"}},"9.38.2":{"name":"@alwatr/embedded-data","version":"9.38.2","keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"author":{"url":"https://ali.mihandoost.com","name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com"},"license":"MPL-2.0","_id":"@alwatr/embedded-data@9.38.2","maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"dist":{"shasum":"babb92db818f71dff7d112c7107768e942713566","tarball":"https://registry.npmjs.org/@alwatr/embedded-data/-/embedded-data-9.38.2.tgz","fileCount":13,"integrity":"sha512-464U6qQO+nCdwS6vk4D72M8Pu8k6n1T2vBd0TY9w42YkNipROjcPkF0OH5MXAtmp2rtyTNI1zuvXqkev+ZKNGw==","signatures":[{"sig":"MEUCIFfU28pQ3kUZULe+4jqZrTFWDnwIemq/2Zgn6I2So5iMAiEA4oGbnUoVgXcQx11Bl3dM7ZaX/Jl2kIey0+TBmUAAXoM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56881},"type":"module","exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js","default":"./dist/main.js","development":"./dist/dev/main.js"}},"gitHead":"69569fc5d7a66d5f027d5d4f58af4289280d5e5d","scripts":{"b":"bun run build","t":"bun run test","w":"bun run watch","cl":"bun run clean","lint":"eslint src/ --ext .ts","test":"bun test","build":"bun run build:ts && bun run build:es","clean":"rm -rfv dist *.tsbuildinfo","watch":"bun run watch:ts & bun run watch:es","format":"prettier --write \"src/**/*.ts\"","build:es":"bun run build:es:dev && bun run build:es:prod","build:ts":"tsc --build","watch:es":"bun run build:es:dev --watch","watch:ts":"bun run build:ts --watch --preserveWatchOutput","build:es:dev":"nano-build --preset=module --outdir=dist/dev src/main.ts","build:es:prod":"NODE_ENV=production nano-build --preset=module --outdir=dist src/main.ts"},"_npmUser":{"name":"alimd","email":"ali.mihan.doost@gmail.com"},"repository":{"url":"git+https://github.com/Alwatr/alwatr.git","type":"git","directory":"pkg/nanolib/embedded-data"},"_npmVersion":"lerna/5.4.0/node@v22.23.1+x64 (linux)","description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@alwatr/logger":"9.38.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@alwatr/standard":"9.38.2","@alwatr/nano-build":"9.38.1","@alwatr/type-helper":"9.38.2","@happy-dom/global-registrator":"^20.10.6"},"_npmOperationalInternal":{"tmp":"tmp/embedded-data_9.38.2_1783856606655_0.4014990710499393","host":"s3://npm-registry-packages-npm-production"}},"10.0.0":{"name":"@alwatr/embedded-data","version":"10.0.0","keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"author":{"url":"https://ali.mihandoost.com","name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com"},"license":"MPL-2.0","_id":"@alwatr/embedded-data@10.0.0","maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"dist":{"shasum":"5d58a2245650cc55726b6ef15cdcab4c1ed51c96","tarball":"https://registry.npmjs.org/@alwatr/embedded-data/-/embedded-data-10.0.0.tgz","fileCount":13,"integrity":"sha512-WXMBzJJOSHPpDO8fgcGrtLtxLJiRuYHiodZFFVpDR8E7ld08e3EyjzeL8NoApdKoeKVxzmMGlgnHBU67ASoNmA==","signatures":[{"sig":"MEYCIQDjZiMxBCWWtu8ueHWENxW78nJ7KbSkUoBDG0iZuqQu4AIhAIOYnn012B8+Q6OatxlTGDX+4ptwJivC1zrnVyxfFI77","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56881},"type":"module","exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js","default":"./dist/main.js","development":"./dist/dev/main.js"}},"gitHead":"ad367007af237263a64306c359d05fea63fb2dc7","scripts":{"b":"bun run build","t":"bun run test","w":"bun run watch","cl":"bun run clean","lint":"eslint src/ --ext .ts","test":"bun test","build":"bun run build:ts && bun run build:es","clean":"rm -rfv dist *.tsbuildinfo","watch":"bun run watch:ts & bun run watch:es","format":"prettier --write \"src/**/*.ts\"","build:es":"bun run build:es:dev && bun run build:es:prod","build:ts":"tsc --build","watch:es":"bun run build:es:dev --watch","watch:ts":"bun run build:ts --watch --preserveWatchOutput","build:es:dev":"nano-build --preset=module --outdir=dist/dev src/main.ts","build:es:prod":"NODE_ENV=production nano-build --preset=module --outdir=dist src/main.ts"},"_npmUser":{"name":"alimd","email":"ali.mihan.doost@gmail.com"},"repository":{"url":"git+https://github.com/Alwatr/alwatr.git","type":"git","directory":"pkg/nanolib/embedded-data"},"_npmVersion":"lerna/5.4.2/node@v22.23.1+x64 (linux)","description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@alwatr/logger":"10.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@alwatr/standard":"10.0.0","@alwatr/nano-build":"10.0.0","@alwatr/type-helper":"10.0.0","@happy-dom/global-registrator":"^20.11.1"},"_npmOperationalInternal":{"tmp":"tmp/embedded-data_10.0.0_1785075713935_0.13390284857936052","host":"s3://npm-registry-packages-npm-production"}},"10.1.0":{"name":"@alwatr/embedded-data","version":"10.1.0","keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"author":{"url":"https://ali.mihandoost.com","name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com"},"license":"MPL-2.0","_id":"@alwatr/embedded-data@10.1.0","maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"dist":{"shasum":"361da253e24794b47370b4fb9d162226120d9b3c","tarball":"https://registry.npmjs.org/@alwatr/embedded-data/-/embedded-data-10.1.0.tgz","fileCount":13,"integrity":"sha512-nTvU5ckYP4DumZo7oTEMI/gzX3SSW+eypgVKEuL/+yGiZGJRIa08QLusSVUPQr+3pVa4nzUxcevhtO0PbXIkVg==","signatures":[{"sig":"MEUCIQCD0SY3IfZpwKCdtC1gImIlVr32K6xoQZDkrHzjSuppJAIgIe+KC13sicB72+udk60bdcI3Ov+I7kY+fvv6OkaYrl0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56881},"type":"module","exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js","default":"./dist/main.js","development":"./dist/dev/main.js"}},"gitHead":"b9efc218052a99652c3cb0bc990496f26b5b18cf","scripts":{"b":"bun run build","t":"bun run test","w":"bun run watch","cl":"bun run clean","lint":"eslint src/ --ext .ts","test":"bun test","build":"bun run build:ts && bun run build:es","clean":"rm -rfv dist *.tsbuildinfo","watch":"bun run watch:ts & bun run watch:es","format":"prettier --write \"src/**/*.ts\"","build:es":"bun run build:es:dev && bun run build:es:prod","build:ts":"tsc --build","watch:es":"bun run build:es:dev --watch","watch:ts":"bun run build:ts --watch --preserveWatchOutput","build:es:dev":"nano-build --preset=module --outdir=dist/dev src/main.ts","build:es:prod":"NODE_ENV=production nano-build --preset=module --outdir=dist src/main.ts"},"_npmUser":{"name":"alimd","email":"ali.mihan.doost@gmail.com"},"repository":{"url":"git+https://github.com/Alwatr/alwatr.git","type":"git","directory":"pkg/nanolib/embedded-data"},"_npmVersion":"lerna/5.6.1/node@v22.23.2+x64 (linux)","description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@alwatr/logger":"10.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@alwatr/standard":"10.0.0","@alwatr/nano-build":"10.0.0","@alwatr/type-helper":"10.0.0","@happy-dom/global-registrator":"^20.12.0"},"_npmOperationalInternal":{"tmp":"tmp/embedded-data_10.1.0_1788188310370_0.8460530674506721","host":"s3://npm-registry-packages-npm-production"}},"10.2.0":{"name":"@alwatr/embedded-data","version":"10.2.0","description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","license":"MPL-2.0","author":{"name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com","url":"https://ali.mihandoost.com"},"type":"module","repository":{"type":"git","url":"git+https://github.com/Alwatr/alwatr.git","directory":"pkg/nanolib/embedded-data"},"homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"exports":{".":{"types":"./dist/main.d.ts","development":"./dist/dev/main.js","import":"./dist/main.js","default":"./dist/main.js"}},"sideEffects":false,"dependencies":{"@alwatr/logger":"10.2.0"},"devDependencies":{"@alwatr/nano-build":"10.0.0","@alwatr/standard":"10.0.0","@alwatr/type-helper":"10.2.0","@happy-dom/global-registrator":"^20.14.0","typescript":"^7.0.2"},"scripts":{"b":"bun run build","build":"bun run build:ts && bun run build:es","build:es":"bun run build:es:dev && bun run build:es:prod","build:es:dev":"nano-build --preset=module --outdir=dist/dev src/main.ts","build:es:prod":"NODE_ENV=production nano-build --preset=module --outdir=dist src/main.ts","build:ts":"tsc --build","cl":"bun run clean","clean":"rm -rfv dist *.tsbuildinfo","format":"prettier --write \"src/**/*.ts\"","lint":"eslint src/ --ext .ts","t":"bun run test","test":"ALWATR_DEBUG=0 bun test","w":"bun run watch","watch":"bun run watch:ts & bun run watch:es","watch:es":"bun run build:es:dev --watch","watch:ts":"bun run build:ts --watch --preserveWatchOutput"},"publishConfig":{"access":"public"},"keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"gitHead":"2a0a52415ec6af039244806419c3b79734994c71","_id":"@alwatr/embedded-data@10.2.0","_nodeVersion":"22.23.2","_npmVersion":"lerna/5.6.1/node@v22.23.2+x64 (linux)","dist":{"integrity":"sha512-UHZcX0u0xLzD8K7KxmDGJHVqmvWma6+dmH8juzNXvbOpe23URDs62G+fcR0x4xKp5bs/yvd3Vd/zyIDIsAQrhQ==","shasum":"e009c128676c245bcdfabcd6b52744bb99bf3938","tarball":"https://registry.npmjs.org/@alwatr/embedded-data/-/embedded-data-10.2.0.tgz","fileCount":13,"unpackedSize":56896,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICuUvAX/qiFmJvBVzRjQoceCaaMjYGmhBm720EGhF9FbAiEAtTrs+KvVr6DLUjzL704P/keRl9gSIS3hjjdPcsipqVo="}]},"_npmUser":{"name":"alimd","email":"ali.mihan.doost@gmail.com"},"directories":{},"maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/embedded-data_10.2.0_1788887080629_0.235294634495256"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-28T18:54:45.969Z","modified":"2026-09-08T17:04:40.938Z","9.19.0":"2026-04-28T18:54:46.174Z","9.19.1":"2026-04-30T14:25:52.299Z","9.20.1":"2026-04-30T19:50:07.526Z","9.21.0":"2026-05-02T08:20:36.640Z","9.23.3":"2026-05-12T12:38:27.251Z","9.24.0":"2026-05-14T19:25:13.977Z","9.25.0":"2026-05-21T12:22:52.011Z","9.29.0":"2026-05-31T14:15:16.538Z","9.31.0":"2026-06-07T12:25:53.768Z","9.33.0":"2026-06-10T02:04:35.629Z","9.33.1":"2026-06-10T11:05:17.959Z","9.35.0":"2026-06-11T14:56:45.232Z","9.36.0":"2026-06-11T21:44:57.851Z","9.37.0":"2026-06-13T12:50:14.023Z","9.38.1":"2026-06-28T07:10:41.850Z","9.38.2":"2026-07-12T11:43:26.782Z","10.0.0":"2026-07-26T14:21:54.059Z","10.1.0":"2026-08-31T14:58:30.505Z","10.2.0":"2026-09-08T17:04:40.781Z"},"bugs":{"url":"https://github.com/Alwatr/alwatr/issues"},"author":{"name":"S. Ali Mihandoost","email":"ali.mihandoost@gmail.com","url":"https://ali.mihandoost.com"},"license":"MPL-2.0","homepage":"https://github.com/Alwatr/alwatr/tree/next/pkg/nanolib/embedded-data#readme","keywords":["alwatr","browser","cross-platform","dom","ECMAScript","embedded-data","esm","framework-agnostic","hydration","javascript","json","module","mpa","nanolib","script-tag","spa","ssr","state","typescript","util","utility","validation"],"repository":{"type":"git","url":"git+https://github.com/Alwatr/alwatr.git","directory":"pkg/nanolib/embedded-data"},"description":"Framework-agnostic utility to safely extract, parse, and validate embedded JSON data from <script type=\"application/json\"> DOM nodes. Designed for SSR-friendly state hydration in SPAs and MPAs.","maintainers":[{"name":"alimd","email":"ali.mihan.doost@gmail.com"}],"readme":"# `@alwatr/embedded-data`\n\nFramework-agnostic utility to safely extract, parse, and validate embedded JSON data from `<script type=\"application/json\">` DOM nodes.\n\nDesigned for **SSR-friendly state hydration** in SPAs and MPAs: the server renders initial state into a script tag, and the client reads it on boot without an extra HTTP round-trip.\n\n---\n\n## Why This Package Exists\n\nModern web applications often need to pass server-side data to the client without making an extra API call. The standard pattern is to embed JSON in the HTML:\n\n```html\n<script\n  type=\"application/json\"\n  data-user-profile\n>\n  {\"userId\": 42, \"name\": \"Ali\"}\n</script>\n```\n\nBut extracting this data safely requires:\n\n1. **SSR compatibility** — `document` might not exist in Node.js/Bun server contexts.\n2. **Error handling** — the script tag might be missing, empty, or contain invalid JSON.\n3. **Type safety** — the parsed JSON might not match the expected TypeScript type.\n4. **Memory management** — the (potentially large) JSON string should be freed after extraction.\n\n`@alwatr/embedded-data` encapsulates this entire pattern in a single, reusable class that follows the **Single Responsibility Principle**: it only handles DOM extraction and JSON parsing. Validation logic is externalized via an optional `validator` parameter (Open/Closed Principle).\n\n---\n\n## Architecture\n\n```\n┌───────────────────────────────────────────────────────────┐\n│              EmbeddedDataCollector<T>                     │\n│                                                           │\n│  constructor(attributeName, validator?)                   │\n│    └─ stores attributeName_ and optional validator_       │\n│                                                           │\n│  collect(): T | null                                      │\n│    ├─ getElement_() → querySelector script tag            │\n│    ├─ extractRawData_() → read textContent, clear DOM     │\n│    ├─ JSON.parse(rawData)                                 │\n│    ├─ validator_?.(parsedData) → optional type-guard      │\n│    └─ return validated data or null                       │\n└───────────────────────────────────────────────────────────┘\n```\n\n**Flow:**\n\n```\n[HTML with <script data-foo>]\n│\n▼\ngetElement_() ──→ querySelector('[data-foo]')\n│\n▼\nextractRawData_() ──→ element.textContent.trim()\n│ element.textContent = '' ← GC hint\n▼\nJSON.parse()\n│\n▼\nvalidator_?.(data) ──→ optional type-guard / Zod schema\n│\n▼\nreturn T | null\n```\n\n---\n\n## Installation\n\n```sh\nbun add @alwatr/embedded-data\n# or\nnpm install @alwatr/embedded-data\n```\n\n---\n\n## Usage\n\n### Basic Usage (No Validation)\n\n```ts\nimport {EmbeddedDataCollector} from '@alwatr/embedded-data';\n\n// HTML: <script type=\"application/json\" data-config>{\"apiUrl\": \"https://api.example.com\"}</script>\n\nconst collector = new EmbeddedDataCollector<{apiUrl: string}>('data-config');\nconst config = collector.collect();\n\nif (config) {\n  console.log('API URL:', config.apiUrl);\n}\n```\n\n### With Type-Guard Validation\n\n```ts\nimport {EmbeddedDataCollector} from '@alwatr/embedded-data';\n\ninterface UserProfile {\n  userId: number;\n  name: string;\n}\n\nfunction isUserProfile(data: unknown): data is UserProfile {\n  return (\n    typeof data === 'object'\n    && data !== null\n    && 'userId' in data\n    && typeof (data as any).userId === 'number'\n    && 'name' in data\n    && typeof (data as any).name === 'string'\n  );\n}\n\n// HTML: <script type=\"application/json\" data-user>{\"userId\": 42, \"name\": \"Ali\"}</script>\n\nconst collector = new EmbeddedDataCollector<UserProfile>('data-user', isUserProfile);\nconst user = collector.collect();\n\nif (user) {\n  console.log(`User ${user.name} (ID: ${user.userId})`);\n} else {\n  console.error('Invalid user data');\n}\n```\n\n### With Zod Schema Validation\n\n```ts\nimport {EmbeddedDataCollector} from '@alwatr/embedded-data';\nimport {z} from 'zod';\n\nconst userSchema = z.object({\n  userId: z.number(),\n  name: z.string(),\n  email: z.string().email(),\n});\n\ntype User = z.infer<typeof userSchema>;\n\nconst collector = new EmbeddedDataCollector<User>('data-user', (data) => {\n  const result = userSchema.safeParse(data);\n  return result.success;\n});\n\nconst user = collector.collect();\n```\n\n### Lazy Initialization with `@alwatr/lazy`\n\nCombine with `@alwatr/lazy` to defer extraction until the data is actually needed:\n\n```ts\nimport {lazy} from '@alwatr/lazy';\nimport {EmbeddedDataCollector} from '@alwatr/embedded-data';\n\ninterface AppConfig {\n  apiUrl: string;\n  features: string[];\n}\n\nfunction isAppConfig(data: unknown): data is AppConfig {\n  return typeof data === 'object' && data !== null && 'apiUrl' in data;\n}\n\nexport const appConfig = lazy(() => {\n  const collector = new EmbeddedDataCollector<AppConfig>('data-app-config', isAppConfig);\n  return collector.collect();\n});\n\n// Later, when config is needed:\nconst config = appConfig.instance;\nif (config) {\n  console.log('API URL:', config.apiUrl);\n}\n```\n\n### Centralized Data Registry Pattern\n\nFor larger applications, create a centralized registry of all embedded data sources:\n\n```ts\n// src/data/embedded-data.ts\nimport {lazy} from '@alwatr/lazy';\nimport {EmbeddedDataCollector} from '@alwatr/embedded-data';\nimport type {Shop, Product, User} from '../types.js';\n\nfunction isShopCollection(data: unknown): data is {items: Shop[]} {\n  return typeof data === 'object' && data !== null && Array.isArray((data as any).items);\n}\n\nfunction isProductCollection(data: unknown): data is {items: Product[]} {\n  return typeof data === 'object' && data !== null && Array.isArray((data as any).items);\n}\n\nfunction isUser(data: unknown): data is User {\n  return typeof data === 'object' && data !== null && 'userId' in data;\n}\n\nexport const embeddedData = {\n  shops: lazy(() => {\n    const collector = new EmbeddedDataCollector<{items: Shop[]}>('data-shops', isShopCollection);\n    return collector.collect();\n  }),\n\n  products: lazy(() => {\n    const collector = new EmbeddedDataCollector<{items: Product[]}>('data-products', isProductCollection);\n    return collector.collect();\n  }),\n\n  currentUser: lazy(() => {\n    const collector = new EmbeddedDataCollector<User>('data-user', isUser);\n    return collector.collect();\n  }),\n} as const;\n```\n\n```ts\n// Usage in components\nimport {embeddedData} from './data/embedded-data.js';\n\nconst shops = embeddedData.shops.instance;\nif (shops) {\n  console.log('Loaded', shops.items.length, 'shops');\n}\n```\n\n---\n\n## API Reference\n\n### `class EmbeddedDataCollector<T>`\n\n#### `constructor(attributeName: string, validator?: (data: unknown) => data is T)`\n\nCreates a new collector instance.\n\n- **`attributeName`**: The HTML attribute used to query the script tag (e.g., `'data-config'`).\n- **validator** (optional): A type-guard function or validation function (e.g., Zod schema parser) to ensure runtime type safety. Must be synchronous.\n\n#### `collect(): T | null`\n\nSynchronously extracts, parses, and validates the embedded JSON payload.\n\nReturns the validated data or `null` on any failure (missing element, parse error, validation failure).\n\n---\n\n## Design Decisions\n\n| Decision                                          | Rationale                                                                                                                     |\n| ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |\n| **Attribute-based selector**                      | More flexible than hardcoded IDs. Allows multiple script tags with different attributes on the same page.                     |\n| **`element.textContent = ''` after extraction**   | Proactive memory management — the (potentially large) JSON string can be GC'd immediately after parsing.                      |\n| **Externalized validation**                       | Follows the Open/Closed Principle. The class is closed for modification but open for extension via the `validator` parameter. |\n| **Sync-only validator**                           | Keeps the API simple and synchronous. Async validation belongs in the business layer, not in the data extraction layer.       |\n| **SSR guard (`typeof document === 'undefined'`)** | Prevents crashes in Node.js/Bun server contexts where `document` is not available.                                            |\n| **Logger with optional chaining**                 | Debug methods (`logMethod`, `logMethodArgs`) are stripped in production builds when `ALWATR_DEBUG=0`.                         |\n\n---\n\n## Relation to Other Packages\n\n| Package                 | When to use instead                                                                                                    |\n| ----------------------- | ---------------------------------------------------------------------------------------------------------------------- |\n| `@alwatr/lazy`          | Defer extraction until the data is actually needed (combine with `EmbeddedDataCollector`).                             |\n| `@alwatr/signal`        | Reactive state management — use `EmbeddedDataCollector` to hydrate the initial state, then manage updates via signals. |\n| `@alwatr/fetch`         | Fetching data from HTTP APIs (not embedded in the DOM).                                                                |\n| `@alwatr/local-storage` | Persisting state across sessions in the browser (not server-rendered).                                                 |\n\n---\n\n## HTML Setup\n\nOn the server side (SSR), render the JSON data into a script tag:\n\n```html\n<!DOCTYPE html>\n<html>\n  <head>\n    <title>My App</title>\n  </head>\n  <body>\n    <!-- Embedded state for client-side hydration -->\n    <script\n      type=\"application/json\"\n      data-app-config\n    >\n      {\n        \"apiUrl\": \"https://api.example.com\",\n        \"features\": [\"dark-mode\", \"analytics\"]\n      }\n    </script>\n\n    <script\n      type=\"application/json\"\n      data-user-profile\n    >\n      {\n        \"userId\": 42,\n        \"name\": \"Ali Mihandoost\",\n        \"email\": \"ali@example.com\"\n      }\n    </script>\n\n    <!-- Your app bundle -->\n    <script\n      type=\"module\"\n      src=\"/app.js\"\n    ></script>\n  </body>\n</html>\n```\n\nOn the client side, use `EmbeddedDataCollector` to extract and validate the data:\n\n```ts\nimport {EmbeddedDataCollector} from '@alwatr/embedded-data';\n\nconst configCollector = new EmbeddedDataCollector('data-app-config');\nconst config = configCollector.collect();\n\nconst userCollector = new EmbeddedDataCollector('data-user-profile');\nconst user = userCollector.collect();\n```\n\n---\n\n## License\n\n[MPL-2.0](https://mozilla.org/MPL/2.0/) © [Alwatr](https://github.com/Alwatr)\n","readmeFilename":"README.md"}