{"_id":"@caboodle-tech/jhp","_rev":"28-0ce49df2df6efdd182d1c50f8ea7a88c","name":"@caboodle-tech/jhp","dist-tags":{"latest":"4.1.0"},"versions":{"2.1.1":{"name":"@caboodle-tech/jhp","version":"2.1.1","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@2.1.1","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"618a16a6f0ffc7f7feae85c333d893e588bced00","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-2.1.1.tgz","fileCount":8,"integrity":"sha512-2k9rvnL+IFuO4sI7sT/ujUhHA2jzoXlAOzJ4SucIvBmhhBbxkAEcnXqOdbngWmuWRKFJ+jT1ovBRsZReXjmdlw==","signatures":[{"sig":"MEYCIQDWMY3ifOHqso8qfC4CxCjo7sJGwN3XT//yURnLNMKxngIhAK2wUfRhvbTqRW1fVmlY+Wm1T+nZJdqX994wriwHGpsY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95158},"main":"src/jhp.js","type":"module","gitHead":"662570e218a2ab71a92e3f27a3ebed77aa3052cc","scripts":{"test":"node ./test/index.js"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"10.9.2","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"acorn-loose":"^8.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.18.2","jsonc-eslint-parser":"^2.4.0","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_2.1.1_1741625501212_0.7796513118816264","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@caboodle-tech/jhp","version":"2.2.0","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@2.2.0","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"569c0c2f9aad19cd85de24d057683f14cbff6222","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-2.2.0.tgz","fileCount":8,"integrity":"sha512-i9EatKeMirPOFGL8HV78RQiqpulW+r8sbPrpN9mfZDjBqwObbWtgQqQw/Y9GxbH0cYOPalnDf7sMlsyGfPTXiA==","signatures":[{"sig":"MEUCIQC7W4aHLIlQUL2wVIdfJOPnP63rBeWobEV/SwM2hCUN2gIgQ+JPZd00lJzHmZhC6Q7ibreIVNnRLSm66pZX5NaKpqQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96489},"main":"src/jhp.js","type":"module","gitHead":"6aa761e973c03ac6b3de71c16c2b0d56f088a47d","scripts":{"test":"node ./test/index.js"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"10.9.2","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"acorn-loose":"^8.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.18.2","jsonc-eslint-parser":"^2.4.0","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_2.2.0_1741653434582_0.6245641333744372","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@caboodle-tech/jhp","version":"2.3.0","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@2.3.0","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"2e3cd26bb5536d15093dc21849560310efd847b1","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-2.3.0.tgz","fileCount":8,"integrity":"sha512-ky7vAdmouyjDLDfbUzlqET2CDw8DQhhWQ3L6QwUx3Yj2jQ0RzufwSzknWNMWVSmXaYywTJN53OZyjbLYqV6LJg==","signatures":[{"sig":"MEQCIB2xbQsGG7UbCSxv50+YG29EDod7PECvxVbEvmRzd63sAiAbuD8/dE+Bqso3DoK4zF0USgsXK7eT4QNCgVTC26QgpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95875},"main":"src/jhp.js","type":"module","gitHead":"e71cde28b9d60fb699673003d936cfc9d9b06172","scripts":{"test":"node ./test/index.js"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"10.9.2","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"acorn-loose":"^8.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.18.2","jsonc-eslint-parser":"^2.4.0","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_2.3.0_1741899172768_0.6386321755079662","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@caboodle-tech/jhp","version":"2.3.1","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@2.3.1","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"d49d90b75125aff16e5287e66608f3e0f33adedb","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-2.3.1.tgz","fileCount":8,"integrity":"sha512-33t03gj0mhMvgQHNxYmzPoqKyf7dlXfrO8PMTumZanFjLmBgBsAR5T/AjYXcfzxrx3szlimAVy4z+OBw9rabDw==","signatures":[{"sig":"MEYCIQC88XwIHKGJetzEN3uczi5yLpS940TH/cbn/UbRCH6vswIhAKLKF2zyk9rHQmwW7qyToSaCTKv+lyeeARCqdIS2Qzci","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95878},"main":"src/jhp.js","type":"module","gitHead":"aaa35a4778d33c4829f4d68e86fadfb1f141e726","scripts":{"test":"node ./test/index.js"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"10.9.2","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"acorn-loose":"^8.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.18.2","jsonc-eslint-parser":"^2.4.0","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_2.3.1_1742231926035_0.6150021793525744","host":"s3://npm-registry-packages-npm-production"}},"2.3.2":{"name":"@caboodle-tech/jhp","version":"2.3.2","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@2.3.2","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"22e1a5a0acf12a0a1b14ac0b973b7dacb5e41632","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-2.3.2.tgz","fileCount":8,"integrity":"sha512-UL/tfvEYu5Lnln7DQQEhJNXs78mV1JjKUUzmC1lekbEmR2ErbMQ+ZPs8SVN5kWwJq9gHrusKQLDqZbj/aBW++g==","signatures":[{"sig":"MEQCIHNp/7Ra2IYiVkv5lb5y2E1HsbJap8O3IDqXPTwY6xw2AiB5mO188oWNwQ0AZpN2PePDfZxTBCdUjxfhKluWe7wQaw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98108},"main":"src/jhp.js","type":"module","gitHead":"4b06e34ab34f20eb30596cc04bde3a0a8ff7a306","scripts":{"test":"node ./test/index.js"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"10.9.2","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"acorn-loose":"^8.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.18.2","jsonc-eslint-parser":"^2.4.0","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_2.3.2_1742406446153_0.4023975574696559","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@caboodle-tech/jhp","version":"2.4.0","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@2.4.0","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"91fbaaa2e2b6d7f416ebcd0af517cb4529743cd0","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-2.4.0.tgz","fileCount":8,"integrity":"sha512-vm8WpdwbzkvT9qT7iHqJpqXr8E+0tVQoEocXTStoFQycfXhr4Gs9t0xP2J8JqBP2Ze0QNZclUAQB+zvmAFpo3Q==","signatures":[{"sig":"MEUCICFtXspx2v0hxKNNyFA+qdjULZJ5oifQHab8TUTd/qj5AiEA0/vuewf0HnCRAKT/1zd36QjgKJyOp8kGb/3rcuC9Rzk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102436},"main":"src/jhp.js","type":"module","gitHead":"3fe21135844f6e2079154f5bd6bbc1b9cb511ff0","scripts":{"test":"node ./test/index.js"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"10.9.2","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"acorn-loose":"^8.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.18.2","jsonc-eslint-parser":"^2.4.0","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_2.4.0_1752878947210_0.8345355679122841","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@caboodle-tech/jhp","version":"2.5.0","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@2.5.0","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"b9be5fd0f24837962eaa081a2cf2a0dfaacaa386","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-2.5.0.tgz","fileCount":8,"integrity":"sha512-9QebnI6w7QsdJujigJeu7ycHHiUb8gLkX+pGAX9WKEWa85hHsBV6f8ohKqy+xY4dl6vLRaAfVWMuaDcI2XrOaA==","signatures":[{"sig":"MEUCIQDSYVgHv7JKC+7R75Of98QQi01qb6k4Ls07MXrQ1YomJwIgEHqEBVWvtC0khfscYFc/gH1/FDXKVo/jbpw48PoU/Ns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102068},"main":"src/jhp.js","type":"module","gitHead":"3a671b700178a3f858f788f5ec3917c1851e58c7","scripts":{"test":"node ./test/index.js"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"10.9.2","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"acorn-loose":"^8.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.37.0","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.21.0","jsonc-eslint-parser":"^2.4.1","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_2.5.0_1760412743465_0.20870457830813405","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@caboodle-tech/jhp","version":"2.6.0","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@2.6.0","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"0e1c5ff4feaa5d2e6af6efe16ba1a2f7c4d6bf4f","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-2.6.0.tgz","fileCount":7,"integrity":"sha512-8kTgZDLwraRCSa3yvfbI8a//X9uc2MyzAdbWasqDqHSuOWnGxsj7OBVFLd4Eoe8vTvHsE4oG6Pmj33LM+AsYew==","signatures":[{"sig":"MEUCIQCBPnOiW/5l8sk69GvIfttQB6LQx93TD9pUiqDAw65zjwIgH+whoYGjeTf6Dnk8ZBEs3kSvv4Wn8fSB+Ii0CEdjqLw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103310},"main":"src/jhp.js","type":"module","gitHead":"7346b0f051c1b047215266b8b41f7f74ac1b2e11","scripts":{"test":"node ./test/index.js"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"10.9.2","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"acorn-loose":"^8.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.37.0","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.21.0","jsonc-eslint-parser":"^2.4.1","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_2.6.0_1760506729350_0.9988082973316414","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@caboodle-tech/jhp","version":"3.0.0","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@3.0.0","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"1516cd643bfa6a147312651ba2acf397b3366723","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-3.0.0.tgz","fileCount":8,"integrity":"sha512-Q8hp5qU0H9mUy++0LSgJCeZVI4dXhhYc4WkdnOiOEzNHJVtkSKbXx668p1IapGUS+NBWY8+pcYRTYaFpC0BMmA==","signatures":[{"sig":"MEYCIQC605/hVS+ju4M1PkoFWHIIlQOJJ64GZn8db8PSaCiRugIhAJjV8dd7Ys0LGXTP3Qji1MWQEhB9zbb096SN95wpZ4N/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105722},"main":"src/jhp.js","type":"module","gitHead":"aeec015fbc1ae7f03955fd0fffe10e38331f8a80","scripts":{"test":"node ./test/index.js"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"10.9.2","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"acorn-loose":"^8.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.37.0","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.21.0","jsonc-eslint-parser":"^2.4.1","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_3.0.0_1760510205148_0.4652415989220271","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@caboodle-tech/jhp","version":"3.1.0","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@3.1.0","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"409b04c54695c30eb01c48dbfe539a139d917082","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-3.1.0.tgz","fileCount":7,"integrity":"sha512-hY8J7BrWXSMw5OmAGzcyOmmSXP5sbe6XP+z0k4imtT+atTHgWIo0Mf3T0FxZtXTrxOAjBa6SLryFtmxWqYtHsQ==","signatures":[{"sig":"MEQCIF4ce8S9ALfa3C5EuhQFqI4VS3hxs/zvdC0M8VudTabLAiAiB3LgbOUppRdQ8fBCtX6bKuOJR+vJ+5eQdlIFnZH6HQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59943},"main":"src/jhp.js","type":"module","gitHead":"bb50d239eac3cf37bc88f6a64229d6183ccf57eb","scripts":{"test":"node ./test/index.js"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"10.9.2","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"acorn-loose":"^8.5.2","@caboodle-tech/simple-html-parser":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.21.0","jsonc-eslint-parser":"^2.4.2","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_3.1.0_1765573129829_0.7439427007088351","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@caboodle-tech/jhp","version":"3.2.0","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@3.2.0","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"a604d882ea1ee7a6977334f3cc5e3d9726418291","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-3.2.0.tgz","fileCount":7,"integrity":"sha512-wJWME6DcIvnk2OfcbViEe2nwKRYi94ehTLQPXQdsaByA16Qer6s8g5P4NIRfXY+990oWxd5G+94BgBd2B0WiVA==","signatures":[{"sig":"MEQCIDCyOc928yRiFiOhGoCQy5Xm6iNAyAJHEwbPsgYq2OIPAiAF/U7cjKGC4/D7Ic8ULOYygImsn3QwTTdHLeMy85zFGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61471},"main":"src/jhp.js","type":"module","gitHead":"4cd1b4b88e635df80581cb2fbfdc6f8f9d5e34ec","scripts":{"demo":"node ./examples/index.js"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"10.9.2","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"acorn-loose":"^8.5.2","@caboodle-tech/simple-html-parser":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.21.0","jsonc-eslint-parser":"^2.4.2","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_3.2.0_1765586490009_0.8116092426672408","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"@caboodle-tech/jhp","version":"3.3.0","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@3.3.0","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"28f66660f8a86935f7a184cfedd11ff73f79bcc2","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-3.3.0.tgz","fileCount":7,"integrity":"sha512-5r0cg6cb4HkOTAg0+1FKUbi9uni43DmO/Bvlqwi2uzBNUgDvjfgnAqSQDRD2OQ8k4IEFvCY5aNPmf83cscFeuw==","signatures":[{"sig":"MEUCIQCjHtrKKE/dAl1iy/rAL7nFKWhtxrLszlzf/R45e7wdTQIgBssVVCMkNY2BsgfmYlGrrixR6bpFntlrM/nOUTmexFk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61471},"main":"src/jhp.js","type":"module","gitHead":"a55dbd44e55e24789ceec77edda003fc9fa42884","scripts":{"demo":"node ./examples/index.js"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"10.9.2","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"acorn-loose":"^8.5.2","@caboodle-tech/simple-html-parser":"^2.3.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.21.0","jsonc-eslint-parser":"^2.4.2","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_3.3.0_1765586819284_0.7449181490868835","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"@caboodle-tech/jhp","version":"3.4.0","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@3.4.0","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"03f6f726f644672f05436d7d114f2cf36c4eb343","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-3.4.0.tgz","fileCount":7,"integrity":"sha512-KONR5AHi9hDKAsNuF8UkAD9BeM0oQV8cM6IUeQ/RSgM7OnT2q3Elf07bxMZ9Ze3Fok8maLKaf1aKAU8ODAamsg==","signatures":[{"sig":"MEQCIHKKquR1/LxL67rpF4ix40vLy2tLWHXx7w5c+rgruYunAiB7X4K4BtTyG8gFLmNSt77qP1mxShwJCqhJW7JgrWT7ew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62998},"main":"src/jhp.js","type":"module","gitHead":"c913a21609230dbdc3bd4a81354706eaf1ae03d5","scripts":{"demo":"node ./examples/index.js"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"10.9.2","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"acorn-loose":"^8.5.2","@caboodle-tech/simple-html-parser":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.21.0","jsonc-eslint-parser":"^2.4.2","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_3.4.0_1767721171862_0.006322218104910959","host":"s3://npm-registry-packages-npm-production"}},"3.4.1":{"name":"@caboodle-tech/jhp","version":"3.4.1","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@3.4.1","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"3ad685aff1732d40d9006dbe2e66104d0273f17b","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-3.4.1.tgz","fileCount":7,"integrity":"sha512-WR/e7VzzgehsmJQ5Tse4lyzrRZNG6ME1Rp2JT6uXn7HLMx+0YmrlUPFdXNT3j+q6EphIEX+3jLSIOJZHa4wztw==","signatures":[{"sig":"MEUCIGz2CNtljt8Ewaz3fqn/sz6eW6s50uceDMCsE84Fmrx/AiEA5Y1R7j1uUwcCZBNPJUAHGGwoE4YBl5t7fxWnLIBmYrg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63004},"main":"src/jhp.js","type":"module","gitHead":"7f83074539442a4c6c105ab31ce0da53009f73dc","scripts":{"demo":"node ./examples/index.js"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"10.9.2","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"acorn-loose":"^8.5.2","@caboodle-tech/simple-html-parser":"^2.5.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.21.0","jsonc-eslint-parser":"^2.4.2","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_3.4.1_1767729619665_0.3220157946140776","host":"s3://npm-registry-packages-npm-production"}},"3.5.0":{"name":"@caboodle-tech/jhp","version":"3.5.0","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@3.5.0","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"648625ef72e20303a6ad2f37db1e0b1e1b311ad5","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-3.5.0.tgz","fileCount":22,"integrity":"sha512-bwU7lpSa/1hWu64HP2wyh1k+e6EmmcSGOlwBanBg6U2HzLnRuo5Ncf7U1POR+VCd9TKT14VZnuQvoqlcDrLRsA==","signatures":[{"sig":"MEUCIQDyQC/2rMLmtrZ37lqiIhm0wmbrXMLyf4aDk/EJ4rdGoQIgKo4xJZZt7W00tHHa60/hPV+Iqa+VtzKAs+XTip4qfQo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88786},"main":"src/jhp.js","type":"module","gitHead":"30da8a2d350a9f4cffc9f757bd12ae5427a0c429","scripts":{"demo":"node ./examples/index.js","test":"node --test test/*.test.js"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"11.9.0","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"acorn-loose":"^8.5.2","@caboodle-tech/simple-html-parser":"^2.6.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.4","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.21.1","jsonc-eslint-parser":"^2.4.2","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_3.5.0_1773343870767_0.07152965622682661","host":"s3://npm-registry-packages-npm-production"}},"3.5.1":{"name":"@caboodle-tech/jhp","version":"3.5.1","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@3.5.1","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"8441fcd118bcdc201907b3c0235a9a2dcfc67758","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-3.5.1.tgz","fileCount":22,"integrity":"sha512-qyhdqzneuW52xpBOT9ml9Twj347fFuJ8edEX22eEJFVpZh9rIprGrOiVNokT/pdlpxv2hDWSPHQu+9UZXO9YXA==","signatures":[{"sig":"MEQCIH3mE6dt9XGn7ucpIgbjTSKpTZf8WpbYkmprbM2eZTVxAiAWZvA4raFCW0koZI8WylAaE+0G3oorZNrXThC8Ti7SIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88842},"main":"src/jhp.js","type":"module","gitHead":"5659aeee130db7d47087b86e99e17cb79654e239","scripts":{"test":"node --test test/*.test.js","build":"node ./examples/build.js","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"11.9.0","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"acorn-loose":"^8.5.2","@caboodle-tech/simple-html-parser":"^2.6.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.4","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.21.1","jsonc-eslint-parser":"^2.4.2","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_3.5.1_1773344528431_0.02461516579514722","host":"s3://npm-registry-packages-npm-production"}},"3.6.0":{"name":"@caboodle-tech/jhp","version":"3.6.0","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@3.6.0","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"11d1c0b4f174377b671194fb6c2aeee3ee84ca77","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-3.6.0.tgz","fileCount":22,"integrity":"sha512-KYS2HjZoqhHVjrbLeieXtI7AawDX/obZIuPghf05tv1zKMoAI2XKiZ4V/GKZFxWiB9K2z9Py5ZvzjlqQcQkkeg==","signatures":[{"sig":"MEQCIBilQxAL6WEB/b3Ca0eRZ3oMWGGvRz01FbyXA+d/lP1hAiBlp7VCEqX0nYxH8PUIm5eDlCLs6As8q2CSvWFa+5/img==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88842},"main":"src/jhp.js","type":"module","gitHead":"34c6018f5e9739f00d4cfe86ee3e3449478765ac","scripts":{"test":"node --test test/*.test.js","build":"node ./examples/build.js","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"11.9.0","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"acorn-loose":"^8.5.2","@caboodle-tech/simple-html-parser":"^2.7.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.4","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.21.1","jsonc-eslint-parser":"^2.4.2","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_3.6.0_1776195406569_0.8314569326075965","host":"s3://npm-registry-packages-npm-production"}},"3.7.0":{"name":"@caboodle-tech/jhp","version":"3.7.0","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@3.7.0","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"d4a4e28a70331dfa83c467069f5f45bccc308f07","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-3.7.0.tgz","fileCount":22,"integrity":"sha512-78uaAEKONDyhBQwG9O0tf/kvk33EZ028/jKJ2HRizor5ZEBG89PJGlKIlMr61HmazPu4n7zGqy3C+d5iQznXwg==","signatures":[{"sig":"MEQCIHxUjIjzYMuoZ3kbK2fLzE3mi6A/FB9WMkT6mz6ldetCAiBEij1HqLr5DPYIaoI0dm0hTzEo7hJRm0bx8hZhfAVlzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92572},"main":"src/jhp.js","type":"module","gitHead":"bdf769778289002e1c1df2d53feb06bb345f9ef0","scripts":{"test":"node --test test/*.test.js","build":"node ./examples/build.js","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"11.9.0","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"acorn-loose":"^8.5.2","@caboodle-tech/simple-html-parser":"^2.7.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.4","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.21.1","jsonc-eslint-parser":"^2.4.2","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_3.7.0_1776361681021_0.9182018847979043","host":"s3://npm-registry-packages-npm-production"}},"3.8.0":{"name":"@caboodle-tech/jhp","version":"3.8.0","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@3.8.0","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"b8bf71dc7976658bf356ab6c624e7cfd0455e061","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-3.8.0.tgz","fileCount":41,"integrity":"sha512-g7tgMwhvzl22yc+LIZK1s1WqaGACAT3d9it5MaZK1psXwd6vSReaEeeM17vvI/1vEf2eFloPY5SGyxtYhB8Gkg==","signatures":[{"sig":"MEQCIAFHQDXdqHVA+tnRsgFNmoGhowH+eG6EX8z4R0lxEDxpAiB+j6ZGi3t5NcDE3LKM+2QU7q4c8J+QGX1IcDaF2eSe9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110879},"main":"src/jhp.js","type":"module","gitHead":"51a67d4c50a348f43a6a2c1bc947af93a6b73199","scripts":{"test":"node --test test/*.test.js","build":"node ./examples/build.js","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"11.9.0","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"acorn-loose":"^8.5.2","@caboodle-tech/simple-html-parser":"^2.7.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.4","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.21.1","jsonc-eslint-parser":"^2.4.2","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_3.8.0_1776965658506_0.05553782904575555","host":"s3://npm-registry-packages-npm-production"}},"3.9.0":{"name":"@caboodle-tech/jhp","version":"3.9.0","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@3.9.0","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"8ab947cc2870767341a913e250036e55c15f889a","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-3.9.0.tgz","fileCount":48,"integrity":"sha512-1p/5iwFGw+sydc6HUHqL/b2inCroCP+yk9cDs/TcF5OXWyYXDjwKuXJ+twtjDiOZXZk7OdpkCM89W1zfhjidDg==","signatures":[{"sig":"MEUCIQD7rqsiEooRQnKU/3C6P3I8Vx+cjWY5rWeJQXBhRQwA3wIgHjSTaqpiJEkFrWxw0VLgN3mPtvLO3/7qj/Lg1i5UtMU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118903},"main":"src/jhp.js","type":"module","gitHead":"eabaeac47af3b217197c05efe50fdab8f91b4060","scripts":{"test":"node --test test/*.test.js","build":"node ./examples/build.js","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"11.9.0","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"acorn-loose":"^8.5.2","@caboodle-tech/simple-html-parser":"^2.7.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.4","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.21.1","jsonc-eslint-parser":"^2.4.2","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_3.9.0_1776967332980_0.6009437030832216","host":"s3://npm-registry-packages-npm-production"}},"3.10.0":{"name":"@caboodle-tech/jhp","version":"3.10.0","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@3.10.0","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"754005a5f5ce48766c3a21a412f449834d52be0d","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-3.10.0.tgz","fileCount":48,"integrity":"sha512-NpYNWqHN7Rr1iztwp4K82Unh7vlErXZaHN/ztS1evqI9p03mgoSFCVTPLZfGFh+/v5qa2UPc04tIVP5WRwOAow==","signatures":[{"sig":"MEQCIQDNFWKzOBFdtC36MYVCQpuoFMWTj1wzuq2tq18DQsI67AIfOjlumgcWwLJcTi21QBt9bnG60+0nFts4uMyRlJsN/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118904},"main":"src/jhp.js","type":"module","gitHead":"075428d2b2492bb579cded0449e13ad2f2d3f8a8","scripts":{"test":"node --test test/*.test.js","build":"node ./examples/build.js","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"11.9.0","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"acorn-loose":"^8.5.2","@caboodle-tech/simple-html-parser":"^2.8.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.4","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.21.1","jsonc-eslint-parser":"^2.4.2","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_3.10.0_1777363141363_0.48843841988370706","host":"s3://npm-registry-packages-npm-production"}},"3.11.0":{"name":"@caboodle-tech/jhp","version":"3.11.0","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@3.11.0","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"e61532bde17f7630f81781a5e2850d2dbaa200de","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-3.11.0.tgz","fileCount":53,"integrity":"sha512-EtfqtxdWgsTwfbrwPxQ2g5E4q0SJYXNNBM5VdiVgrKqYvM0jFUIpv2HrSTmdVWbyf7bz5ZtrBOtHLhU47sZaeA==","signatures":[{"sig":"MEQCIAMRt62su+tw4fajC1GdI4Q8AORwbXF5/pSiJrII8QwFAiBnpAIF27dMfXZGMHgQlO/eusWEF4ylStSyyCA3lxrPwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133109},"main":"src/jhp.js","type":"module","gitHead":"21c6d0de24ad6a1716554e21dbebdaf779d666c0","scripts":{"test":"node --test test/*.test.js","build":"node ./examples/build.js","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"11.9.0","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"acorn-loose":"^8.5.2","@caboodle-tech/simple-html-parser":"^2.8.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.4","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.21.1","jsonc-eslint-parser":"^2.4.2","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_3.11.0_1777569336466_0.7952809865562112","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@caboodle-tech/jhp","version":"4.0.0","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","_id":"@caboodle-tech/jhp@4.0.0","maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"contributors":[{"url":"https://github.com/caboodle-tech","name":"Caboodle Tech Inc"}],"homepage":"https://github.com/caboodle-tech/jhp#readme","bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"dist":{"shasum":"3db38aa33b58402e524f891cd758a9d5ab37ebb2","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-4.0.0.tgz","fileCount":54,"integrity":"sha512-eEptOe1zJq4Xu2IyGTkh7fFGdhYvy1xkBgWGxqjo9UK1R44cpsYLiEx1SY3TQlTb8LtLru/o1c8dnyGTpQ2DSg==","signatures":[{"sig":"MEUCIFTR2xyv3nDtehQGAhjRpWjpmVv8kt4xatiETo9VhrpkAiEAjfrwNJ5rOZWaQyctZbCCMtwJiXRSfBhZ/sZXBCnTBLg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142318},"main":"src/jhp.js","type":"module","gitHead":"dd404672d60c92c6fe1b0ec7df16fa75d91282e2","scripts":{"test":"node --test test/*.test.js","build":"node ./examples/build.js","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"repository":{"url":"git+https://github.com/caboodle-tech/jhp.git","type":"git"},"_npmVersion":"11.9.0","description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"acorn-loose":"^8.5.2","@caboodle-tech/simple-html-parser":"^2.8.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.4","@html-eslint/parser":"^0.32.0","eslint-plugin-jsonc":"^2.21.1","jsonc-eslint-parser":"^2.4.2","@html-eslint/eslint-plugin":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jhp_4.0.0_1777592990832_0.6150430037106664","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"contributors":[{"name":"Caboodle Tech Inc","url":"https://github.com/caboodle-tech"}],"dependencies":{"@caboodle-tech/simple-html-parser":"^2.8.0","acorn-loose":"^8.5.2"},"description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","exports":{".":"./src/jhp.js","./simple-html-parser":"./src/simple-html-parser.js"},"devDependencies":{"@html-eslint/eslint-plugin":"^0.32.0","@html-eslint/parser":"^0.32.0","eslint":"^9.39.4","eslint-plugin-jsonc":"^2.21.1","jsonc-eslint-parser":"^2.4.2"},"homepage":"https://github.com/caboodle-tech/jhp#readme","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"license":"Common Clause with MIT","main":"src/jhp.js","name":"@caboodle-tech/jhp","repository":{"type":"git","url":"git+https://github.com/caboodle-tech/jhp.git"},"scripts":{"build":"node ./examples/build.js","prepublishOnly":"npm test && npm run build","test":"node --test test/*.test.js"},"type":"module","version":"4.1.0","gitHead":"906e2bde28a67a1f934dac55d145bb10f354bafe","_id":"@caboodle-tech/jhp@4.1.0","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-tkYQ4Tnt85a6ACmNbe0xzFB2SA9RP/svd4c4d8Pd1EYyaQ2dZ+g4+V8UoT38jQRRZU6KJZjSiCCZDqX0dJEE1g==","shasum":"e80ed3c8122764fcd2a27d046540759926f75916","tarball":"https://registry.npmjs.org/@caboodle-tech/jhp/-/jhp-4.1.0.tgz","fileCount":56,"unpackedSize":145366,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD7znF1K05RwrSDw5BiHvxxdKuzim/NmH7fHaPVhyuBpQIhAKxQPQvFVKsjbZb1FHOGFYVkBpwYaVxKHrth3epfRi9Z"}]},"_npmUser":{"name":"blizzardengle","email":"source@caboodle.tech"},"directories":{},"maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jhp_4.1.0_1777657226667_0.5905531110162663"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-10T16:51:41.087Z","modified":"2026-05-01T17:40:26.980Z","2.0.0":"2025-03-07T08:18:32.730Z","2.1.0":"2025-03-09T04:38:56.150Z","2.1.1":"2025-03-10T16:51:41.390Z","2.2.0":"2025-03-11T00:37:14.827Z","2.3.0":"2025-03-13T20:52:53.020Z","2.3.1":"2025-03-17T17:18:46.221Z","2.3.2":"2025-03-19T17:47:26.320Z","2.4.0":"2025-07-18T22:49:07.435Z","2.5.0":"2025-10-14T03:32:23.694Z","2.6.0":"2025-10-15T05:38:49.526Z","3.0.0":"2025-10-15T06:36:45.330Z","3.1.0":"2025-12-12T20:58:49.968Z","3.2.0":"2025-12-13T00:41:30.165Z","3.3.0":"2025-12-13T00:46:59.438Z","3.4.0":"2026-01-06T17:39:32.048Z","3.4.1":"2026-01-06T20:00:19.808Z","3.5.0":"2026-03-12T19:31:10.902Z","3.5.1":"2026-03-12T19:42:08.586Z","3.6.0":"2026-04-14T19:36:46.711Z","3.7.0":"2026-04-16T17:48:01.174Z","3.8.0":"2026-04-23T17:34:18.649Z","3.9.0":"2026-04-23T18:02:13.177Z","3.10.0":"2026-04-28T07:59:01.504Z","3.11.0":"2026-04-30T17:15:36.671Z","4.0.0":"2026-04-30T23:49:50.983Z","4.1.0":"2026-05-01T17:40:26.838Z"},"bugs":{"url":"https://github.com/caboodle-tech/jhp/issues"},"author":{"name":"Christopher Keers","email":"source[at]caboodle.tech"},"license":"Common Clause with MIT","homepage":"https://github.com/caboodle-tech/jhp#readme","keywords":["JS Hypertext Preprocessor","JavaScript","compiler","engine","jhp","native","parser","processor","view engine"],"repository":{"type":"git","url":"git+https://github.com/caboodle-tech/jhp.git"},"description":"JS Hypertext Preprocessor (JHP) is a JavaScript templating engine for dynamic static site generation, using native JavaScript and HTML, inspired by PHP.","contributors":[{"name":"Caboodle Tech Inc","url":"https://github.com/caboodle-tech"}],"maintainers":[{"name":"blizzardengle","email":"source@caboodle.tech"}],"readme":"# JS Hypertext Preprocessor (JHP)\n\n## Introduction\n\nJS Hypertext Preprocessor (JHP) is a **developer-focused JavaScript templating engine** designed to rival static site generators by leveraging **native JavaScript** instead of introducing custom templating syntaxes. Inspired by PHP, JHP allows developers to use raw HTML and familiar JavaScript to build dynamic templates for static site generation during local development.\n\n**Important:** JHP is a library that you **integrate into your build process** or server application. It is not a standalone command-line tool. You need to write code that uses JHP to process your template files. See the [Installation](#installation) section for details.\n\n**Note:** JHP can be used as a production server, similar to PHP, but please exercise caution as it has not been fully tested for that use and may have potential security concerns. It is primarily designed for local development environments and static site generation workflows.\n\n## Features\n\n- Use **native HTML and JavaScript** for templating.\n- **`missingBinding`** configures how synthesized script bindings behave when a name is used but not declared or in **`context`** ([Missing bindings](#missing-bindings-missingbinding)).\n- Supports **PHP-like behaviors**, such as variable redeclaration across script blocks.\n- Provides a simplified **output buffering system** with `$obOpen` and `$obClose`.\n- Includes flexible **file inclusion** for partials and reusable templates.\n- Built-in security check that attempt to prevent unsafe code execution.\n- Can be used as a **view engine** for server-side rendering.\n\n## How It Works\n\nJHP processes files &ndash; commonly `.jhp` files but you can choose the extension by what file you hand to the engine &ndash; containing raw HTML with special `<script>` blocks, transforming them into static HTML. The engine specifically executes `<script>` tags **without attributes** in a server-side context, enabling dynamic content generation. This flexibility allows developers to:\n- Use built-in `$` functions within server-side `<script>` blocks to manage output, include files, or define constants.\n- Declare variables or functions in one `<script>` block and reuse them in later blocks, maintaining context across the file.\n- Capture and reuse parts of the output with the output buffer.\n- Modularize templates with nested file includes.\n\n**Note:** The `<script>` tag is included by default as a JHP tag to ensure code editors automatically highlight and provide IntelliSense for JHP blocks. In the future I hope to add IDE support for `<jhp>` tags.\n\n## Example Setup\n\nThis example illustrates JHP's capabilities, including variable handling, file inclusion, default values, constants, and output buffering. While your project may use a different templating style or structure, this example is designed to highlight the engine's features and emulate PHP-like behavior.\n\n### File Structure\n\n```\nproject/\n|-- templates/\n|   |-- header.html\n|   |-- footer.html\n|-- index.html\n```\n\n### `index.html`\n\n```html\n<script>\n    $obOpen();\n</script>\n\nThe home page's content here...\n\n<script>\n    const mainContent = $obClose();\n    $echo($include('./templates/primary.html'));\n</script>\n```\n\n### `templates/primary.html`\n\n```html\n<script>\n    if (!pageTitle) {\n        let title = 'Home Page';\n    }\n    if (!description) {\n        let description = 'Welcome to our amazing site!';\n    }\n\n    $echo($include('./partials/header.html'));\n    $echo(`<main class=\"content-grid\">${mainContent}</main>`);\n    $echo($include('./partials/footer.html'));\n</script>\n```\n\n### `partials/header.html`\n\n```html\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title><script>$echo(pageTitle);</script></title>\n</head>\n<body>\n<header>\n    <h1><script>$echo(pageTitle);</script></h1>\n</header>\n```\n\n### `partials/footer.html`\n\n```html\n<footer>\n    <p>\n        &copy; 2025 <script>$echo(companyName);</script>. All rights reserved.\n    </p>\n</footer>\n</body>\n</html>\n```\n\n### Resulting Output\n\n```html\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Home Page</title>\n</head>\n<body>\n<header>\n    <h1>Home Page</h1>\n</header>\n<main class=\"content-grid\">\n    The home page's content here...\n</main>\n<footer>\n    <p>\n        &copy; 2025 Caboodle Tech Inc. All rights reserved.\n    </p>\n</footer>\n</body>\n</html>\n```\n\n**Note:** To include frontend JavaScript for the browser, add at least one attribute to your `<script>` tags (such as `<script type=\"text/javascript\">`). JHP only processes `<script>` tags without attributes; those with attributes are ignored and treated as standard client-side scripts.\n\n## Built-in `$` Functions\n\nThe `$` object provides several utility methods for use in templates:\n\nFunction | Description\n---|---\n`$context(key, value)` | Adds or updates a variables value in the current context. Used internally but can be used to preemptively load variables.\n`$define(key, value)`  | Defines a true constant variable. Displays an error if redefined in any context.\n`$echo(content)`       | Outputs content directly to the compiled page; accepts only one argument.\n`$if(<condition>)`     | Starts an if block that may be followed by `$elseif()` or `$else()` blocks.\n`$elseif(<condition>)` | Provides an alternative condition for an if block. May be followed by another `$elseif()` or `$else()` block.\n`$else()`              | The default block for an if or if-elseif statement if no other conditions are met.\n`$end()`               | Ends a conditional block. Must be used after `$if()`, `$elseif()`, or `$else()` to properly close the conditional block.\n`$include(file)`       | Includes another file (template) and processes it within the current context. See [Include paths](#include-paths) below.\n`$obOpen()`            | Starts an output buffer to capture content.\n`$obClose()`           | Closes the output buffer and returns its content as a string.\n`$obStatus()`          | Checks if the output buffer is currently open.\n`$version()`           | Returns the JHP version string.\n\nFor more information on how to properly use these functions, refer to the [example files](./examples/src/) in the `examples` directory.\n\n## Include paths\n\n`$include('…')` is resolved in this order (highest priority first):\n\n1. **`includePathResolver` (optional)**  \n   Pass `includePathResolver( file, currentDir )` in the `options` to `process()`. When it is set, it **fully replaces** all other include path logic for that run. Return an absolute path (or a path resolvable with `currentDir`) to a real file, or `null` if the include cannot be resolved. Nested includes use the same function; `currentDir` is the directory of the file that issued each `$include`. Use this for custom policy, security checks, or behavior that is not a simple list of roots. The option is cleared after each `process()`.\n\n2. **`includeSearchRoots` (optional, ignored when a resolver is set)**  \n   Pass an array of **absolute** directory strings, e.g. ``[ templateDir, srcDir ]``. If present, the built-in resolver uses them as an **ordered** search:  \n   - If the string is `..` or starts with `../`, it is resolved **only** from the including file’s directory (search roots are not used).  \n   - Other paths: try the including file’s directory first, then each root in order (join the include path, without a leading `/`, to each root).  \n   - Paths that start with `/`: try, under each root in order, the path after the leading `/`.  \n   If nothing matches, the usual single **`#rootDir`** fallback still applies (same as when `includeSearchRoots` is omitted), when that differs from the current directory. Omitted, null, or an empty array leaves behavior as in step 3.\n\n3. **Default (neither a resolver nor search roots, or only legacy behavior)**  \n   - Paths starting with `/` are resolved from the **JHP root** (`rootDir` on the `JHP` instance, or the directory of the file being processed on the first `process()` if `rootDir` was not set). They are *not* the operating system’s filesystem root.  \n   - Other non-absolute paths are tried relative to the **including file’s directory** first, then **`#rootDir`** when that differs.  \n   An explicit `rootDir` in `new JHP({ rootDir: '/path/to/your/content' })` is a good way to make “root” match your project’s **template (or content) root**. The [example build](./examples/build.js) uses this for `/partials/...` includes.\n\n## Missing bindings (`missingBinding`)\n\nInside a bare `<script>` block, when you reference a name that **is not**:\n\n- Declared (`let`, `const`, or `var`) in template code  \n- Passed in **`process({ context })`**  \n- Defined with **`$define`**\n\n…JHP synthesizes **`var name = …;`** at the top of that script compilation so runtime does not throw **`ReferenceError`**. The **`missingBinding`** option controls what appears on the right-hand side.\n\nSet it **on the processor** as a default, or override **only for one `process()`** call:\n\n```js\nconst jhp = new JHP({ missingBinding: 'emptyString' });       // constructor default for all runs\n\njhp.process('./page.jhp', {\n    cwd: templatesDir,\n    missingBinding: 'sentinel',   // overrides for this invocation only (optional)\n    context: {}\n});\n```\n\n### Supported values\n\n| Value | Synthetic binding | Typical `if (name)` |\n| ----- | ------------------- | ------------------- |\n| **`emptyString`** (default) | `var name = '';` | Falsy |\n| **`undefined`** | `var name = undefined;` | Falsy |\n| **`null`** | `var name = null;` | Falsy |\n| **`sentinel`** | Non-empty diagnostic string **`<< Undefined:`** *yourIdentifier* **`>>`** (legacy JHP style) | Truthy |\n\n**Recommended for optional layout fields:** use the default **`emptyString`** so shared partials (`head.html`, headers) can guard with `if (author)`, `author !== ''`, and similar checks when a route omits **`context`** keys.\n\n**`sentinel` mode** reproduces older JHP behavior: missing names resolve to the visible string **`<< Undefined: identifier >>`**, which is truthy—useful when you deliberately want omissions to surface (typos or missing **`context`**). Prefer echoing sentinel text as **plain output** rather than cramming it into concatenated markup that looks like a tag attribute string; ambiguous `<`/`>` sequences in echoed fragments can confuse later HTML parsing.\n\nTemplate literals (**`` `${author}` ``**) still coerce values to strings; **`undefined`** becomes **`\"undefined\"`**—keep explicit guards (`if (author)`) for optional snippets.\n\nInvalid `missingBinding` values throw **`TypeError`**.\n\n## Installation\n\nJHP is not a standalone tool &ndash; you need to **integrate it into your build process** or server application. You can use JHP in two ways:\n\n### Option 1: Install via npm (Recommended)\n\nInstall JHP as an npm package:\n\n```bash\nnpm install @caboodle-tech/jhp\n```\n\nThen import it in your project:\n\n```js\nimport JHP from '@caboodle-tech/jhp';\n\n// Constructor accepts defaults such as missingBinding ([Missing bindings](#missing-bindings-missingbinding)).\nconst jhp = new JHP();\nconst html = jhp.process('./template.jhp');\nconsole.log(html);\n```\n\n### Option 2: Copy Source Files (Manual)\n\nIf you prefer to manually include JHP in your project, you can copy the files from the `src` directory directly into your project. You only need:\n- `src/jhp.js`\n- `src/processors.js`\n\nThen import and use it in your build script:\n\n```js\nimport JHP from './path/to/jhp.js';\n\n// Constructor accepts defaults such as missingBinding ([Missing bindings](#missing-bindings-missingbinding)).\nconst jhp = new JHP();\nconst html = jhp.process('./template.jhp');\nconsole.log(html);\n```\n\n**Note:** Make sure to install JHP's dependencies (`@caboodle-tech/simple-html-parser` and `acorn-loose`) in your project if you use this approach.\n\n### Simple HTML Parser Pass-Through (Optional)\n\nIf you installed via **Option 1**, JHP exposes the same `@caboodle-tech/simple-html-parser` it uses internally so you do not need a second direct dependency for tooling that walks or edits HTML (`SimpleHtmlParser`, `Node`, `CSSParser`). **Option 2** callers keep importing `@caboodle-tech/simple-html-parser` from their own dependency tree.\n\n[`@caboodle-tech/simple-html-parser`](https://www.npmjs.com/package/@caboodle-tech/simple-html-parser) on npm explains the APIs.\n\n**Named exports next to JHP** (loads the full JHP module too):\n\n```js\nimport JHP, { CSSParser, Node, SimpleHtmlParser } from '@caboodle-tech/jhp';\n\nconst parser = new SimpleHtmlParser(['script', 'jhp']);\nconst dom = parser.parse('<p>Hello</p>');\n```\n\n**Parser-only entrypoint:** `@caboodle-tech/jhp/simple-html-parser` skips loading `jhp` until your code imports it.\n\n```js\nimport { SimpleHtmlParser, Node } from '@caboodle-tech/jhp/simple-html-parser';\n```\n\nThe default export from that subpath is also `SimpleHtmlParser`.\n\n### Building JHP into Your Process\n\nRegardless of which installation method you choose, **you must write code to integrate JHP into your build process**. JHP doesn't run automatically &ndash; you need to create a script that:\n\n1. Instantiates the JHP class\n2. Calls `jhp.process()` for each template file\n3. Writes the output to your desired location\n\nSee the [example build script](./examples/build.js) for a complete implementation.\n\n### Using Process Options\n\nThe `process` method accepts an options object to customize processing for individual files:\n\n```js\nimport JHP from '@caboodle-tech/jhp'; // or './path/to/jhp.js' if using manual installation\n\nconst jhp = new JHP();\n\n// Process with context variables and custom processors\nconst html = jhp.process('./template.jhp', {\n    context: {\n        pageTitle: 'My Page',\n        userName: 'John Doe'\n    },\n    preProcessors: [myPreProcessor],\n    postProcessors: [myPostProcessor],\n    cwd: './templates',\n    relPath: '/blog'\n});\n```\n\nAvailable options (also see [Missing bindings](#missing-bindings-missingbinding)):\n- `context` - Initial variables and functions for template context (Object or Map)\n- `preProcessors` - Array of preprocessor functions to apply for this file\n- `postProcessors` - Array of postprocessor functions to apply for this file\n- `cwd` - Current working directory for file resolution\n- `relPath` - Relative path for URL resolution\n- `missingBinding` - Overrides the constructor default for **this run only**: how to synthesize `var … = …` for identifiers referenced in script without declaration or `context`; one of **`emptyString`**, **`undefined`**, **`null`**, **`sentinel`**\n- `includePathResolver` - Optional; full override of `$include` path resolution for this `process()` only; see [Include paths](#include-paths)\n- `includeSearchRoots` - Optional array of absolute directory paths, tried in order for built-in resolution when no resolver is set; see [Include paths](#include-paths)\n\n**Constructor defaults:** `new JHP({ … })` accepts **`missingBinding`** (and **`globalConstants`**, **`rootDir`**, **`jhpTags`**, processors, etc.); **`missingBinding`** there applies to every `process()` unless a given call passes its own **`missingBinding`**.\n\n**Note:** Pre-processors operate on the raw JHP structure (before JHP code is replaced), while post-processors operate on the fully parsed DOM after all JHP code has been replaced with HTML. This means pre-processors can access and modify JHP script blocks, while post-processors work with the final HTML structure.\n\n## Caution\n\nJHP is primarily designed for local development, static site generation, and for use as a view engine. While it can be used as a production server, please proceed with caution due to potential security concerns and lack of extensive testing in high-traffic environments. It is recommended to thoroughly test and review your setup if you choose to use JHP live on a production server.\n\n## Why Choose JHP?\n\n- **Familiar and fast:** Use native HTML, CSS, and JavaScript &ndash; no need for custom templating languages or complex configurations. Just write and build.\n- **Lightweight and focused:** With only one development dependency ([acorn](https://www.npmjs.com/package/acorn)), JHP is far simpler than engines requiring multiple plugins or libraries.\n- **Flexible structure:** No rigid directory or file structure is enforced &ndash; organize your project in a way that works best for you.\n- **Encourages native development:** Fully leverage HTML, CSS, and JavaScript as they are, with support for modern CSS features like nesting. JHP doesn’t require preprocessing tools but allows seamless integration if your project needs them.\n- **Modular and maintainable:** Reuse components with file includes and shared templates to keep your code clean and scalable.\n\nJHP streamlines static site generation, empowering developers to build quickly and intuitively without the overhead of traditional templating engines.\n\n\n\n","readmeFilename":"README.md"}