{"_id":"@axewhyzed/blink-js","_rev":"9-fd13cfa3098cbaa56e097970cebac2c4","name":"@axewhyzed/blink-js","dist-tags":{"latest":"2.3.0"},"versions":{"1.0.0":{"name":"@axewhyzed/blink-js","version":"1.0.0","_id":"@axewhyzed/blink-js@1.0.0","maintainers":[{"name":"axewhyzed","email":"coding0234@gmail.com"}],"dist":{"shasum":"447b9fa3314a89177f21245d20467fd07f6d8130","tarball":"https://registry.npmjs.org/@axewhyzed/blink-js/-/blink-js-1.0.0.tgz","fileCount":33,"integrity":"sha512-Q3kPX4ai9uk1kdXYUVZa7Jqi3Sc/DAjx1OX8QPzd6MJ6MLb8DI0lxgHRmRi8a4Eex4yCiC0eB4xOMSChogYUvA==","signatures":[{"sig":"MEUCIAnMZlKPHK5pE+sknkWD1xIrwRXzPbe6sFcUkLshRiLxAiEAvwvs445jCNicon181wXbvmyHUja3F7UD0nYj+i3bFj4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55524},"main":"dist/engine/index.js","types":"dist/engine/index.d.ts","exports":{".":"./dist/engine/index.js","./jsx":"./dist/modules/jsx.js","./ssr":"./dist/modules/ssr.js","./core":"./dist/engine/core.js","./portal":"./dist/modules/portal.js","./router":"./dist/modules/router.js","./context":"./dist/modules/context.js","./disposal":"./dist/modules/disposal.js"},"gitHead":"e009cc8226186f82bb2fb41e842e695cd75efb94","scripts":{"build":"tsc"},"_npmUser":{"name":"axewhyzed","email":"coding0234@gmail.com"},"_npmVersion":"11.4.2","description":"The Micro-Framework that thinks it's a Big Framework.","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","typesVersions":{"*":{"jsx":["dist/modules/jsx.d.ts"],"ssr":["dist/modules/ssr.d.ts"],"core":["dist/engine/core.d.ts"],"portal":["dist/modules/portal.d.ts"],"router":["dist/modules/router.d.ts"],"context":["dist/modules/context.d.ts"],"disposal":["dist/modules/disposal.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/blink-js_1.0.0_1763583334685_0.23888008314767073","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@axewhyzed/blink-js","version":"1.0.1","_id":"@axewhyzed/blink-js@1.0.1","maintainers":[{"name":"axewhyzed","email":"coding0234@gmail.com"}],"dist":{"shasum":"9ebe4c522396870b0a429acb515bb584009d108e","tarball":"https://registry.npmjs.org/@axewhyzed/blink-js/-/blink-js-1.0.1.tgz","fileCount":33,"integrity":"sha512-ltlYjtRoI/joC9DBJkIUwYFIQ3l43vbfngtPQUPW6EWXcNeZWavnKrB/w0BjcvHMtKrHMOoWETZuaUnAT6WGng==","signatures":[{"sig":"MEYCIQD8nP5zkZXN3djMck6oCIazJs54TUSlPLTtEYuoyYtaugIhAKJUyGiHcJDV5AHF3Xbuinvn+t6e70toctYZSBwLXNE+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55545},"main":"dist/engine/index.js","type":"module","types":"dist/engine/index.d.ts","exports":{".":"./dist/engine/index.js","./jsx":"./dist/modules/jsx.js","./ssr":"./dist/modules/ssr.js","./core":"./dist/engine/core.js","./portal":"./dist/modules/portal.js","./router":"./dist/modules/router.js","./context":"./dist/modules/context.js","./disposal":"./dist/modules/disposal.js"},"gitHead":"8a12eba9de54b95f6222984eec0d705f9e23aca5","scripts":{"build":"tsc"},"_npmUser":{"name":"axewhyzed","email":"coding0234@gmail.com"},"_npmVersion":"11.4.2","description":"The Micro-Framework that thinks it's a Big Framework.","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","typesVersions":{"*":{"jsx":["dist/modules/jsx.d.ts"],"ssr":["dist/modules/ssr.d.ts"],"core":["dist/engine/core.d.ts"],"portal":["dist/modules/portal.d.ts"],"router":["dist/modules/router.d.ts"],"context":["dist/modules/context.d.ts"],"disposal":["dist/modules/disposal.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/blink-js_1.0.1_1763584040692_0.4761889712501597","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@axewhyzed/blink-js","version":"1.0.2","_id":"@axewhyzed/blink-js@1.0.2","maintainers":[{"name":"axewhyzed","email":"coding0234@gmail.com"}],"homepage":"https://github.com/axewhyzed/blinkjs#readme","bugs":{"url":"https://github.com/axewhyzed/blinkjs/issues"},"dist":{"shasum":"9998dc6163bc8184cc6ac3dab61717e4f370930d","tarball":"https://registry.npmjs.org/@axewhyzed/blink-js/-/blink-js-1.0.2.tgz","fileCount":33,"integrity":"sha512-2jX8wmN91eCEGF3FjN8QStnMTWl6EA99MylneBNYdcnwMJbki1sk39nO2ORuA270aDjhc2COlGgEcR24L9W24g==","signatures":[{"sig":"MEUCIQDLzAhdq/gQmOzLyjUZhTD/832oA0q7DtpchwEjW0oB0QIgbj4teVkpfnro80P1x6SmiMA4CFfR51GYd/+BE1FwSfU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55716},"main":"dist/engine/index.js","type":"module","types":"dist/engine/index.d.ts","exports":{".":"./dist/engine/index.js","./jsx":"./dist/modules/jsx.js","./ssr":"./dist/modules/ssr.js","./core":"./dist/engine/core.js","./portal":"./dist/modules/portal.js","./router":"./dist/modules/router.js","./context":"./dist/modules/context.js","./disposal":"./dist/modules/disposal.js"},"gitHead":"87ee8a6ec0433947083b2ea56a379a806ca91b14","scripts":{"build":"tsc"},"_npmUser":{"name":"axewhyzed","email":"coding0234@gmail.com"},"repository":{"url":"git+https://github.com/axewhyzed/blinkjs.git","type":"git"},"_npmVersion":"11.4.2","description":"The Micro-Framework that thinks it's a Big Framework.","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","typesVersions":{"*":{"jsx":["dist/modules/jsx.d.ts"],"ssr":["dist/modules/ssr.d.ts"],"core":["dist/engine/core.d.ts"],"portal":["dist/modules/portal.d.ts"],"router":["dist/modules/router.d.ts"],"context":["dist/modules/context.d.ts"],"disposal":["dist/modules/disposal.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/blink-js_1.0.2_1763800398418_0.12904920224480487","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@axewhyzed/blink-js","version":"2.0.0","_id":"@axewhyzed/blink-js@2.0.0","maintainers":[{"name":"axewhyzed","email":"coding0234@gmail.com"}],"homepage":"https://github.com/axewhyzed/blinkjs#readme","bugs":{"url":"https://github.com/axewhyzed/blinkjs/issues"},"dist":{"shasum":"74e9b44077509a563df92c2b53c84c290648503f","tarball":"https://registry.npmjs.org/@axewhyzed/blink-js/-/blink-js-2.0.0.tgz","fileCount":101,"integrity":"sha512-34zzAoF0kLSiaaEj+EXiNd8Wj9wx6yRmnXGqyfjfwwcnxNNtS5ABNmflrgYVG4cnIhwNSvmhqiaFMR0qxATpfw==","signatures":[{"sig":"MEUCIQCqprBA4kb5HzJX2uaBlAoi6qO4XuIsPWdA3sAMbBcNNAIgVUGWqB0rvCYwtadtQayXN9QBDYyXwrs+pdhaoUyJWzA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1632377},"main":"dist/engine/index.js","type":"module","types":"dist/engine/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"},"./jsx":{"types":"./dist/modules/jsx.d.ts","default":"./dist/modules/jsx.js"},"./ssr":{"types":"./dist/modules/ssr.d.ts","default":"./dist/modules/ssr.js"},"./bind":{"types":"./dist/engine/hooks/bind.d.ts","default":"./dist/engine/hooks/bind.js"},"./core":{"types":"./dist/engine/core.d.ts","default":"./dist/engine/core.js"},"./full":{"types":"./dist/engine/full.d.ts","default":"./dist/engine/full.js"},"./memo":{"types":"./dist/engine/hooks/memo.d.ts","default":"./dist/engine/hooks/memo.js"},"./store":{"types":"./dist/engine/hooks/store.d.ts","default":"./dist/engine/hooks/store.js"},"./portal":{"types":"./dist/modules/portal.d.ts","default":"./dist/modules/portal.js"},"./router":{"types":"./dist/modules/router.d.ts","default":"./dist/modules/router.js"},"./context":{"types":"./dist/modules/context.d.ts","default":"./dist/modules/context.js"},"./signals":{"types":"./dist/engine/hooks/signals.d.ts","default":"./dist/engine/hooks/signals.js"},"./disposal":{"types":"./dist/engine/hooks/disposal.d.ts","default":"./dist/engine/hooks/disposal.js"},"./jsx-runtime":{"types":"./dist/modules/jsx.d.ts","default":"./dist/modules/jsx.js"},"./control-flow":{"types":"./dist/modules/control-flow.d.ts","default":"./dist/modules/control-flow.js"},"./package.json":"./package.json","./error-boundary":{"types":"./dist/modules/error-boundary.d.ts","default":"./dist/modules/error-boundary.js"},"./jsx-dev-runtime":{"types":"./dist/modules/jsx.d.ts","default":"./dist/modules/jsx.js"}},"gitHead":"a38b4ffb376a21d7e62d16ecbb991b23c36a41cc","scripts":{"lint":"eslint .","size":"node scripts/size.mjs","test":"vitest run","build":"tsup && tsc --emitDeclarationOnly","format":"prettier --check .","validate":"npm run typecheck && npm run lint && npm run format && npm run validate:package","typecheck":"tsc --noEmit","test:bench":"vitest run --config vitest.bench.config.ts","format:write":"prettier --write .","test:coverage":"vitest run --coverage","validate:package":"publint && attw --pack --ignore-rules cjs-resolves-to-esm"},"_npmUser":{"name":"axewhyzed","email":"coding0234@gmail.com"},"repository":{"url":"git+https://github.com/axewhyzed/blinkjs.git","type":"git"},"_npmVersion":"11.18.0","description":"The Micro-Framework that thinks it's a Big Framework.","directories":{},"sideEffects":["./dist/engine/internal/runtime.js"],"_nodeVersion":"22.16.0","typesVersions":{"*":{"jsx":["dist/modules/jsx.d.ts"],"ssr":["dist/modules/ssr.d.ts"],"bind":["dist/engine/hooks/bind.d.ts"],"core":["dist/engine/core.d.ts"],"full":["dist/engine/full.d.ts"],"memo":["dist/engine/hooks/memo.d.ts"],"store":["dist/engine/hooks/store.d.ts"],"portal":["dist/modules/portal.d.ts"],"router":["dist/modules/router.d.ts"],"context":["dist/modules/context.d.ts"],"signals":["dist/engine/hooks/signals.d.ts"],"disposal":["dist/engine/hooks/disposal.d.ts"],"jsx-runtime":["dist/modules/jsx.d.ts"],"control-flow":["dist/modules/control-flow.d.ts"],"package.json":["package.json"],"error-boundary":["dist/modules/error-boundary.d.ts"],"jsx-dev-runtime":["dist/modules/jsx.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","jsdom":"^29.1.1","eslint":"^9.39.1","vitest":"^4.1.10","globals":"^16.5.0","publint":"^0.3.12","prettier":"^3.6.2","@eslint/js":"^9.39.1","typescript":"^5.9.3","@vitest/coverage-v8":"^4.1.10","@arethetypeswrong/cli":"^0.18.5","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.46.3","@typescript-eslint/eslint-plugin":"^8.46.3"},"_npmOperationalInternal":{"tmp":"tmp/blink-js_2.0.0_1786202821238_0.36794875269096816","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@axewhyzed/blink-js","version":"2.1.0","license":"MIT","_id":"@axewhyzed/blink-js@2.1.0","maintainers":[{"name":"axewhyzed","email":"coding0234@gmail.com"}],"homepage":"https://github.com/axewhyzed/blinkjs#readme","bugs":{"url":"https://github.com/axewhyzed/blinkjs/issues"},"dist":{"shasum":"e9c93d0e7f7e8c2050c06976ccf8b3708e663513","tarball":"https://registry.npmjs.org/@axewhyzed/blink-js/-/blink-js-2.1.0.tgz","fileCount":182,"integrity":"sha512-+SOqFmomRu4vK27ERiyajjo/afsHS1fF9E0ffarrqnAIy99t2OUNwD5SfP9k/GPf7lyPasNLCjXvulseo+bf2g==","signatures":[{"sig":"MEQCIGIKmpYevEijCOubvWw4q5sUAAuegkaWSp1q+sqAvvvuAiA7FbCY0wV/7emiNM2GsI77wun5p1kKb9OiP+0r5+9w6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":456340},"main":"dist/engine/index.js","type":"module","types":"dist/engine/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"},"./jsx":{"types":"./dist/modules/jsx.d.ts","default":"./dist/modules/jsx.js"},"./ssr":{"types":"./dist/modules/ssr.d.ts","default":"./dist/modules/ssr.js"},"./a11y":{"types":"./dist/modules/a11y.d.ts","default":"./dist/modules/a11y.js"},"./bind":{"types":"./dist/engine/hooks/bind.d.ts","default":"./dist/engine/hooks/bind.js"},"./core":{"types":"./dist/engine/core.d.ts","default":"./dist/engine/core.js"},"./full":{"types":"./dist/engine/full.d.ts","default":"./dist/engine/full.js"},"./memo":{"types":"./dist/engine/hooks/memo.d.ts","default":"./dist/engine/hooks/memo.js"},"./forms":{"types":"./dist/modules/forms.d.ts","default":"./dist/modules/forms.js"},"./store":{"types":"./dist/engine/hooks/store.d.ts","default":"./dist/engine/hooks/store.js"},"./portal":{"types":"./dist/modules/portal.d.ts","default":"./dist/modules/portal.js"},"./router":{"types":"./dist/modules/router.d.ts","default":"./dist/modules/router.js"},"./context":{"types":"./dist/modules/context.d.ts","default":"./dist/modules/context.js"},"./signals":{"types":"./dist/engine/hooks/signals.d.ts","default":"./dist/engine/hooks/signals.js"},"./testing":{"types":"./dist/modules/testing.d.ts","default":"./dist/modules/testing.js"},"./devtools":{"types":"./dist/modules/devtools.d.ts","default":"./dist/modules/devtools.js"},"./disposal":{"types":"./dist/engine/hooks/disposal.d.ts","default":"./dist/engine/hooks/disposal.js"},"./resource":{"types":"./dist/engine/hooks/resource.d.ts","default":"./dist/engine/hooks/resource.js"},"./jsx-runtime":{"types":"./dist/modules/jsx.d.ts","default":"./dist/modules/jsx.js"},"./transitions":{"types":"./dist/modules/transitions.d.ts","default":"./dist/modules/transitions.js"},"./control-flow":{"types":"./dist/modules/control-flow.d.ts","default":"./dist/modules/control-flow.js"},"./package.json":"./package.json","./error-boundary":{"types":"./dist/modules/error-boundary.d.ts","default":"./dist/modules/error-boundary.js"},"./jsx-dev-runtime":{"types":"./dist/modules/jsx.d.ts","default":"./dist/modules/jsx.js"}},"gitHead":"f7b7bdae38ef7c3d3a981f0381b868ddbe51cda8","scripts":{"lint":"eslint .","size":"node scripts/size.mjs","test":"vitest run","build":"tsup && tsc --emitDeclarationOnly","format":"prettier --check .","validate":"npm run typecheck && npm run lint && npm run format && npm run validate:package","typecheck":"tsc --noEmit","test:bench":"vitest run --config vitest.bench.config.ts","format:write":"prettier --write .","test:coverage":"vitest run --coverage","validate:package":"publint && attw --pack --ignore-rules cjs-resolves-to-esm","validate:consumer":"node scripts/consumer-check.mjs"},"_npmUser":{"name":"axewhyzed","email":"coding0234@gmail.com"},"repository":{"url":"git+https://github.com/axewhyzed/blinkjs.git","type":"git"},"_npmVersion":"11.18.0","description":"The Micro-Framework that thinks it's a Big Framework.","directories":{},"sideEffects":["./dist/engine/internal/runtime.js"],"_nodeVersion":"22.16.0","typesVersions":{"*":{"jsx":["dist/modules/jsx.d.ts"],"ssr":["dist/modules/ssr.d.ts"],"a11y":["dist/modules/a11y.d.ts"],"bind":["dist/engine/hooks/bind.d.ts"],"core":["dist/engine/core.d.ts"],"full":["dist/engine/full.d.ts"],"memo":["dist/engine/hooks/memo.d.ts"],"forms":["dist/modules/forms.d.ts"],"store":["dist/engine/hooks/store.d.ts"],"portal":["dist/modules/portal.d.ts"],"router":["dist/modules/router.d.ts"],"context":["dist/modules/context.d.ts"],"signals":["dist/engine/hooks/signals.d.ts"],"testing":["dist/modules/testing.d.ts"],"devtools":["dist/modules/devtools.d.ts"],"disposal":["dist/engine/hooks/disposal.d.ts"],"resource":["dist/engine/hooks/resource.d.ts"],"jsx-runtime":["dist/modules/jsx.d.ts"],"transitions":["dist/modules/transitions.d.ts"],"control-flow":["dist/modules/control-flow.d.ts"],"package.json":["package.json"],"error-boundary":["dist/modules/error-boundary.d.ts"],"jsx-dev-runtime":["dist/modules/jsx.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","jsdom":"^29.1.1","eslint":"^9.39.1","vitest":"^4.1.10","globals":"^16.5.0","publint":"^0.3.12","prettier":"^3.6.2","@eslint/js":"^9.39.1","typescript":"^5.9.3","@vitest/coverage-v8":"^4.1.10","@arethetypeswrong/cli":"^0.18.5","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.46.3","@typescript-eslint/eslint-plugin":"^8.46.3"},"_npmOperationalInternal":{"tmp":"tmp/blink-js_2.1.0_1786209742000_0.07352028122330623","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@axewhyzed/blink-js","version":"2.1.1","license":"MIT","_id":"@axewhyzed/blink-js@2.1.1","maintainers":[{"name":"axewhyzed","email":"coding0234@gmail.com"}],"homepage":"https://github.com/axewhyzed/blinkjs#readme","bugs":{"url":"https://github.com/axewhyzed/blinkjs/issues"},"dist":{"shasum":"e3191f7f65a6a84227436daec82353dcf167b200","tarball":"https://registry.npmjs.org/@axewhyzed/blink-js/-/blink-js-2.1.1.tgz","fileCount":182,"integrity":"sha512-f1eb0oPKgg2pxbrMR1UlbabyI1hD5s7/REn0MdCUed9cufCT7x/kluxjkxOw2AOb34R8MhLClPV3Xo85plnDTQ==","signatures":[{"sig":"MEYCIQDLZa2Nngnd2NhPBESiNnWHngN4gCXC4zmyep4e90e7yQIhAM9uBr6Ud0WzXMm7NNi8Kb34NLCbbkUF/P1km3NDfFbv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":458103},"main":"dist/engine/index.js","type":"module","types":"dist/engine/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"},"./jsx":{"types":"./dist/modules/jsx.d.ts","default":"./dist/modules/jsx.js"},"./ssr":{"types":"./dist/modules/ssr.d.ts","default":"./dist/modules/ssr.js"},"./a11y":{"types":"./dist/modules/a11y.d.ts","default":"./dist/modules/a11y.js"},"./bind":{"types":"./dist/engine/hooks/bind.d.ts","default":"./dist/engine/hooks/bind.js"},"./core":{"types":"./dist/engine/core.d.ts","default":"./dist/engine/core.js"},"./full":{"types":"./dist/engine/full.d.ts","default":"./dist/engine/full.js"},"./memo":{"types":"./dist/engine/hooks/memo.d.ts","default":"./dist/engine/hooks/memo.js"},"./forms":{"types":"./dist/modules/forms.d.ts","default":"./dist/modules/forms.js"},"./store":{"types":"./dist/engine/hooks/store.d.ts","default":"./dist/engine/hooks/store.js"},"./portal":{"types":"./dist/modules/portal.d.ts","default":"./dist/modules/portal.js"},"./router":{"types":"./dist/modules/router.d.ts","default":"./dist/modules/router.js"},"./context":{"types":"./dist/modules/context.d.ts","default":"./dist/modules/context.js"},"./signals":{"types":"./dist/engine/hooks/signals.d.ts","default":"./dist/engine/hooks/signals.js"},"./testing":{"types":"./dist/modules/testing.d.ts","default":"./dist/modules/testing.js"},"./devtools":{"types":"./dist/modules/devtools.d.ts","default":"./dist/modules/devtools.js"},"./disposal":{"types":"./dist/engine/hooks/disposal.d.ts","default":"./dist/engine/hooks/disposal.js"},"./resource":{"types":"./dist/engine/hooks/resource.d.ts","default":"./dist/engine/hooks/resource.js"},"./jsx-runtime":{"types":"./dist/modules/jsx.d.ts","default":"./dist/modules/jsx.js"},"./transitions":{"types":"./dist/modules/transitions.d.ts","default":"./dist/modules/transitions.js"},"./control-flow":{"types":"./dist/modules/control-flow.d.ts","default":"./dist/modules/control-flow.js"},"./package.json":"./package.json","./error-boundary":{"types":"./dist/modules/error-boundary.d.ts","default":"./dist/modules/error-boundary.js"},"./jsx-dev-runtime":{"types":"./dist/modules/jsx.d.ts","default":"./dist/modules/jsx.js"}},"gitHead":"c91d733d9cab520bc31302212af0cc4de451224f","scripts":{"lint":"eslint .","size":"node scripts/size.mjs","test":"vitest run","build":"tsup && tsc --emitDeclarationOnly","format":"prettier --check .","validate":"npm run typecheck && npm run lint && npm run format && npm run validate:package","typecheck":"tsc --noEmit","test:bench":"vitest run --config vitest.bench.config.ts","format:write":"prettier --write .","test:coverage":"vitest run --coverage","validate:package":"publint && attw --pack --ignore-rules cjs-resolves-to-esm","validate:consumer":"node scripts/consumer-check.mjs"},"_npmUser":{"name":"axewhyzed","email":"coding0234@gmail.com"},"repository":{"url":"git+https://github.com/axewhyzed/blinkjs.git","type":"git"},"_npmVersion":"11.18.0","description":"The Micro-Framework that thinks it's a Big Framework.","directories":{},"sideEffects":["./dist/engine/internal/runtime.js"],"_nodeVersion":"22.16.0","typesVersions":{"*":{"jsx":["dist/modules/jsx.d.ts"],"ssr":["dist/modules/ssr.d.ts"],"a11y":["dist/modules/a11y.d.ts"],"bind":["dist/engine/hooks/bind.d.ts"],"core":["dist/engine/core.d.ts"],"full":["dist/engine/full.d.ts"],"memo":["dist/engine/hooks/memo.d.ts"],"forms":["dist/modules/forms.d.ts"],"store":["dist/engine/hooks/store.d.ts"],"portal":["dist/modules/portal.d.ts"],"router":["dist/modules/router.d.ts"],"context":["dist/modules/context.d.ts"],"signals":["dist/engine/hooks/signals.d.ts"],"testing":["dist/modules/testing.d.ts"],"devtools":["dist/modules/devtools.d.ts"],"disposal":["dist/engine/hooks/disposal.d.ts"],"resource":["dist/engine/hooks/resource.d.ts"],"jsx-runtime":["dist/modules/jsx.d.ts"],"transitions":["dist/modules/transitions.d.ts"],"control-flow":["dist/modules/control-flow.d.ts"],"package.json":["package.json"],"error-boundary":["dist/modules/error-boundary.d.ts"],"jsx-dev-runtime":["dist/modules/jsx.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","jsdom":"^29.1.1","eslint":"^9.39.1","vitest":"^4.1.10","globals":"^16.5.0","publint":"^0.3.12","prettier":"^3.6.2","@eslint/js":"^9.39.1","typescript":"^5.9.3","@vitest/coverage-v8":"^4.1.10","@arethetypeswrong/cli":"^0.18.5","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.46.3","@typescript-eslint/eslint-plugin":"^8.46.3"},"_npmOperationalInternal":{"tmp":"tmp/blink-js_2.1.1_1786220450610_0.42902913157628286","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@axewhyzed/blink-js","version":"2.1.2","license":"MIT","_id":"@axewhyzed/blink-js@2.1.2","maintainers":[{"name":"axewhyzed","email":"coding0234@gmail.com"}],"homepage":"https://axewhyzed.github.io/blinkjs/","bugs":{"url":"https://github.com/axewhyzed/blinkjs/issues"},"dist":{"shasum":"b839f08b82abd1cbe7cd1c69087417d038f6d23c","tarball":"https://registry.npmjs.org/@axewhyzed/blink-js/-/blink-js-2.1.2.tgz","fileCount":182,"integrity":"sha512-hvXz5QRtsNbvh4kjpLPsD7fqfM+um6cENjBGpI/U1TOXRVfVKP2Cu5o8iG8B6EssHLvyd6EyznW4lC6rdEKSlw==","signatures":[{"sig":"MEUCIQDAfEYiGrlQXEcGEMPap7eZ3e3+SDZ4k1NqTPT/R+5FAgIgd0TkLxH+s8O+/U86GQdkn4DDvCwp/30zALFvzcCYJac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":461664},"main":"dist/engine/index.js","type":"module","types":"dist/engine/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"},"./jsx":{"types":"./dist/modules/jsx.d.ts","default":"./dist/modules/jsx.js"},"./ssr":{"types":"./dist/modules/ssr.d.ts","default":"./dist/modules/ssr.js"},"./a11y":{"types":"./dist/modules/a11y.d.ts","default":"./dist/modules/a11y.js"},"./bind":{"types":"./dist/engine/hooks/bind.d.ts","default":"./dist/engine/hooks/bind.js"},"./core":{"types":"./dist/engine/core.d.ts","default":"./dist/engine/core.js"},"./full":{"types":"./dist/engine/full.d.ts","default":"./dist/engine/full.js"},"./memo":{"types":"./dist/engine/hooks/memo.d.ts","default":"./dist/engine/hooks/memo.js"},"./forms":{"types":"./dist/modules/forms.d.ts","default":"./dist/modules/forms.js"},"./store":{"types":"./dist/engine/hooks/store.d.ts","default":"./dist/engine/hooks/store.js"},"./portal":{"types":"./dist/modules/portal.d.ts","default":"./dist/modules/portal.js"},"./router":{"types":"./dist/modules/router.d.ts","default":"./dist/modules/router.js"},"./context":{"types":"./dist/modules/context.d.ts","default":"./dist/modules/context.js"},"./signals":{"types":"./dist/engine/hooks/signals.d.ts","default":"./dist/engine/hooks/signals.js"},"./testing":{"types":"./dist/modules/testing.d.ts","default":"./dist/modules/testing.js"},"./devtools":{"types":"./dist/modules/devtools.d.ts","default":"./dist/modules/devtools.js"},"./disposal":{"types":"./dist/engine/hooks/disposal.d.ts","default":"./dist/engine/hooks/disposal.js"},"./resource":{"types":"./dist/engine/hooks/resource.d.ts","default":"./dist/engine/hooks/resource.js"},"./jsx-runtime":{"types":"./dist/modules/jsx.d.ts","default":"./dist/modules/jsx.js"},"./transitions":{"types":"./dist/modules/transitions.d.ts","default":"./dist/modules/transitions.js"},"./control-flow":{"types":"./dist/modules/control-flow.d.ts","default":"./dist/modules/control-flow.js"},"./package.json":"./package.json","./error-boundary":{"types":"./dist/modules/error-boundary.d.ts","default":"./dist/modules/error-boundary.js"},"./jsx-dev-runtime":{"types":"./dist/modules/jsx.d.ts","default":"./dist/modules/jsx.js"}},"gitHead":"d3db3b74d037a53764cebf20217fb7fe22a7de33","scripts":{"lint":"eslint .","size":"node scripts/size.mjs","test":"vitest run","build":"tsup && tsc --emitDeclarationOnly","format":"prettier --check .","validate":"npm run typecheck && npm run lint && npm run format && npm run validate:package","typecheck":"tsc --noEmit","test:bench":"vitest run --config vitest.bench.config.ts","format:write":"prettier --write .","test:coverage":"vitest run --coverage","validate:package":"publint && attw --pack --ignore-rules cjs-resolves-to-esm","validate:consumer":"node scripts/consumer-check.mjs"},"_npmUser":{"name":"axewhyzed","email":"coding0234@gmail.com"},"repository":{"url":"git+https://github.com/axewhyzed/blinkjs.git","type":"git"},"_npmVersion":"11.18.0","description":"The Micro-Framework that thinks it's a Big Framework.","directories":{},"sideEffects":["./dist/engine/internal/runtime.js"],"_nodeVersion":"22.16.0","typesVersions":{"*":{"jsx":["dist/modules/jsx.d.ts"],"ssr":["dist/modules/ssr.d.ts"],"a11y":["dist/modules/a11y.d.ts"],"bind":["dist/engine/hooks/bind.d.ts"],"core":["dist/engine/core.d.ts"],"full":["dist/engine/full.d.ts"],"memo":["dist/engine/hooks/memo.d.ts"],"forms":["dist/modules/forms.d.ts"],"store":["dist/engine/hooks/store.d.ts"],"portal":["dist/modules/portal.d.ts"],"router":["dist/modules/router.d.ts"],"context":["dist/modules/context.d.ts"],"signals":["dist/engine/hooks/signals.d.ts"],"testing":["dist/modules/testing.d.ts"],"devtools":["dist/modules/devtools.d.ts"],"disposal":["dist/engine/hooks/disposal.d.ts"],"resource":["dist/engine/hooks/resource.d.ts"],"jsx-runtime":["dist/modules/jsx.d.ts"],"transitions":["dist/modules/transitions.d.ts"],"control-flow":["dist/modules/control-flow.d.ts"],"package.json":["package.json"],"error-boundary":["dist/modules/error-boundary.d.ts"],"jsx-dev-runtime":["dist/modules/jsx.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","jsdom":"^29.1.1","eslint":"^9.39.1","vitest":"^4.1.10","globals":"^16.5.0","publint":"^0.3.12","prettier":"^3.6.2","@eslint/js":"^9.39.1","typescript":"^5.9.3","@vitest/coverage-v8":"^4.1.10","@arethetypeswrong/cli":"^0.18.5","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.46.3","@typescript-eslint/eslint-plugin":"^8.46.3"},"_npmOperationalInternal":{"tmp":"tmp/blink-js_2.1.2_1786253842256_0.9011710216432072","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@axewhyzed/blink-js","version":"2.2.0","license":"MIT","_id":"@axewhyzed/blink-js@2.2.0","maintainers":[{"name":"axewhyzed","email":"coding0234@gmail.com"}],"homepage":"https://axewhyzed.github.io/blinkjs/","bugs":{"url":"https://github.com/axewhyzed/blinkjs/issues"},"dist":{"shasum":"d41db8679de399bbadf76a81d0ef5cf6cd69496f","tarball":"https://registry.npmjs.org/@axewhyzed/blink-js/-/blink-js-2.2.0.tgz","fileCount":182,"integrity":"sha512-u+Ruj37GSDFb/UjhXmjPKANAc/HRS6bk07A1oQyjCaXwMB6V7+StS5K9kmwfuGYPTYJrl1f34JADMN/E2K27jA==","signatures":[{"sig":"MEQCIFt8bqPxRDu2P7UPHYba4Mui15UuwUIKEiRRqVidmLUuAiBFRLrWtb2MVotLOeBkXhvrO8K/iSw3BVq4eGTxr63WHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":478339},"main":"dist/engine/index.js","type":"module","types":"dist/engine/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"},"./jsx":{"types":"./dist/modules/jsx.d.ts","default":"./dist/modules/jsx.js"},"./ssr":{"types":"./dist/modules/ssr.d.ts","default":"./dist/modules/ssr.js"},"./a11y":{"types":"./dist/modules/a11y.d.ts","default":"./dist/modules/a11y.js"},"./bind":{"types":"./dist/engine/hooks/bind.d.ts","default":"./dist/engine/hooks/bind.js"},"./core":{"types":"./dist/engine/core.d.ts","default":"./dist/engine/core.js"},"./full":{"types":"./dist/engine/full.d.ts","default":"./dist/engine/full.js"},"./memo":{"types":"./dist/engine/hooks/memo.d.ts","default":"./dist/engine/hooks/memo.js"},"./forms":{"types":"./dist/modules/forms.d.ts","default":"./dist/modules/forms.js"},"./store":{"types":"./dist/engine/hooks/store.d.ts","default":"./dist/engine/hooks/store.js"},"./portal":{"types":"./dist/modules/portal.d.ts","default":"./dist/modules/portal.js"},"./router":{"types":"./dist/modules/router.d.ts","default":"./dist/modules/router.js"},"./context":{"types":"./dist/modules/context.d.ts","default":"./dist/modules/context.js"},"./signals":{"types":"./dist/engine/hooks/signals.d.ts","default":"./dist/engine/hooks/signals.js"},"./testing":{"types":"./dist/modules/testing.d.ts","default":"./dist/modules/testing.js"},"./devtools":{"types":"./dist/modules/devtools.d.ts","default":"./dist/modules/devtools.js"},"./disposal":{"types":"./dist/engine/hooks/disposal.d.ts","default":"./dist/engine/hooks/disposal.js"},"./resource":{"types":"./dist/engine/hooks/resource.d.ts","default":"./dist/engine/hooks/resource.js"},"./jsx-runtime":{"types":"./dist/modules/jsx.d.ts","default":"./dist/modules/jsx.js"},"./transitions":{"types":"./dist/modules/transitions.d.ts","default":"./dist/modules/transitions.js"},"./control-flow":{"types":"./dist/modules/control-flow.d.ts","default":"./dist/modules/control-flow.js"},"./package.json":"./package.json","./error-boundary":{"types":"./dist/modules/error-boundary.d.ts","default":"./dist/modules/error-boundary.js"},"./jsx-dev-runtime":{"types":"./dist/modules/jsx.d.ts","default":"./dist/modules/jsx.js"}},"gitHead":"fefa75f7c0a7ada051bc18c710a09ccf06d75444","scripts":{"lint":"eslint .","size":"node scripts/size.mjs","test":"vitest run","build":"tsup && tsc --emitDeclarationOnly","format":"prettier --check .","validate":"npm run typecheck && npm run lint && npm run format && npm run validate:package","typecheck":"tsc --noEmit","test:bench":"vitest run --config vitest.bench.config.ts","format:write":"prettier --write .","test:coverage":"vitest run --coverage","validate:package":"publint && attw --pack --ignore-rules cjs-resolves-to-esm","validate:consumer":"node scripts/consumer-check.mjs"},"_npmUser":{"name":"axewhyzed","email":"coding0234@gmail.com"},"repository":{"url":"git+https://github.com/axewhyzed/blinkjs.git","type":"git"},"_npmVersion":"11.18.0","description":"The Micro-Framework that thinks it's a Big Framework.","directories":{},"sideEffects":["./dist/engine/internal/runtime.js"],"_nodeVersion":"22.16.0","typesVersions":{"*":{"jsx":["dist/modules/jsx.d.ts"],"ssr":["dist/modules/ssr.d.ts"],"a11y":["dist/modules/a11y.d.ts"],"bind":["dist/engine/hooks/bind.d.ts"],"core":["dist/engine/core.d.ts"],"full":["dist/engine/full.d.ts"],"memo":["dist/engine/hooks/memo.d.ts"],"forms":["dist/modules/forms.d.ts"],"store":["dist/engine/hooks/store.d.ts"],"portal":["dist/modules/portal.d.ts"],"router":["dist/modules/router.d.ts"],"context":["dist/modules/context.d.ts"],"signals":["dist/engine/hooks/signals.d.ts"],"testing":["dist/modules/testing.d.ts"],"devtools":["dist/modules/devtools.d.ts"],"disposal":["dist/engine/hooks/disposal.d.ts"],"resource":["dist/engine/hooks/resource.d.ts"],"jsx-runtime":["dist/modules/jsx.d.ts"],"transitions":["dist/modules/transitions.d.ts"],"control-flow":["dist/modules/control-flow.d.ts"],"package.json":["package.json"],"error-boundary":["dist/modules/error-boundary.d.ts"],"jsx-dev-runtime":["dist/modules/jsx.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","jsdom":"^29.1.1","eslint":"^9.39.1","vitest":"^4.1.10","globals":"^16.5.0","publint":"^0.3.12","prettier":"^3.6.2","@eslint/js":"^9.39.1","typescript":"^5.9.3","@vitest/coverage-v8":"^4.1.10","@arethetypeswrong/cli":"^0.18.5","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.46.3","@typescript-eslint/eslint-plugin":"^8.46.3"},"_npmOperationalInternal":{"tmp":"tmp/blink-js_2.2.0_1786257992752_0.10873629637749205","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@axewhyzed/blink-js","version":"2.3.0","type":"module","description":"The Micro-Framework that thinks it's a Big Framework.","license":"MIT","homepage":"https://axewhyzed.github.io/blinkjs/","main":"dist/engine/index.js","types":"dist/engine/index.d.ts","engines":{"node":">=18"},"repository":{"type":"git","url":"git+https://github.com/axewhyzed/blinkjs.git"},"bugs":{"url":"https://github.com/axewhyzed/blinkjs/issues"},"exports":{".":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"},"./full":{"types":"./dist/engine/full.d.ts","default":"./dist/engine/full.js"},"./core":{"types":"./dist/engine/core.d.ts","default":"./dist/engine/core.js"},"./router":{"types":"./dist/modules/router.d.ts","default":"./dist/modules/router.js"},"./context":{"types":"./dist/modules/context.d.ts","default":"./dist/modules/context.js"},"./portal":{"types":"./dist/modules/portal.d.ts","default":"./dist/modules/portal.js"},"./jsx":{"types":"./dist/modules/jsx.d.ts","default":"./dist/modules/jsx.js"},"./jsx-runtime":{"types":"./dist/modules/jsx.d.ts","default":"./dist/modules/jsx.js"},"./jsx-dev-runtime":{"types":"./dist/modules/jsx.d.ts","default":"./dist/modules/jsx.js"},"./ssr":{"types":"./dist/modules/ssr.d.ts","default":"./dist/modules/ssr.js"},"./disposal":{"types":"./dist/engine/hooks/disposal.d.ts","default":"./dist/engine/hooks/disposal.js"},"./store":{"types":"./dist/engine/hooks/store.d.ts","default":"./dist/engine/hooks/store.js"},"./memo":{"types":"./dist/engine/hooks/memo.d.ts","default":"./dist/engine/hooks/memo.js"},"./bind":{"types":"./dist/engine/hooks/bind.d.ts","default":"./dist/engine/hooks/bind.js"},"./control-flow":{"types":"./dist/modules/control-flow.d.ts","default":"./dist/modules/control-flow.js"},"./error-boundary":{"types":"./dist/modules/error-boundary.d.ts","default":"./dist/modules/error-boundary.js"},"./signals":{"types":"./dist/engine/hooks/signals.d.ts","default":"./dist/engine/hooks/signals.js"},"./resource":{"types":"./dist/engine/hooks/resource.d.ts","default":"./dist/engine/hooks/resource.js"},"./forms":{"types":"./dist/modules/forms.d.ts","default":"./dist/modules/forms.js"},"./a11y":{"types":"./dist/modules/a11y.d.ts","default":"./dist/modules/a11y.js"},"./testing":{"types":"./dist/modules/testing.d.ts","default":"./dist/modules/testing.js"},"./transitions":{"types":"./dist/modules/transitions.d.ts","default":"./dist/modules/transitions.js"},"./devtools":{"types":"./dist/modules/devtools.d.ts","default":"./dist/modules/devtools.js"},"./package.json":"./package.json"},"typesVersions":{"*":{"core":["dist/engine/core.d.ts"],"full":["dist/engine/full.d.ts"],"router":["dist/modules/router.d.ts"],"context":["dist/modules/context.d.ts"],"portal":["dist/modules/portal.d.ts"],"jsx":["dist/modules/jsx.d.ts"],"jsx-runtime":["dist/modules/jsx.d.ts"],"jsx-dev-runtime":["dist/modules/jsx.d.ts"],"ssr":["dist/modules/ssr.d.ts"],"disposal":["dist/engine/hooks/disposal.d.ts"],"store":["dist/engine/hooks/store.d.ts"],"memo":["dist/engine/hooks/memo.d.ts"],"bind":["dist/engine/hooks/bind.d.ts"],"control-flow":["dist/modules/control-flow.d.ts"],"error-boundary":["dist/modules/error-boundary.d.ts"],"signals":["dist/engine/hooks/signals.d.ts"],"resource":["dist/engine/hooks/resource.d.ts"],"forms":["dist/modules/forms.d.ts"],"a11y":["dist/modules/a11y.d.ts"],"testing":["dist/modules/testing.d.ts"],"transitions":["dist/modules/transitions.d.ts"],"devtools":["dist/modules/devtools.d.ts"],"package.json":["package.json"]}},"sideEffects":["./dist/engine/internal/runtime.js"],"scripts":{"build":"tsup && tsc --emitDeclarationOnly","test":"vitest run","test:coverage":"vitest run --coverage","test:bench":"vitest run --config vitest.bench.config.ts","typecheck:browser":"tsc --noEmit -p browser/tsconfig.json","test:browser":"npm run typecheck:browser && playwright test -c browser/playwright.config.ts","typecheck":"tsc --noEmit","lint":"eslint .","format":"prettier --check .","format:write":"prettier --write .","validate:package":"publint && attw --pack --ignore-rules cjs-resolves-to-esm","validate:consumer":"node scripts/consumer-check.mjs","validate:fixtures":"node scripts/consumer-fixtures.mjs","benchmark":"node scripts/benchmark.mjs","benchmark:json":"node scripts/benchmark.mjs --json","validate":"npm run typecheck && npm run lint && npm run format && npm run validate:package","size":"node scripts/size.mjs"},"devDependencies":{"@arethetypeswrong/cli":"^0.18.5","@types/node":"^22.19.11","@eslint/js":"^9.39.1","@playwright/test":"^1.57.0","@typescript-eslint/eslint-plugin":"^8.46.3","@typescript-eslint/parser":"^8.46.3","@vitest/coverage-v8":"^4.1.10","eslint":"^9.39.1","eslint-config-prettier":"^10.1.8","globals":"^16.5.0","jsdom":"^29.1.1","prettier":"^3.6.2","publint":"^0.3.12","tsup":"^8.5.1","typescript":"^5.9.3","vite":"^8.2.1","vitest":"^4.1.10"},"gitHead":"fefa75f7c0a7ada051bc18c710a09ccf06d75444","_id":"@axewhyzed/blink-js@2.3.0","_nodeVersion":"22.16.0","_npmVersion":"11.18.0","dist":{"integrity":"sha512-ouC3/eaY5WlxrSfcvg8JYlObRwMtu0RG5jmPSlDd4sfxRRRvUdXSckr8yfAw9NFw/AIaiuBXURzGz6GaTJNgNA==","shasum":"12932b2e2b0ea6ea2793318cddd36d164f578a8f","tarball":"https://registry.npmjs.org/@axewhyzed/blink-js/-/blink-js-2.3.0.tgz","fileCount":188,"unpackedSize":540235,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC62Gy+7gJ5P15KANGSXBIeZqpytLnQJpSMboXkGkDhhgIhAOP+AjCA5e4GI/w2CzsAuBKmqAad+zESqZh2/hNOUSKC"}]},"_npmUser":{"name":"axewhyzed","email":"coding0234@gmail.com"},"directories":{},"maintainers":[{"name":"axewhyzed","email":"coding0234@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/blink-js_2.3.0_1786266070268_0.8972836484326665"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-19T20:15:34.574Z","modified":"2026-08-09T09:01:10.579Z","1.0.0":"2025-11-19T20:15:34.888Z","1.0.1":"2025-11-19T20:27:20.887Z","1.0.2":"2025-11-22T08:33:18.617Z","2.0.0":"2026-08-08T15:27:01.393Z","2.1.0":"2026-08-08T17:22:22.142Z","2.1.1":"2026-08-08T20:20:50.746Z","2.1.2":"2026-08-09T05:37:22.404Z","2.2.0":"2026-08-09T06:46:32.902Z","2.3.0":"2026-08-09T09:01:10.430Z"},"bugs":{"url":"https://github.com/axewhyzed/blinkjs/issues"},"license":"MIT","homepage":"https://axewhyzed.github.io/blinkjs/","repository":{"type":"git","url":"git+https://github.com/axewhyzed/blinkjs.git"},"description":"The Micro-Framework that thinks it's a Big Framework.","maintainers":[{"name":"axewhyzed","email":"coding0234@gmail.com"}],"readme":"# @axewhyzed/blink-js\n\nBlinkJS is a small TypeScript UI runtime with fine-grained signals, a\nvirtual-DOM renderer, component ownership, and optional application modules.\nIt is designed to keep common application code readable: signals describe\nreactive state, components return DOM, and owned work is cleaned up with its\ncomponent or root.\n\n```bash\nnpm install @axewhyzed/blink-js\n```\n\nStart here:\n\n- [BlinkJS documentation](https://axewhyzed.github.io/blinkjs/)\n- [Complete API reference](https://axewhyzed.github.io/blinkjs/reference)\n- [Repository README](https://github.com/axewhyzed/blinkjs#readme)\n\n## Quick start\n\nThe root entry contains client-core APIs. Optional capabilities use explicit\nsubpaths such as `@axewhyzed/blink-js/router`,\n`@axewhyzed/blink-js/resource`, `@axewhyzed/blink-js/forms`,\n`@axewhyzed/blink-js/portal`, and `@axewhyzed/blink-js/ssr`.\n\n```ts\nimport { el, mountApp, useSignal } from '@axewhyzed/blink-js';\n\nfunction App() {\n  const count = useSignal(0);\n  return el('button', { onClick: () => count.value++ }, count);\n}\n\nmountApp('#app', App);\n```\n\n## Public entry points\n\nThe root entry contains client-core APIs:\n\n- rendering: `el`, `mountApp`, `hydrateRoot`, `unmountApp`, JSX helpers\n- reactivity: `useSignal`, `useComputed`, `createSignal`, `createEffect`,\n  `createComputed`, `createRoot`, `batch`, `untrack`, and `nextTick`\n- state: `createStore`, `useStore`, `produce`, and `unwrap`\n- components: `Show`, `For`, `Switch`, `Match`, and `ErrorBoundary`\n- lifecycle: `onMount`, `onCleanup`, `useRef`, and disposal helpers\n- context and DOM bindings\n\n### Production error reporting\n\nUse `setErrorReporter` to forward framework-caught errors to your production\ndiagnostics service. It reports runtime, SSR, resource, router, and hydration\nfailures without changing BlinkJS error recovery or development console output.\n\n```ts\nimport { setErrorReporter } from '@axewhyzed/blink-js';\n\nsetErrorReporter(({ error, source, component, path }) => {\n  telemetry.captureException(error, { tags: { source, component, path } });\n});\n```\n\nThe callback is best-effort; if it throws, BlinkJS continues its normal error\nhandling. Calling `setErrorReporter` returns a function that restores the\nprevious reporter.\n\nOptional features are explicit subpath imports:\n\n| Feature          | Import                            |\n| ---------------- | --------------------------------- |\n| Router           | `@axewhyzed/blink-js/router`      |\n| Async resources  | `@axewhyzed/blink-js/resource`    |\n| Forms            | `@axewhyzed/blink-js/forms`       |\n| Portals          | `@axewhyzed/blink-js/portal`      |\n| Server rendering | `@axewhyzed/blink-js/ssr`         |\n| Accessibility    | `@axewhyzed/blink-js/a11y`        |\n| Testing          | `@axewhyzed/blink-js/testing`     |\n| Transitions      | `@axewhyzed/blink-js/transitions` |\n| Devtools         | `@axewhyzed/blink-js/devtools`    |\n\nThe published package is validated as a consumer through native ESM, esbuild,\nVite, Rollup, and Webpack. The repository's Playwright suite covers Chromium,\nFirefox, and WebKit behavior.\n\nFor example:\n\n```ts\nimport { Router, Link, Outlet } from '@axewhyzed/blink-js/router';\nimport { createResource } from '@axewhyzed/blink-js/resource';\nimport { createForm } from '@axewhyzed/blink-js/forms';\nimport { renderToStringAsync } from '@axewhyzed/blink-js/ssr';\n```\n\n## Accessible UI helpers\n\n`@axewhyzed/blink-js/a11y` provides small DOM controllers rather than a component\nlibrary. `createDialog`, `createTabs`, and `createDisclosure` connect existing\nelements with the expected ARIA state, keyboard behavior, focus handling, and a\n`destroy` cleanup method. They own the controlled dialog/panel `hidden` state;\nkeep application state in sync through their change callbacks.\n\n```ts\nimport { createDialog, createTabs } from '@axewhyzed/blink-js/a11y';\n\nconst dialog = createDialog(() => document.querySelector('#settings')!, {\n  onOpenChange: (open) => (settingsOpen.value = open),\n});\nopenButton.addEventListener('click', () => dialog.open());\n\nconst tabs = createTabs(tabList, [profileTab, billingTab], [profilePanel, billingPanel]);\n```\n\nDialogs are modal by default, close on Escape, trap focus while open, and restore\nthe previously focused element. Tabs use automatic activation by default; choose\n`activation: 'manual'` when changing panels has a meaningful cost. For dialogs\nrendered in an overlay container, `closeOnOutsidePress` closes only when that\ncontainer itself receives the pointer event.\n\n## Transitions and devtools\n\nThe `transition` element prop coordinates CSS **enter and leave** transitions.\nWhen a conditional branch is removed, BlinkJS keeps its DOM range and component\nownership alive until `leaveDuration` completes, then runs cleanup and detaches\nthe range. Set `leaveDuration: 0` for immediate removal, and use\n`onLeaveComplete` for post-removal bookkeeping.\n\n```ts\nconst fade = createTransition({\n  enter: 'fade-enter',\n  enterActive: 'fade-enter-active',\n  enterDuration: 180,\n  leave: 'fade-leave',\n  leaveActive: 'fade-leave-active',\n  leaveDuration: 140,\n  onLeaveComplete: () => console.log('removed'),\n});\n```\n\n`installDevtools` remains opt-in and bounded. Snapshots now include the configured\nevent capacity, how many old events were dropped, monotonically increasing event\nsequences, and optional user-provided session metadata.\n\n## Server rendering concurrency\n\n`renderToStringAsync` and `renderToStream` isolate hook and context state across\nconcurrent calls. A request that awaits inside a component cannot leak its\ncontext to another request. This is safe on Node and runtimes exposing an\nAsyncLocalStorage-compatible API. Do not call hook-using components directly\noutside BlinkJS's SSR entry points.\n\nThe `/full` entry remains available for compatibility with the broad pre-2.1\nsurface. New applications should prefer explicit subpaths so unused features\nremain tree-shakeable.\n\n## Learn more\n\nThe [documentation site](https://axewhyzed.github.io/blinkjs/) contains the\nbeginner learning path, guides, runnable examples, production guidance, and a\nsearchable reference for every public exported symbol. The\n[API reference](https://axewhyzed.github.io/blinkjs/reference) documents each\nsymbol's import path, TypeScript signature, parameters, return value, runtime\nbehavior, lifecycle, SSR notes, examples, common mistakes, and source file.\n\nThe repository contains complete [runnable examples](https://github.com/axewhyzed/blinkjs/tree/main/examples)\nfor a counter, todo app, router, portal, and SSR rendering. The\n[migration guide](https://axewhyzed.github.io/blinkjs/migration) explains the\nexplicit optional-module imports introduced in the 2.x API.\n\nMaintainers should use the repository's [publishing checklist](https://github.com/axewhyzed/blinkjs/blob/main/docs/PUBLISHING.md)\nfor versioning, validation, npm publication, and tagging.\n\nMIT (c) BlinkJS Team\n","readmeFilename":"README.md"}