{"_id":"rendu","_rev":"10-ba5efbffd69446b819b83ab0de3adcbd","name":"rendu","dist-tags":{"latest":"0.1.1"},"versions":{"0.0.0":{"name":"rendu","version":"0.0.0","_id":"rendu@0.0.0","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"dist":{"shasum":"b565f48ecaa394c83530e3d79b4cfe7599bc92b3","tarball":"https://registry.npmjs.org/rendu/-/rendu-0.0.0.tgz","fileCount":1,"integrity":"sha512-Vb6DMrZ2OxCDofK1C8AxGypZqvwVU8f2/uzROfVzH2viyXa38znc1hXEPhm/JtbE4HhPdWl9kgjYP7lqYClMSA==","signatures":[{"sig":"MEYCIQCouDB7t5LT/l5HXDOE/s3xOgKy/9F4Sgzwh10r0qTskgIhALaCqNLpfnhlT9TwBBvZWe1NNEgU5j6ZgYQ6+f+JmzxC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"_npmVersion":"11.6.0","directories":{},"_nodeVersion":"24.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/rendu_0.0.0_1759873909366_0.6016952178298138","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"rendu","version":"0.0.1","license":"MIT","_id":"rendu@0.0.1","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/h3js/rendu#readme","bugs":{"url":"https://github.com/h3js/rendu/issues"},"bin":{"rendu":"dist/cli.mjs"},"dist":{"shasum":"a877af5ac75b7b70e4decff105be20788296e170","tarball":"https://registry.npmjs.org/rendu/-/rendu-0.0.1.tgz","fileCount":7,"integrity":"sha512-4pqGEKXprrs8bNqhb+471A65M6xwmJn//Ul8UF0hYi/8z//StdgxuSm4Bol6qdTulNNqH/p2WFzBpZmc2+oA+w==","signatures":[{"sig":"MEUCIQCyxPjQ8NbTwobryC2h3jliY3VsYTePB6UpWYiTNT2CQQIgXam5XGVdWveWnrHmjYPNhWGu/bAL0MpLJYthGHcZ9HE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6362},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs"},"gitHead":"208a9a12e46395bc66042c6ecf1a1cbdfc052926","scripts":{"dev":"vitest dev","lint":"eslint . && prettier -c .","play":"pnpm rendu playground","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","rendu":"node ./src/cli.ts","prepack":"pnpm build","release":"pnpm test && changelogen --release && npm publish && git push --follow-tags","lint:fix":"automd && eslint . --fix && prettier -w .","test:types":"tsc --noEmit --skipLibCheck"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/h3js/rendu.git","type":"git"},"_npmVersion":"11.6.0","description":"🏎️ JavaScript Hypertext Preprocessor.","directories":{},"sideEffects":false,"_nodeVersion":"24.9.0","dependencies":{"srvx":"^0.8.14"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.15.0","devDependencies":{"rendu":"workspace:*","automd":"^0.4.0","eslint":"^9.33.0","obuild":"^0.2.1","vitest":"^3.2.4","prettier":"^3.6.2","typescript":"^5.9.2","@types/node":"^24.3.0","changelogen":"^0.6.2","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/rendu_0.0.1_1759880481203_0.8475920281911644","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"rendu","version":"0.0.2","license":"MIT","_id":"rendu@0.0.2","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/h3js/rendu#readme","bugs":{"url":"https://github.com/h3js/rendu/issues"},"bin":{"rendu":"dist/cli.mjs"},"dist":{"shasum":"c71e4e7d8a54fdbabbc8e71d92cf663e4701dfe3","tarball":"https://registry.npmjs.org/rendu/-/rendu-0.0.2.tgz","fileCount":7,"integrity":"sha512-syQtJEmTABYWO/K8EbT5SQ6lly0fMoENr5T4BP9diPtjBFArPTlRjwewH2Za9L8rB6D46sBt0tYLgNVjqdENHQ==","signatures":[{"sig":"MEUCIE4PfTnc5yQ6SKXlT5j6quPMWbs+K07HKnOdecu2L8jnAiEAsr0ooysCB1V7hws3o5ccr7QziAat1kMQvP3J3MP2DXo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23077},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs"},"gitHead":"b39da1a7a8f54c05cde99fa579596ece05e1bc7a","scripts":{"dev":"vitest dev","lint":"eslint . && prettier -c .","play":"pnpm rendu playground","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","rendu":"node ./src/cli.ts","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release && npm publish && git push --follow-tags","lint:fix":"automd && eslint . --fix && prettier -w .","test:types":"tsc --noEmit --skipLibCheck"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/h3js/rendu.git","type":"git"},"_npmVersion":"11.6.0","description":"🏎️ JavaScript Hypertext Preprocessor.","directories":{},"sideEffects":false,"_nodeVersion":"24.9.0","dependencies":{"srvx":"^0.8.14"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.15.0","devDependencies":{"rendu":"workspace:*","automd":"^0.4.0","eslint":"^9.33.0","obuild":"^0.2.1","vitest":"^3.2.4","prettier":"^3.6.2","typescript":"^5.9.2","@types/node":"^24.3.0","changelogen":"^0.6.2","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/rendu_0.0.2_1759881361204_0.3948712533717713","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"rendu","version":"0.0.3","license":"MIT","_id":"rendu@0.0.3","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/h3js/rendu#readme","bugs":{"url":"https://github.com/h3js/rendu/issues"},"bin":{"rendu":"dist/cli.mjs"},"dist":{"shasum":"3a68df92d98e156e1bc0235b2283507cf651a6a4","tarball":"https://registry.npmjs.org/rendu/-/rendu-0.0.3.tgz","fileCount":7,"integrity":"sha512-RNkLvuBVi9eIQsR+t40aeTmXueAWMtSc3f2Ad5/KEIBd3jS8OmjagtSaGrvngovOWzRLBi02oR85dhKdlieSmg==","signatures":[{"sig":"MEUCIE8lYVC3j+M3YjWgBzqX6cJC5Lnv9Qj3BGFZ8848O/jhAiEAwbFvV6w4/HRq1IwWx+qKsudC6qKTWOnt7HBpXP2Zd+M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25111},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs"},"gitHead":"067b40ba1afefeb737eb7dc036d03d6d4fb22df0","scripts":{"dev":"vitest dev","lint":"eslint . && prettier -c .","play":"pnpm rendu playground","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","rendu":"node ./src/cli.ts","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release && npm publish && git push --follow-tags","lint:fix":"automd && eslint . --fix && prettier -w .","test:types":"tsc --noEmit --skipLibCheck"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/h3js/rendu.git","type":"git"},"_npmVersion":"11.6.0","description":"🏎️ JavaScript Hypertext Preprocessor.","directories":{},"sideEffects":false,"_nodeVersion":"24.9.0","dependencies":{"srvx":"^0.8.14","cookie-es":"^2.0.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.15.0","devDependencies":{"rendu":"workspace:*","automd":"^0.4.0","eslint":"^9.33.0","obuild":"^0.2.1","vitest":"^3.2.4","prettier":"^3.6.2","typescript":"^5.9.2","@types/node":"^24.3.0","changelogen":"^0.6.2","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/rendu_0.0.3_1759912893206_0.6068900315332273","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"rendu","version":"0.0.4","license":"MIT","_id":"rendu@0.0.4","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/h3js/rendu#readme","bugs":{"url":"https://github.com/h3js/rendu/issues"},"bin":{"rendu":"dist/cli.mjs"},"dist":{"shasum":"53d8733e70ae15dabc494a5903b4a590c53d25f7","tarball":"https://registry.npmjs.org/rendu/-/rendu-0.0.4.tgz","fileCount":7,"integrity":"sha512-IDWMKVg6SxbscFJs8/HlD+BlWjoaka18MII4p7s2OCNWN7t1iQ9nh7+J0BL/V/loTdQcKrXMqBamtYoPCAhhJA==","signatures":[{"sig":"MEUCIQDou3+mcIRHUp62S5khj5Y18x+VbtL9hZwl+jllNHtHyQIgUpq/6p9eqQq8L2t6C8fZ6xBsvR3sI1gmIs9cx7S3sNo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25836},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs"},"gitHead":"5d1cef3ab8c930c011ecd9f1233601d7dec428c8","scripts":{"dev":"vitest dev","lint":"eslint . && prettier -c .","play":"pnpm rendu playground","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","rendu":"node ./src/cli.ts","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release && npm publish && git push --follow-tags","lint:fix":"automd && eslint . --fix && prettier -w .","test:types":"tsc --noEmit --skipLibCheck"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/h3js/rendu.git","type":"git"},"_npmVersion":"11.6.0","description":"🏎️ JavaScript Hypertext Preprocessor.","directories":{},"sideEffects":false,"_nodeVersion":"24.9.0","dependencies":{"srvx":"^0.8.14","cookie-es":"^2.0.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.15.0","devDependencies":{"rendu":"workspace:*","automd":"^0.4.0","eslint":"^9.33.0","obuild":"^0.2.1","vitest":"^3.2.4","prettier":"^3.6.2","typescript":"^5.9.2","@types/node":"^24.3.0","changelogen":"^0.6.2","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/rendu_0.0.4_1759919062361_0.6748430995524328","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"rendu","version":"0.0.5","license":"MIT","_id":"rendu@0.0.5","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/h3js/rendu#readme","bugs":{"url":"https://github.com/h3js/rendu/issues"},"bin":{"rendu":"dist/cli.mjs"},"dist":{"shasum":"28d219fb37ff8c3ae0d7c6eabd07000e6fbf5867","tarball":"https://registry.npmjs.org/rendu/-/rendu-0.0.5.tgz","fileCount":7,"integrity":"sha512-QK2bBbtM8AvDmuHYGniezrZnMGJ+lhm+RojXZZjXTbNSZWrzdxIEgDRzvyKImaU25NpbPPa8QkgD01lzsnLraA==","signatures":[{"sig":"MEYCIQCp0zqkD0Tzz499ahtsl72WBdaWEGhwyIf6Oeae+r1qMgIhANeG+XpW/mkJ1bRCweChOp9kWWdfMUqoSHapfnaiP9aj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26598},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs"},"gitHead":"2265c9157b21aea3bbdc99bf1fd04ccc0c60b700","scripts":{"dev":"vitest dev","lint":"eslint . && prettier -c .","play":"pnpm rendu playground","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","rendu":"node ./src/cli.ts","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release && npm publish && git push --follow-tags","lint:fix":"automd && eslint . --fix && prettier -w .","test:types":"tsc --noEmit --skipLibCheck"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/h3js/rendu.git","type":"git"},"_npmVersion":"11.6.0","description":"🏎️ JavaScript Hypertext Preprocessor.","directories":{},"sideEffects":false,"_nodeVersion":"24.9.0","dependencies":{"srvx":"^0.8.14","cookie-es":"^2.0.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.15.0","devDependencies":{"rendu":"workspace:*","automd":"^0.4.0","eslint":"^9.33.0","obuild":"^0.2.1","vitest":"^3.2.4","prettier":"^3.6.2","typescript":"^5.9.2","@types/node":"^24.3.0","changelogen":"^0.6.2","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/rendu_0.0.5_1759923669330_0.3782445463640147","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"rendu","version":"0.0.6","license":"MIT","_id":"rendu@0.0.6","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/h3js/rendu#readme","bugs":{"url":"https://github.com/h3js/rendu/issues"},"bin":{"rendu":"dist/cli.mjs"},"dist":{"shasum":"af05afd8d67099588159f54373b66b407185cdf2","tarball":"https://registry.npmjs.org/rendu/-/rendu-0.0.6.tgz","fileCount":7,"integrity":"sha512-nZ512Dw0MxKiIYfCVv8DPe6ig4m0Qt3FOYBJEXrammjIYBBPuHaudc0AGfYx+iyOw2q0itAtPywiVZXtTFCsig==","signatures":[{"sig":"MEUCIE5bmo88yHqMi+MLqA0LCG7WAEIm53adclayM1q7ecMBAiEA3k8Yz3sBqpOg0+BAPa56UuVvo02n5c9biFF9k7/46rI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26665},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs"},"gitHead":"65a5ea68518590266e3838a155b7099a74fa4c78","scripts":{"dev":"vitest dev","lint":"eslint . && prettier -c .","play":"pnpm rendu playground","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","rendu":"node ./src/cli.ts","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release && npm publish && git push --follow-tags","lint:fix":"automd && eslint . --fix && prettier -w .","test:types":"tsc --noEmit --skipLibCheck"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/h3js/rendu.git","type":"git"},"_npmVersion":"11.6.0","description":"🏎️ JavaScript Hypertext Preprocessor.","directories":{},"sideEffects":false,"_nodeVersion":"24.9.0","dependencies":{"srvx":"^0.8.14","cookie-es":"^2.0.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.15.0","devDependencies":{"rendu":"workspace:*","automd":"^0.4.0","eslint":"^9.33.0","obuild":"^0.2.1","vitest":"^3.2.4","prettier":"^3.6.2","typescript":"^5.9.2","@types/node":"^24.3.0","changelogen":"^0.6.2","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/rendu_0.0.6_1759926714003_0.6239730156802863","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"rendu","version":"0.0.7","license":"MIT","_id":"rendu@0.0.7","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/h3js/rendu#readme","bugs":{"url":"https://github.com/h3js/rendu/issues"},"bin":{"rendu":"dist/cli.mjs"},"dist":{"shasum":"e17046f8f0f1306d9810ca2a470657220442d111","tarball":"https://registry.npmjs.org/rendu/-/rendu-0.0.7.tgz","fileCount":7,"integrity":"sha512-zR9sesmefLrWv41owJ3GP3vSRCDhMNDkiKQ7U5pZtTLr2eUkXbcXAi0VxAj2eGnJjv2fbJp6W2YOE5nV/R3mNw==","signatures":[{"sig":"MEUCIBPFYQHixfCzQuWxveo/NnqYR0flPci3mQyEo+91G0MiAiEA0KKNLNFpwgOXP0z37OYPmXcWx+zb6U8Ln28pYpGjdCI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33035},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs"},"gitHead":"ceff1e1de36c5a21895fdd46471d35bb0052b102","scripts":{"dev":"vitest dev","lint":"eslint . && prettier -c .","play":"pnpm rendu playground","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","rendu":"node ./src/cli.ts","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release && npm publish && git push --follow-tags","lint:fix":"automd && eslint . --fix && prettier -w .","test:types":"tsc --noEmit --skipLibCheck"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/h3js/rendu.git","type":"git"},"_npmVersion":"11.6.1","description":"🏎️ JavaScript Hypertext Preprocessor.","directories":{},"sideEffects":false,"_nodeVersion":"24.10.0","dependencies":{"srvx":"^0.9.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.19.0","devDependencies":{"rendu":"^0.0.6","automd":"^0.4.2","eslint":"^9.38.0","obuild":"^0.3.0","vitest":"^4.0.4","prettier":"^3.6.2","cookie-es":"^2.0.0","typescript":"^5.9.3","@types/node":"^24.9.1","changelogen":"^0.6.2","eslint-config-unjs":"^0.5.0","@vitest/coverage-v8":"^4.0.4"},"_npmOperationalInternal":{"tmp":"tmp/rendu_0.0.7_1761643943018_0.8031912246074873","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"rendu","version":"0.1.0","license":"MIT","_id":"rendu@0.1.0","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"homepage":"https://github.com/h3js/rendu#readme","bugs":{"url":"https://github.com/h3js/rendu/issues"},"bin":{"rendu":"dist/cli.mjs"},"dist":{"shasum":"8c87b8ceb3761420ac2ad9f219be6491df1218b6","tarball":"https://registry.npmjs.org/rendu/-/rendu-0.1.0.tgz","fileCount":10,"integrity":"sha512-HFYf0RPfvLXZ33Ii1+TWjzHsAWa3vM7CDG2eY59zELZirzxdkMd/HGm2yv0MaVyA9/zYphXO+yn5k3biRq4gag==","signatures":[{"sig":"MEUCIQC2e4RRMOkZ+fRWwPWHkNl3orBEdQMNtA/w1Bo7hur8KQIgdukyyHpdqNLMVPOXIds2VVgxXpRC3OYA7gxEYsajfd0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40989},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs"},"gitHead":"8c4a1be771bc415263e121615f2eced95172daa7","scripts":{"dev":"vitest dev","fmt":"automd && oxlint . --fix && oxfmt .","lint":"oxlint . && oxfmt --check .","play":"pnpm rendu playground","test":"pnpm lint && pnpm test:types && vitest run --coverage","build":"obuild","rendu":"node ./src/cli.ts","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release && npm publish && git push --follow-tags","test:types":"tsgo --noEmit --skipLibCheck"},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"repository":{"url":"git+https://github.com/h3js/rendu.git","type":"git"},"_npmVersion":"11.6.2","description":"🏎️ JavaScript Hypertext Preprocessor.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"srvx":">=0.11"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"oxfmt":"^0.43.0","rendu":"^0.0.7","automd":"^0.4.3","obuild":"^0.4.32","oxlint":"^1.58.0","vitest":"^4.1.2","cookie-es":"^3.1.1","typescript":"^6.0.2","@types/node":"^25.5.0","changelogen":"^0.6.2","eslint-config-unjs":"^0.6.2","@vitest/coverage-v8":"^4.1.2","@typescript/native-preview":"7.0.0-dev.20260401.1"},"_npmOperationalInternal":{"tmp":"tmp/rendu_0.1.0_1775116404377_0.811584002304427","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"rendu","version":"0.1.1","description":"","license":"MIT","repository":{"type":"git","url":"h3js/rendu"},"type":"module","sideEffects":false,"types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs"},"dependencies":{"srvx":"^1.0.1"},"devDependencies":{"@types/node":"^26.4.1","@vitest/coverage-v8":"^4.1.11","automd":"^0.4.3","changelogen":"^0.6.2","cookie-es":"^3.1.1","eslint-config-unjs":"^0.6.2","obuild":"^0.4.39","oxfmt":"^0.66.0","oxlint":"^1.81.0","rendu":"link:*","typescript":"^6.0.3","vitest":"^4.1.11"},"scripts":{"build":"obuild","dev":"vitest dev","lint":"oxlint . && oxfmt --check .","fmt":"automd && oxlint . --fix && oxfmt .","play":"pnpm rendu playground","release":"pnpm test && pnpm build && changelogen --release && pnpm publish && git push --follow-tags","rendu":"node ./src/cli.ts","test":"pnpm lint && pnpm test:types && vitest run --coverage","test:types":"tsc --noEmit --skipLibCheck"},"bin":{"rendu":"./dist/cli.mjs"},"_nodeVersion":"24.20.0","_id":"rendu@0.1.1","dist":{"integrity":"sha512-t38fb4WDesJ51zcnLsji75IWN0O4gMCJLUcKIUYXjPKuBMw81PpWlWzAK4yQkLOsfBvRWFwNsAU6p4GxcBalbw==","shasum":"ea89a8fdfaf6b9ec5fbc64f84f7d69a566abcbd8","tarball":"https://registry.npmjs.org/rendu/-/rendu-0.1.1.tgz","fileCount":10,"unpackedSize":43593,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCzsRk0xv9NLSTXljmKJhya5WWRsefLe66kXz3GrYJbkwIhAITHRP7dCnKzrpRqJwOZ2CT4wbU2K8CtHGIeNJ6N4slm"}]},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"directories":{},"maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rendu_0.1.1_1788433141164_0.8994419581979496"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-07T21:51:49.366Z","modified":"2026-09-03T10:59:01.437Z","0.0.0":"2025-10-07T21:51:49.540Z","0.0.1":"2025-10-07T23:41:21.405Z","0.0.2":"2025-10-07T23:56:01.413Z","0.0.3":"2025-10-08T08:41:33.391Z","0.0.4":"2025-10-08T10:24:22.712Z","0.0.5":"2025-10-08T11:41:09.525Z","0.0.6":"2025-10-08T12:31:54.192Z","0.0.7":"2025-10-28T09:32:23.239Z","0.1.0":"2026-04-02T07:53:24.522Z","0.1.1":"2026-09-03T10:59:01.293Z"},"license":"MIT","repository":{"type":"git","url":"h3js/rendu"},"maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"readme":"# rendu\n\n🏎️ JavaScript Hypertext Preprocessor.\n\nRendu is a lightweight toolkit for mixing HTML and JavaScript with a focus on simplicity, standards and progressive rendering.\n\n> [!NOTE]\n> See [playground](./playground/) ([online playground](https://stackblitz.com/github/h3js/rendu/tree/main/playground?file=index.html)) for demos and [syntax](#syntax) section for usage.\n\n## CLI\n\nUsing the `rendu` CLI, you can start a local web server to serve static files and render `.html` files as templates (powered by [srvx](https://srvx.h3.dev)).\n\n```sh\nnpx rendu\n```\n\n## Programmatic API\n\n<!-- automd:jsdocs src=\"./src/index.ts\" -->\n\n### `compileTemplate(template, opts)`\n\nCompile a template string into a render function.\n\n**Example:**\n\n```ts\nimport { compileTemplate } from \"rendu\";\n\nconst template = `\n  <h1>{{ title }}</h1>\n  <ul>\n  <? for (const item of items) { ?>\n    <li>{{ item }}</li>\n  <? } ?>\n  </ul>\n`;\n\nconst render = compileTemplate(template, { stream: false });\n\nconst html = await render({ title: \"My List\", items: [\"Item 1\", \"Item 2\", \"Item 3\"] });\nconsole.log(html);\n// Output:\n// <h1>My List</h1>\n// <ul>\n//   <li>Item 1</li>\n//   <li>Item 2</li>\n//   <li>Item 3</li>\n// </ul>\n```\n\n### `compileTemplateToString(template, opts, asyncWrapper?)`\n\nCompile a template string into a render function code string.\n\n**Note:** This function is for advanced use cases where you need the generated code as a string.\n\n### `createRenderContext(options)`\n\n### `hasTemplateSyntax(template)`\n\nCheck if a template string contains template syntax.\n\n### `parseTemplate(template)`\n\nParse a template string into `text`, `code` and `expr` tokens.\n\n### `RENDER_CONTEXT_KEYS`\n\n- **Type**: `array`\n- **Default**: `[\"htmlspecialchars\",\"setCookie\",\"redirect\",\"$REQUEST\",\"$METHOD\",\"$URL\",\"$HEADERS\",\"$COOKIES\",\"$RESPONSE\"]`\n\n### `renderToResponse(htmlTemplate, opts)`\n\nRenders an HTML template to a Response object.\n\n**Example:**\n\n```ts\nimport { compileTemplate, renderToResponse } from \"rendu\";\n\nconst render = compileTemplate(template, { stream: true });\n\nconst response = await renderToResponse(render, { request });\n```\n\n<!-- /automd -->\n\n## Syntax\n\nRendu uses PHP-style tags to embed JavaScript within HTML templates:\n\n### Server Scripts\n\nUse `<script server>` to execute JavaScript on the server where it appears:\n\n```html\n<script server>\n  globalThis.visitedPagesCount ??= 0;\n  globalThis.visitedPagesCount++;\n</script>\n```\n\n### Output Expressions\n\nUse `{{ expression }}` for HTML-escaped output, or `{{{ expression }}}` or `<?= expression ?>` for unescaped (raw) output:\n\n```html\n<h1><?= title ?></h1>\n<div>Page visited: {{ visitedPagesCount }}</div>\n```\n\n### Control Structures\n\nUse `<? ... ?>` for JavaScript control flow:\n\n```html\n<? if (items.length === 0) { ?>\n<p>No items found.</p>\n<? } ?> <? for (const item of items) { ?>\n<li>{{ item.name }}</li>\n<? } ?>\n```\n\n### Streaming Content\n\nUse the `echo()` function for streaming content. Accepts: strings, functions, Promises, Response objects, or ReadableStreams:\n\n**Examples:**\n\n```html\n<!-- Simple string output -->\n<script server>\n  echo(\"Welcome to our site!\");\n</script>\n\n<!-- Async content from API (non-blocking)-->\n<script server>\n  echo(\"Hello\");\n  echo(async () => fetch(\"https://api.example.com/data\"));\n  echo(() => \"World\");\n</script>\n```\n\n### Global Variables\n\nAccess request context and global state:\n\n- `$REQUEST`: The incoming Request object\n- `$METHOD`: HTTP method (GET, POST, etc.)\n- `$URL`: Request URL object\n- `$HEADERS`: Request headers\n- `$RESPONSE`: Response configuration object\n- `$COOKIES`: Read-only object containing request cookies\n\n### Cookie Management\n\nUse `setCookie()` function to set cookies in the response:\n\n```html\n<script server>\n  setCookie(\"user\", \"RenduUser\");\n  setCookie(\"session\", \"abc123\", { maxAge: 3600, httpOnly: true });\n</script>\n```\n\nAccess cookies from the request using `$COOKIES`:\n\n```html\n<div>Welcome, <?= $COOKIES[\"user\"] || \"Guest\" ?>!</div>\n```\n\n### Response Control\n\nUse `redirect()` function to redirect the user:\n\n```html\n<script server>\n  if (!$COOKIES[\"auth\"]) {\n    redirect(\"/login\");\n  }\n</script>\n```\n\n### HTML Escaping\n\nThe `htmlspecialchars()` function is available for escaping HTML content:\n\n> [!TIP]\n> When using curly `{{ }}` syntax, `htmlspecialchars` will be automatically applied.\n\n```html\n<div><?= htmlspecialchars(userInput) ?></div>\n```\n\n## Development\n\n<details>\n\n<summary>local development</summary>\n\n- Clone this repository\n- Install the latest LTS version of [Node.js](https://nodejs.org/en/)\n- Enable [Corepack](https://github.com/nodejs/corepack) using `corepack enable`\n- Install dependencies using `pnpm install`\n- Run interactive tests using `pnpm dev`\n\n</details>\n\n## Prior Art\n\n- [jaubourg/jhp](https://github.com/jaubourg/jhp)\n- [atinux/pjs](https://github.com/atinux/pjs)\n- [mde/ejs](https://github.com/mde/ejs)\n\n## License\n\nPublished under the [MIT](https://github.com/unjs/rendu/blob/main/LICENSE) license.\n","readmeFilename":""}