{"_id":"mikser-io-layouts","_rev":"28-22f55283a924fb37f1bc88e388f899cf","name":"mikser-io-layouts","dist-tags":{"latest":"11.5.0"},"versions":{"1.0.0":{"name":"mikser-io-layouts","version":"1.0.0","author":"","license":"MIT","_id":"mikser-io-layouts@1.0.0","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"7c833c46c4d927e49c3066bb5cc3d5a0227a1138","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-1.0.0.tgz","fileCount":11,"integrity":"sha512-ouSns6IhNtgA+8O4yXt4xD4q4d99RJN2T2mZWctrx1r9l0sziaObKdc++wyEflO85rG+I5UmEqvRv8YDOwhdJQ==","signatures":[{"sig":"MEUCIGIJ3k98gAHAJY9R5TBHH/Vjip03VHFLpYdqJ38GeYhUAiEAiiy6e/Bs6Dtw/0ob0ZL4HUjbrJ7Zz8d+t2sxChhSVgM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112460},"main":"index.js","type":"module","gitHead":"0601da07151c80bfa43f02e0a945f6933c104f5f","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"10.9.0","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"zod":"^4.4.3","globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"peerDependencies":{"mikser-io":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_1.0.0_1781520438683_0.6713032333566029","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"mikser-io-layouts","version":"2.1.0","author":"","license":"MIT","_id":"mikser-io-layouts@2.1.0","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"170ee5950bc8ccc4b421aafa10d18acd8a2342ea","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-2.1.0.tgz","fileCount":11,"integrity":"sha512-uyINh1xboWzy3JPDT5zzUtf9Yb6dzYMa00bUWoAxYh5TdFVhY+LFxITGXf82EIFV8rzO+D2YD0BKJDxH0LbE0w==","signatures":[{"sig":"MEUCIB26CHerKOj0lqvN6BtFV2ZuLjJZZqfpeRKbBmw4dbYrAiEAxUIOrIM3TbGwsv9roG4cj0Gr3RxveUR3+U/bIWBWTdE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143809},"main":"index.js","type":"module","gitHead":"0627ba0d3e4be6fd86a38ccd7d9ef6a08c7ae96d","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"10.9.4","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.4.3","globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"mikser-io":"file:../mikser-io"},"peerDependencies":{"mikser-io":"^9.11.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_2.1.0_1787402813143_0.9257360622721904","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"mikser-io-layouts","version":"2.3.0","author":"","license":"MIT","_id":"mikser-io-layouts@2.3.0","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"ab6787d7a6e8f449aa4adcb9f9f9daad4fd45eec","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-2.3.0.tgz","fileCount":11,"integrity":"sha512-O8dcNhHJQ08FzXI4gMwdgxLT5DVH+1prEEbFNj8JNBYACF3Mr4BTafCwc5O9FqeCvmDImbPSeHfjt6VZVGUNJg==","signatures":[{"sig":"MEUCIQDRe6hJG+Hul8cky3VnX0uEF+cHIN1tnllwD9T0w0BaYgIgEQRil8ChMfawEQd6j/7u+Kdz4WW8TnROTvPKRmSh8sY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145258},"main":"index.js","type":"module","gitHead":"10d810e8798c271e155b337c3e339b0eb347b84c","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"10.9.4","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.4.3","globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"mikser-io":"file:../mikser-io"},"peerDependencies":{"mikser-io":"^9.14.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_2.3.0_1787412242421_0.9272200416466734","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"mikser-io-layouts","version":"2.4.0","author":"","license":"MIT","_id":"mikser-io-layouts@2.4.0","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"d7c08a578f6f9a3748e25bafd8225e6badcd3304","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-2.4.0.tgz","fileCount":11,"integrity":"sha512-t7eQ92c8hQ6e52yfdI0ZFcE06froxreMz5gNAYrKkHw6xd6uwUjxnTVOZ6Kssyb8+0WS02GuVqm/M08FR+VsZA==","signatures":[{"sig":"MEUCIQDBYfEsUC3sqslO1VbLdjunZ64u1JOhM0aHr6QiZHMiJwIgLkklnhzf+f4pUJKakqEMAKLMgxwKagCR8mnlYRB+X/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145924},"main":"index.js","type":"module","gitHead":"768f0660f134ba12c856c2aa4e3e8c0cbf3291d1","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"10.9.4","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.4.3","globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"mikser-io":"file:../mikser-io"},"peerDependencies":{"mikser-io":"^9.18.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_2.4.0_1787428246472_0.29590830095841314","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"mikser-io-layouts","version":"2.4.1","author":"","license":"MIT","_id":"mikser-io-layouts@2.4.1","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"1d4496d84a9817110ffd1e81359609518a85564a","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-2.4.1.tgz","fileCount":11,"integrity":"sha512-mk6hquhiZvpiOeHReuIvaIQb7eGEYKIiY365dMKEqa91m0+ARiBEd9JqdbNeMg50StZAW5Z73xnIdLXbGDY/xQ==","signatures":[{"sig":"MEYCIQDT8Outly5BL+/Ln4t2Qrk0c6i1wBp7tGfvN43lhbodTwIhAPFyuDvSbrVOeuk+5goV4bRdl38n4/qgIjfn1JjB2kdE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145915},"main":"index.js","type":"module","gitHead":"f5c980551ca8d20a9f2f690117a551cb419d7e19","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"10.9.4","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.4.3","globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"mikser-io":"file:../mikser-io"},"peerDependencies":{"mikser-io":"^9.18.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_2.4.1_1787429805044_0.2636584539566207","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"mikser-io-layouts","version":"2.5.0","author":"","license":"MIT","_id":"mikser-io-layouts@2.5.0","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"cbbf66361f0f7a72b56593999375ef841d3d749a","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-2.5.0.tgz","fileCount":13,"integrity":"sha512-1+NO4xZV24K00AjTnbVcYBeYLhWJjHNKlqYYFhYd52ws2cJpuu7eAY3l1TC3mohC82MarrckENcdxF1ckPN+Hw==","signatures":[{"sig":"MEYCIQCn/DX5DoiADqN48mLL7QrjSH/mVo0lrVUq30IYVzwMPAIhAIyHnY1W1XFf96g6hhC2Fd1YhZJl2o357XS9pGL8PF0l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158063},"main":"index.js","type":"module","gitHead":"aae97cfe6f96a00a9dd8406b60aa033386e16bfe","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"10.9.4","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.4.3","globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"mikser-io":"file:../mikser-io"},"peerDependencies":{"mikser-io":"^9.20.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_2.5.0_1787431741973_0.27536788213874197","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"mikser-io-layouts","version":"2.6.0","author":"","license":"MIT","_id":"mikser-io-layouts@2.6.0","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"8d1e1b3756335e5c69b6545e3d78f5d0727b99f6","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-2.6.0.tgz","fileCount":13,"integrity":"sha512-GaAseoU8AmJo98a2rDBB5GtNl1SSjbCgaa/r3/TFfcaK7msDzm0yBRZijUKx7+gIB+xw4u3AJFAYadDJpRrKwg==","signatures":[{"sig":"MEQCIFFc5EGGf/ZXYD6zyxGwaSv/HWDSWEhYKFxA3M1vIFgSAiBGqGwdb1D5T7hX+54MscjNT5BixDXIM7xP42lE/JtOfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158675},"main":"index.js","type":"module","gitHead":"280c05cec8c580cc4e2a56c44c4bb0da329236e0","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"10.9.4","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.4.3","globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"mikser-io":"file:../mikser-io"},"peerDependencies":{"mikser-io":"^9.25.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_2.6.0_1787435810825_0.12465210447442687","host":"s3://npm-registry-packages-npm-production"}},"2.6.1":{"name":"mikser-io-layouts","version":"2.6.1","author":"","license":"MIT","_id":"mikser-io-layouts@2.6.1","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"723227720357948b7729a4fa59022662ff42a58d","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-2.6.1.tgz","fileCount":13,"integrity":"sha512-EaOzMpUt1x2xx5XUnNiaZNh+3nPMavDQWSyNGX69j+/t2bGOOsFc5qvvMndLD9nwqjFR9L1qiiIICr33WkIiig==","signatures":[{"sig":"MEQCIFARZ3rfdGg35zMUa/MiqwUL68hnpvgKXPcrMI9pL9OFAiAOBYFAsBzyVbL6lIvO7Jq0HcrnnFAWYq88pS4asNizUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158696},"main":"index.js","type":"module","gitHead":"5d2364cb20565edf20f595ae72778f1f4e483aa1","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"10.9.4","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"file:../mikser-io"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^9.25.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_2.6.1_1787924013584_0.451569763991001","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"mikser-io-layouts","version":"2.7.0","author":"","license":"MIT","_id":"mikser-io-layouts@2.7.0","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"7c6a58f262933c6eb81ab4eaa6c11ad877cd0368","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-2.7.0.tgz","fileCount":14,"integrity":"sha512-4C5nBHjYpNAYIPCHmUYd0YeXxTrIisxH9ONi+dl5u2Ate+gS2SgaxQCUzYq50fz/7URGMnnn8NyFnpVaSD7z5g==","signatures":[{"sig":"MEYCIQCGhmbtJ5gnhwt+gvwZ7Mu6FcdVapyPUyb2fC0/JczK6wIhAImayknyKyzO09PMJewWBlReCWbuY8o3yjyjpSXqgqwP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180144},"main":"index.js","type":"module","gitHead":"1ab80a0ce043f08a74dff6eba930cefe3b4f91e2","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"11.19.0","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"file:../mikser-io"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^9.39.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_2.7.0_1787959985528_0.5711154145061856","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"mikser-io-layouts","version":"2.8.0","author":"","license":"MIT","_id":"mikser-io-layouts@2.8.0","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"71d74b60e1af5a956464f4c3ccc6410298da971d","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-2.8.0.tgz","fileCount":15,"integrity":"sha512-vMEUdSDCJHKA6x3vrjIZ3sgbl3D8Hz7ZJFtcawahIbM+BPC5RDSG0e59Q+WEpM9fk+z5Wh/TKndaTAa+GLG5TA==","signatures":[{"sig":"MEUCIFSAcCRcu6ID+fpWn01VJkuNWmBwNURO/Gu/KtN30TcFAiEAx4YQZBqmYr4Dfw0j62Mdql70Ulj6ZZBsoviDzkKQGEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":198801},"main":"index.js","type":"module","gitHead":"48ee373d019f2062c06a3844e93226460f8c2edb","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"11.19.0","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"file:../mikser-io"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^9.39.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_2.8.0_1787964044101_0.8469675398628871","host":"s3://npm-registry-packages-npm-production"}},"2.9.1":{"name":"mikser-io-layouts","version":"2.9.1","author":"","license":"MIT","_id":"mikser-io-layouts@2.9.1","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"cc317cb8e1484ff4d7b85f49767c6e162c42f8bf","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-2.9.1.tgz","fileCount":15,"integrity":"sha512-VfmiGDuldhPPVeI0/CJ4k4gUTAvfZ7WUFBpJzfNRdFS21BQzpgSv6VATzbk5oo/KGNg3PRGDlwnBDwGPjXLYwA==","signatures":[{"sig":"MEUCIAINgN1MvNryipvgIg6j6qK21/f+5zjzoRp+2NGdLJz4AiEA4WTAML7jE7TW33ClfOjmw15aOVlTTEBckk/4Uo/nh2g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216871},"main":"index.js","type":"module","gitHead":"81398c5989ea1346c997d9db92e7da0975117e53","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"11.19.0","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"file:../mikser-io"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^9.40.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_2.9.1_1787967923176_0.6935733526708516","host":"s3://npm-registry-packages-npm-production"}},"2.9.2":{"name":"mikser-io-layouts","version":"2.9.2","author":"","license":"MIT","_id":"mikser-io-layouts@2.9.2","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"951fc14a9e1be7aa3e29bfe622cd26b636166cf0","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-2.9.2.tgz","fileCount":15,"integrity":"sha512-xelPxLRh/+IX3bvC8xKIFze+74TRqJK5oIEUB4qs2O5nXrBhYCIU4tN80yugCNq+HtM3GuoGlFywJltvq3RMyw==","signatures":[{"sig":"MEYCIQC/52GG+QTp8aoiX77mQiAZbPITyHD5D5YV1F+c5PHRawIhAKXzLi7Vl83QsGXgmWGYH+qxh2k4MFO8iC/6FeXjciEF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222831},"main":"index.js","type":"module","gitHead":"334fd03f60a8ee148be503e7ff311d58873efaf4","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"11.19.0","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"file:../mikser-io"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^9.40.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_2.9.2_1787969280431_0.00969248930004385","host":"s3://npm-registry-packages-npm-production"}},"2.9.3":{"name":"mikser-io-layouts","version":"2.9.3","author":"","license":"MIT","_id":"mikser-io-layouts@2.9.3","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"c14cd71bb79bb02dd929d4256f60ceb051d4899b","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-2.9.3.tgz","fileCount":15,"integrity":"sha512-AQmnGTBQgKWUxdJ1FCgM2zvXGpW6xy78JweK8RQXfakK8cWts2asu0MsvjxtWCU+HoOpzm+GOq4unf8IxEQpAQ==","signatures":[{"sig":"MEUCIHFBuw5qYGNhUAVJNjmuQxAL6/3eMnMPrBxIuJyPdjHUAiEAw7X6HS+fQi4QG65DEwq0z7DmM+ipoZaPra4q1O53C3A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223370},"main":"index.js","type":"module","gitHead":"a3733eb6d31e3c1797f09a06cc0002b94f2aae2b","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"11.19.0","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"file:../mikser-io"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^9.40.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_2.9.3_1787970458377_0.8802206360774951","host":"s3://npm-registry-packages-npm-production"}},"2.10.0":{"name":"mikser-io-layouts","version":"2.10.0","author":"","license":"MIT","_id":"mikser-io-layouts@2.10.0","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"611f739c6eaa7ffb9ad0dd87f81828bbb0f1e005","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-2.10.0.tgz","fileCount":15,"integrity":"sha512-/R/CV8zm/OR94/QwNkV89pPHVPLICerGe1xuDdeNlviiDx/GadOFTJ5SkmiJNdhHWpIS270WgxCxhwQLsMyP6g==","signatures":[{"sig":"MEQCIC583Fm3+OyyDqT5+QDSb008gXeRItnbkMHA+bagBN3SAiAPNIcCGhK8SnlNjafQ6zwgjBjrTI9dv1D1akHGa8H5yQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":236470},"main":"index.js","type":"module","gitHead":"3a3d23ee21a65c56b48b6e16039a7656e51b5480","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"11.19.0","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"file:../mikser-io"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^9.40.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_2.10.0_1787995043597_0.5192320628750893","host":"s3://npm-registry-packages-npm-production"}},"2.11.0":{"name":"mikser-io-layouts","version":"2.11.0","author":"","license":"MIT","_id":"mikser-io-layouts@2.11.0","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"ae00f79e9144026535eb515cc926011318dc78ee","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-2.11.0.tgz","fileCount":15,"integrity":"sha512-dXOVw9eVcMj0HvHZ+/prEYWeOmtDm8i9C+nsg7+eGi5Y75gv3WbP1UXmu20tBiLR8gzxGEb09xGNDLLhs69Row==","signatures":[{"sig":"MEUCIQDU8IrwtQaGaoVcuzNvhcRuPLEtx8uD9m5kyKWa7LdJMwIgWVNLRjGDtIqNZrJJ/UFKvQ0uEcSe0eTi21SiYaA7cAs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246445},"main":"index.js","type":"module","gitHead":"7fea5f339218d3b514450838a2c56d8919a44199","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"11.19.0","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"file:../mikser-io"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^9.40.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_2.11.0_1787997241556_0.3052000762500311","host":"s3://npm-registry-packages-npm-production"}},"2.11.1":{"name":"mikser-io-layouts","version":"2.11.1","author":"","license":"MIT","_id":"mikser-io-layouts@2.11.1","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"3064b1c6a62927a064c62791608086056ba36e81","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-2.11.1.tgz","fileCount":15,"integrity":"sha512-EQwJrPE70WMIk1451iRNmw7meKG6Hgps34tP/jRx99bDOXl6z2VrhOfYxLeNa3UOSOfzsZvV1kCC4XXRYq+VkQ==","signatures":[{"sig":"MEUCIF4WU4jQCxAGIQYV5mxSuk8F9QTggb3pj2SduIr4Rsn+AiEA/kjENYtUUb+pzkd9UARWKXTByJRocTaXCwLsz0bPn9I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":244639},"main":"index.js","type":"module","gitHead":"448ed3f166905da33fbfd4cd335d56f360c13b79","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"11.19.0","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"file:../mikser-io"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^9.40.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_2.11.1_1787998423966_0.8759675344890119","host":"s3://npm-registry-packages-npm-production"}},"2.11.2":{"name":"mikser-io-layouts","version":"2.11.2","author":"","license":"MIT","_id":"mikser-io-layouts@2.11.2","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"9220ae6f66108ea71e561e55c5af4db2273d6569","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-2.11.2.tgz","fileCount":15,"integrity":"sha512-m40AuUM+MMYt/DuQGqFN0K8Flm7+LTayxyzlHTP5eoC94uCcSj3/dcfFLgehGY2bXgs1l9ehCxrHkKMxHsL3cA==","signatures":[{"sig":"MEUCIDgnodyV1E5rcJtUy+QJOPfo3Au+fXb+4Sw+zICU+wEkAiEA5QBrYnTsDNEFmDNkDOItvw5qyrf4Utljk4wGyWt3X/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":247272},"main":"index.js","type":"module","gitHead":"4ceff1da36bea9fe0a074ca7581e66f3426bae63","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"11.19.0","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"file:../mikser-io"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^9.40.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_2.11.2_1787999934889_0.448784846890806","host":"s3://npm-registry-packages-npm-production"}},"2.12.0":{"name":"mikser-io-layouts","version":"2.12.0","author":"","license":"MIT","_id":"mikser-io-layouts@2.12.0","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"b3973998d55e609423163ee5304286bedf206a07","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-2.12.0.tgz","fileCount":15,"integrity":"sha512-qTc8NIgEBLwlOmBPwswmef1rZY/xo2hdE8jBdU6wUKSZVxqn/nUXw4tyGdke3ve1cSf3AnzOuQAnSUrHYaqcAw==","signatures":[{"sig":"MEUCIQC/KGGJdoC2rzVeqEbHjnLHdGHptQfFvIZ5+WzDNBCy0gIgXpESkkrULiVQ/G4DJ11Y1+bEBuMveUSqZeansCmrJ8U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":251718},"main":"index.js","type":"module","gitHead":"e0ff0c71c8d97629e428e01b3bf1a6c631776252","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"11.19.0","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"file:../mikser-io"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^9.40.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_2.12.0_1788036401730_0.12729153548279282","host":"s3://npm-registry-packages-npm-production"}},"2.13.0":{"name":"mikser-io-layouts","version":"2.13.0","author":"","license":"MIT","_id":"mikser-io-layouts@2.13.0","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"958fcca49854479f3c0bfe709f4e9e63d412c425","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-2.13.0.tgz","fileCount":15,"integrity":"sha512-fvGIVWuvnpLEjM96t8ezFULH1tAn7ptis4JHTWA6lC4Xy1mUmsGQaf8apWgIVHedG6WFrPP81kKL4vcRQVbqVA==","signatures":[{"sig":"MEUCIQDLdT2Ryq9o0kXlQdmeG1JsQ/EQ1KxKpwmer1gkG2SUuwIgPpdTOrQkfNpaEyF9oZikuzYp1xnoBZv1HkrbP2qTwxE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253660},"main":"index.js","type":"module","gitHead":"cc86ac580dc871877e45112b087cab8ce5999c02","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"11.19.0","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"file:../mikser-io"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^9.40.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_2.13.0_1788361483094_0.18241626742772254","host":"s3://npm-registry-packages-npm-production"}},"2.15.0":{"name":"mikser-io-layouts","version":"2.15.0","author":"","license":"MIT","_id":"mikser-io-layouts@2.15.0","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"c3d0d2fec8eefbe25625538014d61c693ee5e615","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-2.15.0.tgz","fileCount":15,"integrity":"sha512-IxrQ1sf8eEKPJy5K2fmzFs2wDxJE6I5JxbC9sB7LpLmNYIKdQwlwBdc1TKa5M+J5wKXIDPZHiVxMZAKVV4jJEQ==","signatures":[{"sig":"MEUCIQCrXB7+ORBYst6TfGFGkjo5wytW7Xp5ugRFiPxAhHpOcQIgJYtBai/gbjoaOkOKMdliCd3/dKN4HPJTyjGiDTKrjqE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260752},"main":"index.js","type":"module","gitHead":"6a2292964ffdd3af9624066099c696bbee15ae6b","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"11.19.0","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"file:../mikser-io"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^9.40.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_2.15.0_1788423832873_0.17630926618401532","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"mikser-io-layouts","version":"3.1.0","author":"","license":"MIT","_id":"mikser-io-layouts@3.1.0","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"f6750dad126ddc254aa64551fd36631f4169ff87","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-3.1.0.tgz","fileCount":15,"integrity":"sha512-aKo//1QBtSIgx8vM+t6HuxXSqed3gyKBRMGcanVmo5tV8CRQzHxH0fxCfQxcXl+ScqMh+xb/I9+7Y2RJT7RTcw==","signatures":[{"sig":"MEQCIFNnUuPDi9tUAXok7l1atRyZNgfkbmi+lhCZNVp2kXazAiBVEoU1HUsnxI7cBqRNYtYXI7RxmmS4Ttwjfzr3nMjtBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":264464},"main":"index.js","type":"module","gitHead":"e3dce6c3d1a80e7043325a623bf0c665d69350c7","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"almero-digital-marketing","email":"admin@almero.bg"},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"11.19.0","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"file:../mikser-io"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_3.1.0_1788468422463_0.4205993088858715","host":"s3://npm-registry-packages-npm-production"}},"11.0.1":{"name":"mikser-io-layouts","version":"11.0.1","author":"","license":"MIT","_id":"mikser-io-layouts@11.0.1","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"4564fd4e4d5092bc5a464f8049ce95ad91165a8a","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-11.0.1.tgz","fileCount":16,"integrity":"sha512-r3BQZpRUf1vH/5YRnzTaiKbXAvZ+wv1pvgczKHuHq+nBs8kdP2TlWT3G87n9kTrpWuBmKy+DHZxWnZw47Al8Fg==","signatures":[{"sig":"MEYCIQCj1XCKYyasFJ4pyJZcM8v/1fBchIp3wFbNIzbj6qTfewIhAM2PDkbwYpe1OsHZPExtoxr+TMiyhX2y9D/rNzfZwy0R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mikser-io-layouts@11.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":267366},"main":"index.js","type":"module","gitHead":"f4f3ed100ca9409e8c7ea40b427f9d27ec4556fc","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1e75d099-898e-495a-82f9-da7954409cfa"}},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"12.0.2","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"^11.0.1","mikser-io-render-liquid":"^11.0.1"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_11.0.1_1788727839491_0.10126273126412633","host":"s3://npm-registry-packages-npm-production"}},"11.1.0":{"name":"mikser-io-layouts","version":"11.1.0","author":"","license":"MIT","_id":"mikser-io-layouts@11.1.0","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"ae6730884048fa9bd1cc12a191ee199f6c6f8056","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-11.1.0.tgz","fileCount":16,"integrity":"sha512-0bYZ9dfU3hXBw9K1IVM6WFlDn7UZkQQmW+r4nOLGp3ka9tXH7ffJNmewDiQO73Toxh7gY8TeP8KJu+a+qcwSJw==","signatures":[{"sig":"MEQCICcxaPbV0VXHdY3ae9zYceS8X7N53M7qkghw2d8uoqe1AiApecdsvai0ysoHNk1NeqHVhX39mdPg/r9YIxwHMXzTQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mikser-io-layouts@11.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":269546},"main":"index.js","type":"module","gitHead":"4d1bdf5d4630f594034e918dd8ff09916afad614","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1e75d099-898e-495a-82f9-da7954409cfa"}},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"12.0.2","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"^11.1.0","mikser-io-render-liquid":"^11.0.1"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^11.1.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_11.1.0_1788733706564_0.9363310542260928","host":"s3://npm-registry-packages-npm-production"}},"11.2.0":{"name":"mikser-io-layouts","version":"11.2.0","author":"","license":"MIT","_id":"mikser-io-layouts@11.2.0","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"e2c23a94d07d9e18733cfd9731222da7d70193a0","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-11.2.0.tgz","fileCount":16,"integrity":"sha512-aUavJft4fbs35WNP7r9J1lRuKpoEcs3QioYLolEpVEptpdWW2iZ1IucrnAy5QI5UI0eBFHTIdYnZcgvgWHxIEg==","signatures":[{"sig":"MEYCIQDGxNh87hF7ItmSsoLhnjSiGpoqW5iq+kLgRcNqYdAaKwIhAOdInUz1RG2dijGx4S1+tvrLrR/UVl66jd/d8XedJNSM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mikser-io-layouts@11.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":274321},"main":"index.js","type":"module","gitHead":"5b792bcbe33d7a7deb62fdcc47ffc16bbc45867e","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1e75d099-898e-495a-82f9-da7954409cfa"}},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"12.0.2","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"^11.1.0","mikser-io-render-liquid":"^11.0.1"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^11.1.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_11.2.0_1788797711494_0.14560291824042304","host":"s3://npm-registry-packages-npm-production"}},"11.2.1":{"name":"mikser-io-layouts","version":"11.2.1","author":"","license":"MIT","_id":"mikser-io-layouts@11.2.1","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"5cfca82262ccdcaae662538f7d0d4b419196eb98","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-11.2.1.tgz","fileCount":16,"integrity":"sha512-HJytbGTX+2NYyUbulzeeJT0MSvA9XU8voLVR4FCNsWd0C4jAuN4VsIevVxSqHjDSfooOkqg0ojp3iVi4bhqN5g==","signatures":[{"sig":"MEQCIGCgaPV/kJLpdg9dxJbUVkH2Nkf+gtyb7zawk1jfrnCEAiAxb+a4xXjyfIknG5DJPqWGet13w7kbYnj/Qvjd1gr1Nw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mikser-io-layouts@11.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":274433},"main":"index.js","type":"module","gitHead":"85badc272519423bf2be52d9bea19219a4adb3d8","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1e75d099-898e-495a-82f9-da7954409cfa"}},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"12.0.2","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"^11.1.0","mikser-io-render-liquid":"^11.0.1"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^11.1.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_11.2.1_1788801829984_0.6913719544503918","host":"s3://npm-registry-packages-npm-production"}},"11.3.0":{"name":"mikser-io-layouts","version":"11.3.0","author":"","license":"MIT","_id":"mikser-io-layouts@11.3.0","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"fb9a8be817581ca9e75a4f53c95162e0372fddb2","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-11.3.0.tgz","fileCount":16,"integrity":"sha512-yowqi5VTe5+lvY2lwSWdMmpLRCF7vmPy0r1THLy8d7uAWxnkyqcTA+HiK62rrMAOiWxHw/TNFauA1SUX5DrVbg==","signatures":[{"sig":"MEUCID5cCh3Tf/70CcaKNA13hKuKcH3m6gfRD6WsKEpRe6LIAiEAqnvhTVkmsNsjc61ATtt6bQ0SfP80+aL281I4ATuBNnE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mikser-io-layouts@11.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":283197},"main":"index.js","type":"module","gitHead":"df71425684c00e51c406bf85074e1e8d7737a5ad","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1e75d099-898e-495a-82f9-da7954409cfa"}},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"12.0.2","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"^11.1.0","mikser-io-render-liquid":"^11.0.1"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^11.1.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_11.3.0_1788865504736_0.9892171673550083","host":"s3://npm-registry-packages-npm-production"}},"11.4.0":{"name":"mikser-io-layouts","version":"11.4.0","author":"","license":"MIT","_id":"mikser-io-layouts@11.4.0","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"dist":{"shasum":"377550c2f02d3920bfa04dd9ae0e4706c6944f07","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-11.4.0.tgz","fileCount":16,"integrity":"sha512-8pZ2gWAwOnMIMRhZFyOJByzBZNbkAN1WbmNhCsP5EF7Om5PSXPh0XBufI9RJdth9OsFojU30zlglC+P5vacdWQ==","signatures":[{"sig":"MEUCIQDEZZoITV4Auv1oEjG7RYhvhQ34HoC9O7WOQ5SalfJD6AIgMuXSW/K4he1RJe2I8zzYv21HdAjcpLgxlgwYuxrl5cg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mikser-io-layouts@11.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":298956},"main":"index.js","type":"module","gitHead":"056580cec9f362bedae784b4f12d012d0fe5b330","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1e75d099-898e-495a-82f9-da7954409cfa"}},"repository":{"url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git","type":"git"},"_npmVersion":"12.0.2","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"globby":"^14.0.0","lodash":"^4.17.0","handlebars":"^4.7.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","mikser-io":"^11.1.0","mikser-io-render-liquid":"^11.0.1"},"peerDependencies":{"zod":"^4.0.0","mikser-io":"^11.1.0"},"_npmOperationalInternal":{"tmp":"tmp/mikser-io-layouts_11.4.0_1789396964636_0.999864503841313","host":"s3://npm-registry-packages-npm-production"}},"11.5.0":{"name":"mikser-io-layouts","version":"11.5.0","description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","main":"index.js","type":"module","scripts":{"test":"node --no-warnings --test --test-reporter=spec 'test/**/*.test.js'"},"repository":{"type":"git","url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git"},"author":"","license":"MIT","bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","peerDependencies":{"mikser-io":"^11.10.0","zod":"^4.0.0"},"dependencies":{"globby":"^14.0.0","handlebars":"^4.7.0","lodash":"^4.17.0"},"devDependencies":{"mikser-io":"^11.10.0","mikser-io-render-liquid":"^11.0.1","zod":"^4.0.0"},"gitHead":"c1bc1819d18157ad40c13d69d6d47974f841f004","_id":"mikser-io-layouts@11.5.0","_nodeVersion":"24.20.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-bu99Y2i+xtTbxFoLo7YwhvTtO7baP5TWiAb3RTMfmr9D17vTlqPfLTrnKi3RQM+jxNMcMdyPljeOpbbFzA0MEQ==","shasum":"c98d22d5d31fa2f3dc375c96fa156535825b5c0b","tarball":"https://registry.npmjs.org/mikser-io-layouts/-/mikser-io-layouts-11.5.0.tgz","fileCount":16,"unpackedSize":304889,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mikser-io-layouts@11.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCchn1STDIivPeIdyauUPn3ZbBlDWwdt5sMPz89qsaM8QIhAOQZgcFkFlcpsm6lzkfuDJNU+2mvjjK3fj09BflhawdT"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1e75d099-898e-495a-82f9-da7954409cfa"}},"directories":{},"maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mikser-io-layouts_11.5.0_1789399793910_0.6040795115527582"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-15T10:47:18.597Z","modified":"2026-09-14T15:29:54.380Z","1.0.0":"2026-06-15T10:47:18.817Z","2.1.0":"2026-08-22T12:46:53.289Z","2.3.0":"2026-08-22T15:24:02.554Z","2.4.0":"2026-08-22T19:50:46.626Z","2.4.1":"2026-08-22T20:16:45.183Z","2.5.0":"2026-08-22T20:49:02.129Z","2.6.0":"2026-08-22T21:56:50.961Z","2.6.1":"2026-08-28T13:33:33.733Z","2.7.0":"2026-08-28T23:33:05.707Z","2.8.0":"2026-08-29T00:40:44.228Z","2.9.1":"2026-08-29T01:45:23.375Z","2.9.2":"2026-08-29T02:08:00.597Z","2.9.3":"2026-08-29T02:27:38.532Z","2.10.0":"2026-08-29T09:17:23.747Z","2.11.0":"2026-08-29T09:54:01.705Z","2.11.1":"2026-08-29T10:13:44.110Z","2.11.2":"2026-08-29T10:38:55.032Z","2.12.0":"2026-08-29T20:46:41.860Z","2.13.0":"2026-09-02T15:04:43.226Z","2.15.0":"2026-09-03T08:23:53.014Z","3.1.0":"2026-09-03T20:47:02.642Z","11.0.1":"2026-09-06T20:50:39.639Z","11.1.0":"2026-09-06T22:28:26.711Z","11.2.0":"2026-09-07T16:15:11.641Z","11.2.1":"2026-09-07T17:23:50.147Z","11.3.0":"2026-09-08T11:05:04.865Z","11.4.0":"2026-09-14T14:42:44.788Z","11.5.0":"2026-09-14T15:29:54.055Z"},"bugs":{"url":"https://github.com/almero-digital-marketing/mikser-io-layouts/issues"},"license":"MIT","homepage":"https://github.com/almero-digital-marketing/mikser-io-layouts#readme","repository":{"type":"git","url":"git+https://github.com/almero-digital-marketing/mikser-io-layouts.git"},"description":"SSG-flavor task-production policy for mikser-io. Multi-match layout assignment, per-layout destinations, postprocess chain attachment, layout inspection.","maintainers":[{"name":"almero-digital-marketing","email":"admin@almero.bg"}],"readme":"# mikser-io-layouts\n\nThe SSG-flavor task-production policy for [mikser-io](https://github.com/almero-digital-marketing/mikser-io). Manages HTML/template layouts: every layout whose pattern hits an entity contributes a render task — multi-match by default, no \"best match wins\" tiebreaker. One source entity can produce multiple outputs of different formats simply by being matched by multiple layouts.\n\nThis is the **canonical recipe** for the static-site case. A mikser project doesn't have to use it — the engine is renderer-agnostic — but every project that *does* produce rendered output from template-engine layouts uses this plugin.\n\n## Install\n\n```bash\nnpm install mikser-io-layouts\n```\n\n## Usage\n\n```js\n// mikser.config.js\nimport { documents, frontMatter, yaml, renderHbs } from 'mikser-io'\nimport { layouts } from 'mikser-io-layouts'\n\nexport default {\n  plugins: [\n    documents(),\n    frontMatter(),\n    yaml(),\n    layouts({ autoLayouts: true }),\n    renderHbs(),\n  ],\n}\n```\n\n## Factory options\n\nEvery value below is the **default**; pass an option only to change it.\n\n```js\nlayouts({\n  layoutsFolder: 'layouts',\n\n  // Each pattern that matches contributes a render task. Multi-match:\n  // an entity at /blog/welcome.md matches both '@/blog/*' (post) AND\n  // '@/**' (default) → two render tasks, one per layout.\n  match: {\n    '@/blog/*':  'post',\n    '@/pages/*': 'page',\n    '@/**':      'default',\n  },\n\n  autoLayouts: true,           // Auto-match by name (single-match fallback; see below)\n  cleanUrls: true,             // /page → /page/index.html, so the served URL is /page/\n})\n```\n\n`cleanUrls` already special-cases names ending in `index` (`index` stays\n`/index.html`, it does not become `/index/index.html`). Reaching for a\n`destination:` template to get pretty URLs reinvents this — and breaks index\npages, because the template fully overrides the transform.\n\n`match` has no default: with no patterns and `autoLayouts` on, layouts are\nfound by name.\n\n```js\n```\n\n## Per-entity selection — `meta.layout` / `meta.layouts`\n\nAn entity can override match-based assignment via frontmatter:\n\n```yaml\n---\nlayout: post              # single — pick exactly one\n---\n```\n\n```yaml\n---\nlayouts: [post, post-email]   # multiple — render the entity through each\n---\n```\n\n`layout` and `layouts` are mutually exclusive — both set is an error. When neither is set, the plugin falls back to `options.match` (multi-match) then `autoLayouts` (single-match peel ladder).\n\n## Auto-layout matching (`autoLayouts: true`) — single-match fallback\n\nOnly runs when no `options.match` pattern hit the entity. The peel ladder is a most-specific-name search by design and stays first-wins (not multi-match):\n\n| Entity (`entity.name`) | Candidates tried in order | Matches if layout exists at |\n|---|---|---|\n| `nginx.conf` | `nginx.conf`, `nginx` | `layouts/nginx.conf.*` or `layouts/nginx.*` |\n| `styles/post.css` | `styles/post.css`, `styles/post` | `layouts/styles/post.css.*` or `layouts/styles/post.*` |\n| `posts/article.md` | `posts/article.md`, `posts/article` | `layouts/posts/article.*` |\n\nCross-directory auto-matching is intentionally not supported — pair `posts/article.md` with a top-level `article.eta` via `meta.layout: 'article'` or a `layouts.match` rule.\n\n## Per-layout destination override\n\nA layout's frontmatter can declare a `destination:` template. The template is Handlebars (path-shaped — substitutions only, no body rendering); it gets `{ entity }` as the context, is compiled once and cached, and the result is path-sanitized (`..` segments rejected). This fully overrides the default `entity.name + .format` derivation (and the cleanUrls folder transform).\n\nA small set of path-shaping helpers is available, so a destination can be\nderived from *part* of a value rather than only interpolating whole ones:\n\n| helper | |\n| --- | --- |\n| `after v sep` / `before v sep` | split at the **first** separator |\n| `afterLast v sep` / `beforeLast v sep` | split at the **last** separator |\n| `replace v search replacement` | literal, every occurrence — not a regex |\n| `dirname v` / `basename v` | POSIX path parts |\n| `lower v` / `upper v` | case |\n\nThe case they exist for is per-language output roots. With three languages in\none catalog under `documents/{lang}/…`, `entity.name` is `bg/kontakti` and each\nlanguage wants its own document root:\n\n```yaml\ndestination: /{{ after entity.name '/' }}/index.html   # → /kontakti/index.html\n```\n\nThey are registered on an **isolated** Handlebars instance, so nothing appears\nin your own `renderHbs` layouts. Anything more than path slicing belongs in the\nlayout's `.js` sidecar rather than in a template.\n\n```yaml\n# layouts/post-card.html.hbs\n---\nmatch: '@/blog/*'\ndestination: '/cards/{{entity.name}}.html'\n---\n```\n\n### `match:` — a layout claiming its own entities\n\nA layout can declare the pattern that selects it, instead of the config\nnaming it from the other side. These two are the same rule:\n\n```js\nlayouts({ match: { '@/blog/*': 'post-card' } })\n```\n\n```yaml\n# layouts/post-card.html.hbs\n---\nmatch: '@/blog/*'          # or a list: ['@/blog/*', '@/news/*']\n---\n```\n\nThey are **peers**, not alternatives — an entity matched by a config pattern\nand by a layout's own pattern gets both layouts, exactly as two config\npatterns would. A document's own `meta.layout` still wins over both, and\nauto-layout still only runs when nothing matched at all.\n\nPatterns follow the same rule everywhere: `matchEntity` globs `entity.name`\nonly for a pattern starting `@/`; anything else globs `entity.id`, which\ncarries the `/<collection>/` prefix and the extension. A pattern that selects\nnothing is reported once per run on a full cycle, naming the layout that\ndeclared it.\n\n```yaml\n# Pull from meta\n---\ndestination: '/{{entity.meta.year}}/{{entity.name}}.summary.html'\n---\n```\n\n```yaml\n# Use pagination context (when the sidecar paginates)\n---\ndestination: '/archive/page-{{entity.page}}.html'\n---\n```\n\n## Destination collisions — fail-fast\n\nWhen two layouts match the same entity AND resolve to the same destination, the plugin logs a named-names error and drops every render task for that entity for the cycle. No winner — disambiguation is the author's call. The build continues for other entities.\n\n```\nLayout collision for /documents/blog/welcome.md:\n  - post → /blog/welcome.html\n  - post-card → /blog/welcome.html\nSet a `destination:` override on one of them, or change one's format.\nSkipping this entity for the cycle.\n```\n\nThe common cases that hit this are:\n1. Two layouts produce the same format (`.html` from both `post.html.hbs` and `post-card.html.hbs`). Fix: set `destination:` on one.\n2. Two layouts with the same name in the same directory — file-system collision, not engine collision. Rename one.\n\n## Postprocess chains\n\nA layout's filename encodes a postprocessor chain after the format segment: `<name>.<format>-<post1>[-<post2>...].<template>`. Each `post*` segment names a `mikser-io-post-<name>` plugin. Stages run in order, threading file paths (not buffers) between them; the final extension comes from the last stage's `output:`.\n\n```\nlayouts/welcome.html-mjml-email.hbs    # renderer → MJML, post-mjml → HTML, post-email → EML\n```\n\nSame shape as frontmatter on the source entity:\n\n```yaml\n---\npostprocessors: [mjml, email]\n---\n```\n\nSee the [mikser-io rendering docs](https://github.com/almero-digital-marketing/mikser-io/blob/main/documentation/rendering.md#postprocess) for the per-stage contract and failure semantics.\n\n## `inspect()` primitive\n\n`runtime.options.layouts.inspect(layoutId, { samples, partials })` returns a layout's template source, sample entities, and three views of what it depends on:\n\n- **`references.contract`** — the whole layout tree walked, with partial arguments and renamings resolved, so `meta` lists document keys in the form a document writes them. Pass `partials` (the ids a render actually used, from the manifest) to scope it to one page: a layout that dispatches sections through a registry otherwise resolves statically to *every* section in the project.\n- **`references.runtime`** — what recent renders actually touched, including `metaReads`, which sees a layout sidecar that no parser can.\n- **`references.static`** — the single-file parse, in that file's own vocabulary.\n\n`contract.complete` is false when a branch could not be read, and `incomplete` names each with a reason. An incomplete contract is still useful, but absence is not proof.\n\n## Checking a document — `mikser_check_entity`\n\nAnswers \"does this document have what its layout needs\", before the mistake ships. A mistyped key does not fail a build: the section it named simply does not render.\n\nIt classifies the entity first, because not every document is a page — `page`, `data` (never renders, but other entities query it; reports who, and what they read off it) or `unreferenced` (nothing in the catalog reads it, which is not an error — the catalog is readable over the API).\n\nRead `missing` first, but check **`missingFrom`**:\n\n- `schema` — a [zod schema](https://www.npmjs.com/package/mikser-io-schemas) declares the key required. Authoritative, and it needed no template parsing.\n- `inferred` — read out of the templates. Strong evidence, not proof: it models one engine's semantics and a guard it cannot see makes a fine document look broken.\n\nWith a schema you also get `drift`: `readButNotDeclared` (layouts consume a key nothing declares — a schema gap, or a template typo) and `declaredButNotRead` (declared, unread — dead, or served over the API).\n\nEverything else means \"you may want to look\", never \"this is broken\": `missingOptional` is guarded and safe to omit, `unused` may be consumed by another layout or an API client, `untraceable` means an ancestor was read but its members could not be followed, and `unresolvedSections` names a section that matched no template.\n\n## Entity properties\n\n**Set on documents (by this plugin):**\n- `layout`: The first matched layout (back-compat alias).\n- `layouts`: Array of all matched layouts (canonical under multi-match).\n- `destination`: Resolved output path — per-task; iterating `entity.layouts` lets you see each.\n- `page` / `pages`: Pagination info (if the layout's sidecar provides pages data).\n\n**Set on layouts (by this plugin):**\n- `id`, `uri`, `source`: Path info\n- `collection`: `'layouts'`\n- `type`: `'layout'`\n- `format`: Template format (`'hbs'`, `'html'`, etc.)\n- `name`: Layout name without extension\n- `template`: Same as `format`\n\n## Watch support\n\nYes — layout file changes trigger re-rendering of dependent documents via the refs system.\n\n## Href lookups\n\nThe href resolution path goes through `runtime.lookupHref(href)` — a sync function that hits the `meta_href` index on `mikser_entities`. Render workers open their own read-only sqlite handle on first task and call the same primitive; templates stay sync. The `href` render plugin uses this; layout-side code can call it directly.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}