{"_id":"htl-to-js","_rev":"52-a35ba9dd7e4b119fd2fe89690ebffddc","name":"htl-to-js","dist-tags":{"beta":"2.0.0-beta.4","latest":"2.1.6"},"versions":{"0.1.0":{"name":"htl-to-js","version":"0.1.0","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@0.1.0","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"e3e2ad1f690d3313988c05b63c280cdb506c2491","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-0.1.0.tgz","fileCount":24,"integrity":"sha512-ob2NNgpHEK927F3bM8D0drIMfGvp0q6YxDzMN8HMhNwkWpDZWWqNZrVkN8qYEvQnrhDk5N03laIlTKK9qwQPQQ==","signatures":[{"sig":"MEYCIQDAuw645SoCGNCfqxvgpbb6uobA8lTfsnJc4gsAKJ/uugIhAKUesNnS4gdED0DDVnOglvNq22EeSFTeVbt4Z3I/HB0R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100610},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"796c930b76d982d60913286d3f5b6ab8fef43a57","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","parse5":"^7.2.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_0.1.0_1774398609050_0.35311099789455325","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"htl-to-js","version":"0.1.1","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@0.1.1","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"dd6065dcda565335ea42ceac29bf1e17eed10928","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-0.1.1.tgz","fileCount":24,"integrity":"sha512-iv+e1FzvjMSaUMHO5/J+kMGNW2sw4Y9Na2bypR/Ht6WQYCm1ZMxhXgY0j/5BcomvGQMY/mbB6RDoSNNRYxGHqw==","signatures":[{"sig":"MEYCIQDicdnOJfwYd+Z4pjfgRAGl9IVPh1DSt8okZ4diWFq85QIhALoI+10vCMY2aYFb6GnDrL1LMjNTrwt7sT41WfLjHtef","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102791},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"e39aecbba8b0ca4d868aff69e915296de1e94158","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","parse5":"^7.2.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_0.1.1_1774400718889_0.20926868673522758","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"htl-to-js","version":"0.1.2","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@0.1.2","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"3a60e49b1021e29ec8dff25b3fe99b790a3018c3","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-0.1.2.tgz","fileCount":24,"integrity":"sha512-uDqfYd72ddIStSA1Xf6jsaYPMP7bne0OlZ0/WSkWz35fx/2au+YJx52/yIWj8rDGK3NSDWCDAOg+nsBN9S+17A==","signatures":[{"sig":"MEQCIBP+KPfeUZXSQsP3NcX26l3mU4GKP9ApvDI/kLOdic66AiAkWwxJCb+YPraxR/G9MTVKu6scqEC6jbGvS4Bbk0A/jg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102423},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"065dd09d3dc83ee63ee4923a57d4cab352ff16dd","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_0.1.2_1774446296475_0.4052900808335993","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"htl-to-js","version":"0.1.3","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@0.1.3","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"e4f8864c9431f29a529d0b0025a6244bf55f6f2f","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-0.1.3.tgz","fileCount":24,"integrity":"sha512-lhSTvPPmNQaPPF+mUh934OTTO16hnzYltFVlocbpH0Eo3xbxQOCaSt8ux2GDx75CffqmiPh8zg7Dt6zWfwMutA==","signatures":[{"sig":"MEQCIF8z1zO3FTF6mWhuutvPHNg6KDa+dObh/Q+D0Fb+luvfAiAdJpVsvZCfAJ9/4qWrbiUj7nQ/53GKWaG4R1qQUh1wbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102528},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"a7934ada5064f5e0df00fd66fefb95e795d25dd8","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_0.1.3_1775072404209_0.715270747178417","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"htl-to-js","version":"0.2.0","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@0.2.0","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"633de25e7cdd18ab95722ff3d52bb1899ba3600c","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-0.2.0.tgz","fileCount":24,"integrity":"sha512-kyzn9A1BRq3A3duFS3/aYsopqjVSuSHEjOz4kZEGraHXjrV0tFUi7+N6ulqK4jCNxfAjbEk0f6ycT5ljo3ig7w==","signatures":[{"sig":"MEUCIC/WzFVg9DjCfU8v4MFwInf+4et4xvEP9yZQ5sgX/IGEAiEAoofIwVGm8x0MlWFLNYH/xXqgZmN9NxhNDC0zhnyKhwY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109645},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"0ed5637431a316bece2523c88f5b3795e4ab86ca","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_0.2.0_1775150154011_0.8163761364904503","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"htl-to-js","version":"0.2.1","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@0.2.1","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"68b5ce81f7f14fee58de5fd04079bb549b887388","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-0.2.1.tgz","fileCount":24,"integrity":"sha512-UYwX+J2dAanL2t5DmlNYWjyijJPkgNAbY2cFhAT3+kxYM7qzshgmboSjnfbio7d1XTVe+mozoHyFr5k/NemtGA==","signatures":[{"sig":"MEUCIEbw5sK/rs3GJnFr6Ln2N2ce76IkLPvDupmqawYHwfqeAiEAl7PFlvL5thd6z8X64JyQ6E4WTbZbKAZd+JnmLrrWWNI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120381},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"d2ed22a14c801d2c3c01492f687d8b40ceb5177a","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_0.2.1_1775157190708_0.8423035055073378","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"htl-to-js","version":"0.2.2","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@0.2.2","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"e101e62dbf04627f18da78eb652dcb1cbbaf4992","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-0.2.2.tgz","fileCount":24,"integrity":"sha512-CxOUuC/KGG9pAWd5wk5pmpDSrhKTluIgWJo2RbjPtaZ/OPgzqxp95zxEPRjbjg/pnCgzkiMkyDHjILu+J3jp5Q==","signatures":[{"sig":"MEQCIEfKIZFiMf6QTMEXDX3oeJIMFGJ3Y1CwfrGAc4jitrwXAiAWlHXfMGGS19y0aHgwHVUg8OHTNMjxNc4V49IyaEYScg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121870},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"4c577de99e96915f82f7603b61a9bdbaea4ed9a9","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_0.2.2_1775162847876_0.6129123402872618","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"htl-to-js","version":"0.2.3","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@0.2.3","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"036125046cad15313693f40eca3114e4a57cc428","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-0.2.3.tgz","fileCount":24,"integrity":"sha512-qg0CdTnXf3hvnrA0gpwGZeSzJwtnMyHwykhHZH30sd9Tncmu/0oP9CJD2j6jn9C/ye0QYGg6F5CDWYs0g7QFyg==","signatures":[{"sig":"MEUCIQCngTyuQ6cIuMJGNLfaaH7EanOFnYtgQOyBppcrozB2qQIgaLHlNNI4sxMw1qnZzRmNgKUmCAWJ96IQjuKKV5zbVSg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122455},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"95f8158ca04ac661513986820e6981488ba93c04","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_0.2.3_1775164244058_0.14672203529015615","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"htl-to-js","version":"0.2.4","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@0.2.4","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"42b5593341cef48ee533af7be43e38420577f36d","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-0.2.4.tgz","fileCount":24,"integrity":"sha512-HfwImpMTKmxbC9B1xdPj8/5dZr4B2IgnMwCKtfG8PPPm0XPd+3E6pbVy0ixcloJxkepbUa8A7GTUv/GxRMe9ag==","signatures":[{"sig":"MEUCIQCcydlPOtR2NrrisL2qM7hpv8VGVEO0HL907AlGbXgetQIgE0nA7dyFU2jzHi0qLNpXnjBkpqnQ/jzkAEvvxl5RCb8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123006},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"53af6efa403a5eea7a75de48dba7adf94070ed3f","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_0.2.4_1775166340635_0.4311929706403277","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"htl-to-js","version":"0.2.5","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@0.2.5","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"56d79b3573337792f639f1daef88e5b82ce0dc5b","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-0.2.5.tgz","fileCount":24,"integrity":"sha512-QsyAn4vnZXHP/0izouA1d1byuCC5NiVNIqdR4PoQyRT7t87RuUkSQG8Aj1krSInPv/r9mtqbbV8RUrGd96l5Cw==","signatures":[{"sig":"MEUCIQCtm7T/5R8ehAkftRULucFG4mBt31eBv36sc8LFHeZyQgIgS3QuP8wGjCiwQ2AaWJEsJEqwK2fGJ4bsPzNFQCCtRZE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123255},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"53af6efa403a5eea7a75de48dba7adf94070ed3f","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_0.2.5_1778013883039_0.39777491034198187","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"htl-to-js","version":"0.3.0","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@0.3.0","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"0d5991facfd7cf40fe5b07900424635888642844","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-0.3.0.tgz","fileCount":24,"integrity":"sha512-MFfHBZJOSkA63rYSDon1FdCgcFsHSDzkSO+xjea5i2OVz0fyPn3myejbrUk9z0suwxjXHNQVKsHa0rReQ6489w==","signatures":[{"sig":"MEQCIGJlqCRwRLILBnOP7zZ+AMai/PuwNvK586G0olKf5R39AiAcRSk+cnWQurtx2w855h4L7W5mwuB8ojtYzfWYGwx/ug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128738},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"5fb16d3fc40eaf8c8ea79ccf5b869e58adabfbdc","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_0.3.0_1778016911218_0.19232582024637268","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"htl-to-js","version":"0.5.0","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@0.5.0","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"116a5d031408ae45e2db919d2f65e877c981b0a2","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-0.5.0.tgz","fileCount":27,"integrity":"sha512-JCZAyp89y2uoc1SRjHBH1tTOcRHq8n/ac10MOOJl9+s53p5xb4XtPOxL7f5imartaSf5DzomLLpwSTEcuDxdgw==","signatures":[{"sig":"MEQCIFuCyo2QOvDXATfIJkk2tWK2LB5k4ObzMwfWme5wW1ApAiB1354Km6nlyJTx59g/SNMJhrupasVSRGXsJ+pvpbp/rw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137295},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"d79cf1e7494e4a8fe03f24d49a9c309622e3f74a","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_0.5.0_1778018312821_0.2944855493571992","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"htl-to-js","version":"0.6.0","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@0.6.0","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"f99917651394c20a8e240b057299ec278587f05b","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-0.6.0.tgz","fileCount":27,"integrity":"sha512-TH3mtnBJxmGpSKxH8MsUm5ZlWuZFCwXyFdu1EgRXNAKHmVjzodP8lnl755HvvYYRIbUEJiN5bYKxxmgJMDAugQ==","signatures":[{"sig":"MEUCIAmz/GJMER8RpVtlDZiQQhlDKzYKVa8Bs1dMgFC8e4jKAiEAvfiypVu9rR1JR6sFfLwb6TPvcNZA2ofYhy8WmycfsbI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137593},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"e894029c6708979e9b3f083ac2e1a28cc2b73449","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_0.6.0_1778020500516_0.38236037343660767","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"htl-to-js","version":"0.7.0","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@0.7.0","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"45d88dd68bf0cf1bae36cb2074c76b923a00c498","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-0.7.0.tgz","fileCount":27,"integrity":"sha512-YG2NSJsY8e+c46JDI5dvBivAbP2ODgVa/TbMTWTd8utH0n6wYqK9Wzjc+WUwLG8Gz1BYMdIg0UhSt8fC9dmaoQ==","signatures":[{"sig":"MEYCIQDfItTs3HSM/UKFSdvmIXR1guv6JAsYqkR4IDUUxLWcbAIhAM3p6YdNNWWMT1w4r9f2cmdE8Qx5hTPBdVAtrP8lHn6x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137838},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"d487e0ab0cf843b5411002c34ab1669f1541a1ca","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_0.7.0_1778020740278_0.670982877794488","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"htl-to-js","version":"0.8.0","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@0.8.0","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"8867c5ce9b2303a1b6022d3de13e5c9a2e09477b","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-0.8.0.tgz","fileCount":27,"integrity":"sha512-kBGhzOJ8LzzGz54tDNc2oT1mF3SmdFIsahWb39s2gm41QuH2kgsmUpvbh8R8TWu40wqSwAen0Z0C9DpvFuqVUQ==","signatures":[{"sig":"MEUCIQCOu4fbDGMpJxwwkHhtc4fnq/YbtQT735bAvWlNyDe7fQIgO+mMWNVENsE+OHEx/wSOnDPJdCDj379QARNH9z4KIT8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138223},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"e4465d6b9ed8850a6b419f91a5d420d2ce321384","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_0.8.0_1778083990527_0.015040446676962915","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"htl-to-js","version":"0.9.0","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@0.9.0","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"007f46360a997d0039b9ad5417fe6c276ad0f2de","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-0.9.0.tgz","fileCount":27,"integrity":"sha512-inzp/mdiU2OCeKCBaedwNbhA0JQIu6xrjNbyYVjIUIqdU/7MMcF0GeeNWj53UVf8aOnCe4QDNzX2UIU2RicXTw==","signatures":[{"sig":"MEUCIQC9vP/SyTqGH7la6t/Wva/issyoRL4owFVtbgu6C3g6NwIgQ79AcowmJqeT9TobSV0W2JNIOh2B3aiC+3VSyo9uPhw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141267},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"04d1c1f218989ff96b0b48ab35d9b9f34f1a73f1","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_0.9.0_1779304164951_0.06475793662276552","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"htl-to-js","version":"1.0.0","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@1.0.0","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"8e71357faa0c4ce1991d0aaf25b11781e1344e46","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-1.0.0.tgz","fileCount":27,"integrity":"sha512-UJISTwxalMqJfS+aTGoA7qdKSVpcFVU6BZfscCwSLQF6Jsut4fLbStqtt2fCeT+pUGK5zcD7YhTzCFv7YSfgSg==","signatures":[{"sig":"MEUCIQCA3pxgkT9FjAaAs/U2F54Tn/P7Ig1c3DEKiYnZ2wOZLQIgM6e5ggGDYZi6RqzeTf9XmK2rcsvPZkBfG7uf++X9SeE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167412},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"9557a892e503b11c1a35ade962275863d80fe724","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_1.0.0_1779308447493_0.9921264441829343","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"htl-to-js","version":"1.0.1","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@1.0.1","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"9f888acc9cdafd99a1f0514b7c127ddce495b372","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-1.0.1.tgz","fileCount":27,"integrity":"sha512-rYZmuMC2Y7nNX0g1Zj7yX7VRWXZc149c4eQ8v9sggbIoXKfGPjccsRxtaFzsx9K57TNQRhrNN8Lpoc1nDdkVqg==","signatures":[{"sig":"MEQCID3U/usam8epwamargYN9ynUcktZFe5zshBlm//wL1VHAiBASu3nVaID9FgWYcjqyPCuMYU4DL8nEFJhbxz/qiuwJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169850},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"136c959af628eeab1d90bd17098f0bf5054fe961","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_1.0.1_1779308727918_0.13304504211406876","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"htl-to-js","version":"1.0.2","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@1.0.2","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"820954cf01feb46dd8b2bec55f4d234074d3ff54","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-1.0.2.tgz","fileCount":27,"integrity":"sha512-7vA2HPNFZUzVy4gN3HS2WK4RpTKTeUk2X4Gm4OZ2uxQ+EEt34XiaQxYRJ3yQG70HouserxiS3p6jRtr4L5Ph2A==","signatures":[{"sig":"MEQCIAK6sP2qKxNmSiIM91TOBIRIqGbWDcRYiOQzveL4xLMPAiAqq3NCj+phDZAPNjzHvNBOldIcFlDlWBjoZLLP1VIAJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170218},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"793f720ee4054ed03d1fe6e1e87eefd2762bdab0","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_1.0.2_1779819866919_0.28888192544822733","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"htl-to-js","version":"1.1.0","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@1.1.0","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"0a781d8d29c33340a95d29708773c5e2f85dc0cb","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-1.1.0.tgz","fileCount":27,"integrity":"sha512-Uq1DPVuM/wG0sT/iifEP+eqNlgKsceCwgj4w/eeXIobiARMPjDOY5UobtzESoUjrdHcFz3QR+GQzbqMS25NRFQ==","signatures":[{"sig":"MEQCIEqfoYG6zbsxW8eMVGL4hIDJBZHKe+sXRBOPpfMrqlS7AiAKdSOr5kC68rw5DVPe0PO80sHWhD1ybOCJldBmGFqx5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":177242},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"3d2de4cd86f4572cab6f84e57acb5838cc8813ed","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_1.1.0_1780355391480_0.3969286478132388","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"htl-to-js","version":"1.1.1","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@1.1.1","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"ae67254c58b44cd0978f9d7fb3f42566a4f9eac2","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-1.1.1.tgz","fileCount":27,"integrity":"sha512-jWYRoXH2O6zZgJMz4nH1Obr+QK7BtN2lU/p+eb+2qFMEiCYiVs5pWBh6L0koch3gQJvPDnrNIPuL+Hb8B19H+Q==","signatures":[{"sig":"MEQCIDkSlCK4LbEF2vDNZJzgxojh9aPqynlLJruLk0UMcOZaAiBnQsglfWdkcezhf7WGeweLzJwj44UtaAmzr6HY4AFvtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178603},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"3d2de4cd86f4572cab6f84e57acb5838cc8813ed","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_1.1.1_1780356693030_0.851144800730163","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"htl-to-js","version":"1.1.2","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@1.1.2","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"5ddeeb7faecf2f23d87563e18062e1b96e9ae379","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-1.1.2.tgz","fileCount":27,"integrity":"sha512-PTUOmQ2Y996nGMPk7oQTrrK/0mkJI0aTaQjgPvOmZLLmVXaED/Ee3cjwgQgwqfPoi7/z0sGt40LFBnB8faSCpw==","signatures":[{"sig":"MEYCIQCUVqlI61WbJBLHHFE7P449/frpKcYXSUW4W3VDRVGOqQIhAOlxo6Xeo671MRe7wKvFpfc9wBGTtI0cdaeS6Sq8qWYM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179367},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"7f739ae248727ff4fe85b2672ee7b982ec07ebf3","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_1.1.2_1780357697908_0.1330466112613593","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"htl-to-js","version":"1.2.0","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@1.2.0","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"c4c141f15cd75ab0a2829e061d2f3ed93928706e","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-1.2.0.tgz","fileCount":27,"integrity":"sha512-mlqRl9GYRP5W6KuIe/I/M2JBwvFI9pX3tr/1oBiuljw1yYTPi62Ad6yVxGgBttip+OJYShT2jwJLHGb3CXaHew==","signatures":[{"sig":"MEYCIQC2uRdta4ymU0X8rqov1EW52JUjZZGEszLO3EOBd1ys+QIhAJOSR7e+WAd2gTV3oXRYBh3KTDjXQo5UyqW+/+4tH4Kv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":204604},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"215af4823af623a1842fb807f652d5a5d0078fb4","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_1.2.0_1780367902809_0.3013978337612311","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"htl-to-js","version":"1.2.1","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@1.2.1","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"277f34c5168e9e1bb48290efc970c893965ef47e","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-1.2.1.tgz","fileCount":27,"integrity":"sha512-ACzFDV0sQcCfXRiuXIhkmkjBsWpM9dA4G6Oc29xD4PXlEeCBxh4VALELvauAIrm5nwgYk/ZpzES+6U5zdFnoYQ==","signatures":[{"sig":"MEUCIQD34/XIgoI8K6FaVK0IpilJtd9ixz8uOfRv0VzvGZGUxwIgNhmuktHN2XzH2rujFYVgXull911BwMbHRaABQHC6/0M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205531},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"52450d4837f36e125f692bd166e99ced70a05788","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_1.2.1_1780368925784_0.8319509451460669","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"htl-to-js","version":"1.2.2","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@1.2.2","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"dabdf92bac7a68830fcf99279f3a24ca03ae568c","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-1.2.2.tgz","fileCount":27,"integrity":"sha512-fCNfOtglq1BgrGGFEzc5kyWx8ErmTAe+lyi1LPBYXwTf0p7eCdFK39ug8eFtoel0T+7NWeJZNU+bTTMiQ3JaRw==","signatures":[{"sig":"MEQCIE4SUYOTV7uMLAnbm1LryCxX6QSm/wa4OAKwa4goaeh5AiB5RK1FUgKVyAbK8uThiVBYEU1GWQY1MHE4XFiqf1I/mQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205793},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"a530074574689fad2ef60d1a333e3bbeba8e37d9","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_1.2.2_1780418771451_0.367483684503932","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"htl-to-js","version":"1.3.0","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@1.3.0","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"98069f5682a6a786ce754e4760573fbef0f52b2a","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-1.3.0.tgz","fileCount":27,"integrity":"sha512-EuLUDUCTJhx3d68z68J3AzzjCbXZ/j5iDnhqK9NZaAmOC2GZATJp6+MIEud9lLgSqSgb73JnzuK95fGs4BDgqQ==","signatures":[{"sig":"MEUCIQDkJAgC7CufsuzrkK3lvQowR+EqMEIrrZvrzVeVAye7JgIgYqBz9+f4nQlbXcdiuAU/OkT/WZsn8Zlt/c8SYh/GbP4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210898},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"bf94cedee31d6dc195f20e32c0a76bc804393e72","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_1.3.0_1780421708001_0.20036854551492533","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"htl-to-js","version":"1.3.1","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@1.3.1","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"2ccf502b61ec65a9d6bc4d20f345b19cb2457646","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-1.3.1.tgz","fileCount":27,"integrity":"sha512-zqWPtEPw3wBiIcUkCTaV+sRDfMt0LAAzm6p61OlPCyUMfGv9emwU0gieThzaZBOLm6umkEMByR1O0bYrzbZS2Q==","signatures":[{"sig":"MEYCIQDGBAsVFYJS/Jal3QyqJLeTLYHPEqq0G8lGTqdf2ktb6wIhAPk9P9qLPkiyDrHCenOsyuAUA37mgLQ1WP1QauSyamJL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":212405},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"db187971b5ecbb74e46202862efdf4d78e0150de","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_1.3.1_1780425190504_0.14690371809124625","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"htl-to-js","version":"1.3.2","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@1.3.2","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"0e12570674f2053e6f411bdc72f4bd4457d46052","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-1.3.2.tgz","fileCount":27,"integrity":"sha512-X+1y/iFpRuiO/ojF+3vuMFXOWOC/v9U3/fHDCab8e69L/ZDmeI/vFMLgUP+HjpRg91sukn4htP/ZPq8EDRi6nQ==","signatures":[{"sig":"MEUCIExfiWm+wyg0t+JBZ5hzLKuAVXvC0Le6LGdCzM7PxVwtAiEAw/KVFuXdT2aJBQgQkLSdWNd2uWKDgc9xj529oFpH0Gs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":213846},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"a84d214deb2a4fb3bd9f8d03d7c690ac72d54d3d","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_1.3.2_1780434196183_0.21309984362947754","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"htl-to-js","version":"1.3.3","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@1.3.3","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"67ae05d50348f8434d386fd10bd187f399c85e22","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-1.3.3.tgz","fileCount":27,"integrity":"sha512-tupZ6RTo55AA98bC4CVlLKOmozVpI3cP93B2WcRAakmjk+bipHHRo+Ik+dolUgsfC2FSIu4QJe/evGVvqyTACA==","signatures":[{"sig":"MEUCIQCYEF66unlW6JsKeHtocYtOr7jUpvnR7eJQ9thEW01xigIgarUQaDXa2qt3wdR/O6h+aiIyCOJEe504SO1iacd0k2M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216094},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"1480668a06aa81a8dc8a7ff5bf58a730ca8672bb","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_1.3.3_1780488551037_0.2507967006730163","host":"s3://npm-registry-packages-npm-production"}},"1.3.4":{"name":"htl-to-js","version":"1.3.4","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@1.3.4","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"3309a172ac4f4068dc3da6886afec0b19935ad72","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-1.3.4.tgz","fileCount":27,"integrity":"sha512-b/o4guhH2p298wwBeueG4tY57jOYmFYcIOvhMu4tKjoqYwAdOEtpzjT0Z+KbDl14vN7C0CL9684lYeD//LtKBg==","signatures":[{"sig":"MEUCIDk7UyGK6hHOuYYcf44Jw6wwqxjqKGrh9UDhgB0Q2h05AiEAqOtOcb4O4UvNB2r2eRs+2v+0spiN345SZPM7SnzqkNo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216108},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"73aa8decc0227d4c3ff96ce965e0dd29cd7c6acc","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_1.3.4_1780489902608_0.28979671508986415","host":"s3://npm-registry-packages-npm-production"}},"1.3.5":{"name":"htl-to-js","version":"1.3.5","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@1.3.5","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"7d43f4ab761865a33f0764ca78e326da61a469e5","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-1.3.5.tgz","fileCount":27,"integrity":"sha512-0LkbjT3yv2VDVfLWGAXusH62BdhAqdzQUFTiR48EftMz9NFgjCYnnzdkM+fj9nqHpgZTEKPnAFNNotRpaHRPjw==","signatures":[{"sig":"MEYCIQCP9Ubh/JG7QfDNbioNs7F8qCrWlStJ6SfNdBAvdNRtXAIhALE6VX0SK7AYTbTjXV/zlgpyb6eFJNCzujHGuqvWA7Ap","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217690},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"8b94404c193bafd1c3db951f925132cd7857f298","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_1.3.5_1780491249207_0.21146726947378225","host":"s3://npm-registry-packages-npm-production"}},"1.3.6":{"name":"htl-to-js","version":"1.3.6","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@1.3.6","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"cd0435fe0d58e3a7131e2a1de9a84d6109f8abed","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-1.3.6.tgz","fileCount":27,"integrity":"sha512-zGYP9W9qT+AGjE9t6wdGDWzB96LbTjEWpr+PL0UNQgK9jCbv8vnegCerrtRw4aklJoRrWADeH1ZMMV2ecn/fCg==","signatures":[{"sig":"MEUCIFtnwGrO4MffRWsw/sMXTSEalsvxX8EpdFMeRk3hzgdHAiEAhrziSnb1UFC7gmiUDWpQihOS7C8V+jTap0kqWjZSRa4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217859},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"f998bc1712fa50461779a355a06d06b47c1c97a7","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_1.3.6_1780492392801_0.4881006460484194","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"htl-to-js","version":"1.4.0","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@1.4.0","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"2b697b52c2bed5094b744f187903d6c31e85026c","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-1.4.0.tgz","fileCount":27,"integrity":"sha512-G9RpLqDKEwGPbf7tAJ0Tjx09shUlPSevla3nawTHgivB9crTxM/yfSK9l4T263GpyrDQxcWdEbncCgHNI1HLKw==","signatures":[{"sig":"MEUCIHDCo+CyNsMvzcVmkJN/eOFMRoRr2qyk+c7GuN2OzKzQAiEAkhpYTmkoq7nDLDb7kbAETWrr6VpUE0rZRh7e+eTfPxY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218423},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"e15fce8a74df1d5bdb92ada40ef31a30c5d9768b","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_1.4.0_1780499521278_0.06293043882608806","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"htl-to-js","version":"1.4.1","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@1.4.1","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"84796b6d37d609c7bea90be77266c4cb8c53f351","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-1.4.1.tgz","fileCount":27,"integrity":"sha512-cGh7T2ouD226zN8n61dtSRKABvFCBVBd5cF8Fp/uMq/n1hlRwqrJi0olIdMeIf0xVm1aJ5qrrr55RIVwgRvdZQ==","signatures":[{"sig":"MEUCIAfqsI2Os7sFLeDixVP7JDfD+sFhb+H74SqlOVCpcnyGAiEAjLQ0kaxad33XAmBdEd4Y6ioYgInDxNZEUqmv2aCPsgI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218702},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"d03ab493f24f57c51511382d0c629b1bd7863efd","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_1.4.1_1780501001006_0.2354375880787194","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"htl-to-js","version":"1.4.2","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@1.4.2","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"4768700ff654188e2548707210d2173cbaaeccf9","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-1.4.2.tgz","fileCount":27,"integrity":"sha512-kldbBh2ENxjuPSr+aXrE6VwrHNwyU9lO3oR9Km3+TWbP+V1Rhaj3E3usLvzMyLyz8ftPd44NLBVr0pOOI1pAPg==","signatures":[{"sig":"MEUCIQD0+dPy5u+OXmBGjzm2DSq1Kokug1gLBS5lEaVugyzm3AIgWpso4xIkD8/J7K0R9vpFBmimzAQm9QbmrHbpUv4cZbE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219528},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"675408998191405de85dfc72e2c1c0dd83b94276","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_1.4.2_1780512827860_0.5686393039679634","host":"s3://npm-registry-packages-npm-production"}},"2.0.0-beta.1":{"name":"htl-to-js","version":"2.0.0-beta.1","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@2.0.0-beta.1","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"8b8c1a54e5f8b066ff74f6ea884a41d48b7a3c8a","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-2.0.0-beta.1.tgz","fileCount":27,"integrity":"sha512-1TCAIdxJot/gECWHtDzMSwsn/UkYHOJrovodAJKxvnXXQyZTkZMIyg+ZuOIWp4RRYYviYQtB4+6601QpneLN1w==","signatures":[{"sig":"MEUCIQDULAjj6eSn2jNIPfADjhOY0+Ndgyz0Dnb6Jz9FpdhQpAIgTxxvfLnTMZ+ozmXtaBozLOYzGszE0oD7iybOOBommrM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235617},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"de9462bdc45781ebb7f613c9ee328064163376d8","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_2.0.0-beta.1_1780671757655_0.0675084417255416","host":"s3://npm-registry-packages-npm-production"}},"2.0.0-beta.2":{"name":"htl-to-js","version":"2.0.0-beta.2","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@2.0.0-beta.2","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"b4fb9e06b02f177c8a770f0f7cc637fb65f72506","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-2.0.0-beta.2.tgz","fileCount":27,"integrity":"sha512-Nh5ci2OBRk9Mk9Eqb1wuZLIjzBJv8mYw+MeiHSHgcYawwMgA3W16PHZ5jQYRLOnWYdQbfFUSyTQ9ju05seLlBg==","signatures":[{"sig":"MEYCIQD6230NV35o7m0C4bPmcKKRIKuNvy+d7SdqRm1Ccb4YHQIhAN7MLxc9om7copDVcSA6nhmNirgqiPOLvK+/vYnTJZhG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":236812},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"66eded4f1f3b3e47d6ab0e4c22184e64b77b2513","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_2.0.0-beta.2_1780678171133_0.45212401203789776","host":"s3://npm-registry-packages-npm-production"}},"2.0.0-beta.3":{"name":"htl-to-js","version":"2.0.0-beta.3","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@2.0.0-beta.3","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"81e9758188b78ddda4b2374ffad4eedea05f800b","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-2.0.0-beta.3.tgz","fileCount":27,"integrity":"sha512-LH0cGPGsc6GaqDWmVOhKjeAV07Ix5Okpf4+3DTPLNVRHscT1xi+G7NQmBLnv9UbURwdWBT+HoD61Fvpxsfx5jQ==","signatures":[{"sig":"MEUCIQDURrzGLj1sisCp1ci+tBe18ELaMc92gQBII06n07g4hAIgdlKsevvR12hXMNKllVj4T/FzKLKMxlc81nvPcFtXX84=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":237079},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"2defdb9a61de8b0a26380078ee088c8553cd2943","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_2.0.0-beta.3_1780679334512_0.36710325875737704","host":"s3://npm-registry-packages-npm-production"}},"2.0.0-beta.4":{"name":"htl-to-js","version":"2.0.0-beta.4","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@2.0.0-beta.4","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"a50dd472d1a20589675eb5334ccac779242dd66a","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-2.0.0-beta.4.tgz","fileCount":27,"integrity":"sha512-A6CuxEnwhjlFdi4kxnVYWGCpphQgBmxMI8RRMfgdPkZmRThiAIqA21RIM1mH087f3vM9TTMozFzzu6SdugUbxQ==","signatures":[{"sig":"MEUCIQCTVUbnYHDSqRshAnL6hmA2w5bIAbuIJL9JKhLkLmPLrQIgCmXp8AslwCzc/JR/4fac5jX3CvBH4aYrcBRSsDmsq2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":247684},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"c207007b9cca5b355b41309ec5ca874b43f856e1","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","minimatch":"^9.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_2.0.0-beta.4_1781023063230_0.7508278593821496","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"htl-to-js","version":"2.0.0","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@2.0.0","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"c995d62b8f98f80aef8d783b6654a2f63f483e8d","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-2.0.0.tgz","fileCount":27,"integrity":"sha512-Vt1k04aQi3KO7E6qfP40/PPW1AbiCU19jEKd9tXGWdCn5nMxEn65W7iO/1IYO7Ry3jxBSKX4jRiXcdgus9kGIA==","signatures":[{"sig":"MEYCIQC0v8nkZl3qqOrEyMMOCM6ypnY/pEUiX7WFjQPoSw3zOQIhAPIbVbOVRw8dCUWI4xHyoybwjVU3TLQlwlfftGT9/+O7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":248556},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"8424709293587bb5a3606f6090cda375178f953e","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","minimatch":"^9.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_2.0.0_1781027579140_0.23361973963443883","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"htl-to-js","version":"2.0.1","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@2.0.1","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"7fbbce48f9d5dc22b11debe062dca5360cf92a93","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-2.0.1.tgz","fileCount":27,"integrity":"sha512-45g3OrdMh2dpicYeZhcRyPF8xK4ZRExqbp8h9vGsL1FTM8PJYEtum6l6kHtWUXxw0pTahK8e5guzIcosR3ABXw==","signatures":[{"sig":"MEUCIB00LcPs94mfPIa1Luvo9ht/J1ERvLPlFrxjZxAeTJgAAiEAvNXXhulmzAgQgyJ5xCTxBKgug6+Uckskdb/LscqohaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":252480},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"bf205d8eb0d1119c5241bbac5ff9c186ccfe873f","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","minimatch":"^9.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_2.0.1_1781294058644_0.5173897926413973","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"htl-to-js","version":"2.0.2","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@2.0.2","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"322fca319d5b744579bd15cc8f30812af2a676d3","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-2.0.2.tgz","fileCount":27,"integrity":"sha512-BHYElMX4W53YW/WH/Wg/RjI76LcOKBlMY8GUeg+cYoUlu0aynlNg9IHEbDO0ftv5njz5gKKM7LjT+BdnS9J7OA==","signatures":[{"sig":"MEYCIQCAul+Xbebfhb9TOYiStJl3znheycnPIJZGPMlRtlWP+QIhALOblsgSMu5ab/EnKq2mCnUeavvO/0ytU8nts0vJzW+u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253695},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"27ce901bd62222c4a01a69d7272afdcff7cfb681","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","minimatch":"^9.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_2.0.2_1783367497359_0.17509074256142854","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"htl-to-js","version":"2.0.3","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@2.0.3","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"67246dacd92ba55aa27723ad64c46181cdd8eb45","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-2.0.3.tgz","fileCount":27,"integrity":"sha512-4aWNYDY4XehyVHe1nUZIpedk0rZ8oGfy+/rcCzl2EZ7aU4XNhz1rsoRsveWl9O0r2epOPZh/Bn/3Ov6KyU4t+A==","signatures":[{"sig":"MEQCIB9jz8S4rR269sSaZShcYhFrzddCR5X2lkowRXuMX6bzAiBies4mPOrhw2tG4LhA1Dtch4S2P73FVSjZEyMSLZ1jNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":254405},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"49ffb73448251ed43022b1d091b405f5f1195767","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","minimatch":"^9.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_2.0.3_1783985756393_0.4243217205127734","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"htl-to-js","version":"2.0.4","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@2.0.4","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"3caa0e3cff14bde95dbe5431ed20a5fb41c02fbb","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-2.0.4.tgz","fileCount":27,"integrity":"sha512-3jjiIYkleaQ8m54t9cgP428reORzHAi+ourF4u557aHiCjV5plQXtOhStdhUAgynpMJwCChOD7yi5Drl67+TNQ==","signatures":[{"sig":"MEUCID4c4pX0aQghmVL/LkjIuzjuyoum+NOhrHbE2aZhngsEAiEAh3Jfzck39hrqSjyuRG2L6/1SjQ++JC9C1+2ovnr+yPA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":256296},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"cb47317ee5b505c09e8106502e8a4ae818986c16","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","minimatch":"^9.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_2.0.4_1783990321390_0.6788533014302884","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"htl-to-js","version":"2.0.5","keywords":["aem","htl","sightly","webpack-loader","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@2.0.5","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"f10ad42c9b9271acde3691b5ddd0e9346c03e1df","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-2.0.5.tgz","fileCount":27,"integrity":"sha512-5alIBBMMnIy12/v79hIkulb2AwiDqV+A/Pidj4lzp0NVTfBqtMMWCU2aJNrIQLvYbty+51JQOqF8YIyPc+4xLQ==","signatures":[{"sig":"MEUCIQCeoYKDmHh8zohjtRNyO5Pj9yui+wAz3lHvDtNsn44lpQIgONhbZKn1XI0w4v9KmFEuo9O+rj5JMbLwbLQoeeOL2Z8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263103},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./loader":"./dist/loader.js"},"gitHead":"af5961f2b7faf3f9f79cda7f78e5459f40976430","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","minimatch":"^9.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_2.0.5_1784133326616_0.15041355620662777","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"htl-to-js","version":"2.1.0","keywords":["aem","htl","sightly","webpack-loader","vite-plugin","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@2.1.0","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"74fa1d28db4049752e31c0ebb3749486d46a4955","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-2.1.0.tgz","fileCount":30,"integrity":"sha512-6pK3kbWpN7H8AsDn4xeVFX5sc1WnF/r6w/KvDqyJAo2HK5QzQyyoyfe4JpnUwPyPVAIl7ftKjA5fZoxdLpAaWw==","signatures":[{"sig":"MEUCIQCUgCn6Z/uChphxe2+hUDcWixeZ96GX416KLcfbyzbr/wIgEw+ec123RzcC5sn4O5rRiWi68Ub5UvRChPJoh45uL+k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":274129},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./vite":"./dist/vite.js","./loader":"./dist/loader.js"},"gitHead":"0424d96e9306d60e42b4c1ddd8708f621518e386","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader, Vite plugin and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","minimatch":"^9.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_2.1.0_1789042516491_0.7722316494771808","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"htl-to-js","version":"2.1.1","keywords":["aem","htl","sightly","webpack-loader","vite-plugin","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@2.1.1","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"3a415e887a1929e1dad92e2eb30cdcd2b796e2c0","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-2.1.1.tgz","fileCount":30,"integrity":"sha512-6Xgra1xuF5QAcW3Tv6yVURDoJutTkyfVkDCeFZ7pMJYmlorYHgLclMeFfFFQoxLDlAMIJeeyiV/xD7Lz4kJjgg==","signatures":[{"sig":"MEYCIQDHuhmF6GGFB7EQr/7rKcLVx8HsdKPwFEvIfSkJcn6diwIhAIh+IjizgmiYs8l3lZ7tq1qwCxOKfWv0koi3QiHuJ9Kz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":276331},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./vite":"./dist/vite.js","./loader":"./dist/loader.js"},"gitHead":"4e0a643d98c6b25dc61973388b287d1926fba0cd","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader, Vite plugin and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","minimatch":"^9.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_2.1.1_1789045732249_0.909761310866841","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"htl-to-js","version":"2.1.2","keywords":["aem","htl","sightly","webpack-loader","vite-plugin","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@2.1.2","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"42902be011af582fec7a7a87b93c097d8706b27c","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-2.1.2.tgz","fileCount":30,"integrity":"sha512-XGQHpX6wJ0PiXx1Bf/mSLPti9TRbUQD7n05VuaETO94ZuZ+6+WbrMERz6UgsrKSdILxHqNyO0T94zfT7ksij/Q==","signatures":[{"sig":"MEQCIChHuHKxJ+ARD2QNfR1oC1Axph2Do+JZeAzOmnA42+aqAiAddDYvbdYyiiEPSOmR4vFo+8d1hBonq3OdtVr6B4XfoQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":284753},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./vite":"./dist/vite.js","./loader":"./dist/loader.js"},"gitHead":"d12cba8a91e6963762bb7f1daef31d5474a7000e","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader, Vite plugin and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","minimatch":"^9.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_2.1.2_1789061276248_0.38525202988080753","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"htl-to-js","version":"2.1.3","keywords":["aem","htl","sightly","webpack-loader","vite-plugin","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@2.1.3","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"f6df4379a322813d8ac3aaeacabf683e0b191d5c","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-2.1.3.tgz","fileCount":30,"integrity":"sha512-2/n6BkKtSLCFUAHW1Ah2w4sn8JZG0ZvSwchBqkWenOzzgNHCLF7XUxYCU4OZGvMBTU/CxihUGee6ALpgNe2gtg==","signatures":[{"sig":"MEUCIQD6tnRlcB5t1zaEKyZKdh0EIIGveZbYBu4aFno1OTq7cgIgR4x1ji/FwZAnmFsQ/UnUqbzSps2r4tpM926WFFTWnU4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":285567},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./vite":"./dist/vite.js","./loader":"./dist/loader.js"},"gitHead":"c81c1c4106037573fb7ac50eb02ece5745294689","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader, Vite plugin and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","minimatch":"^9.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_2.1.3_1789062212854_0.3086081966779741","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"htl-to-js","version":"2.1.4","keywords":["aem","htl","sightly","webpack-loader","vite-plugin","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@2.1.4","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"e0e0ebbd6402281b67b914522c264c7d24f60486","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-2.1.4.tgz","fileCount":30,"integrity":"sha512-9nVnKjoOMo8Cup8UoBSvLrIV+a4shxjWTsVvemfz7gZAVSXIGs+1d1t7P9LqQWo4kH+WAcLBWrGPu9PoeGWrbA==","signatures":[{"sig":"MEUCIQCevAKJz12izLrqHChshydtRAUs0RCIIhkH4wev/T8qvgIgaYixzNI61G89VjlPvk5hpg8iHXYkgIk+FEvSsNbTICg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":286493},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./vite":"./dist/vite.js","./loader":"./dist/loader.js"},"gitHead":"fb511086638da93f346d481ba34120a68ed6fe87","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader, Vite plugin and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","minimatch":"^9.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_2.1.4_1789067502672_0.0912466224109445","host":"s3://npm-registry-packages-npm-production"}},"2.1.5":{"name":"htl-to-js","version":"2.1.5","keywords":["aem","htl","sightly","webpack-loader","vite-plugin","storybook"],"author":{"name":"ramirezcgn"},"license":"MIT","_id":"htl-to-js@2.1.5","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"bin":{"htl-gen":"dist/cli.js"},"dist":{"shasum":"6b62e94c7ad649b7966b2065409891efdeca927a","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-2.1.5.tgz","fileCount":30,"integrity":"sha512-hsqVvWvNHIWIYs4J0D82xrX1juqluQszsDB02nM8hf8CmIx7W3lwpRb7VAM2/uUh92/636YapmaQXMWgYsZURw==","signatures":[{"sig":"MEYCIQCUQHXJrZaDb+0tzuBH8+28yGojAKjIsDIR/01rBOsyMwIhAIIeHNHcvHXLVRgOI5pwP5WaSAst7LhCpC3NtF+qLMdx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":289226},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/index.js","./vite":"./dist/vite.js","./loader":"./dist/loader.js"},"gitHead":"05fa50ba3e997f934d4514e79e4a65b03334eb61","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader, Vite plugin and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","minimatch":"^9.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/htl-to-js_2.1.5_1789598805270_0.5215541264662638","host":"s3://npm-registry-packages-npm-production"}},"2.1.6":{"_id":"htl-to-js@2.1.6","bin":{"htl-gen":"dist/cli.js"},"bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"dist":{"shasum":"69db70ab7aa69c6c2cef1ace2e7664694fc01e36","tarball":"https://registry.npmjs.org/htl-to-js/-/htl-to-js-2.1.6.tgz","fileCount":30,"integrity":"sha512-5w8lxm2zicpZwSJk9xtPjWqj0IPASKy3ZChOBdEHvYGcV91N/ZbKAWD4mYe6oE35R7GGUGw0zMwUh+MhrOPEqw==","signatures":[{"sig":"MEQCIGk1cl56vtgK6RDT+0yDKCVK+b+RTfF0OlN8pU6nTHdLAiBIz47L2xbTALHPlpduIYYQqh+zZFA6gihwwvAn4Wny0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGD4yOtpbHI3ICnpJ0pjuL3NjPd9mQ/YTrLeiPVUVc5FAiBRoXJwFRX2D+EDEplJ/YN8ah2JkrIJ3CQ9v04DV/Bxdg=="}],"unpackedSize":290844},"main":"./dist/index.js","name":"htl-to-js","types":"./dist/index.d.ts","author":{"name":"ramirezcgn"},"engines":{"node":">=18"},"exports":{".":"./dist/index.js","./vite":"./dist/vite.js","./loader":"./dist/loader.js"},"gitHead":"6f44085dae5bc5d8cc03712ec466b09786be0454","license":"MIT","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm test && npm run build"},"version":"2.1.6","_npmUser":{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"},"homepage":"https://github.com/ramirezcgn/htl-to-js#readme","keywords":["aem","htl","sightly","webpack-loader","vite-plugin","storybook"],"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"_npmVersion":"11.6.0","description":"Webpack loader, Vite plugin and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","directories":{},"maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"_nodeVersion":"22.16.0","dependencies":{"glob":"^10.0.0","minimatch":"^9.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/htl-to-js_2.1.6_1789684277948_0.0905509408527072"}}},"time":{"created":"2026-03-25T00:30:09.049Z","modified":"2026-09-17T22:31:18.233Z","0.1.0":"2026-03-25T00:30:09.212Z","0.1.1":"2026-03-25T01:05:19.087Z","0.1.2":"2026-03-25T13:44:56.620Z","0.1.3":"2026-04-01T19:40:04.360Z","0.2.0":"2026-04-02T17:15:54.172Z","0.2.1":"2026-04-02T19:13:10.904Z","0.2.2":"2026-04-02T20:47:28.070Z","0.2.3":"2026-04-02T21:10:44.199Z","0.2.4":"2026-04-02T21:45:40.809Z","0.2.5":"2026-05-05T20:44:43.176Z","0.3.0":"2026-05-05T21:35:11.374Z","0.5.0":"2026-05-05T21:58:32.968Z","0.6.0":"2026-05-05T22:35:00.669Z","0.7.0":"2026-05-05T22:39:00.411Z","0.8.0":"2026-05-06T16:13:10.684Z","0.9.0":"2026-05-20T19:09:25.134Z","1.0.0":"2026-05-20T20:20:47.655Z","1.0.1":"2026-05-20T20:25:28.107Z","1.0.2":"2026-05-26T18:24:27.046Z","1.1.0":"2026-06-01T23:09:51.641Z","1.1.1":"2026-06-01T23:31:33.190Z","1.1.2":"2026-06-01T23:48:18.076Z","1.2.0":"2026-06-02T02:38:22.974Z","1.2.1":"2026-06-02T02:55:25.918Z","1.2.2":"2026-06-02T16:46:11.623Z","1.3.0":"2026-06-02T17:35:08.171Z","1.3.1":"2026-06-02T18:33:10.687Z","1.3.2":"2026-06-02T21:03:16.342Z","1.3.3":"2026-06-03T12:09:11.177Z","1.3.4":"2026-06-03T12:31:42.748Z","1.3.5":"2026-06-03T12:54:09.367Z","1.3.6":"2026-06-03T13:13:12.941Z","1.4.0":"2026-06-03T15:12:01.431Z","1.4.1":"2026-06-03T15:36:41.168Z","1.4.2":"2026-06-03T18:53:47.999Z","2.0.0-beta.1":"2026-06-05T15:02:37.844Z","2.0.0-beta.2":"2026-06-05T16:49:31.294Z","2.0.0-beta.3":"2026-06-05T17:08:54.665Z","2.0.0-beta.4":"2026-06-09T16:37:43.407Z","2.0.0":"2026-06-09T17:52:59.309Z","2.0.1":"2026-06-12T19:54:18.791Z","2.0.2":"2026-07-06T19:51:37.511Z","2.0.3":"2026-07-13T23:35:56.574Z","2.0.4":"2026-07-14T00:52:01.545Z","2.0.5":"2026-07-15T16:35:26.769Z","2.1.0":"2026-09-10T12:15:16.673Z","2.1.1":"2026-09-10T13:08:52.377Z","2.1.2":"2026-09-10T17:27:56.381Z","2.1.3":"2026-09-10T17:43:33.064Z","2.1.4":"2026-09-10T19:11:42.814Z","2.1.5":"2026-09-16T22:46:45.404Z","2.1.6":"2026-09-17T22:31:18.068Z"},"bugs":{"url":"https://github.com/ramirezcgn/htl-to-js/issues"},"author":{"name":"ramirezcgn"},"license":"MIT","homepage":"https://github.com/ramirezcgn/htl-to-js#readme","keywords":["aem","htl","sightly","webpack-loader","vite-plugin","storybook"],"repository":{"url":"git+https://github.com/ramirezcgn/htl-to-js.git","type":"git"},"description":"Webpack loader, Vite plugin and CLI that transpiles AEM HTL (Sightly) templates into JavaScript template string functions.","maintainers":[{"name":"ramirezcgn","email":"ramirezcgn@gmail.com"}],"readme":"# htl-to-js\n\n[![npm version](https://img.shields.io/npm/v/htl-to-js.svg)](https://www.npmjs.com/package/htl-to-js)\n[![license](https://img.shields.io/npm/l/htl-to-js.svg)](./LICENSE)\n\nWebpack loader, Vite plugin, and CLI that transpiles AEM HTL (Sightly) templates into JavaScript functions returning template literals.\n\nEach generated `createXxx` function returns an object that behaves as a string (via `toString()` / template literal coercion) and also carries component metadata:\n\n```js\n{\n  toString: () => html,       // the rendered HTML string\n  _class: 'image',            // CSS class derived from the component path\n  _resourceType: 'mysite/components/image', // full resource type from jcr_root\n  _slots: ['header', 'footer'], // static slot keys (same as __slots__)\n  _hasOwnDecoration: false,   // true when the component was transpiled with wrapperClass\n  _decorationTagName: undefined,\n  _attrs: {},\n}\n```\n\nThis metadata is used internally by `_wrapResource` to auto-derive decoration classes when components are nested — it propagates through wrapper chains transparently.\n\n```js\nimport { createAccordion } from '../../jcr_root/apps/mysite/components/accordion/accordion.html';\n```\n\n---\n\n## Installation\n\n```bash\nnpm install --save-dev htl-to-js\n```\n\nRequires Node.js >= 18.\n\n---\n\n## Storybook setup (webpack5)\n\nAdd the loader rule in `.storybook/main.js`. Since Storybook config files are often ESM, use `createRequire` to resolve the loader path:\n\n```js\nimport { createRequire } from 'module';\nconst require = createRequire(import.meta.url);\n\nconst config = {\n  // ...\n  async webpackFinal(config) {\n    config.module.rules.push({\n      test: /\\.html$/,\n      include: /jcr_root[\\\\/]apps/, // only AEM component HTML\n      use: require.resolve('htl-to-js/loader'),\n    });\n    return config;\n  },\n};\n\nexport default config;\n```\n\nIf your Storybook config uses CommonJS:\n\n```js\nmodule.exports = {\n  async webpackFinal(config) {\n    config.module.rules.push({\n      test: /\\.html$/,\n      include: /jcr_root[\\\\/]apps/,\n      use: require.resolve('htl-to-js/loader'),\n    });\n    return config;\n  },\n};\n```\n\n### Storybook preview setup\n\nSince `createXxx` functions return an enriched object (not a plain string), add a global decorator in `.storybook/preview.js` to coerce the result before Storybook validates it:\n\n```js\nexport const decorators = [\n  (storyFn, context) => {\n    const result = storyFn(context);\n    return result != null && typeof result === 'object' && '_class' in result\n      ? result.toString()\n      : result;\n  },\n];\n```\n\nWithout this, Storybook throws _\"Did you forget to return the HTML snippet from the story?\"_ even when the render function returns a valid enriched component result. The decorator lets stories stay as `render: (args) => createComponent(args)` without any extra wrapping.\n\n---\n\n## Vite setup\n\nAdd the plugin in `vite.config.js` (or `vite.config.ts`):\n\n```js\nimport { defineConfig } from 'vite';\nimport { htlPlugin } from 'htl-to-js/vite';\n\nexport default defineConfig({\n  plugins: [\n    htlPlugin({\n      include: /jcr_root[\\\\/]apps/, // only AEM component HTML\n    }),\n  ],\n});\n```\n\n`include` / `exclude` accept a `RegExp`, a string (matched via substring), or an array of either — every other option (`i18nPath`, `wrapperClass`, `resourceWrappers`, `modelTransforms`, `fileOverrides`, `omitAttrs`, `usePathCaching`, …) is the same as the [webpack loader's options](#options).\n\nThe Vite plugin always emits **ESM** output — `format` is forced internally and cannot be overridden, since Rollup's `transform` hook expects ES module code back. `data-sly-use` references to local `.js`/`.json` files are emitted as `import` declarations rather than `require()` calls (see [`format`](#format)).\n\n### Storybook setup (Vite builder)\n\nIf your Storybook uses `@storybook/builder-vite` (e.g. `@storybook/html-vite`, `@storybook/react-vite`), register the plugin in `viteFinal` inside `.storybook/main.js`:\n\n```js\nimport { htlPlugin } from 'htl-to-js/vite';\n\nconst config = {\n  // ...\n  async viteFinal(config) {\n    config.plugins ??= [];\n    config.plugins.push(\n      htlPlugin({\n        include: AEM_COMPONENTS, // absolute path to jcr_root/apps/.../components\n        i18nPath: I18N_PATH,\n        wrapperClass: true,\n        resourceWrappers: {\n          'anaplan/components/responsivegrid': {\n            wrapper: 'aem-Grid aem-Grid--12 aem-Grid--default--12',\n            childClass: 'aem-GridColumn aem-GridColumn--default--12',\n          },\n        },\n        modelTransforms,\n      })\n    );\n    return config;\n  },\n};\n\nexport default config;\n```\n\nThe [Storybook preview setup](#storybook-preview-setup) decorator above (coercing the enriched `createXxx` result via `toString()`) is still required — it's independent of which builder compiles the HTL files.\n\nUnlike the webpack loader, i18n XML files (`i18nPath` / `i18nFallbackPaths`) aren't part of Vite's module graph, so editing them while `vite dev`/`storybook dev` is running triggers a full page reload instead of a scoped HMR update — the generated component code itself still gets fast, targeted updates.\n\n---\n\n## HTL directive support\n\n| Directive                                       | Behavior                                                                                                              |\n| ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |\n| `data-sly-use.name=\"...\"`                       | Becomes a function parameter                                                                                          |\n| `data-sly-use.name=\"tpl-${expr}.html\"`          | Interpolated path — `require(\\`./tpl-${expr}.html\\`)` so Webpack can statically analyze and bundle all matching files |\n| `data-sly-test=\"${cond}\"`                       | Conditional rendering via ternary                                                                                     |\n| `data-sly-test` (no value)                      | Always hides the element (equivalent to `data-sly-test=\"${false}\"`)                                                   |\n| `data-sly-test.varName=\"${cond}\"`               | Conditional + assigns result to variable                                                                              |\n| `data-sly-repeat.item=\"${list}\"`                | Loop: repeats the **whole element** per item                                                                          |\n| `data-sly-list.item=\"${list}\"`                  | Loop: outer tag rendered once, **inner content** repeated                                                             |\n| `data-sly-element=\"${expr}\"`                    | Dynamic tag name (falls back to original tag)                                                                         |\n| `data-sly-unwrap` / `data-sly-unwrap=\"${cond}\"` | Strips wrapper tag (always or conditionally)                                                                          |\n| `data-sly-set.varName=\"${expr}\"`                | Local variable declaration                                                                                            |\n| `data-sly-text=\"${expr}\"`                       | Replaces element inner content with expression                                                                        |\n| `data-sly-attribute.name=\"${expr}\"`             | Dynamic named attribute (null omits, true → valueless)                                                                |\n| `data-sly-attribute=\"${obj}\"`                   | Object spread as multiple attributes                                                                                  |\n| `data-sly-template.name=\"${ @ params }\"`        | Named export function                                                                                                 |\n| `data-sly-call=\"${tmpl @ p=v}\"`                 | Invokes a template function                                                                                           |\n| `data-sly-resource=\"${expr}\"`                   | Slot via `_includes` map                                                                                              |\n| `data-sly-include=\"./file.html\"`                | Auto-requires the file; `_includes` override takes priority                                                           |\n| `<sly>`                                         | Transparent wrapper — only children are rendered                                                                      |\n\nBoth `data-sly-repeat` and `data-sly-list` support bare forms (without `.varName`) that default to `item` as the iteration variable. They also provide a `${itemList}` status object with `index`, `count`, `first`, `last`, `middle`, `odd`, and `even` properties.\n\n### Expression conversions\n\n| HTL                                        | Generated JS                                                                                                  |\n| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------- |\n| `${expr @ context='html'}`                 | `${expr}` (context options stripped)                                                                          |\n| `${expr @ context='urlencode'}`            | `${encodeURIComponent(expr ?? '')}` (URL-encodes the value)                                                   |\n| `${expr @ context='uri'}` on any attribute | `${_htlUri(expr ?? '')}` (URI-encodes the value)                                                              |\n| `${expr @ context='number'}`               | `${_htlNum(expr) ?? ''}` — converts to a numeric string; `null`/booleans/arrays/`NaN` produce an empty string |\n| `${'string' @ i18n}`                       | `${_i18n?.['string'] ?? 'string'}` (dictionary lookup)                                                        |\n| `${list.size}`                             | `${list.length}`                                                                                              |\n| `${obj.jcr:title}`                         | `${obj?.['jcr:title']}`                                                                                       |\n| `${tags @ join=', '}`                      | `${(tags).join(', ')}`                                                                                        |\n| `${'pattern {0}/{1}' @ format=[a, b]}`     | `${a + '/' + b}`                                                                                              |\n| `${key in obj}`                            | `${_htlIn(key, obj)}` — string containment, array `.includes()`, or object key check                          |\n\n### Auto-URI context\n\nWhen a dynamic expression appears in an attribute whose name is a URI attribute (`href`, `src`, `action`, `formaction`, `cite`, `data`, `manifest`, `poster`), the `uri` display context is applied automatically even without an explicit `@ context='uri'`:\n\n```html\n<!-- Both of these produce the same generated code -->\n<a href=\"${model.url}\">link</a>\n<a href=\"${model.url @ context='uri'}\">link</a>\n```\n\nGenerated:\n\n```js\nhref = \"${_htlDynAttr('href', _htlUri(model?.url ?? ''))}\";\n```\n\n### HTML escaping\n\nAttribute values are automatically escaped via the `_htlAttr` helper:\n\n- `&` → `&amp;`, `<` → `&lt;`, `>` → `&gt;`, `\"` → `&quot;`\n- Array and object values are serialized with `JSON.stringify` (quotes escaped to `&quot;`): `['a','b']` → `[&quot;a&quot;,&quot;b&quot;]`\n- `null`/`undefined` produce an empty string\n\nDynamic named attributes (`data-sly-attribute.name`) use `_htlDynAttr`:\n\n- `null`/`false` → attribute omitted entirely\n- `true` → valueless boolean attribute (e.g. `disabled`)\n- Other values → `name=\"escaped-value\"`\n\n### AEM implicit objects\n\nThe following AEM implicit objects are automatically detected and added as optional parameters with safe defaults:\n\n| Object                    | Default                                                                                      |\n| ------------------------- | -------------------------------------------------------------------------------------------- |\n| `wcmmode`                 | `{ edit: false, disabled: true, preview: false }`                                            |\n| `properties`              | `{}`                                                                                         |\n| `pageProperties`          | `{}`                                                                                         |\n| `inheritedPageProperties` | `{}`                                                                                         |\n| `component`               | `{}`                                                                                         |\n| `currentDesign`           | `{}`                                                                                         |\n| `currentStyle`            | `{}`                                                                                         |\n| `currentPage`             | `{}`                                                                                         |\n| `resource`                | `{}`                                                                                         |\n| `model`                   | `{}`                                                                                         |\n| `_includes`               | `{}`                                                                                         |\n| `_i18n`                   | `{}`                                                                                         |\n| `_wrapperClass`           | `''`                                                                                         |\n| `_resourceWrappers`       | `{}`                                                                                         |\n| `_resourceDecorations`    | `{}`                                                                                         |\n| `request`                 | `{ requestPathInfo: { selectorString: '', suffix: '', resourcePath: '' }, contextPath: '' }` |\n\nVariables declared via `data-sly-use.X` are always included as parameters. Any other free variables referenced in directive expressions are also detected and added as parameters with `{}` defaults.\n\n### Automatic attribute stripping\n\nThe following AEM author-mode and analytics attributes are stripped by default:\n\n- `data-cmp-data-layer` — analytics data layer JSON\n- `data-placeholder-text` — author mode placeholder\n- `data-panelcontainer` — author mode panel container\n- `data-component-name` — AEM component tracking\n- `data-region-id` — analytics region tracking\n- `data-emptytext` — author mode empty text\n\n> **Note:** `data-cmp-hook-*` attributes are **not** stripped by default because the AEM Core Components site JS uses them at runtime.\n\n### Other features\n\n- **Void elements** (`<br>`, `<img>`, `<input>`, etc.) are rendered as self-closing tags\n- **HTL block comments** (`<!--/* ... */-->`) are stripped from output\n- **Regular HTML comments** (`<!-- ... -->`) are preserved\n- **Self-closing `<sly/>`** is expanded automatically\n- **camelCase variable names** are preserved through parse5's lowercasing\n- **Reserved words** (`class`, `for`) are escaped to `_class`, `_for` in generated JS\n\n---\n\n## Generated output\n\nGiven `accordion.html`:\n\n```html\n<div\n  data-sly-use.accordion=\"com.example.Accordion\"\n  class=\"cmp-accordion ${properties.theme}\"\n  id=\"${accordion.id}\"\n>\n  <div\n    data-sly-repeat.item=\"${accordion.items}\"\n    data-sly-test=\"${accordion.items.size > 0}\"\n  >\n    <span>${item.title}</span>\n  </div>\n</div>\n```\n\nThe loader generates:\n\n```js\n// AUTO-GENERATED from accordion.html — DO NOT EDIT\n\nconst _htlAttr = (v) => v == null ? '' : (Array.isArray(v) || typeof v === 'object' ? JSON.stringify(v).replace(/\"/g, '&quot;') : String(v).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\"/g, '&quot;'));\nconst _htlDynAttr = (name, val) => { ... };\nconst _htlSpreadAttrs = (obj) => { ... };\n\nconst createAccordion = ({ accordion = {}, properties = {} } = {}) => {\n  const _html = /* html */`<div class=\"cmp-accordion ${_htlAttr(properties?.theme)}\" id=\"${_htlAttr(accordion?.id)}\">...</div>`;\n  return { toString: () => _html, _class: 'accordion', _resourceType: null, _slots: undefined, _hasOwnDecoration: false, _decorationTagName: undefined, _attrs: {} };\n};\nmodule.exports = { createAccordion };\n```\n\n### Named templates (`data-sly-template`)\n\nFiles that define named templates generate one export per template:\n\n```html\n<!-- template/default.html -->\n<template data-sly-template.default=\"${ @ model }\">\n  <a class=\"template\" href=\"${model.url}\">\n    <h3>${model.title}</h3>\n  </a>\n</template>\n```\n\nGenerates:\n\n```js\nconst createDefault = ({ model = {} } = {}) => {\n  const _html = /* html */ `<a class=\"template\" href=\"${_htlAttr(model?.url)}\">\n    <h3>${model?.title ?? ''}</h3>\n  </a>`;\n  return {\n    toString: () => _html,\n    _class: 'default',\n    _resourceType: null,\n    _slots: undefined,\n    _hasOwnDecoration: false,\n    _decorationTagName: undefined,\n    _attrs: {},\n  };\n};\nmodule.exports = { createDefault };\n```\n\n---\n\n## `data-sly-resource` (slots)\n\n`data-sly-resource` loads a child JCR node at runtime in AEM — there is no equivalent in Storybook. The loader converts it to an `_includes` slot:\n\n```html\n<!-- HTL -->\n<sly data-sly-resource=\"${'header'}\"></sly>\n\n<!-- With @path fallback -->\n<sly data-sly-resource=\"${@ path=model.path}\"></sly>\n\n<!-- appendPath / prependPath -->\n<sly data-sly-resource=\"${'my/path' @ appendPath='child'}\"></sly>\n<sly data-sly-resource=\"${'my/path' @ prependPath='root'}\"></sly>\n```\n\n```js\n// Generated\n${_wrapResource('header', _includes, undefined, Object.assign({}, _staticResourceWrappers ?? {}, _resourceWrappers), undefined, undefined, undefined, undefined, Object.assign({}, _staticResourceDecorations ?? {}, _resourceDecorations))}\n${_wrapResource(model?.path, _includes, undefined, ...)}\n// appendPath/prependPath resolved at compile time when static\n${_wrapResource('my/path/child', _includes, undefined, ...)}\n${_wrapResource('root/my/path', _includes, undefined, ...)}\n```\n\nPass content via `_includes` in your story args. Each slot value can be a string, function, array, or enriched component result — they all resolve to HTML:\n\n| slot value                      | result                                                     |\n| ------------------------------- | ---------------------------------------------------------- |\n| `'string'`                      | rendered as-is                                             |\n| `createXxx()`                   | rendered via `toString()`                                  |\n| `() => 'string'`                | function called, result rendered                           |\n| `() => createXxx()`             | function called, enriched object rendered via `toString()` |\n| `['a', 'b']`                    | items joined: `'ab'`                                       |\n| `[createText(), createImage()]` | each item rendered via `toString()`, joined                |\n| `() => ['a', 'b']`              | function called, array joined                              |\n\n```js\nexport const Default = {\n  args: {\n    _includes: {\n      header: '<nav>Navigation</nav>', // plain string\n      sidebar: () => createSidebar({ title: 'Menu' }), // function\n      tags: ['<li>One</li>', '<li>Two</li>'], // array — joined automatically\n      items: () => [createCard({ id: 1 }), createCard({ id: 2 })], // function returning array\n    },\n  },\n};\n```\n\n#### Function parameters in `_includes` slots\n\nWhen an `_includes` slot value is a function, it is called with the `data-sly-resource @options` from the HTL template — typically `{}` unless the HTL explicitly passes options:\n\n```html\n<!-- HTL: no options → slot function called with {} -->\n<sly data-sly-resource=\"${'sidebar'}\"></sly>\n\n<!-- HTL: options → slot function called with { wcmmode: 'edit' } -->\n<sly data-sly-resource=\"${'sidebar' @ wcmmode='edit'}\"></sly>\n```\n\n```js\n// The slot function receives only the @options — NOT the parent component's model\nargs: {\n  _includes: {\n    sidebar: (slotParams) => createSidebar({ title: 'Static title' }),\n    //        ^^^^^^^^^^  usually {} — does not include parent model\n  }\n}\n```\n\nIf you need parent component data inside a slot function, use a closure in the story or use the [`content` shorthand](#content-shorthand) instead, which receives all parent props.\n\n```js\n// Closure workaround for _includes when you need parent data\nconst parentModel = { title: 'My Title' };\ncreateContainer({\n  model: parentModel,\n  _includes: {\n    header: () => createHeader({ title: parentModel.title }), // close over parent data\n  },\n});\n```\n\n#### Indexed slots (`par_N`)\n\nWhen a template has indexed slots (`par_0`, `par_1`, …), supply a single array under the base key. Each index resolves to the corresponding array element — 2D arrays are supported so inner items concatenate within each slot:\n\n```js\nargs: {\n  _includes: {\n    // Instead of:\n    //   par_0: '<div>First</div>',\n    //   par_1: '<div>Second</div>',\n    // You can write:\n    par: ['<div>First</div>', '<div>Second</div>'],\n    // or with a factory:\n    par: () => [createText(), createImage()],\n    // 2D: inner array items concatenate within each slot\n    par: () => [\n      [createText(), createImage()],  // → par_0\n      [createCard()],                  // → par_1\n    ],\n  }\n}\n```\n\nAn exact match for `par_0` always takes priority over the array fallback.\n\n### `__slots__`\n\nWhen a template uses static `data-sly-resource` keys (string literals), the generated module exports a `__slots__` array listing those keys. It is also attached directly to every exported `create*` function, so you can inspect it at the call site without a separate import:\n\n```js\nimport { createHeader, __slots__ } from '../header/header.template.js';\n// __slots__ === ['hero', 'footer']\n\n// Also available on the function itself:\ncreateHeader.__slots__; // ['hero', 'footer']\n```\n\nDynamic keys (expressions like `${model.path}`) are not included — only compile-time string literals appear in `__slots__`.\n\n### Decoration tags\n\nIn AEM, components rendered via `data-sly-resource` are usually wrapped in a decoration `<div>` with a CSS class derived from the component's resource type. HTL-to-js reproduces this with the `decorationTagName` and `cssClassName` options on `data-sly-resource`, plus automatic class derivation.\n\n```html\n<!-- HTL: explicit decoration tag and CSS class -->\n<sly\n  data-sly-resource=\"${'item' @ decorationTagName='div', cssClassName='my-class'}\"\n></sly>\n\n<!-- HTL: decoration tag with automatic class from resourceType -->\n<sly\n  data-sly-resource=\"${'item' @ decorationTagName='div', resourceType='mysite/components/image'}\"\n></sly>\n```\n\nWhen `decorationTagName` is set and the slot function's return value carries a `_class` property (which all transpiled `createXxx` functions provide), the decoration class is derived automatically in this order:\n\n1. **`resourceType` last segment** — e.g. `resourceType='mysite/components/image'` → class `image`\n2. **`_class` on the return value** — when the slot is a wrapper chain like `() => createContainer({...})`, the `_class: 'container'` from `createContainer`'s return value propagates up automatically\n3. **`fn.name`** — if the slot function is named `createImage`, the class `image` is derived from the function name\n4. **`cssClassName`** — appended after the auto-derived class\n\nWhen `decorationTagName` is **not set**, no decoration wrapper is added — the slot's inner HTML is rendered directly, even if the component was transpiled with `wrapperClass: true`.\n\n```js\n// Story: slot function returns enriched object → class derived automatically\nexport const Default = {\n  args: {\n    _includes: {\n      item: () => createImage({ src: '/img.jpg' }), // _class: 'image' propagates\n    },\n  },\n};\n// Renders: <div class=\"image\"><img src=\"/img.jpg\"></div>\n```\n\n#### `_resourceDecorations`\n\nOverride or configure decoration per slot key or `resourceType` at runtime:\n\n```js\nargs: {\n  _resourceDecorations: {\n    item: {\n      decorationTagName: 'div',\n      cssClassName: 'extra-class',\n      decoration: true,\n    },\n    // or keyed by resourceType:\n    'mysite/components/container': {\n      decorationTagName: 'section',\n    },\n  }\n}\n```\n\nSet `decoration: false` to suppress the decoration tag even when `decorationTagName` is set in HTL.\n\nUse `generateDts` (or the `--dts` CLI flag) to emit a declaration file alongside the generated JS. When `__slots__` is present, `_includes` is typed with the known slot keys:\n\n```ts\n// header.template.d.ts\nexport declare function createHeader(args?: {\n  model?: any;\n  _includes?: {\n    hero?: string | (() => string);\n    footer?: string | (() => string);\n    [key: string]: string | (() => string) | undefined;\n  };\n}): {\n  toString(): string;\n  _class: string;\n  _resourceType: string | null;\n  _slots: string[] | undefined;\n  _hasOwnDecoration: boolean;\n  _decorationTagName: undefined;\n  _attrs: {};\n};\nexport declare const __slots__: ['hero', 'footer'];\n```\n\nWhen no static slots are present, `_includes` falls back to `Record<string, string | (() => string) | undefined>`.\n\n---\n\n## `data-sly-call`\n\nCalls a named template passing parameters. The binding declared via `data-sly-use` becomes a function parameter — pass the imported template module as its value.\n\n```html\n<!-- HTL -->\n<sly\n  data-sly-use.template=\"default.html\"\n  data-sly-call=\"${template.default @ model=item}\"\n></sly>\n```\n\nGenerated:\n\n```js\n${_fileSlot(_includes, './default.html', { model: item, _includes }, () => require('./default.html').createDefault?.({ ..._rest, model: item, _includes })) ?? ''}\n```\n\nLike `data-sly-include`, the generated code **checks `_includes` first** before calling `require()`. This means you can override any file-based `data-sly-use` + `data-sly-call` from a story by passing its path as a slot:\n\n```js\n// Story: override the file entirely via _includes\nfn({ _includes: { './default.html': '<span>Overridden</span>' } });\n```\n\nWhen the host element is not `<sly>`, the call output is wrapped in that element:\n\n```html\n<div class=\"wrapper\" data-sly-call=\"${myFn @ text='Hi'}\"></div>\n```\n\n```js\n<div class=\"wrapper\">${myFn?.({ text: 'Hi', _includes }) ?? ''}</div>\n```\n\nIn the story, pass the imported template function:\n\n```js\nimport { createDefault } from '../default.html';\n\nexport const Default = {\n  args: {\n    template: { default: createDefault },\n    item: { title: 'Card Title', url: '/path' },\n  },\n};\n```\n\n---\n\n## `data-sly-include`\n\nIncludes another HTL file at runtime. The transpiler generates a `_fileSlot` call that:\n\n1. Checks `_includes` first — if the caller passes a slot for that path, it is used (override wins).\n2. Falls back to an inline `require()` of the file — webpack sees this at build time and bundles all matching files automatically.\n\nThis applies to **all** path forms: literal, composed (`appendPath`/`prependPath`), and dynamic expressions.\n\nDynamic paths are wrapped in a template literal with a static `./` prefix\n(``require(`./${...}`)``) so webpack can statically analyze the request and\n**scope the dynamic-require context to the component directory** — it never\nclimbs above `jcr_root`.\n\n```html\n<!-- Literal path -->\n<sly data-sly-include=\"./header.html\"></sly>\n\n<!-- Dynamic path -->\n<sly data-sly-include=\"${model.templatePath}\"></sly>\n\n<!-- Arguments are forwarded to the included file's function -->\n<sly data-sly-include=\"./header.html @ wcmmode='edit'\"></sly>\n\n<!-- appendPath / prependPath -->\n<sly data-sly-include=\"${'partials' @ appendPath='template.html'}\"></sly>\n<sly data-sly-include=\"${'template.html' @ prependPath='partials'}\"></sly>\n```\n\nGenerated:\n\n```js\n// Literal path\n${_fileSlot(_includes, './header.html', {}, () => { try { const _m = require('./header.html'); const _fn = Object.values(_m).find(f => typeof f === 'function'); return _fn ? _arrJoin(_fn({})) : ''; } catch { return ''; } })}\n\n// Dynamic path — static './' prefix lets webpack scope the context to the component dir\n${_fileSlot(_includes, model?.templatePath, {}, () => { try { const _m = require(`./${String(model?.templatePath ?? '').replace(/^\\.?\\/+/, '')}`); ... } catch (_e) { console.warn(...); return ''; } })}\n\n// With args\n${_fileSlot(_includes, './header.html', { wcmmode: 'edit' }, () => { ... require('./header.html') ... })}\n\n// appendPath/prependPath — resolved at compile time when both sides are string literals\n${_fileSlot(_includes, 'partials/template.html', {}, () => { ... require('partials/template.html') ... })}\n// Dynamic operands fall back to a runtime helper\n${_fileSlot(_includes, _htlJoinPaths('partials', undefined, model?.tpl), {}, () => { ... })}\n```\n\nIn the story, pass either a function (component factory) or a plain string. When a slot is present in `_includes`, the `require()` fallback is never called:\n\n```js\nimport { createHeader } from '../header.html';\n\nexport const Default = {\n  args: {\n    _includes: {\n      './header.html': createHeader, // overrides auto-require\n      './footer.html': () => '<footer>Footer</footer>',\n      './banner.html': '<div class=\"banner\">Static</div>', // plain string also works\n    },\n  },\n};\n```\n\nWhen no `_includes` slot is provided for a path, the file is required and its first exported function is called with the params from the HTL `@` options.\n\n---\n\n## i18n (internationalization)\n\nHTL expressions with `@ i18n` are converted into runtime dictionary lookups. Pass a JSON dictionary via the `_i18n` parameter to translate strings:\n\n```html\n<!-- HTL -->\n<span>${'Read more' @ i18n}</span>\n<a title=\"${'Go home' @ i18n}\" href=\"/\">...</a>\n```\n\nGenerated:\n\n```js\n<span>${_i18n?.['Read more'] ?? 'Read more'}</span>\n<a title=\"${_htlAttr(_i18n?.['Go home'] ?? 'Go home')}\" href=\"/\">...</a>\n```\n\nIn the story, pass the dictionary as `_i18n`:\n\n```js\nimport dict from './i18n/es.json';\n\nexport const Spanish = {\n  args: {\n    _i18n: dict,\n  },\n};\n```\n\nExample `i18n/es.json`:\n\n```json\n{\n  \"Read more\": \"Leer más\",\n  \"Go home\": \"Ir al inicio\",\n  \"Title\": \"Título\"\n}\n```\n\nWhen no dictionary is passed (or when a key is missing), the original string is used as fallback.\n\n### Pluralization\n\nAdd `count=<expr>` alongside `@ i18n` to select the plural or singular form at runtime:\n\n```html\n<!-- HTL -->\n<span>${'item' @ i18n, count=n}</span>\n```\n\nGenerated:\n\n```js\n<span>${_htlI18nPlural('item', n, _i18n)}</span>\n```\n\nThe dictionary entry for a pluralizable key is an array `[singular, plural]`:\n\n```json\n{\n  \"item\": [\"1 item\", \"{0} items\"]\n}\n```\n\n`_htlI18nPlural` picks index `0` when `count === 1` and index `1` otherwise, then substitutes `{0}` with the count value.\n\n### Locale fallback chains\n\nWhen targeting a specific locale (e.g. `es_MX`), you can supply a chain of dictionaries. Keys from earlier dictionaries override later ones, so the most specific locale should come first.\n\n**Programmatic API:**\n\n```ts\nconst primary = parseI18nXml(fs.readFileSync('i18n/es_MX.xml', 'utf8'));\nconst fallback = parseI18nXml(fs.readFileSync('i18n/es.xml', 'utf8'));\n\nconst js = transpile(source, {\n  filename: 'card.html',\n  i18nDict: primary,\n  i18nFallbackDicts: [fallback],\n});\n```\n\n**Webpack loader (`i18nFallbackPaths` option):**\n\n```js\nuse: {\n  loader: require.resolve('htl-to-js/loader'),\n  options: {\n    i18nPath: path.resolve(__dirname, 'i18n/es_MX.xml'),\n    i18nFallbackPaths: [\n      path.resolve(__dirname, 'i18n/es.xml'),\n      path.resolve(__dirname, 'i18n/en.xml'),\n    ],\n  },\n}\n```\n\n**Vite plugin (`i18nFallbackPaths` option):**\n\n```js\nhtlPlugin({\n  i18nPath: path.resolve(__dirname, 'i18n/es_MX.xml'),\n  i18nFallbackPaths: [\n    path.resolve(__dirname, 'i18n/es.xml'),\n    path.resolve(__dirname, 'i18n/en.xml'),\n  ],\n});\n```\n\n**CLI — multiple `--i18n` flags (first = primary, rest = fallbacks):**\n\n```bash\nnpx htl-gen --i18n i18n/es_MX.xml --i18n i18n/es.xml --i18n i18n/en.xml \"src/**/*.html\"\n```\n\n### Loading a dictionary from AEM XML\n\nAEM stores i18n dictionaries as JCR XML files (`en.xml`, `es.xml`, etc.) with the standard `sling:MessageEntry` format:\n\n```xml\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<jcr:root xmlns:jcr=\"http://www.jcp.org/jcr/1.0\"\n          xmlns:sling=\"http://sling.apache.org/jcr/sling/1.0\"\n          xmlns:mix=\"http://www.jcp.org/jcr/mix/1.0\"\n          jcr:primaryType=\"sling:Folder\"\n          jcr:language=\"es\"\n          jcr:mixinTypes=\"[mix:language]\">\n  <Read_more\n      jcr:primaryType=\"sling:MessageEntry\"\n      sling:key=\"Read more\"\n      sling:message=\"Leer más\"/>\n  <Go_home\n      jcr:primaryType=\"sling:MessageEntry\"\n      sling:key=\"Go home\"\n      sling:message=\"Ir al inicio\"/>\n</jcr:root>\n```\n\nYou can load such a file directly without converting it to JSON:\n\n**Webpack loader (`i18nPath` option):**\n\n```js\nuse: {\n  loader: require.resolve('htl-to-js/loader'),\n  options: {\n    i18nPath: path.resolve(__dirname, 'ui.i18n/es.xml'),\n  }\n}\n```\n\nThe dictionary is baked into the generated module as the default value for `_i18n`. Webpack watches the XML file for changes in watch mode. Stories can still override `_i18n` at runtime to test other languages.\n\n**Vite plugin (`i18nPath` option):**\n\n```js\nhtlPlugin({\n  i18nPath: path.resolve(__dirname, 'ui.i18n/es.xml'),\n});\n```\n\nThe dictionary is baked in the same way. In `vite dev`/`storybook dev`, editing the XML file triggers a full reload rather than a scoped HMR update (see [Vite setup](#vite-setup)).\n\n**CLI (`--i18n` flag):**\n\n```bash\nnpx htl-gen --i18n ui.i18n/es.xml \"components/**/*.html\"\n```\n\n**Programmatic API (`i18nDict` option):**\n\n```ts\nimport { transpile } from 'htl-to-js';\nimport { parseI18nXml } from 'htl-to-js/parseI18nXml';\nimport fs from 'fs';\n\nconst dict = parseI18nXml(fs.readFileSync('ui.i18n/es.xml', 'utf8'));\nconst js = transpile(source, { filename: 'accordion.html', i18nDict: dict });\n```\n\n`parseI18nXml` also handles a simple `<entry key=\"...\">value</entry>` format as a fallback.\n\n---\n\n## `data-sly-repeat` vs `data-sly-list`\n\nBoth iterate over a list, but they differ in what gets repeated:\n\n|               | `data-sly-repeat`       | `data-sly-list`     |\n| ------------- | ----------------------- | ------------------- |\n| **Repeats**   | The entire host element | Only inner content  |\n| **Outer tag** | Rendered once per item  | Rendered once total |\n\n```html\n<!-- repeat: <li> repeated per item -->\n<li data-sly-repeat.item=\"${items}\">${item}</li>\n\n<!-- list: <ul> once, <li> repeated per item -->\n<ul data-sly-list.item=\"${items}\">\n  <li>${item}</li>\n</ul>\n```\n\nBoth support:\n\n- Null items are automatically skipped\n- A `${itemList}` status object with `index`, `count`, `first`, `last`, `middle`, `odd`, `even`\n- Combined `data-sly-test.var` + `data-sly-repeat` on the same element (test var is hoisted before the loop in a scoped IIFE)\n\n### Iteration control: `begin`, `end`, `step`\n\nBoth directives accept `begin`, `end`, and `step` options to control which items are iterated:\n\n```html\n<!-- Skip the first item (begin is 0-based, inclusive) -->\n<ul data-sly-list.item=\"${items @ begin=1}\">\n  <li>${item}</li>\n</ul>\n\n<!-- Stop after the second item (end is 0-based, inclusive) -->\n<ul data-sly-list.item=\"${items @ end=1}\">\n  <li>${item}</li>\n</ul>\n\n<!-- Every other item -->\n<ul data-sly-list.item=\"${items @ step=2}\">\n  <li>${item}</li>\n</ul>\n\n<!-- Combined -->\n<ul data-sly-list.item=\"${items @ begin=1, end=5, step=2}\">\n  <li>${item}</li>\n</ul>\n```\n\nOptions can also be dynamic expressions:\n\n```html\n<ul data-sly-list.item=\"${items @ begin=model.start, end=model.end}\">\n  <li>${item}</li>\n</ul>\n```\n\n---\n\n## Options\n\nThe `transpile()` function, the webpack loader, and the [Vite plugin](#vite-setup) all accept the following options (the Vite plugin additionally takes `include`/`exclude`, and always forces `format: 'esm'` — see [`format`](#format)):\n\n### `omitAttrs`\n\nArray of regular expressions matching attribute names to exclude from output.\n\n**Override in webpack loader:**\n\n```js\nconfig.module.rules.push({\n  test: /\\.html$/,\n  include: /jcr_root[\\\\/]apps/,\n  use: {\n    loader: require.resolve('htl-to-js/loader'),\n    options: {\n      omitAttrs: [/^data-cmp-data-layer$/, /^data-my-custom-attr/],\n    },\n  },\n});\n```\n\nPass `omitAttrs: []` to disable filtering entirely.\n\n### `wrapperClass`\n\nWraps the component output in a `<div>` with a CSS class, similar to how AEM wraps component markup.\n\n| Value              | Behavior                                                                                              |\n| ------------------ | ----------------------------------------------------------------------------------------------------- |\n| `true`             | Auto-derives the class from the parent folder name (e.g. `/apps/mysite/image/image.html` → `\"image\"`) |\n| `'custom classes'` | Uses the provided string as the class attribute                                                       |\n| `false` / omitted  | No wrapper (default — backward compatible)                                                            |\n\n```js\nuse: {\n  loader: require.resolve('htl-to-js/loader'),\n  options: {\n    wrapperClass: true,\n  }\n}\n```\n\nAt runtime, the generated function also accepts `_wrapperClass` to append extra classes to the wrapper. This is useful when a parent component (like a responsive grid) needs to inject layout classes into its children:\n\n```js\nconst html = createColumn({\n  _wrapperClass: 'aem-GridColumn aem-GridColumn--default--12',\n});\n// → <div class=\"column aem-GridColumn aem-GridColumn--default--12\">...</div>\n```\n\nPass `_wrapperClass: false` to suppress the wrapper entirely for a specific call — useful in stories or tests where you need the inner HTML without the decoration `<div>`:\n\n```js\nconst html = createColumn({ _wrapperClass: false });\n// → <p>inner content</p>  (no wrapper div)\n```\n\nWhen `_wrapperClass: false` is used, the return value also has `_hasOwnDecoration: false`, so parent components using `data-sly-resource` will not attempt to strip a wrapper that is no longer present.\n\n### `resourceWrappers`\n\nObject mapping resource keys **or `resourceType` paths** to CSS classes (or configuration objects) that wrap `data-sly-resource` slot output. Mimics the extra wrapper divs that AEM's responsive grid adds around its children.\n\nHTL options on `data-sly-resource` are forwarded to the slot function, so wrappers can react to values such as `wcmmode` or `resourceType`-driven paths.\n\nKeys are matched in this order:\n\n1. **Resource name** — the value in the expression (e.g. `'par'` from `data-sly-resource=\"${'par' @ ...}\"`)\n2. **`resourceType`** — the `@resourceType` option value (e.g. `'mysite/components/responsivegrid'`)\n\n**Simple string value** — wraps the slot output in a `<div>` with that class:\n\n```js\noptions: {\n  resourceWrappers: {\n    'mysite/components/responsivegrid': 'aem-Grid aem-Grid--12 aem-Grid--default--12',\n  }\n}\n```\n\n**Object value** — wraps the slot output and injects a class into the first element of each child:\n\n```js\noptions: {\n  resourceWrappers: {\n    'mysite/components/responsivegrid': {\n      wrapper: 'aem-Grid aem-Grid--12 aem-Grid--default--12',\n      childClass: 'aem-GridColumn aem-GridColumn--default--12',\n    }\n  }\n}\n```\n\n- **`wrapper`** — CSS class for the extra `<div>` added around the slot HTML\n- **`childClass`** — CSS class injected into the first element of the child component's output (merges with existing `class` or creates one)\n\nAt runtime, the `_resourceWrappers` parameter can override or extend the static config.\n\n### `format`\n\nControls the module format of the generated code. Defaults to `'cjs'`.\n\n| Value             | Output                           |\n| ----------------- | -------------------------------- |\n| `'cjs'` (default) | `module.exports = { createFoo }` |\n| `'esm'`           | `export { createFoo }`           |\n\n```ts\nconst js = transpile(source, { filename: 'card.html', format: 'esm' });\n```\n\nIn the webpack loader pass it as a loader option:\n\n```js\nuse: {\n  loader: require.resolve('htl-to-js/loader'),\n  options: { format: 'esm' },\n}\n```\n\nIn the CLI use `--esm`:\n\n```bash\nnpx htl-gen --esm \"components/**/*.html\"\n```\n\nWhen `format: 'esm'` and `data-sly-use` references a local `.js` or `.json` file, the generated code emits `import` declarations instead of `require()` calls.\n\nThe [Vite plugin](#vite-setup) always uses `format: 'esm'` — it is set internally and any `format` passed in options is ignored, since Rollup's `transform` hook must return ES module code.\n\n---\n\n### `modelTransforms`\n\nObject mapping `data-sly-use` class-name patterns to property injections. Enables build-time property merging based on the use class. All keys are merged as computed properties into the model variable.\n\n**Example — set default model values (string expression):**\n\n```js\nconst modelTransforms = {\n  LayoutContainer: {\n    layout: \"'RESPONSIVE_GRID'\",\n  },\n};\n```\n\nAny component that uses `data-sly-use.x=\"com.example.LayoutContainer\"` will get `layout` set to `'RESPONSIVE_GRID'` as default (can be overridden at runtime). The value is a JS expression string where `model` is replaced with the actual variable name.\n\n**Function values** — for cases where the expression depends on the variable name, a function `(varName: string) => string` can be used instead:\n\n```js\nconst modelTransforms = {\n  LayoutContainer: {\n    // Equivalent to the string form above\n    layout: () => \"'RESPONSIVE_GRID'\",\n\n    // The varName argument holds the actual use-binding identifier\n    id: (varName) => `${varName}?._internalId ?? ''`,\n  },\n};\n```\n\nThe function receives the actual variable name (e.g. `container`) and must return a JS expression string. This is useful when the transform expression needs to reference the variable precisely.\n\n**Direct code callbacks** — `modelTransforms` also accepts direct callbacks such as `() => 'RESPONSIVE_GRID'`, `({ model }) => ...`, or `({ model, _includes, varName }) => ...`. In this mode the callback body is serialized into the generated module, and `model` is replaced with the actual use-binding variable:\n\n```js\nconst modelTransforms = {\n  LayoutContainer: {\n    layout: () => 'RESPONSIVE_GRID',\n  },\n  ColContainer: {\n    id: ({ model }) => model?._internalId ?? '',\n    columns: ({ model }) => {\n      const count = model?.columns || 1;\n      return Array.from({ length: count }, (_, index) => ({\n        path: 'par_' + index,\n      }));\n    },\n  },\n};\n```\n\nThe supported destructured bindings are:\n\n- `model` — the model variable from `data-sly-use` (e.g. `container`, `tabs`, …)\n- the variable name itself — same as `model` (e.g. `({ tabs })` when the use-binding is `tabs`)\n- `_includes` — the component's `_includes` parameter\n- `varName` — the variable name as a string literal (e.g. `'tabs'`)\n- any other identifier — forwarded to `_rest.<identifier>`, i.e. any other prop passed to the component\n\nThe `_rest` fallback is rarely needed; the common pattern is to just destructure the model variable by name (as in the `Tabs` example above).\n\n**Special key `_includes`** — computes `_includes` slot entries from model data. Unlike regular keys (which are merged into the model object), `_includes` is assigned to the `_includes` parameter directly. Runtime `_includes` take precedence over computed ones.\n\nBecause the callback is serialized and runs inside the generated function body, it has access to the model variable and all other component parameters:\n\n```js\nconst modelTransforms = {\n  // String expression — 'model' is replaced with the actual use-binding variable\n  ColumnModel: {\n    _includes:\n      \"Object.fromEntries((model.columns || []).map((col, i) => [col.path, () => (model._content || [])[i] || '']))\",\n  },\n\n  // Direct callback — bindings are resolved at serialization time\n  Tabs: {\n    _includes: (\n      { tabs } // 'tabs' matches the varName → the model variable\n    ) =>\n      Object.fromEntries(\n        (tabs?.children || tabs?.items || []).map((item) => [\n          item.resource ?? item.id ?? item.name,\n          () =>\n            typeof item.content === 'function'\n              ? item.content()\n              : item.content || '',\n        ])\n      ),\n  },\n\n  // Access other component params via _rest\n  ImageModel: {\n    _includes: (\n      { model, someOtherParam } // someOtherParam → _rest.someOtherParam\n    ) => ({ image: model.imageHtml }),\n  },\n};\n```\n\n### `content` shorthand\n\n`content` is a shorthand for `_includes` — instead of building the slot map manually, pass a value directly and the runtime routes it into the right slot. All the same value types that `_includes` supports are accepted:\n\n```js\n// function → called and routed to the first slot\ncreateContainer({ content: () => createText() });\n\n// array → same as _includes: { par: [...] }, distributes across par_0, par_1, …\ncreateContainer({\n  content: [createText(), createImage()],\n});\n\n// 2D array → inner arrays concatenate within each slot\ncreateContainer({\n  content: [\n    [createText(), createImage()], // → par_0\n    [createCard()], // → par_1\n  ],\n});\n\n// object → spread directly into _includes (explicit key routing)\ncreateContainer({\n  content: ({ model }) => ({\n    header: () => createHeader({ title: model.title }),\n    footer: () => createFooter(),\n  }),\n});\n```\n\nExplicit `_includes` keys always take priority over `content`.\n\n#### Function parameters in `content`\n\nUnlike `_includes` slot functions (which only receive `@options`), a `content` function receives **all the parent component's props** — `model`, `_includes`, and any other parameters the component accepts:\n\n```js\n// content function receives { model, ...allOtherProps }\ncreateContainer({\n  model: { title: 'Hero' },\n  content: ({ model }) => createHero({ title: model.title }),\n  //         ^^^^^^^  the full parent props are available here\n});\n\n// Useful for computing slot content from the model\ncreateContainer({\n  model: { items: ['a', 'b', 'c'] },\n  content: ({ model }) =>\n    model.items.map((item) => createCard({ label: item })),\n});\n```\n\nThis is why `content` as a story arg is useful for data-driven slot composition at runtime — when you need to pass data down from the story, `content` receives all the parent component's props automatically.\n\n**When to use `content` vs `_includes` in `modelTransforms`:**\n\n- Use **`content` story arg** when the slot data comes from the story itself (runtime)\n- Use **`_includes` in `modelTransforms`** when the slot data is derived from the model (build-time, applies to every story using that component)\n\n```js\n// modelTransforms: compute _includes from model data at runtime inside the generated function\nconst modelTransforms = {\n  Tabs: {\n    _includes: ({ tabs }) =>\n      Object.fromEntries(\n        (tabs?.children || tabs?.items || []).map((item) => [\n          item.resource ?? item.id ?? item.name,\n          () =>\n            typeof item.content === 'function'\n              ? item.content()\n              : item.content || '',\n        ])\n      ),\n  },\n};\n\n// story: pass content directly from story args\nexport const Default = {\n  args: {\n    content: () => createText({ text: 'Hello' }),\n  },\n};\n```\n\n### `fileOverrides`\n\nObject mapping HTL file names to expression strings (or configuration objects) that replace `data-sly-use.X=\"file.html\"` + `data-sly-call` references. Useful for replacing AEM template files (like `responsiveGrid.html`) that don't exist in your Storybook build.\n\n**Simple string value** — replaces the `require()` call with the provided expression:\n\n```js\noptions: {\n  fileOverrides: {\n    'responsiveGrid.html': \"{ responsiveGrid: ({ container, _includes }) => _includes?.content?.() ?? '' }\",\n  }\n}\n```\n\n**Object value with `htl`** — provides HTL content that is transpiled inline (no file on disk needed). The templates are compiled and inlined into the output module:\n\n```js\noptions: {\n  fileOverrides: {\n    'responsiveGrid.html': {\n      htl: `<template data-sly-template.responsiveGrid=\"\\${ @ container }\">\n        <div id=\"\\${container.id}\" class=\"cmp-container\">\n          <sly data-sly-resource=\"\\${'content' @ resourceType='wcm/foundation/components/responsivegrid'}\"></sly>\n        </div>\n      </template>`,\n    },\n  },\n}\n```\n\nThe HTL content must contain `data-sly-template` definitions. The transpiler compiles them and generates the functions at module scope. Since the template uses `data-sly-resource` with `@resourceType`, the `resourceWrappers` config applies automatically inside the template.\n\n**Object value with `expression`** — provides a raw JS expression string instead of HTL:\n\n```js\noptions: {\n  fileOverrides: {\n    'responsiveGrid.html': {\n      expression: \"{ responsiveGrid: ({ container, _includes }) => _includes?.content?.() ?? '' }\",\n    },\n  },\n}\n```\n\nWhen the transpiler encounters `data-sly-use.tpl=\"responsiveGrid.html\"`, instead of generating a `require()` call, it uses the provided value as the default for the `tpl` parameter. The `data-sly-call=\"${tpl.responsiveGrid @ ...}\"` then calls the function directly.\n\nThe override can be replaced at runtime by passing a different value for the parameter:\n\n```js\n// Use default from fileOverrides\nconst html = createContainer();\n\n// Override at runtime\nconst html = createContainer({\n  responsiveGridTemplate: { responsiveGrid: myCustomFn },\n});\n```\n\n---\n\n## AEM component composition example\n\nCombining `wrapperClass`, `resourceWrappers`, `modelTransforms`, and `fileOverrides` reproduces AEM's full component nesting structure.\n\n**Config (shared across all components):**\n\n```js\nconst options = {\n  wrapperClass: true,\n  resourceWrappers: {\n    'wcm/foundation/components/responsivegrid': {\n      wrapper: 'aem-Grid aem-Grid--12 aem-Grid--default--12',\n      childClass: 'aem-GridColumn aem-GridColumn--default--12',\n    },\n  },\n  modelTransforms: {\n    LayoutContainer: {\n      layout: \"'RESPONSIVE_GRID'\",\n    },\n  },\n  fileOverrides: {\n    'responsiveGrid.html': {\n      htl: `<template data-sly-template.responsiveGrid=\"\\${ @ container }\">\n        <div id=\"\\${container.id}\" class=\"cmp-container\">\n          <sly data-sly-resource=\"\\${'content' @ resourceType='wcm/foundation/components/responsivegrid'}\"></sly>\n        </div>\n      </template>`,\n    },\n  },\n};\n```\n\n**Container HTL:**\n\n```html\n<sly\n  data-sly-use.container=\"com.adobe.cq.wcm.core.components.models.LayoutContainer\"\n>\n  <sly\n    data-sly-test.responsive=\"${container.layout == 'RESPONSIVE_GRID'}\"\n    data-sly-use.responsiveGridTemplate=\"responsiveGrid.html\"\n    data-sly-call=\"${responsiveGridTemplate.responsiveGrid @ container=container}\"\n  ></sly>\n  <sly\n    data-sly-test=\"${!responsive}\"\n    data-sly-use.simpleTemplate=\"simple.html\"\n    data-sly-call=\"${simpleTemplate.simple @ container=container}\"\n  ></sly>\n</sly>\n```\n\n**Column HTL:**\n\n```html\n<div class=\"cmp-column\">Sample Text</div>\n```\n\n**Story:**\n\n```js\nimport { createContainer } from '../container/container.html';\nimport { createColumn } from '../column/column.html';\n\nexport const Default = {\n  render: () =>\n    createContainer({\n      _includes: {\n        content: () => createColumn(),\n      },\n    }),\n};\n```\n\n**Rendered HTML:**\n\n```html\n<div class=\"container\">\n  <!-- wrapperClass -->\n  <div class=\"cmp-container\">\n    <!-- from responsiveGrid.html htl template -->\n    <div class=\"aem-Grid aem-Grid--12 aem-Grid--default--12\">\n      <!-- resourceWrappers.wrapper -->\n      <div class=\"cmp-column aem-GridColumn aem-GridColumn--default--12\">\n        <!-- resourceWrappers.childClass -->\n        Sample Text\n      </div>\n    </div>\n  </div>\n</div>\n```\n\nEach option has a single responsibility:\n\n| Option             | Responsibility                                                        |\n| ------------------ | --------------------------------------------------------------------- |\n| `wrapperClass`     | Component wrapper `<div>` with CSS class                              |\n| `resourceWrappers` | Wraps `data-sly-resource` output with grid/column divs                |\n| `modelTransforms`  | Model property defaults (e.g. `layout: 'RESPONSIVE_GRID'`)            |\n| `fileOverrides`    | Replaces `data-sly-use=\"file.html\"` with inline HTL or JS expressions |\n\n---\n\n## Programmatic API\n\n```ts\nimport { transpile } from 'htl-to-js';\nimport { parseI18nXml } from 'htl-to-js/parseI18nXml';\nimport fs from 'fs';\n\nconst source = fs.readFileSync('accordion.html', 'utf8');\nconst jsModule = transpile(source, {\n  filename: 'accordion.html',\n  format: 'cjs', // 'cjs' (default) | 'esm'\n  omitAttrs: [],\n  i18nDict: {}, // bake a dictionary into the module\n  i18nFallbackDicts: [], // additional fallback dictionaries (lower priority)\n});\n\nconsole.log(jsModule);\n```\n\n---\n\n## CLI\n\nGenerate `.template.js` files alongside their `.html` source:\n\n```bash\nnpx htl-gen \"src/**/*.html\"\n```\n\nWatch mode:\n\n```bash\nnpx htl-gen --watch \"components/**/*.html\"\n```\n\nOutput files are placed next to the source:\n\n```\naccordion.html  →  accordion.template.js\n                   accordion.template.d.ts\ncard/default.html  →  card/default.template.js\n                      card/default.template.d.ts\n```\n\nEach `.d.ts` file re-exports the function signatures from the generated module so TypeScript consumers get full type information without needing `declare module '*.html'` shims.\n\n---\n\n## Known limitations\n\n- **`data-sly-call` across files** — the called template must be imported and passed explicitly via args; cross-file resolution at build time is not supported unless the file is declared via `data-sly-use`.\n- **Java expressions** in `data-sly-use` — the class path is ignored; the binding name becomes a function parameter.\n- **`data-sly-use` with `@` defaults** — the default values are extracted as destructuring defaults, but complex expressions are not supported.\n\n---\n\n## License\n\n[MIT](./LICENSE)\n","readmeFilename":"README.md"}