{"_id":"white-label-view","_rev":"27-85e8d84a763a83d5d310841f440ae329","name":"white-label-view","dist-tags":{"latest":"7.0.2"},"versions":{"1.0.0":{"name":"white-label-view","version":"1.0.0","keywords":["js","javacript","view"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@1.0.0","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"homepage":"https://github.com/bshack/white-label-view#readme","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"dist":{"shasum":"27844c8a1a7d0cbf959558ffdeb67c4f74603652","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-1.0.0.tgz","integrity":"sha512-PM2roq6y+p/Dl6mZbAiMwxk+PAJ8GH749hqqQvSUvMOvi+cjutVvn1e5FxftMNL7OusIULCqPhQdm6qolSdGiA==","signatures":[{"sig":"MEQCIDCf+p/TSIp+8GfqSDmXgE+V0sXlAeIbcXrryncajUGoAiAyg5BUZjdvVq597RaKwcf/vLGPIy8kh41HAzJwVCc/TA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"27844c8a1a7d0cbf959558ffdeb67c4f74603652","gitHead":"283b88680669c67b4800def5ca5130dd6846cfd6","scripts":{"test":"istanbul cover jasmine-node --captureExceptions spec/ && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","postinstall":"./node_modules/babel-cli/bin/babel.js ./src/index.js --out-file ./dist/index.js"},"_npmUser":{"name":"bshack","email":"bshackelford@gmail.com"},"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"2.14.20","description":"A simple JS view.","directories":{},"_nodeVersion":"4.4.1","dependencies":{"lodash":"^4.8.1","babel-cli":"^6.6.4","coveralls":"^2.11.9","babel-preset-es2015":"^6.6.0","babel-plugin-transform-es2015-modules-umd":"^6.6.0"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view-1.0.0.tgz_1459798665628_0.34549063676968217","host":"packages-12-west.internal.npmjs.com"}},"1.0.1":{"name":"white-label-view","version":"1.0.1","keywords":["js","javacript","view"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@1.0.1","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"homepage":"https://github.com/bshack/white-label-view#readme","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"dist":{"shasum":"a350a01dddcd5ac81c213b1cbe2a5ab4892cb8b0","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-1.0.1.tgz","integrity":"sha512-t0u+Kzk8f6DFmMKgSieMm9MVbsjZfT6JEUQzlHQaHFLg7u17InOeSzP7F9N6T7MK2jJKPEVE9/nagI3e8+Rjow==","signatures":[{"sig":"MEUCIBVHw9yBxGwz+7HtjtKuDvT2dcs3A7y8rFB5f2Zk5rDsAiEAht4dK4zirNi74Aw6M6JxYQVUHvJdzZmpV6llDFT40LQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"a350a01dddcd5ac81c213b1cbe2a5ab4892cb8b0","gitHead":"4f97538a458eba9f5d1ac711d2bf983cf82839f0","scripts":{"test":"istanbul cover jasmine-node --captureExceptions spec/ && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","postinstall":"./node_modules/babel-cli/bin/babel.js ./src/index.js --out-file ./dist/index.js"},"_npmUser":{"name":"bshack","email":"bshackelford@gmail.com"},"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"2.14.20","description":"A simple JS view.","directories":{},"_nodeVersion":"4.4.1","dependencies":{"lodash":"^4.8.1","babel-cli":"^6.6.4","babel-preset-es2015":"^6.6.0","babel-plugin-transform-es2015-modules-umd":"^6.6.0"},"devDependencies":{"coveralls":"^2.11.9"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view-1.0.1.tgz_1459820430581_0.7012341544032097","host":"packages-12-west.internal.npmjs.com"}},"1.0.2":{"name":"white-label-view","version":"1.0.2","keywords":["js","javacript","view"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@1.0.2","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"homepage":"https://github.com/bshack/white-label-view#readme","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"dist":{"shasum":"26fd25f739d5bde94b0ea10bd57aa7f3209ab30d","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-1.0.2.tgz","integrity":"sha512-zNgYoFKf5uRFJ1Sa9jo1hXHAUZaDZGMn8VbPn8L2u9zXxDV+1e1mQnHed5jbfenAyNkRFfEFVyibdEuHTUopwA==","signatures":[{"sig":"MEUCIGJFXN6a4pRPD8ANWC1uIfsLCtZEiGFbCFMUUMRPuKbOAiEApCCc86BfzjOuUfft47NE0KwpCc64vvDrTitIKS875m4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"26fd25f739d5bde94b0ea10bd57aa7f3209ab30d","gitHead":"a3c7707e6521a0ca5b47ec5b09de51c6180a358c","scripts":{"test":"istanbul cover jasmine-node --captureExceptions spec/ && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","postinstall":"./node_modules/babel-cli/bin/babel.js ./src/index.js --out-file ./dist/index.js"},"_npmUser":{"name":"bshack","email":"bshackelford@gmail.com"},"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"2.14.20","description":"A simple JS view.","directories":{},"_nodeVersion":"4.4.1","dependencies":{"lodash":"^4.8.1","babel-cli":"^6.6.4","babel-preset-es2015":"^6.6.0","babel-plugin-transform-es2015-modules-umd":"^6.6.0"},"devDependencies":{"coveralls":"^2.11.9"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view-1.0.2.tgz_1459880854007_0.6632661924231797","host":"packages-12-west.internal.npmjs.com"}},"1.0.3":{"name":"white-label-view","version":"1.0.3","keywords":["js","javacript","view","es6","es2015"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@1.0.3","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"homepage":"https://github.com/bshack/white-label-view#readme","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"dist":{"shasum":"0f88f568a04e68300137a8ac35fe294a3853add6","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-1.0.3.tgz","integrity":"sha512-EjWTBa2HV1W9k1CHQEw831fyVh4g8hd9d6PcBc943FTLapXf1mq9ghigOHkZEKDd1DCdgSF1Oeir/u4HpDQwNw==","signatures":[{"sig":"MEUCICGSTGGEXNGsACkgHQh8eOZlE50lFh2unabAPQNINficAiEAlVWhu/mCGjz4PpfzSs/CVL0jq1olmFjnuNVs1hFayoM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"0f88f568a04e68300137a8ac35fe294a3853add6","gitHead":"1a6cf29ccc0ac77acd49def9a4e7d8cb4b7acac1","scripts":{"test":"istanbul cover jasmine-node --captureExceptions spec/ && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","postinstall":"./node_modules/babel-cli/bin/babel.js ./src/index.js --out-file ./dist/index.js"},"_npmUser":{"name":"bshack","email":"bshackelford@gmail.com"},"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"2.14.20","description":"A simple ES6 JS view.","directories":{},"_nodeVersion":"4.4.1","dependencies":{"lodash":"^4.8.1","babel-cli":"^6.6.4","babel-preset-es2015":"^6.6.0","babel-plugin-transform-es2015-modules-umd":"^6.6.0"},"devDependencies":{"coveralls":"^2.11.9"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view-1.0.3.tgz_1459992679117_0.19961560354568064","host":"packages-12-west.internal.npmjs.com"}},"1.0.4":{"name":"white-label-view","version":"1.0.4","keywords":["js","javacript","view","es6","es2015"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@1.0.4","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"homepage":"https://github.com/bshack/white-label-view#readme","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"dist":{"shasum":"869e43030eb01d97188807333ac440daf49ea9d1","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-1.0.4.tgz","integrity":"sha512-0lG5G/THdPhimt7QXs/iohtl+1MbpEmekYZL5X7w6c8eNJac6quqmTcBACTy6MXmyhtWnXFNn1UeuSRB5t5quQ==","signatures":[{"sig":"MEUCIQCPiUh4oVBoV1dnb09WlLHu6FhppPBrScq1RfxJ//cb1wIgXJN0hAt0hgJ0FX3qQEnVQnBgksI9mC9E4O72K4isNvo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"869e43030eb01d97188807333ac440daf49ea9d1","gitHead":"87a5a081773e7a030f55c2dfe9cb9c71fc01e7fc","scripts":{"test":"istanbul cover jasmine-node --captureExceptions spec/ && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","postinstall":"./node_modules/babel-cli/bin/babel.js ./src/index.js --out-file ./dist/index.js"},"_npmUser":{"name":"bshack","email":"bshackelford@gmail.com"},"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"2.14.20","description":"A simple ES6 JS view.","directories":{},"_nodeVersion":"4.4.1","dependencies":{"babel-cli":"^6.6.4","babel-preset-es2015":"^6.6.0"},"devDependencies":{"coveralls":"^2.11.9"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view-1.0.4.tgz_1459994295763_0.08698878763243556","host":"packages-12-west.internal.npmjs.com"}},"1.0.5":{"name":"white-label-view","version":"1.0.5","keywords":["js","javacript","view","es6","es2015"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@1.0.5","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"homepage":"https://github.com/bshack/white-label-view#readme","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"dist":{"shasum":"a8ff99b12c4af49eb6291ae2bb3b1b7c1df2164e","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-1.0.5.tgz","integrity":"sha512-3l/MX66+zXtPEnndBMx0jO7BvzImbO2D94pBDKDjelymY0n4A1vkkU55JhH4b+Y0FqJbqU+k5SDUQLt/2zdXjA==","signatures":[{"sig":"MEQCIGA5QqKoqjN8bPeRnUzhU7REi2hEoSYC8tp7s8Q4g2EvAiBdWnVmFRTUVc7Q9cBmMKLzx7DcyccEt2JstjprjnkA+A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"a8ff99b12c4af49eb6291ae2bb3b1b7c1df2164e","gitHead":"66e667499583aa4ffc7c407ece5e0df73027ee26","scripts":{"test":"istanbul cover jasmine-node --captureExceptions spec/ && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","postinstall":"./node_modules/babel-cli/bin/babel.js ./src/index.js --out-file ./dist/index.js"},"_npmUser":{"name":"bshack","email":"bshackelford@gmail.com"},"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"2.14.20","description":"A simple ES6 JS view.","directories":{},"_nodeVersion":"4.4.1","dependencies":{"babel-cli":"^6.6.4","babel-preset-es2015":"^6.6.0"},"devDependencies":{"coveralls":"^2.11.9"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view-1.0.5.tgz_1460081501700_0.7049832483753562","host":"packages-12-west.internal.npmjs.com"}},"1.0.6":{"name":"white-label-view","version":"1.0.6","keywords":["js","javacript","view","es6","es2015"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@1.0.6","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"contributors":[{"url":"https://github.com/bshack","name":"Bill Shackelford","email":"bshackelford@gmail.com"}],"homepage":"https://github.com/bshack/white-label-view#readme","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"dist":{"shasum":"ff61bd5dca669bd2e7d78b683b603080df5fc592","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-1.0.6.tgz","integrity":"sha512-OZwbJnCQLFx+2QUmKknNJEgArMuA8CnBY/xqwLIo+zy4bVFZ6eZhySNDcr/lxXuTMusBpv7OzecZ5LZpHonDtw==","signatures":[{"sig":"MEUCIQDS1QGvtq4r3cC+cjy2UuyVAnIyiXPtKuMVy7iD671/PAIgTfhWEY7dlh5qRjCt/zw1i1IHpMBxsktVUT6V2s9Hwus=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"ff61bd5dca669bd2e7d78b683b603080df5fc592","engines":{"npm":">=2.0","node":">=4.0"},"gitHead":"6dc254eadcf8bcad26b64272a4a38c4d96335f5d","scripts":{"test":"istanbul cover jasmine-node --captureExceptions spec/ && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","postinstall":"./node_modules/babel-cli/bin/babel.js ./src/index.js --out-file ./dist/index.js"},"_npmUser":{"name":"bshack","email":"bshackelford@gmail.com"},"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"2.15.1","description":"A simple ES6 JS view.","directories":{},"_nodeVersion":"4.4.3","dependencies":{"babel-cli":"^6.6.4","dom-delegate":"^2.0.3","babel-preset-es2015":"^6.6.0","babel-plugin-transform-es2015-modules-umd":"^6.8.0"},"devDependencies":{"coveralls":"^2.11.9","jasmine-node":"^1.14.5"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view-1.0.6.tgz_1462505714238_0.009339021053165197","host":"packages-12-west.internal.npmjs.com"}},"1.0.9":{"name":"white-label-view","version":"1.0.9","keywords":["js","javacript","view","es6","es2015"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@1.0.9","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"contributors":[{"url":"https://github.com/bshack","name":"Bill Shackelford","email":"bshackelford@gmail.com"}],"homepage":"https://github.com/bshack/white-label-view#readme","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"dist":{"shasum":"2c4cb4b96f7aff93aee42f133c9991c73d59a08a","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-1.0.9.tgz","integrity":"sha512-Qd6UV9RlRJXv7F24bZe7deijvR1AsrDYFiOWFkT+63T3jgbZU3jASBzMEFAtbyJ3xcEK1ncEeIJ4sNoaU427hA==","signatures":[{"sig":"MEUCIQCnVBH1+j/68D/O2cEbL6qDVh62+KdtU2kIgWAmE4rmdgIgUmwrgr7Nq2pLHlefyTMcY3Ym3n0Z8siTieHkSGQ7B2Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"2c4cb4b96f7aff93aee42f133c9991c73d59a08a","engines":{"npm":">=2.0","node":">=4.0"},"gitHead":"2da31ed54413ace52e225860a55fee83248659a1","scripts":{"test":"./node_modules/babel-cli/bin/babel.js ./src/index.js --out-file ./dist/index.js","postinstall":"./node_modules/babel-cli/bin/babel.js ./src/index.js --out-file ./dist/index.js"},"_npmUser":{"name":"bshack","email":"bshackelford@gmail.com"},"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"2.15.1","description":"A simple ES6 JS view.","directories":{},"_nodeVersion":"4.4.3","dependencies":{"gator":"^1.2.4","babel-cli":"^6.6.4","babel-preset-es2015":"^6.6.0","babel-plugin-transform-es2015-modules-umd":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view-1.0.9.tgz_1462589786684_0.09552747290581465","host":"packages-16-east.internal.npmjs.com"}},"1.0.10":{"name":"white-label-view","version":"1.0.10","keywords":["js","javacript","view","es6","es2015"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@1.0.10","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"contributors":[{"url":"https://github.com/bshack","name":"Bill Shackelford","email":"bshackelford@gmail.com"}],"homepage":"https://github.com/bshack/white-label-view#readme","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"dist":{"shasum":"695d07290081108db5288cf379897c73a7166d14","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-1.0.10.tgz","integrity":"sha512-5UAKXOKpgnYM9QKrC4A9yGlPt/2uRDKMixzf5vExTF+K01TfsgqJKILaxwAhOXqVIvdBDz3c4/QKNDjHWL5dDQ==","signatures":[{"sig":"MEYCIQCf9QqSFlQPXlqEib7U4DeJ+LMPqw4+PqG1BG6q2z1dCAIhAOAGRgm3yjsf+MmN5DuYXdQQJTopUKqC7mK54j0mYPcM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"695d07290081108db5288cf379897c73a7166d14","engines":{"npm":">=2.0","node":">=4.0"},"gitHead":"f471fd9f895508935c11fed6f7a56c7e32d2c525","scripts":{"test":"./node_modules/babel-cli/bin/babel.js ./src/index.js --out-file ./dist/index.js","postinstall":"./node_modules/babel-cli/bin/babel.js ./src/index.js --out-file ./dist/index.js"},"_npmUser":{"name":"bshack","email":"bshackelford@gmail.com"},"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"2.15.1","description":"A simple ES6 JS view.","directories":{},"_nodeVersion":"4.4.3","dependencies":{"gator":"^1.2.4","babel-cli":"^6.6.4","babel-preset-es2015":"^6.6.0","babel-plugin-transform-es2015-modules-umd":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view-1.0.10.tgz_1462590782278_0.8557803959120065","host":"packages-12-west.internal.npmjs.com"}},"1.0.11":{"name":"white-label-view","version":"1.0.11","keywords":["js","javacript","view","es6","es2015","delegate"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@1.0.11","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"contributors":[{"url":"https://github.com/bshack","name":"Bill Shackelford","email":"bshackelford@gmail.com"}],"homepage":"https://github.com/bshack/white-label-view#readme","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"dist":{"shasum":"5c8c5aa7748c1ecdf2fa6f23ac37eaa825746290","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-1.0.11.tgz","integrity":"sha512-08E8waumbVFgf7hS+I1mccziTEDodkemIaqPl6Ig6//vRXpFnLRUhqbo3ggfNuVp/x16bDrE9hXnE9+Q/Nygbw==","signatures":[{"sig":"MEUCIQCaKOCujFi+ugawd3HMpmLL977f05gcUQOqDJ1IGL6IJAIgVtoMm2uU3myysuAQv38+2hX0tSHs0ZxD9aXhjYEn+Rk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"5c8c5aa7748c1ecdf2fa6f23ac37eaa825746290","engines":{"npm":">=2.0","node":">=4.0"},"gitHead":"51d29ef6b45b58834fe7fc91506e6e5011e654a8","scripts":{},"_npmUser":{"name":"bshack","email":"bshackelford@gmail.com"},"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"3.8.6","description":"A simple ES6 JS view.","directories":{},"_nodeVersion":"5.11.1","dependencies":{"gator":"^1.2.4"},"devDependencies":{"babel-cli":"^6.6.4","babel-preset-es2015":"^6.6.0","babel-plugin-transform-es2015-modules-umd":"^6.6.0"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view-1.0.11.tgz_1462727017622_0.4356082391459495","host":"packages-16-east.internal.npmjs.com"}},"1.0.12":{"name":"white-label-view","version":"1.0.12","keywords":["js","javacript","view","es6","es2015","delegate"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@1.0.12","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"contributors":[{"url":"https://github.com/bshack","name":"Bill Shackelford","email":"bshackelford@gmail.com"}],"homepage":"https://github.com/bshack/white-label-view#readme","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"dist":{"shasum":"f55a266f9a75668c05ad02bc6a9de199a23d5b1a","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-1.0.12.tgz","integrity":"sha512-CGI+f8Hsazk0+huCHC3LdX/Q1N2Z/bAl7wT054MLIYQpNmrFooHqCRAqE8k9RFpTAYNxn5a4yBxPwT+7sxbodw==","signatures":[{"sig":"MEQCIAGhrTQgkI3SLgJD0sA5pb/rDsO0eEQKXuDf0KyHDJeXAiB01qoIORjGG8bvB6XApHFMSN082MS9Xc7pjO+/Mw0S0A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"f55a266f9a75668c05ad02bc6a9de199a23d5b1a","engines":{"npm":">=2.0","node":">=4.0"},"gitHead":"01328857a2d2e7ffd700c3c9a296770d089c0473","scripts":{},"_npmUser":{"name":"bshack","email":"bshackelford@gmail.com"},"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"2.15.5","description":"A simple ES6 JS view.","directories":{},"_nodeVersion":"4.4.5","dependencies":{"gator":"^1.2.4"},"devDependencies":{"babel-cli":"^6.6.4","babel-preset-es2015":"^6.6.0","babel-plugin-transform-es2015-modules-umd":"^6.6.0"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view-1.0.12.tgz_1464889676414_0.3800883952062577","host":"packages-16-east.internal.npmjs.com"}},"1.0.13":{"name":"white-label-view","version":"1.0.13","keywords":["js","javacript","view","es6","es2015","delegate"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@1.0.13","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"contributors":[{"url":"https://github.com/bshack","name":"Bill Shackelford","email":"bshackelford@gmail.com"}],"homepage":"https://github.com/bshack/white-label-view#readme","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"dist":{"shasum":"8c7dd6aa7cffb1672726c0af5667508391d6766a","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-1.0.13.tgz","integrity":"sha512-xBf2COoRKGV4ZaX7bGpWPVa+m89w9bLFnCYLsXgZMoZyIkwnn8EWm65vPMNMmvjnd+Rwz++vMR8rgFd7cWlupA==","signatures":[{"sig":"MEUCIB//sWZQjc7JFOruA3GcVNMwyEONgtY8VsOY4DxjGjdpAiEAqHdJtVlTCvpcsEkUwLPjeaEh9wsI39omGn+gLK33K08=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"8c7dd6aa7cffb1672726c0af5667508391d6766a","engines":{"npm":">=2.0","node":">=4.0"},"gitHead":"45274883ecbba23006ad7fec78c849943233ebdf","scripts":{},"_npmUser":{"name":"bshack","email":"bshackelford@gmail.com"},"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"2.15.5","description":"A simple ES6 JS view.","directories":{},"_nodeVersion":"4.4.5","dependencies":{"gator":"^1.2.4"},"devDependencies":{"babel-cli":"^6.6.4","babel-preset-es2015":"^6.6.0","babel-plugin-transform-es2015-modules-umd":"^6.6.0"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view-1.0.13.tgz_1464895641686_0.8063329092692584","host":"packages-12-west.internal.npmjs.com"}},"1.0.14":{"name":"white-label-view","version":"1.0.14","keywords":["js","javacript","view","es6","es2015","delegate"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@1.0.14","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"contributors":[{"url":"https://github.com/bshack","name":"Bill Shackelford","email":"bshackelford@gmail.com"}],"homepage":"https://github.com/bshack/white-label-view#readme","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"dist":{"shasum":"048f7f52a684b21717da1c68aa596e9a91291e0e","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-1.0.14.tgz","integrity":"sha512-BipC85LoFj+a+0q1DtbfuLYCo69zfcP74OZ+d+UWP+gumbFrntY5h5qgTi5U2bLmfaAXKRxdsj8aR/yWNxUGnQ==","signatures":[{"sig":"MEUCIQDo8o4/WA14/wV8GbldhpeDkbX9RzdMbUefpJmCouBXpQIgE/YuoypYHZIRVnIFdr0vI6eI/Xk4knwXyStrAKKFpJo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"048f7f52a684b21717da1c68aa596e9a91291e0e","engines":{"npm":">=2.0","node":">=4.0"},"gitHead":"d14bca2db4f7a61b1a69d896a5024bb56e3499e0","scripts":{},"_npmUser":{"name":"bshack","email":"bshackelford@gmail.com"},"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"2.15.5","description":"A simple ES6 JS view.","directories":{},"_nodeVersion":"4.4.5","dependencies":{"gator":"^1.2.4"},"devDependencies":{"babel-cli":"^6.6.4","babel-preset-es2015":"^6.6.0","babel-plugin-transform-es2015-modules-umd":"^6.6.0"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view-1.0.14.tgz_1464966143485_0.24408183759078383","host":"packages-16-east.internal.npmjs.com"}},"1.0.15":{"name":"white-label-view","version":"1.0.15","keywords":["js","javacript","view","es6","es2015","delegate"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@1.0.15","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"contributors":[{"url":"https://github.com/bshack","name":"Bill Shackelford","email":"bshackelford@gmail.com"}],"homepage":"https://github.com/bshack/white-label-view#readme","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"dist":{"shasum":"a9adae28405c15914069a847282ab53016d7efcb","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-1.0.15.tgz","integrity":"sha512-j0pjYjsyUXvPFajU8Y4HAp223vKb6hf1CUbosaPWOzNIrLkj3tfD/mJ5gm7ijpaRX1lx8CasEHxtoiAXEQb+5w==","signatures":[{"sig":"MEYCIQDG9Nee1kLh5h3OiL2nRZ6eV6zxPZ8Ea5XSGL8zs3VDPwIhAPFORoynmCDKsauP38ZCgR+1MkDzuz9xx4PC3Zyrqsjc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"a9adae28405c15914069a847282ab53016d7efcb","engines":{"npm":">=2.0","node":">=4.0"},"gitHead":"002de5c320d375cbb661ad32b1069ebe8e135e28","scripts":{},"_npmUser":{"name":"bshack","email":"bshackelford@gmail.com"},"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"3.10.3","description":"A simple ES6 JS view.","directories":{},"_nodeVersion":"6.3.1","dependencies":{"gator":"^1.2.4"},"devDependencies":{"babel-cli":"^6.6.4","babel-preset-es2015":"^6.6.0","babel-plugin-transform-es2015-modules-umd":"^6.6.0"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view-1.0.15.tgz_1470945595611_0.3577170930802822","host":"packages-16-east.internal.npmjs.com"}},"2.0.0":{"name":"white-label-view","version":"2.0.0","keywords":["js","javacript","view","es6","es2015","delegate"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@2.0.0","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"contributors":[{"url":"https://github.com/bshack","name":"Bill Shackelford","email":"bshackelford@gmail.com"}],"homepage":"https://github.com/bshack/white-label-view#readme","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"dist":{"shasum":"a7b2d86306ea0411c4ee5b7f3ce7bdf04142cb73","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-2.0.0.tgz","integrity":"sha512-krseSfTNdBqarpKtovUv4TuYGfJJH9beYcWmlLpqe7cEQlMUN4daX884Ijo7BuUHLxoC/hUGZVeiRYSfSLmzJQ==","signatures":[{"sig":"MEQCIAm8UEZpROibmrqk1a+kZPh1ZhMAls6+7bqdDTMSwCssAiAudXrIOHzpYiPawRBhi6r1r7ZDGE8I6RBk4W4bQQfZlg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"a7b2d86306ea0411c4ee5b7f3ce7bdf04142cb73","engines":{"npm":">=2.0","node":">=4.0"},"gitHead":"d128f1e6678303e3c30c20c01cb70d255d4ce202","scripts":{},"_npmUser":{"name":"bshack","email":"bshackelford@gmail.com"},"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"3.10.3","description":"A simple ES6 JS view.","directories":{},"_nodeVersion":"6.4.0","dependencies":{"gator":"^1.2.4"},"devDependencies":{"babel-cli":"^6.6.4","babel-preset-es2015":"^6.6.0","babel-plugin-transform-es2015-modules-umd":"^6.6.0"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view-2.0.0.tgz_1473046868894_0.3441315090749413","host":"packages-12-west.internal.npmjs.com"}},"2.0.1":{"name":"white-label-view","version":"2.0.1","keywords":["js","javacript","view","es6","es2015","delegate"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@2.0.1","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"contributors":[{"url":"https://github.com/bshack","name":"Bill Shackelford","email":"bshackelford@gmail.com"}],"homepage":"https://github.com/bshack/white-label-view#readme","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"dist":{"shasum":"f091366af5319c0dc14fc541b3b8f508add222ce","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-2.0.1.tgz","integrity":"sha512-crByfnagwkRp5uoc33BjzohgjoWZjsL/XIyOJRKZ6p4WR+NLZelTE2cLCuLz6EBZ7efKbOpyTyeIH35Ubf3vnQ==","signatures":[{"sig":"MEYCIQCApmQfVGvv0SbRW2lsB7Mc8DDAn84TjPeseeAgg0fBagIhAJEhV1Bx8plfz60mv7vvknaXtUYd5IXw1jEEKMTL1ew2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"f091366af5319c0dc14fc541b3b8f508add222ce","engines":{"npm":">=2.0","node":">=4.0"},"gitHead":"1f94c35cb42f761e4e0d0cecdc9cef4024dcc7ce","scripts":{},"_npmUser":{"name":"bshack","email":"bshackelford@gmail.com"},"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"3.10.3","description":"A simple ES6 JS view.","directories":{},"_nodeVersion":"6.4.0","dependencies":{"gator":"^1.2.4"},"devDependencies":{"babel-cli":"^6.6.4","babel-preset-es2015":"^6.6.0","babel-plugin-transform-es2015-modules-umd":"^6.6.0"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view-2.0.1.tgz_1473048208481_0.9737290993798524","host":"packages-16-east.internal.npmjs.com"}},"2.0.2":{"name":"white-label-view","version":"2.0.2","keywords":["js","javacript","view","es6","es2015","delegate"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@2.0.2","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"contributors":[{"url":"https://github.com/bshack","name":"Bill Shackelford","email":"bshackelford@gmail.com"}],"homepage":"https://github.com/bshack/white-label-view#readme","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"dist":{"shasum":"059eafaa9fde3837592b4c60d8c679bd0c3f0c08","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-2.0.2.tgz","integrity":"sha512-B57iiaavXc+5pSBzzfcXZ0F3kJdniGJB0TzkzWiq5nZxQrG/ov6HOWtZuXjjpQeTISojx7+MfFVdpXFj/RbRAw==","signatures":[{"sig":"MEQCICaB0cGOnWl7tSd85Yj6FzZSgzajU7WO2ZgRwKWSfqTaAiBXMmAUJlH3DmSdV9gS9TjEOorW8yF18ava7wraa56WBw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"059eafaa9fde3837592b4c60d8c679bd0c3f0c08","engines":{"npm":">=2.0","node":">=4.0"},"gitHead":"2a15f9ccbcff9aea098706c00f248323ee88b707","scripts":{},"_npmUser":{"name":"bshack","email":"bshackelford@gmail.com"},"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"4.2.0","description":"A simple ES6 JS view.","directories":{},"_nodeVersion":"7.9.0","dependencies":{"gator":"^1.2.4"},"devDependencies":{"babel-cli":"^6.6.4","babel-preset-es2015":"^6.6.0","babel-plugin-transform-es2015-modules-umd":"^6.6.0"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view-2.0.2.tgz_1496847611263_0.8997039983514696","host":"s3://npm-registry-packages"}},"2.0.3":{"name":"white-label-view","version":"2.0.3","keywords":["js","javacript","view","es6","es2015","delegate"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@2.0.3","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"contributors":[{"url":"https://github.com/bshack","name":"Bill Shackelford","email":"bshackelford@gmail.com"}],"homepage":"https://github.com/bshack/white-label-view#readme","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"dist":{"shasum":"45293669b96b10801e0059e7d4d1d9afaa87ff12","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-2.0.3.tgz","integrity":"sha512-xogtUWNDPWfmlM0I7AczBJfmsDz6IU5ig/edSF6ExOv4nHyoOqouKVrRukQOnxS9QgJvsol0f0ABXRKxX8Tt4w==","signatures":[{"sig":"MEUCIBjdWYv0QgRjnc+qIXUJId6hpuVWd3ZatFslZieMiJGMAiEAzOQk2sS3hVuNGCQpYgthyJPKUoR0A2Vb/F6REIC6k+Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"45293669b96b10801e0059e7d4d1d9afaa87ff12","engines":{"npm":">=2.0","node":">=4.0"},"gitHead":"eff8b910859575ad14815693506ce7d2ef1831aa","scripts":{},"_npmUser":{"name":"bshack","email":"bshackelford@gmail.com"},"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"4.2.0","description":"A simple ES6 JS view.","directories":{},"_nodeVersion":"7.9.0","dependencies":{"gator":"^1.2.4"},"devDependencies":{"babel-cli":"^6.6.4","babel-preset-es2015":"^6.6.0","babel-plugin-transform-es2015-modules-umd":"^6.6.0"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view-2.0.3.tgz_1496847703801_0.7104366410057992","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"white-label-view","version":"4.0.0","keywords":["js","javacript","view","es6","es2015","delegate"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@4.0.0","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"contributors":[{"url":"https://github.com/bshack","name":"Bill Shackelford","email":"bshackelford@gmail.com"}],"homepage":"https://github.com/bshack/white-label-view#readme","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"c8":{"all":true,"lines":100,"exclude":["**/*.d.ts"],"include":["src/**/*.ts"],"perFile":true,"branches":100,"reporter":["text","json","json-summary","lcov"],"functions":100,"statements":100,"checkCoverage":true,"excludeAfterRemap":true},"dist":{"shasum":"5bd0bcf0ce558643daec297e5629c31a410446f8","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-4.0.0.tgz","fileCount":5,"integrity":"sha512-zd9v7/Vbv7PXF9b3UYpianbexWaFU5X/k1t9zmyhB/w3z/LJ0PbcNmloHfDKxCc6398rycF+dg3mTZq6ze3tYw==","signatures":[{"sig":"MEYCIQCnzGNpPRgkZAaVf1u5XTDVibpGmeeIQtXHhl2sdENYEwIhAIIpGDxmR63M/IC4G5qAjgD1aHT7rHAjHnVyOo70AFKi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38798},"main":"dist/index.js","_from":"file:/tmp/white-label-release/white-label-view-4.0.0.tgz","types":"dist/index.d.ts","engines":{"npm":">=10.0","node":"^22.18.0 || >=24.11.0"},"scripts":{"test":"npm run build && npm run test:types && npm run test:unit","audit":"npm audit --audit-level=high","build":"tsc -p tsconfig.json","prepack":"npm run build","coverage":"npm run build && npm run test:types && c8 npm run test:unit","test:unit":"node --test test/*.test.js","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.consumer.json"},"_npmUser":{"name":"bshack","email":"bshackelford@gmail.com"},"_resolved":"/tmp/white-label-release/white-label-view-4.0.0.tgz","_integrity":"sha512-zd9v7/Vbv7PXF9b3UYpianbexWaFU5X/k1t9zmyhB/w3z/LJ0PbcNmloHfDKxCc6398rycF+dg3mTZq6ze3tYw==","repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"11.9.0","description":"A simple ES6 JS view.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"c8":"12.0.0","jsdom":"30.0.1","typescript":"7.0.2","@types/node":"24.13.3"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view_4.0.0_1788801040926_0.42848925087858203","host":"s3://npm-registry-packages-npm-production"}},"5.1.0":{"name":"white-label-view","version":"5.1.0","keywords":["javascript","typescript","view","rendering","jsx","jsx-without-react","dom","server-rendering","ssr","serverless","template-engine","delegated-events","progressive-enhancement","framework-independent","browser","node","server-side","universal"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@5.1.0","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"contributors":[{"url":"https://github.com/bshack","name":"Bill Shackelford","email":"bshackelford@gmail.com"}],"homepage":"https://whitelabeljs.org/docs/view/","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"c8":{"all":true,"lines":100,"exclude":["**/*.d.ts"],"include":["src/**/*.ts"],"perFile":true,"branches":100,"reporter":["text","json","json-summary","lcov"],"functions":100,"statements":100,"checkCoverage":true,"excludeAfterRemap":true},"dist":{"shasum":"2e7193213740c4b1420eae649d7c1057a9a2e7b2","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-5.1.0.tgz","fileCount":13,"integrity":"sha512-FET7h6YMkbi/zVTzwk7XnCvwPGxUYpRnMCNvBzwwT0HC1CcXh+eCvyNJ286dPHk3fwD2GZygiyB93L9iDVxIPQ==","signatures":[{"sig":"MEUCIAIlgOjOYB7T5vXSBdpMNJ50gpVWpCJcraO5LfirYk39AiEAqCl2+Si1jZEEjoAXhfy0Fna/xUIphkt2dilYcBCACZI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCRbvka/+xZd7u/GQJvvfIEXU5wNqn6544t4FGZeycXzQIhAP+LzuoUNJSvkdC5S9dVtznS88nprLslM6wz4EMEaeL5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/white-label-view@5.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":95450},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":"^22.18.0 || >=24.11.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"},"./server":{"types":"./dist/server.d.ts","default":"./dist/server.js","require":"./dist/server.js"},"./jsx-runtime":{"types":"./dist/jsx-runtime.d.ts","default":"./dist/jsx-runtime.js","require":"./dist/jsx-runtime.js"},"./jsx-dev-runtime":{"types":"./dist/jsx-runtime.d.ts","default":"./dist/jsx-runtime.js","require":"./dist/jsx-runtime.js"}},"gitHead":"15ca585e6fca73685866faed2420d334bc37bf2c","scripts":{"lint":"eslint \"src/**/*.ts\" --max-warnings=0","test":"node --run build && node --run test:types && node --run test:unit","audit":"npm audit --audit-level=high","build":"tsc -p tsconfig.json","prepare":"node --run build","coverage":"node --run build && node --run test:types && c8 node --run test:unit","lint:fix":"node --run lint -- --fix","benchmark":"node --run build && node benchmark/view.bench.js","test:unit":"node --test test/*.test.js","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.consumer.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a8121ab5-e831-415e-878f-625775d57b33"}},"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"11.19.0","description":"Framework-independent TypeScript rendering and lifecycle for browser, server, and request-scoped Node.js function applications, with optional JSX and SSR.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"c8":"12.0.0","jsdom":"30.0.1","eslint":"10.10.0","@eslint/js":"10.0.1","typescript":"7.0.2","@babel/core":"8.0.5","@types/node":"24.13.3","@babel/eslint-parser":"8.0.5","@babel/preset-typescript":"8.0.1"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view_5.1.0_1789419768135_0.1552187431048595","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"white-label-view","version":"6.0.0","keywords":["javascript","typescript","view","rendering","jsx","jsx-without-react","dom","server-rendering","ssr","serverless","template-engine","delegated-events","progressive-enhancement","framework-independent","browser","node","server-side","universal"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@6.0.0","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"contributors":[{"url":"https://github.com/bshack","name":"Bill Shackelford","email":"bshackelford@gmail.com"}],"homepage":"https://whitelabeljs.org/docs/view/","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"c8":{"all":true,"lines":100,"exclude":["**/*.d.ts"],"include":["src/**/*.ts"],"perFile":true,"branches":100,"reporter":["text","json","json-summary","lcov"],"functions":100,"statements":100,"checkCoverage":true,"excludeAfterRemap":true},"dist":{"shasum":"cbe9373ede02822c4c09e2bccdaeec60cbfdd144","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-6.0.0.tgz","fileCount":14,"integrity":"sha512-OR2UJ5OmZaN6pGvrdDbfUxJKAFy4ak8mAdGpzzV9dG30sVO8ZaXUELiORukVrZMcmnlpWLq0Lm/ETD1HrJT/SA==","signatures":[{"sig":"MEYCIQC6RNAHMk4aRfX37Ux1u5Dpa2eAF4uGqqOOOnawbwmJXQIhAO0FR6mOPd6bvDd6kUXSYODJGZXnSDpOSrl2xPOhlzzD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDLYZc1dtslTIwaxbebVfh4h2rW1b1lE5i+k8jSaA9IpgIgTUXdx8N6SBa/PVWLdwrhGddkAUpiOjPd5FXPXCO9AZk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/white-label-view@6.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101101},"main":"dist/index.js","_from":"file:/home/runner/work/white-label-view/white-label-view/package/white-label-view-6.0.0.tgz","types":"dist/index.d.ts","engines":{"node":"^22.18.0 || >=24.11.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"},"./server":{"types":"./dist/server.d.ts","default":"./dist/server.js","require":"./dist/server.js"},"./jsx-runtime":{"types":"./dist/jsx-runtime.d.ts","default":"./dist/jsx-runtime.js","require":"./dist/jsx-runtime.js"},"./jsx-dev-runtime":{"types":"./dist/jsx-runtime.d.ts","default":"./dist/jsx-runtime.js","require":"./dist/jsx-runtime.js"}},"scripts":{"lint":"eslint \"src/**/*.ts\" --max-warnings=0","test":"node --run build && node --run test:types && node --run test:unit","audit":"npm audit --audit-level=high","build":"tsc -p tsconfig.json","prepare":"node --run build","coverage":"node --run build && node --run test:types && c8 node --run test:unit","lint:fix":"node --run lint -- --fix","benchmark":"node --run build && node benchmark/view.bench.js","test:unit":"node --test test/*.test.js","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.consumer.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a8121ab5-e831-415e-878f-625775d57b33"}},"_resolved":"/home/runner/work/white-label-view/white-label-view/package/white-label-view-6.0.0.tgz","_integrity":"sha512-OR2UJ5OmZaN6pGvrdDbfUxJKAFy4ak8mAdGpzzV9dG30sVO8ZaXUELiORukVrZMcmnlpWLq0Lm/ETD1HrJT/SA==","repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"11.19.0","description":"Framework-independent TypeScript rendering and lifecycle for browser, server, and request-scoped Node.js function applications, with optional JSX and SSR.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"c8":"12.0.0","jsdom":"30.0.1","eslint":"10.10.0","@eslint/js":"10.0.1","typescript":"7.0.2","@babel/core":"8.0.5","@types/node":"24.13.3","@babel/eslint-parser":"8.0.5","@babel/preset-typescript":"8.0.1"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view_6.0.0_1789516073417_0.753864363290796","host":"s3://npm-registry-packages-npm-production"}},"7.0.0":{"name":"white-label-view","version":"7.0.0","keywords":["javascript","typescript","view","rendering","html","tagged-template","html-template","dom","server-rendering","server-rendered","ssr","serverless","template-engine","delegated-events","progressive-enhancement","incremental-adoption","html-first","framework-independent","browser","node","server-side","universal"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@7.0.0","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"contributors":[{"url":"https://github.com/bshack","name":"Bill Shackelford","email":"bshackelford@gmail.com"}],"homepage":"https://whitelabeljs.org/docs/view/","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"c8":{"all":true,"lines":100,"exclude":["**/*.d.ts"],"include":["src/**/*.ts"],"perFile":true,"branches":100,"reporter":["text","json","json-summary","lcov"],"functions":100,"statements":100,"checkCoverage":true,"excludeAfterRemap":true},"dist":{"shasum":"00c4439bd2ab8dfd3e661fa07376e5affff0d4d9","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-7.0.0.tgz","fileCount":14,"integrity":"sha512-nn658j4D00BgFkoFCHnHg0h1OwdIIzRQvG2V9+NhwLe1XifKEtzbYVjWyAxHrQrMlvieA1AqMFPn7cBGajqVLg==","signatures":[{"sig":"MEUCIE6BYp+j1GNwquNLpHZTVNXSnMU6OfmT71Zaw4scYfzoAiEArUF+Px9bFFklAgoU9MAfVCa0acumN1k+COBtKq4Abts=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHzvkGSfPu0bPZJf0WKUbAb+SNVNatGeiA7YwY9rKeykAiAgMDE9Hk4qmBeAAtNSIIsHdzTHr2WQ8L09vi8qtN/SMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/white-label-view@7.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125742},"main":"dist/index.js","_from":"file:/home/runner/work/white-label-view/white-label-view/package/white-label-view-7.0.0.tgz","types":"dist/index.d.ts","engines":{"node":"^22.18.0 || >=24.11.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"},"./html":{"types":"./dist/html.d.ts","default":"./dist/html.js","require":"./dist/html.js"},"./server":{"types":"./dist/server.d.ts","default":"./dist/server.js","require":"./dist/server.js"}},"scripts":{"lint":"eslint \"src/**/*.ts\" --max-warnings=0","test":"node --run build && node --run test:types && node --run test:unit","audit":"npm audit --audit-level=high","build":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.json","prepare":"node --run build","coverage":"node --run build && node --run test:types && c8 node --run test:unit","lint:fix":"node --run lint -- --fix","benchmark":"node --run build && node benchmark/view.bench.js","test:unit":"node --test test/*.test.js","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.consumer.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a8121ab5-e831-415e-878f-625775d57b33"}},"_resolved":"/home/runner/work/white-label-view/white-label-view/package/white-label-view-7.0.0.tgz","_integrity":"sha512-nn658j4D00BgFkoFCHnHg0h1OwdIIzRQvG2V9+NhwLe1XifKEtzbYVjWyAxHrQrMlvieA1AqMFPn7cBGajqVLg==","repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"11.19.0","description":"Framework-independent TypeScript rendering and lifecycle for progressive enhancement, existing server-rendered DOM, SSR, serverless functions, and tagged HTML templates.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"c8":"12.0.0","jsdom":"30.0.1","eslint":"10.10.0","@eslint/js":"10.0.1","typescript":"7.0.2","@babel/core":"8.0.5","@types/node":"24.13.3","@babel/eslint-parser":"8.0.5","@babel/preset-typescript":"8.0.1"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view_7.0.0_1789674938008_0.20635403611750136","host":"s3://npm-registry-packages-npm-production"}},"7.0.1":{"name":"white-label-view","version":"7.0.1","keywords":["javascript","typescript","view","rendering","html","tagged-template","html-template","dom","server-rendering","server-rendered","ssr","serverless","template-engine","delegated-events","progressive-enhancement","incremental-adoption","html-first","framework-independent","browser","node","server-side","universal"],"author":{"name":"bshack"},"license":"MIT","_id":"white-label-view@7.0.1","maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"contributors":[{"url":"https://github.com/bshack","name":"Bill Shackelford","email":"bshackelford@gmail.com"}],"homepage":"https://whitelabeljs.org/docs/view/","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"c8":{"all":true,"lines":100,"exclude":["**/*.d.ts"],"include":["src/**/*.ts"],"perFile":true,"branches":100,"reporter":["text","json","json-summary","lcov"],"functions":100,"statements":100,"checkCoverage":true,"excludeAfterRemap":true},"dist":{"shasum":"2337827ab943e13b89edc54e195f6a753dacc9e6","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-7.0.1.tgz","fileCount":14,"integrity":"sha512-22KgHhX0SZ+y/R3cMIIqQUxz8jv33iO8uNB+rQskCmQ8E3B0TrKTKadMRvQTG8bnbTbVDh0HJJzaxl+uU5G5Hg==","signatures":[{"sig":"MEYCIQCCpMxqg8glhYyua4GPVAQ72P5TjmMDNcW1cHV7lUcSDgIhALbqbtj/0pM1LzhQIKFCEicSVczv98H0LIOc3DCt/ftd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQClBzGqa0d/1gYDaWlHZSLYAc76s5lUs4U7snFBgDIYbgIhALs1Q+GSfaCsSumH45zcHGtiRjwD1xTdte9lNFuCHlXX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/white-label-view@7.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":136433},"main":"dist/index.js","_from":"file:/home/runner/work/white-label-view/white-label-view/package/white-label-view-7.0.1.tgz","types":"dist/index.d.ts","engines":{"node":"^22.18.0 || >=24.11.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"},"./html":{"types":"./dist/html.d.ts","default":"./dist/html.js","require":"./dist/html.js"},"./server":{"types":"./dist/server.d.ts","default":"./dist/server.js","require":"./dist/server.js"}},"scripts":{"lint":"eslint \"src/**/*.ts\" --max-warnings=0","test":"node --run build && node --run test:types && node --run test:unit","audit":"npm audit --audit-level=high","build":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.json","prepare":"node --run build","coverage":"node --run build && node --run test:types && c8 node --run test:unit","lint:fix":"node --run lint -- --fix","benchmark":"node --run build && node benchmark/view.bench.js","test:unit":"node --test test/*.test.js","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.consumer.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a8121ab5-e831-415e-878f-625775d57b33"}},"_resolved":"/home/runner/work/white-label-view/white-label-view/package/white-label-view-7.0.1.tgz","_integrity":"sha512-22KgHhX0SZ+y/R3cMIIqQUxz8jv33iO8uNB+rQskCmQ8E3B0TrKTKadMRvQTG8bnbTbVDh0HJJzaxl+uU5G5Hg==","repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"11.19.0","description":"Framework-independent TypeScript rendering and lifecycle for progressive enhancement, existing server-rendered DOM, SSR, serverless functions, and tagged HTML templates.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"c8":"12.0.0","jsdom":"30.0.1","eslint":"10.10.0","@eslint/js":"10.0.1","typescript":"7.0.2","@babel/core":"8.0.5","@types/node":"24.13.3","@babel/eslint-parser":"8.0.5","@babel/preset-typescript":"8.0.1"},"_npmOperationalInternal":{"tmp":"tmp/white-label-view_7.0.1_1789682831986_0.9367865790733101","host":"s3://npm-registry-packages-npm-production"}},"7.0.2":{"c8":{"all":true,"lines":100,"exclude":["**/*.d.ts"],"include":["src/**/*.ts"],"perFile":true,"branches":100,"reporter":["text","json","json-summary","lcov"],"functions":100,"statements":100,"checkCoverage":true,"excludeAfterRemap":true},"_id":"white-label-view@7.0.2","bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"dist":{"shasum":"3ebd7d008ee54d232f6e63a1882dcb1548edb6f1","tarball":"https://registry.npmjs.org/white-label-view/-/white-label-view-7.0.2.tgz","fileCount":14,"integrity":"sha512-imHPyPo6UzHn4gm4LLB7t3iqDNALIKpSFdXbk/AIPIXPUAaBbk8Lv0Ovj6/j30Z8mxK3jZE3PdYH6K/jVH9New==","signatures":[{"sig":"MEQCIHvHYGYPxKhDd6eJ4RL4ADxz/ql0KF6C/qJiHK08zlqAAiAVIYtD0ANvBs1N40BA6xZ37x8g/JOgnZrlVC/HSD95ZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAu62NcpUX9vMzjmNrpFr+Sjbsz1uGUuG28QNoVjZrvxAiBNj6RgEGod68SCi0WynzmFJnbZMT+Q507XdK8EP6sMkw=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/white-label-view@7.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":137201},"main":"dist/index.js","name":"white-label-view","_from":"file:/home/runner/work/white-label-view/white-label-view/package/white-label-view-7.0.2.tgz","types":"dist/index.d.ts","author":{"name":"bshack"},"engines":{"node":"^22.18.0 || >=24.11.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"},"./html":{"types":"./dist/html.d.ts","default":"./dist/html.js","require":"./dist/html.js"},"./server":{"types":"./dist/server.d.ts","default":"./dist/server.js","require":"./dist/server.js"}},"license":"MIT","scripts":{"lint":"eslint \"src/**/*.ts\" --max-warnings=0","test":"node --run build && node --run test:types && node --run test:unit","audit":"npm audit --audit-level=high","build":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.json","prepare":"node --run build","coverage":"node --run build && node --run test:types && c8 node --run test:unit","lint:fix":"node --run lint -- --fix","benchmark":"node --run build && node benchmark/view.bench.js","test:unit":"node --test test/*.test.js","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.consumer.json"},"version":"7.0.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a8121ab5-e831-415e-878f-625775d57b33"}},"homepage":"https://whitelabeljs.org/docs/view/","keywords":["javascript","typescript","view","rendering","html","tagged-template","html-template","dom","server-rendering","server-rendered","ssr","serverless","template-engine","delegated-events","progressive-enhancement","incremental-adoption","html-first","framework-independent","browser","node","server-side","universal"],"_resolved":"/home/runner/work/white-label-view/white-label-view/package/white-label-view-7.0.2.tgz","_integrity":"sha512-imHPyPo6UzHn4gm4LLB7t3iqDNALIKpSFdXbk/AIPIXPUAaBbk8Lv0Ovj6/j30Z8mxK3jZE3PdYH6K/jVH9New==","repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"_npmVersion":"11.19.0","description":"Framework-independent TypeScript rendering and lifecycle for progressive enhancement, existing server-rendered DOM, SSR, serverless functions, and tagged HTML templates.","directories":{},"maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"sideEffects":false,"_nodeVersion":"24.21.0","contributors":[{"url":"https://github.com/bshack","name":"Bill Shackelford","email":"bshackelford@gmail.com"}],"_hasShrinkwrap":false,"devDependencies":{"c8":"12.0.0","jsdom":"30.0.1","eslint":"10.10.0","@eslint/js":"10.0.1","typescript":"7.0.2","@babel/core":"8.0.5","@types/node":"24.13.3","@babel/eslint-parser":"8.0.5","@babel/preset-typescript":"8.0.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/white-label-view_7.0.2_1789697337792_0.8004733869432281"}}},"time":{"created":"2016-04-04T19:37:48.146Z","modified":"2026-09-18T02:08:58.211Z","1.0.0":"2016-04-04T19:37:48.146Z","1.0.1":"2016-04-05T01:40:32.985Z","1.0.2":"2016-04-05T18:27:36.422Z","1.0.3":"2016-04-07T01:31:21.644Z","1.0.4":"2016-04-07T01:58:18.256Z","1.0.5":"2016-04-08T02:11:44.054Z","1.0.6":"2016-05-06T03:35:16.859Z","1.0.9":"2016-05-07T02:56:27.659Z","1.0.10":"2016-05-07T03:13:04.842Z","1.0.11":"2016-05-08T17:03:38.660Z","1.0.12":"2016-06-02T17:47:57.884Z","1.0.13":"2016-06-02T19:27:24.170Z","1.0.14":"2016-06-03T15:02:25.066Z","1.0.15":"2016-08-11T19:59:56.767Z","2.0.0":"2016-09-05T03:41:10.846Z","2.0.1":"2016-09-05T04:03:30.935Z","2.0.2":"2017-06-07T15:00:12.134Z","2.0.3":"2017-06-07T15:01:44.708Z","4.0.0":"2026-09-07T17:10:41.038Z","5.1.0":"2026-09-14T21:02:48.229Z","6.0.0":"2026-09-15T23:47:53.501Z","7.0.0":"2026-09-17T19:55:38.099Z","7.0.1":"2026-09-17T22:07:12.066Z","7.0.2":"2026-09-18T02:08:57.880Z"},"bugs":{"url":"https://github.com/bshack/white-label-view/issues"},"author":{"name":"bshack"},"license":"MIT","homepage":"https://whitelabeljs.org/docs/view/","keywords":["javascript","typescript","view","rendering","html","tagged-template","html-template","dom","server-rendering","server-rendered","ssr","serverless","template-engine","delegated-events","progressive-enhancement","incremental-adoption","html-first","framework-independent","browser","node","server-side","universal"],"repository":{"url":"git+https://github.com/bshack/white-label-view.git","type":"git"},"description":"Framework-independent TypeScript rendering and lifecycle for progressive enhancement, existing server-rendered DOM, SSR, serverless functions, and tagged HTML templates.","contributors":[{"url":"https://github.com/bshack","name":"Bill Shackelford","email":"bshackelford@gmail.com"}],"maintainers":[{"name":"bshack","email":"bshackelford@gmail.com"}],"readme":"# white-label-view\n\n> Rendering and lifecycle without a component framework.\n\n`white-label-view` is a framework-independent TypeScript rendering and lifecycle library for browser and server applications. It supports existing DOM adoption, model-driven updates, delegated events, batching, child ownership, server-side rendering, and first-party tagged HTML templates.\n\n[Documentation](https://whitelabeljs.org/docs/view/) · [API reference](https://whitelabeljs.org/api/#view) · [Demo site](https://whitelabeljs.org/)\n\n**Responsibility:** turn state into output and own the lifecycle around that output. Nothing more.\n\n## Why it exists\n\nWhite Label keeps rendering close to the web platform instead of introducing a proprietary component model. View gives rendering, subscriptions, DOM ownership, and teardown a predictable home while leaving state, routing, application events, styling, networking, and higher-level composition outside the package.\n\nUse it independently or compose it with the rest of White Label:\n\n- [`white-label-model`](https://github.com/bshack/white-label-model) provides observable state that View can render.\n- [`white-label-mediator`](https://github.com/bshack/white-label-mediator) carries application events without becoming part of View.\n- [`white-label-router`](https://github.com/bshack/white-label-router) can start and destroy view lifecycles as navigation changes.\n- [`generator-white-label`](https://github.com/bshack/white-label) demonstrates the complete composition.\n\nThe package has no runtime dependency on the other White Label packages. It does not bundle React, Preact, a CSS framework, sanitizer, state library, component framework, or third-party template engine.\n\n## Where it fits\n\nView is a strong fit when an application needs rendering lifecycle **without handing the whole page to a component framework**. Common cases include progressively enhanced public sites, server-rendered commerce or CMS pages, account and form experiences, small application islands, existing applications being modernized incrementally, and server-side HTML rendering.\n\nAn existing server-rendered element can be adopted directly. If an in-place `update()` hook handles the change, no client template is required at all. That makes View useful when the host platform should remain responsible for initial HTML while White Label owns only a narrow interactive region.\n\nFor public content, the recommended model is meaningful initial HTML first, then selective browser enhancement. View intentionally does not provide automatic hydration or a virtual DOM reconciliation layer.\n\nSee the [incremental server-rendered application guide](https://whitelabeljs.org/guides/incremental-javascript-for-server-rendered-apps/) for a complete integration pattern.\n\n## Requirements\n\n- Node.js `^22.18.0` or `>=24.11.0` for installation, development, and server rendering.\n- npm, Yarn, and pnpm are supported for installation; see [`PACKAGE_MANAGERS.md`](PACKAGE_MANAGERS.md).\n- A browser DOM only when using the default browser entrypoint.\n- No `window` or `document` globals are required by `white-label-view/server` or `white-label-view/html`.\n\n## Install\n\n```sh\nnpm install white-label-view\n# or: yarn add white-label-view\n# or: pnpm add white-label-view\n```\n\nBrowser:\n\n```ts\nimport View from 'white-label-view';\n```\n\nServer:\n\n```ts\nimport View from 'white-label-view/server';\n```\n\nFirst-party HTML templates:\n\n```ts\nimport {attributes, html, unsafeHTML} from 'white-label-view/html';\n```\n\n## First-party tagged HTML templates\n\nTagged template literals are the first-party White Label template syntax. They are ordinary JavaScript/TypeScript syntax and require no additional renderer dependency.\n\n```ts\nimport View from 'white-label-view';\nimport {html} from 'white-label-view/html';\n\nconst view = new View({\n    parentElement: document.querySelector('main')!,\n    model: {name: '<Ada & Grace>'},\n    template: data => {\n        const profile = data as {name: string};\n        return html`\n            <section class=\"profile\">\n                <h1>Hello, ${profile.name}</h1>\n            </section>\n        `;\n    }\n}).initialize();\n```\n\nNormal text and quoted-attribute interpolations are HTML-escaped. Nested `html`` ` results and arrays of tagged-template results compose without double escaping. `null`, `undefined`, and booleans render no text; numbers and bigints render as text.\n\nThe tag rejects ambiguous or dangerous interpolation locations such as tag names, unquoted attributes, HTML comments, `<script>` bodies, and `<style>` bodies. Objects, functions, symbols, promises, DOM nodes, and other unsupported values also throw instead of being coerced implicitly.\n\n### Conditional and boolean attributes\n\nUse `attributes()` when a complete attribute should be conditional or when rendering standard boolean attributes:\n\n```ts\nimport {attributes, html} from 'white-label-view/html';\n\nconst template = (data: {complete: boolean; id: number}) => html`\n    <input ${attributes({\n        type: 'checkbox',\n        checked: data.complete,\n        'data-task-id': data.id\n    })}>\n`;\n```\n\n`attributes()` validates attribute names, rejects inline `on*` event-handler attributes and `srcdoc`, quotes values, escapes delimiters, omits `null`/`undefined`/`false`, and renders recognized boolean attributes by presence when `true`.\n\nUse browser event listeners or View's delegated event helper instead of inline HTML event-handler attributes.\n\n### Trusted markup\n\nUse `unsafeHTML()` only for markup that the application already owns, trusts, or has sanitized:\n\n```ts\nimport {html, unsafeHTML} from 'white-label-view/html';\n\nconst template = (trustedMarkup: string) => html`\n    <section>${unsafeHTML(trustedMarkup)}</section>\n`;\n```\n\n`unsafeHTML()` is an explicit trust boundary. Never pass uncontrolled user content to it.\n\nTagged `HTMLMarkup` and `attributes()` results use package-instance-owned identity rather than a public marker. Application code cannot forge trusted markup by constructing a marker-shaped object, and a separate installed copy is not implicitly trusted. When markup crosses package-copy or renderer boundaries, treat the resulting string as an explicit application-owned trust boundary.\n\nHTML escaping is not URL, JavaScript, CSS, or application-policy validation. Applications remain responsible for deciding which `href`, `src`, `action`, style values, and other semantic values are allowed.\n\n## Browser rendering\n\nBrowser View accepts exactly one DOM element, one trusted HTML string, or one `HTMLMarkup` result from `white-label-view/html`.\n\n```ts\nimport View from 'white-label-view';\nimport {Model} from 'white-label-model';\nimport {html} from 'white-label-view/html';\n\nconst model = new Model({name: 'Ada'});\nconst view = new View({\n    parentElement: document.querySelector('main')!,\n    model,\n    template: data => html`<section><h1>Hello, ${(data as {name: string}).name}</h1></section>`\n}).initialize();\n\nmodel.update({name: 'Grace'});\nview.destroy();\n```\n\nString/`HTMLMarkup` output must resolve to exactly one root element. Empty output, text-only output, comments, or multiple top-level elements are rejected.\n\n## Adopt existing server-rendered markup\n\nPass an existing `element` when the server/CMS/commerce platform already rendered the DOM you want to enhance:\n\n```ts\nimport {Model} from 'white-label-model';\nimport View from 'white-label-view';\n\nconst status = document.querySelector<HTMLElement>('[data-filter-status]')!;\nconst filters = new Model({color: ''});\n\nconst view = new View({\n    parentElement: status.parentElement!,\n    element: status,\n    model: filters,\n    update(element, data) {\n        const state = data as {color: string};\n        element.textContent = state.color\n            ? `Color filter: ${state.color}`\n            : 'No color filter selected';\n        return true;\n    }\n}).initialize();\n```\n\nWhen the root is attached, View calls `update(element, data)` before requiring a template. Returning `true` means the current DOM handled the render. If it returns `false`, View falls back to the configured template when one exists.\n\nKeep ownership explicit: View owns the adopted root and its lifecycle, not unrelated host-rendered siblings. `destroy()` removes the root it owns, so a host that intends to keep an element after enhancement teardown should structure ownership accordingly.\n\n## Server rendering\n\n```ts\nimport View from 'white-label-view/server';\nimport {html} from 'white-label-view/html';\n\nconst view = new View({\n    model: {name: 'Ada'},\n    template: data => html`<section><h1>Hello, ${(data as {name: string}).name}</h1></section>`\n}).initialize();\n\nconst markup = view.toString();\nview.destroy();\n```\n\nServer View accepts trusted HTML strings or White Label `HTMLMarkup`. It intentionally does not emulate DOM nodes, delegated events, focus, mounting, or animation frames.\n\nFor request-specific state, create request-specific Model/View instances rather than sharing mutable instances across concurrent requests.\n\n## Serverless and function runtimes\n\nUse `white-label-view/server` when a serverless function should produce HTML. It has no `window` or `document` requirement and returns rendered markup through `toString()`.\n\nCreate mutable View instances per request when they own request-specific models, subscriptions, child views, or output. Warm function processes may serve sequential or overlapping requests, so sharing one mutable View can mix output or lifecycle state unless that lifetime is deliberate.\n\nThe package currently documents Node.js as its supported server runtime. DOM-free rendering is portable by design, but that is not a blanket compatibility claim for every edge provider.\n\n## Third-party template engines\n\n`View` is template-engine agnostic. Any renderer that synchronously returns compatible HTML can be called from `template`; White Label does not require an adapter.\n\nWhite Label pre-tests these representative third-party integrations through both Browser View and Server View:\n\n- Handlebars `4.7.9`\n- Eta `4.6.0`\n- EJS `6.0.1`\n- Mustache `4.2.0`\n- Nunjucks `3.2.4`\n- Pug `3.0.4`\n- KitaJS HTML `4.2.13`\n\n\nSee [`TEMPLATE_ENGINES.md`](TEMPLATE_ENGINES.md) and the [public template-engine guide](https://whitelabeljs.org/docs/view/#template-engines) for the tested matrix, integration contract, and trust boundaries.\n\n## Browser lifecycle\n\n`initialize()` performs a synchronous `render()`. When a model exposes `get()`, View passes `model.get()` to the template/update hook; otherwise it passes the model itself.\n\nFor an attached root, `update(element, data)` gets the first opportunity to handle a render. A successful mount, adoption, or replacement initializes model binding, calls `addListeners()`, then calls `afterMount()`. The root is considered fully mounted only after those hooks succeed. If setup throws, View rolls back View-owned registrations and binding state, calls `removeListeners()` for subclass cleanup, and leaves the lifecycle retryable. Equal HTML output skips reparsing while attached, and equal DOM trees preserve the existing root.\n\nWhen template rendering is used, browser output must resolve to exactly one element. Invalid output throws `TypeError` without replacing the last successful root.\n\n## Events and delegated events\n\nUse `addListeners()` when a View owns browser events. For events inside a rendered root, `this.delegated` keeps listener ownership aligned with the View lifecycle and is cleared automatically when the root is replaced or the View is destroyed.\n\n```ts\nimport View from 'white-label-view';\nimport {html} from 'white-label-view/html';\n\nclass ButtonView extends View {\n    handleClick = () => console.log('Clicked');\n\n    override addListeners() {\n        this.delegated.on('click', '[data-action=\"announce\"]', this.handleClick);\n        return this;\n    }\n}\n\nconst view = new ButtonView({\n    parentElement: document.querySelector('main')!,\n    template: () => html`<section>\n        <button type=\"button\" data-action=\"announce\">Announce</button>\n    </section>`\n}).initialize();\n```\n\nUse `removeListeners()` for direct listeners registered outside the View-owned delegated registry, reusing the same callback reference for registration and cleanup. Because `removeListeners()` can also run while rolling back a partially completed mount, subclass cleanup should tolerate setup that did not finish. `delegate(scope)` creates a separate caller-owned registry when a different event scope is needed.\n\n## In-place updates and focus preservation\n\nUse `update()` when replacing a root would unnecessarily destroy browser state such as focus, selection, or host-owned markup. Return `true` when the update was handled. Return `false` to fall back to normal template rendering. A template is optional when the View adopts an attached root and the update hook handles the render.\n\n## Model binding and batching\n\nModel binding is one-way: model changes trigger rendering; form input is not automatically written back to state.\n\nObservable models use the native EventTarget contract and provide both `addEventListener()` and `removeEventListener()` so View can subscribe to and release `change`. `setModel(nextModel)` moves the binding and renders immediately.\n\nSet `batchUpdates: true` in Browser View to coalesce model-driven renders into one `requestAnimationFrame`. Manual `render()` remains synchronous. Server View always renders model changes synchronously.\n\n## Child ownership\n\n`addChild()` opts a child into parent cleanup ownership; it does not mount the child automatically. Parent root replacement and destruction destroy owned browser children. In-place updates and equal-root renders preserve them. Server View destroys owned children during teardown.\n\n`releaseChild()` transfers cleanup responsibility without destroying the child. Ownership cycles and simultaneous ownership by two parents throw `TypeError`.\n\n## Accessibility and public content\n\nView manages rendering mechanics, not markup quality. Applications remain responsible for semantic HTML, accessible names, keyboard operation, focus visibility, contrast, live regions, and other applicable accessibility requirements.\n\nFor public content, prefer meaningful server-rendered or static initial HTML and use Browser View for progressive enhancement. The package does not provide automatic hydration or claim to reconcile arbitrary server DOM with browser state.\n\n## Browser public API\n\n| Method | Behavior | Returns |\n| --- | --- | --- |\n| `initialize()` | Render/adopt current state and initialize lifecycle. | The same `View` instance. |\n| `render()` | Synchronously update, mount, replace, or adopt the root. | The same View; template output errors throw `TypeError`. |\n| `requestRender()` | Render now or coalesce into an animation frame when batching is enabled. | The same `View` instance. |\n| `setModel(model?)` | Move model binding and render current state. | The same `View` instance. |\n| `delegate(scope?)` | Create a native delegated-event registry. | A new delegated-event registry. |\n| `addChild(child)` | Register child cleanup ownership. | The parent View; throws for cycles/conflicting ownership. |\n| `releaseChild(child)` | Release ownership without destroying the child. | The parent View. |\n| `initializeModelBinding()` | Subscribe to model `change` events. | `undefined`. |\n| `destroyModelBinding()` | Release model subscription and queued work, resetting binding state even if external listener removal throws. | `undefined`. |\n| `addListeners()` | Extension hook during root activation after installation/adoption. | The same View by default. |\n| `removeListeners()` | Extension hook before replacement/destruction and during failed-mount rollback. | The same View by default. |\n| `afterMount()` | Extension hook after insertion/adoption and listener setup. | The same View by default. |\n| `destroy()` | Best-effort release of listeners, binding, children, queued work, and DOM root. | The same View after successful cleanup; cleanup failures are reported after remaining cleanup is attempted. |\n\nDelegated-event registry methods `on()`, `off()`, and `clear()` return the registry for chaining.\n\n### Lifecycle failure handling\n\nMount setup is transactional from View's perspective: failed listener or mount hooks trigger best-effort rollback, preserve the original setup failure together with cleanup failures when necessary, and allow a later render to retry.\n\nTeardown is also best-effort. `destroy()` attempts each independent cleanup phase even when an earlier phase fails, resets internal lifecycle state, and then reports a single cleanup error or an `AggregateError` when multiple material failures occurred. After teardown attempts finish, the View holds a fresh detached root and delegated registry so the instance can be initialized again.\n\n## Server public API\n\n| Method | Behavior | Returns |\n| --- | --- | --- |\n| `initialize()` | Render current state and initialize lifecycle. | The same server View. |\n| `render()` | Render the template into stored HTML. | The same server View; throws for unsupported output. |\n| `toString()` | Return the most recently rendered HTML. | The HTML string, or `''` when no output is stored. |\n| `setModel(model?)` | Move model binding and render new state. | The same server View. |\n| `addChild(child)` | Register child cleanup ownership. | The parent server View. |\n| `releaseChild(child)` | Release ownership without destroying the child. | The same server View. |\n| `initializeModelBinding()` | Subscribe to model `change`. | The same server View. |\n| `destroyModelBinding()` | Release the model subscription, resetting internal binding state before external listener removal so the instance remains reusable even if that external cleanup throws. | The same server View. |\n| `destroy()` | Destroy children, release subscriptions, and clear output. | The same server View. |\n\n## HTML template API\n\n`white-label-view/html` exports:\n\n| Export | Purpose |\n| --- | --- |\n| `html` | Build escaped, composable `HTMLMarkup` from a tagged template literal. |\n| `attributes` | Render validated conditional/boolean attributes at an opening-tag attribute boundary. |\n| `unsafeHTML` | Insert caller-owned trusted/sanitized markup without escaping. |\n| `isHTMLMarkup` | Identify tagged-template output created by this installed package instance; marker-shaped objects and separate copies are not implicitly trusted. |\n| `HTMLMarkup` | TypeScript interface for the first-party markup result. |\n\n## TypeScript\n\nAll entrypoints use strict TypeScript and emit JavaScript, source maps, and declarations into `dist`.\n\n`View.Settings`, `View.Model`, browser listener/settings types, and `HTMLMarkup` expose the supported contracts. Template data is `unknown`; application code should narrow it before reading domain fields.\n\n## Development\n\n```sh\nnpm ci --ignore-scripts\nnpm run build\nnpm run lint\nnpm run typecheck\nnpm test\nnpm run coverage\nnpm run audit\nnpm pack --dry-run\n```\n\nCoverage enforces 100% statements, branches, functions, and lines per implementation file. CI verifies the documented Node minimum and primary Node line, builds authored source, verifies public package subpaths from the packed artifact, tests npm/Yarn/pnpm compatibility, and runs the isolated template-engine matrix.\n\nEdit `src/*.ts` and regenerate `dist`; do not edit generated files directly.\n\n## Design boundary\n\nView owns rendering and rendering lifecycle. It intentionally does not own application state, routing, networking, CSS, sanitization policy, or application-wide events. Browser-specific behavior stays browser-specific; portable rendering concepts stay portable.\n","readmeFilename":"README.md"}