{"_id":"tvdml","_rev":"44-068157409c4f0e0201379d67282abd78","name":"tvdml","description":"Small library for creating declarative apps for tvOS with React.js using TVML and TVJS","dist-tags":{"latest":"6.3.0","old":"5.1.1"},"versions":{"1.0.0":{"name":"tvdml","version":"1.0.0","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"src/index.js","engine-strict":true,"engines":{"node":">=4.0.0"},"scripts":{"test":"mocha --reporter spec --timeout 4000 --compilers js:babel-register"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-preset-es2015":"^6.9.0","babel-register":"^6.18.0","babelify":"^7.3.0","browserify":"^13.0.1","browserify-incremental":"^3.1.1","gulp":"^3.9.1","gulp-rm":"^1.0.1","gulp-sourcemaps":"^1.6.0","gulp-uglify":"^1.5.4","gulp-util":"^3.0.7","gulp-watch":"^4.3.8","mocha":"^3.1.2","pretty-bytes":"^3.0.1"},"dependencies":{"es6-promise":"^3.2.1","object-assign":"^4.1.0","virtual-dom":"github:a-ignatov-parc/virtual-dom#v2.1.1-tvml.3"},"gitHead":"870dfa9a96a26ff74d7e3f932e11d65ca40c25ec","_id":"tvdml@1.0.0","_shasum":"b93d4954c401fb8a9c9433d4da216fac472039c4","_from":".","_npmVersion":"2.15.5","_nodeVersion":"4.4.5","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"dist":{"shasum":"b93d4954c401fb8a9c9433d4da216fac472039c4","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-1.0.0.tgz","integrity":"sha512-Lf9OFnkC28CyydLFBoHn2+EFeyPPpSzPEHDQLd38RKzs6OVBsctYaA9nN857361B9o5iYVpnzbSUz9H+fX08MA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDr0QN3y7ach9WyLEmHahnCWkl5cVWhc/a1QN3MeIYFyAIhAOS+XEfL3T2xwD6BxVtq5gQURx1cjK08mgVwNMyzkd2F"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tvdml-1.0.0.tgz_1477982303275_0.7245696033351123"},"directories":{}},"1.0.1":{"name":"tvdml","version":"1.0.1","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":">=4.0.0"},"scripts":{"test":"mocha --reporter spec --timeout 4000 --compilers js:babel-register","prepublish":"gulp --production"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-preset-es2015":"^6.9.0","babel-register":"^6.18.0","babelify":"^7.3.0","browserify":"^13.0.1","browserify-incremental":"^3.1.1","gulp":"^3.9.1","gulp-rm":"^1.0.1","gulp-sourcemaps":"^1.6.0","gulp-uglify":"^1.5.4","gulp-util":"^3.0.7","gulp-watch":"^4.3.8","mocha":"^3.1.2","pretty-bytes":"^3.0.1"},"dependencies":{"es6-promise":"^3.2.1","object-assign":"^4.1.0","virtual-dom":"github:a-ignatov-parc/virtual-dom#v2.1.1-tvml.3"},"files":["dist"],"gitHead":"70d3a1027432de45fb325f565803587ea4e70b29","_id":"tvdml@1.0.1","_shasum":"3d9c7dc4f277b7e34dfa019ead75d016baf49c9c","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.6.2","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"dist":{"shasum":"3d9c7dc4f277b7e34dfa019ead75d016baf49c9c","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-1.0.1.tgz","integrity":"sha512-uhndnt3VT3hV9PaLaPlsHccc9FWcYFIMy4hBjxacvD2u/m8LTSO8j7s0ViDKjJeOk9/IFXHK8ZWkUVTCmIhvew==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICq0sop9dh+W0rrAVii4mYwdxt6DL5G/f1dPJMbnk3CdAiEA4aozTYrheZ9+cLPUuJoxHjd4/ERGp+nzR849t+VSkJI="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tvdml-1.0.1.tgz_1483441214173_0.7289754238445312"},"directories":{}},"1.0.2":{"name":"tvdml","version":"1.0.2","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":">=4.0.0"},"scripts":{"test":"mocha --reporter spec --timeout 4000 --compilers js:babel-register","prepublish":"gulp --production"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-preset-es2015":"^6.9.0","babel-register":"^6.18.0","babelify":"^7.3.0","browserify":"^13.0.1","browserify-incremental":"^3.1.1","gulp":"^3.9.1","gulp-rm":"^1.0.1","gulp-sourcemaps":"^1.6.0","gulp-uglify":"^1.5.4","gulp-util":"^3.0.7","gulp-watch":"^4.3.8","mocha":"^3.1.2","pretty-bytes":"^3.0.1"},"dependencies":{"es6-promise":"^3.2.1","object-assign":"^4.1.0","virtual-dom":"github:a-ignatov-parc/virtual-dom#v2.1.1-tvml.3"},"files":["dist"],"gitHead":"6a686d95c1145ec6adc8cb017f350f8b96dcae51","_id":"tvdml@1.0.2","_shasum":"9012d0483ae6952fdf715f6daf3a886085fe47f6","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.6.2","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"dist":{"shasum":"9012d0483ae6952fdf715f6daf3a886085fe47f6","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-1.0.2.tgz","integrity":"sha512-VDm2/lz82o9umsAJ6ztmBMoESBB0ICiE5qoRVDWyTb2F+AyChrRzrC+0UAJlVUsb/6F/qC+hY8O9vXEnFB7bNw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDzoPa9d64peeUwISJNw/NlMOg0Sgr4iEQybD9mn2tuwgIhANhdEICiH6Zw327PxcayHZ1/QdnjM5IMcp1cAQdzi9pG"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tvdml-1.0.2.tgz_1483444262571_0.8497618222609162"},"directories":{}},"1.0.3":{"name":"tvdml","version":"1.0.3","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":">=4.0.0"},"scripts":{"test":"mocha --reporter spec --timeout 4000 --compilers js:babel-register","prepublish":"gulp --production"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-preset-es2015":"^6.9.0","babel-register":"^6.18.0","babelify":"^7.3.0","browserify":"^13.0.1","browserify-incremental":"^3.1.1","gulp":"^3.9.1","gulp-rm":"^1.0.1","gulp-sourcemaps":"^1.6.0","gulp-uglify":"^1.5.4","gulp-util":"^3.0.7","gulp-watch":"^4.3.8","mocha":"^3.1.2","pretty-bytes":"^3.0.1"},"dependencies":{"es6-promise":"^3.2.1","object-assign":"^4.1.0","virtual-dom":"github:a-ignatov-parc/virtual-dom#v2.1.1-tvml.3"},"files":["dist"],"gitHead":"af8f58335cdc98c47f341c00ddaa6910a8181549","_id":"tvdml@1.0.3","_shasum":"994eb325a27cd6474798d480c67589e61fa5b17f","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.6.2","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"dist":{"shasum":"994eb325a27cd6474798d480c67589e61fa5b17f","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-1.0.3.tgz","integrity":"sha512-YjyHtpdqmiC39Z+2Y8Jl9MGWwSkRN8+QjlJ/Ic00UlffDbfS5BGAmHfVPrpFZuqcqxILMWE4r6xK08BBMikKvg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICxlVA+W3Mcg0PtVw3zgfeHhOni6Q2jGSeQiwXCds+heAiALhhijfx8/Hs1ZIuTIxnYB2gZa0GfTv5/gs0HGYvnllQ=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tvdml-1.0.3.tgz_1483475376043_0.9786245136056095"},"directories":{}},"1.1.0":{"name":"tvdml","version":"1.1.0","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","module":"src/index.js","engine-strict":true,"engines":{"node":">=4.0.0"},"scripts":{"build":"webpack --progress","watch":"webpack --watch --progress","release":"npm run clear && ./node_modules/.bin/webpack -p --progress","test":"mocha --reporter spec --timeout 4000 --compilers js:babel-register","clear":"rm -rf ./dist","prepublish":"npm run release"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-core":"^6.22.1","babel-loader":"^6.2.10","babel-preset-es2015":"^6.22.0","babel-register":"^6.22.0","mocha":"^3.1.2","webpack":"^2.2.1"},"dependencies":{"es6-promise":"^4.0.5","object-assign":"^4.1.0","virtual-dom":"github:a-ignatov-parc/virtual-dom#v2.1.1-tvml.3"},"files":["dist"],"gitHead":"771681f80b84f46f7be37c45afb023a574f1f5a1","_id":"tvdml@1.1.0","_shasum":"6c85bd0f2611d521a525329573e8c134f8acfa6f","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.6.2","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"dist":{"shasum":"6c85bd0f2611d521a525329573e8c134f8acfa6f","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-1.1.0.tgz","integrity":"sha512-0t3fvr/iAAl1BkyYbm8NtT37NDKV+dcaugBxnc4ppS/TDIhqefto8Osc9BPDtH0OWwscPQVaDet/NvHIWHmnDg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/gvpvDRiGffxWNgYE2aCtj89mx892b2mgZad+Mio18wIgEME5F6Wdfg0DIv/g3xW2O1syEQQLZ1Dso2ktSZDlLCs="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tvdml-1.1.0.tgz_1486445530836_0.9403510428965092"},"directories":{}},"1.2.0":{"name":"tvdml","version":"1.2.0","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","module":"src/index.js","engine-strict":true,"engines":{"node":">=4.0.0"},"scripts":{"build":"webpack --progress","watch":"webpack --watch --progress","release":"npm run clear && ./node_modules/.bin/webpack -p --progress","test":"mocha --reporter spec --timeout 4000 --compilers js:babel-register","clear":"rm -rf ./dist","prepublish":"npm run release"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-core":"^6.22.1","babel-loader":"^6.2.10","babel-preset-es2015":"^6.22.0","babel-register":"^6.22.0","mocha":"^3.1.2","webpack":"^2.2.1"},"dependencies":{"es6-promise":"^4.0.5","object-assign":"^4.1.0","virtual-dom":"github:a-ignatov-parc/virtual-dom#v2.1.1-tvml.3"},"files":["dist"],"gitHead":"d6fce2cb5feb74d03fe6a96d8d1cfab4ff859bc0","_id":"tvdml@1.2.0","_shasum":"332c6c2efe67c78d88bb48d51459f6976aa87a53","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.6.2","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"dist":{"shasum":"332c6c2efe67c78d88bb48d51459f6976aa87a53","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-1.2.0.tgz","integrity":"sha512-gF7iofIX86ovUPCxe+SC8shk+xBAHGzaMg7U2Z3TM76ZprrjVp3Dgl5G3IuJC61wjmMS4xfFbup+PycSG+UN5Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQy2N04CT1wzCj0VioAHFlnWqNXyj4SaoxKKFDDEoUkQIgGERU4RdemKT/u3q4cF1DweZfPyiro4qmqqOQCS0Vh7A="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tvdml-1.2.0.tgz_1487798924626_0.3945659657474607"},"directories":{}},"1.2.1":{"name":"tvdml","version":"1.2.1","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","module":"src/index.js","engine-strict":true,"engines":{"node":">=4.0.0"},"scripts":{"build":"webpack --progress","watch":"webpack --watch --progress","release":"npm run clear && ./node_modules/.bin/webpack -p --progress","test":"mocha --reporter spec --timeout 4000 --compilers js:babel-register","clear":"rm -rf ./dist","prepublish":"npm run release"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-core":"^6.22.1","babel-loader":"^6.2.10","babel-preset-es2015":"^6.22.0","babel-register":"^6.22.0","mocha":"^3.1.2","webpack":"^2.2.1"},"dependencies":{"es6-promise":"^4.0.5","object-assign":"^4.1.0","virtual-dom":"github:a-ignatov-parc/virtual-dom#v2.1.1-tvml.3"},"files":["dist"],"gitHead":"e10f3132ebb7de770179472ce37ef91ab7606bd5","_id":"tvdml@1.2.1","_shasum":"dc73db7962487e38c12535c02b583191a67b0df5","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.6.2","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"dist":{"shasum":"dc73db7962487e38c12535c02b583191a67b0df5","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-1.2.1.tgz","integrity":"sha512-jKq/b0GxbZbHE3lEfR4MznbGXUQubPvlWaVYrZTGliJPzOgHJvpFpUghrus34xfFuGkE55HjGJP7L9Jw50APDQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEhExWO0MvqRSqTVTtp/fmvqYGAPIsRtRxS2jbKFIRynAiAadH9WXokXjeVxT5asB85YjHHYsk3SoprTBJbkjCH1lg=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tvdml-1.2.1.tgz_1487821904818_0.9872169382870197"},"directories":{}},"2.0.0":{"name":"tvdml","version":"2.0.0","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","module":"src/index.js","engine-strict":true,"engines":{"node":">=4.0.0"},"scripts":{"build":"webpack --progress","watch":"webpack --watch --progress","release":"npm run clear && ./node_modules/.bin/webpack -p --progress","test":"mocha --reporter spec --timeout 4000 --compilers js:babel-register","clear":"rm -rf ./dist","prepublish":"npm run release"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-core":"^6.22.1","babel-loader":"^6.2.10","babel-preset-es2015":"^6.22.0","babel-register":"^6.22.0","mocha":"^3.1.2","webpack":"^2.2.1"},"dependencies":{"es6-promise":"^4.0.5","object-assign":"^4.1.0","virtual-dom":"github:a-ignatov-parc/virtual-dom#v2.1.1-tvml.3"},"files":["dist"],"gitHead":"7b2064e9c941f5f62bd9bbe90f6d59ffdf5b41de","_id":"tvdml@2.0.0","_shasum":"0a1b37f9aff439fa72e9f806bd1e51361adf2876","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.6.2","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"dist":{"shasum":"0a1b37f9aff439fa72e9f806bd1e51361adf2876","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-2.0.0.tgz","integrity":"sha512-kezY1x8KddRT9npVu2qV05ciVOD5jpQD4Bv+KJF/X4m2SZQ61ttb2C9r5bOQt/BTsgXOgQL+6rJY6/1p7Ud59A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICqLgXdvbdTXHKz+CRAMQD4Mh5ZGS8Oop8iGc6escNSSAiAGrJCqVUAI/cqU21WDPIv3xS2ED3Cv6vWB2w9yfqBK4g=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tvdml-2.0.0.tgz_1488589883939_0.8552444654051214"},"directories":{}},"2.0.1":{"name":"tvdml","version":"2.0.1","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","module":"src/index.js","engine-strict":true,"engines":{"node":">=4.0.0"},"scripts":{"build":"webpack --progress","watch":"webpack --watch --progress","release":"npm run clear && ./node_modules/.bin/webpack -p --progress","test":"mocha --reporter spec --timeout 4000 --compilers js:babel-register","clear":"rm -rf ./dist","prepublish":"npm run release"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-core":"^6.22.1","babel-loader":"^6.2.10","babel-preset-es2015":"^6.22.0","babel-register":"^6.22.0","mocha":"^3.1.2","webpack":"^2.2.1"},"dependencies":{"es6-promise":"^4.0.5","object-assign":"^4.1.0","virtual-dom":"github:a-ignatov-parc/virtual-dom#v2.1.1-tvml.3"},"files":["dist"],"gitHead":"eacbb2df0d185b929ec7b9a2ea0c651479716c0f","_id":"tvdml@2.0.1","_shasum":"0caab4049a01d198d8f2834385beb5d95d75b28d","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.6.2","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"dist":{"shasum":"0caab4049a01d198d8f2834385beb5d95d75b28d","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-2.0.1.tgz","integrity":"sha512-Z8LFHtqN0qIsvHnFLwiljcJ7UlPH0XkNLgY67Z+lCUKlCudBBPRwNt6xgrfYJbrWz9vmszDyWCiLb+zpvFTKig==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0IGPxFepIZVgnEBfh7wauJlLqRRK9Ashlll4DyPpp8gIhAMYrVDfOhRJpTYgd3DN3Ak4u6pnWzOHNddmOdVqZCMXq"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tvdml-2.0.1.tgz_1488596241069_0.48118490679189563"},"directories":{}},"2.0.2":{"name":"tvdml","version":"2.0.2","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","module":"src/index.js","engine-strict":true,"engines":{"node":">=4.0.0"},"scripts":{"build":"webpack --progress","watch":"webpack --watch --progress","release":"npm run clear && ./node_modules/.bin/webpack -p --progress","test":"mocha --reporter spec --timeout 4000 --compilers js:babel-register","clear":"rm -rf ./dist","prepublish":"npm run release"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-core":"^6.22.1","babel-loader":"^6.2.10","babel-preset-es2015":"^6.22.0","babel-register":"^6.22.0","mocha":"^3.1.2","webpack":"^2.2.1"},"dependencies":{"es6-promise":"^4.0.5","object-assign":"^4.1.0","virtual-dom":"github:a-ignatov-parc/virtual-dom#v2.1.1-tvml.3"},"files":["dist"],"gitHead":"7a8168f992038b834f2c024f60045d74e085691a","_id":"tvdml@2.0.2","_shasum":"b1519027d87a12231935a2f7ec64baf95011ad4c","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.6.2","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"dist":{"shasum":"b1519027d87a12231935a2f7ec64baf95011ad4c","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-2.0.2.tgz","integrity":"sha512-ILVegcO2P787vIjatiEDrdvODdJjMF0yvHh0wO7J9se4qRKaj+G0q6rh3QKa7fXwp3XwiBhATv7LAcn4qwOSDg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIChDJUlIq8byFkVGJd+gxU+V0zG2/dJ1PL1GMb9gQPjmAiANUlEe+A+MD5sJcv1sjLJGHAulM8XgrOsuzU0CzoDyeQ=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tvdml-2.0.2.tgz_1488833138739_0.8925262005068362"},"directories":{}},"2.0.3":{"name":"tvdml","version":"2.0.3","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","module":"src/index.js","engine-strict":true,"engines":{"node":">=4.0.0"},"scripts":{"build":"webpack --progress","watch":"webpack --watch --progress","release":"npm run clear && ./node_modules/.bin/webpack -p --progress","test":"mocha --reporter spec --timeout 4000 --compilers js:babel-register","clear":"rm -rf ./dist","prepublish":"npm run release"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-core":"^6.22.1","babel-loader":"^6.2.10","babel-preset-es2015":"^6.22.0","babel-register":"^6.22.0","mocha":"^3.1.2","webpack":"^2.2.1"},"dependencies":{"es6-promise":"^4.0.5","object-assign":"^4.1.0","virtual-dom":"github:a-ignatov-parc/virtual-dom#v2.1.1-tvml.3"},"files":["dist"],"gitHead":"1dcdbf760983c45e3f2bed7a61aa780a18d1f4c2","_id":"tvdml@2.0.3","_shasum":"7164e34c413cb78f952dc055b90e767d9f1ba64c","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.6.2","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"dist":{"shasum":"7164e34c413cb78f952dc055b90e767d9f1ba64c","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-2.0.3.tgz","integrity":"sha512-/nSIqJx5Km/iG7EIRkRHg9V7IbKGY8rZvTiB3nbgAnBYIcukGkHEAQArwZIZyvNoPHQgUhIFcohAoZxgxprAYg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGxVAofFFKFs3cz3sXC7JgTn8eyWNS4Nw3h8RUBELjuAIhANPc5h7u0TNLfcC2qGorV7sTtxjGh092i95+Q63z6z0p"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tvdml-2.0.3.tgz_1488929462029_0.22750298329629004"},"directories":{}},"2.0.4":{"name":"tvdml","version":"2.0.4","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","module":"src/index.js","engine-strict":true,"engines":{"node":">=4.0.0"},"scripts":{"build":"webpack --progress","watch":"webpack --watch --progress","release":"npm run clear && ./node_modules/.bin/webpack -p --progress","test":"mocha --reporter spec --timeout 4000 --compilers js:babel-register","clear":"rm -rf ./dist","prepublish":"npm run release"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-core":"^6.22.1","babel-loader":"^6.2.10","babel-preset-es2015":"^6.22.0","babel-register":"^6.22.0","mocha":"^3.1.2","webpack":"^2.2.1"},"dependencies":{"es6-promise":"^4.0.5","object-assign":"^4.1.0","virtual-dom":"github:a-ignatov-parc/virtual-dom#v2.1.1-tvml.3"},"files":["dist"],"gitHead":"5132fef442f7c32ab29727c029cc9d04d434cef9","_id":"tvdml@2.0.4","_shasum":"20abd5a00bda155019d5dfec2f9175099b9b86da","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.7.0","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"shasum":"20abd5a00bda155019d5dfec2f9175099b9b86da","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-2.0.4.tgz","integrity":"sha512-dB5+fW7qhOsYoMZYOBpbNARkNdpezhX/qdM0lg1SmoT/J8Y562GcsFKr7GrM+wOJDQXrtoTULEXAOjNRMBC04Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA4hLqbSlxprf+isnoGwvHALvRQRxgDtLEZrikE5NnkBAiBmwOWyuAtx9zoWCpW4rSlzKIzqdeSWK8f6XepaHwzEyA=="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml-2.0.4.tgz_1507339093348_0.15525132650509477"},"directories":{}},"3.0.1":{"name":"tvdml","version":"3.0.1","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","module":"src/index.js","engine-strict":true,"engines":{"node":"^6.0.0","yarn":">=1.0.0"},"scripts":{"install-deps":"npm run yarn:install && npm run yarn:install-deps","yarn:install":"npm i yarn@$npm_package_engines_yarn","yarn:install-deps":"yarn","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"mocha --reporter spec --timeout 4000 --require babel-register"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-core":"^6.22.1","babel-loader":"^7.1.2","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-es2015":"^6.24.1","babel-register":"^6.26.0","eslint":"^4.9.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","mocha":"^3.1.2","mocha-junit-reporter":"^1.15.0","webpack":"^3.8.1"},"dependencies":{"@a-ignatov-parc/virtual-dom":"^2.2.0"},"files":["dist"],"gitHead":"762b10f31ea177f9f31c23ebd171c03567f61d6b","_id":"tvdml@3.0.1","_shasum":"9951127e4c2638aaf2b030ed2c0b2d277f815726","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"shasum":"9951127e4c2638aaf2b030ed2c0b2d277f815726","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-3.0.1.tgz","integrity":"sha512-pmUU4XNVFGodrfOrXJ3tBQZvFHLqV/ag5lt5UqVOHTLNEWdCZcZXXVxXobqxnMxeSt55kBtYaP+2synMmB9J/w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEF8QRS8axFYXwm743KP11htjgRHiTqpDmVi52XPYtjEAiEAjtuxXtiXl7NIKpBuQwFcsGFip1eN/zO97OE54KDjk6M="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml-3.0.1.tgz_1508629854498_0.22703321743756533"},"directories":{}},"3.0.2":{"name":"tvdml","version":"3.0.2","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","module":"src/index.js","engine-strict":true,"engines":{"node":"^6.0.0","yarn":">=1.0.0"},"scripts":{"install-deps":"npm run yarn:install && npm run yarn:install-deps","yarn:install":"npm i yarn@$npm_package_engines_yarn","yarn:install-deps":"yarn","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"mocha --reporter spec --timeout 4000 --require babel-register"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-core":"^6.22.1","babel-loader":"^7.1.2","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-es2015":"^6.24.1","babel-register":"^6.26.0","eslint":"^4.9.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","mocha":"^3.1.2","mocha-junit-reporter":"^1.15.0","webpack":"^3.8.1"},"dependencies":{"@a-ignatov-parc/virtual-dom":"^2.2.0"},"files":["dist"],"gitHead":"7d0743320881f89c39a5c6a8550a12a1de38610b","_id":"tvdml@3.0.2","_shasum":"cd8d8e76e08bd8f11c5372e4818d4683290b7a18","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"shasum":"cd8d8e76e08bd8f11c5372e4818d4683290b7a18","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-3.0.2.tgz","integrity":"sha512-EAEeG9c4CVgE8Z+LEXyECsPdu2tYExuFEYjALhoOL9yx/ki6PDVr8lXa1na1T3lZ1gTAk0gpxafCgK3yDVTEKw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCimb3kK0LlmDTz4mC2ubB5yUOkpGd66iHEE+woriNUTgIgTf+sTsaSbWnjXy7+ZEI45NzmYK7ATi5OANpVaifCEOk="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml-3.0.2.tgz_1508632614758_0.6106169675476849"},"directories":{}},"3.0.3":{"name":"tvdml","version":"3.0.3","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","module":"src/index.js","engine-strict":true,"engines":{"node":"^6.0.0","yarn":">=1.0.0"},"scripts":{"install-deps":"npm run yarn:install && npm run yarn:install-deps","yarn:install":"npm i yarn@$npm_package_engines_yarn","yarn:install-deps":"yarn","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"mocha --reporter spec --timeout 4000 --require babel-register"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-core":"^6.22.1","babel-loader":"^7.1.2","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-es2015":"^6.24.1","babel-register":"^6.26.0","eslint":"^4.9.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","mocha":"^3.1.2","mocha-junit-reporter":"^1.15.0","webpack":"^3.8.1"},"dependencies":{"@a-ignatov-parc/virtual-dom":"^2.2.0"},"files":["dist","src"],"gitHead":"e5cb932c8d5f3145f329b1f2da5df5f7a924f45f","_id":"tvdml@3.0.3","_shasum":"5de697889579559bd581b68c9920a92137ce1be3","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"shasum":"5de697889579559bd581b68c9920a92137ce1be3","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-3.0.3.tgz","integrity":"sha512-Pc2ML8Z5/3NctAIxM3v1BDcwVh3eAtif6Rr4A82PbhqUXHSaOoEWML2tk6K4BHLFnYpiOuwYHzdpAzhESTyQ2A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdlWlp0wDe0zJ8fmPEeGP+Km3HX9CX/1vKxti3uUMhbAIhAIV1FHwjHwx6sQLE39swKJ7pduSif7GwfmJ8j2GdPEhC"}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml-3.0.3.tgz_1508633208298_0.2421534073073417"},"directories":{}},"3.0.4":{"name":"tvdml","version":"3.0.4","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":"^6.0.0","yarn":">=1.0.0"},"scripts":{"install-deps":"npm run yarn:install && npm run yarn:install-deps","yarn:install":"npm i yarn@$npm_package_engines_yarn","yarn:install-deps":"yarn","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"mocha --reporter spec --timeout 4000 --require babel-register"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-core":"^6.22.1","babel-loader":"^7.1.2","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-es2015":"^6.24.1","babel-register":"^6.26.0","eslint":"^4.9.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","mocha":"^3.1.2","mocha-junit-reporter":"^1.15.0","webpack":"^3.8.1"},"dependencies":{"@a-ignatov-parc/virtual-dom":"^2.2.0"},"files":["dist"],"gitHead":"b67030b2decc61303296e8c7fa50d37629ad4e74","_id":"tvdml@3.0.4","_shasum":"8788bbb5ba85d27f31a12b45881ec07ca804ab7c","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"shasum":"8788bbb5ba85d27f31a12b45881ec07ca804ab7c","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-3.0.4.tgz","integrity":"sha512-EBt/v6IaHm4ecezpR2ajv21iDN2D7w1Uh72dBdVHtgncqXG2MIM5TE1ZryuiNk9XNZf94RiPAdy56tgoFz1dPg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCnxCpZaFlzUNyf3rkZRA95bCTt3Fc0hfE/t3T7JgEVSQIgOHzvEutjClaQsQYobGdnXbOjGRr1NTBspyXBRi+oORU="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml-3.0.4.tgz_1508633789437_0.6148849246092141"},"directories":{}},"4.0.0":{"name":"tvdml","version":"4.0.0","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":"^6.0.0","yarn":">=1.0.0"},"scripts":{"install-deps":"npm run yarn:install && npm run yarn:install-deps","yarn:install":"npm i yarn@$npm_package_engines_yarn","yarn:install-deps":"yarn","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-core":"^6.22.1","babel-loader":"^7.1.2","babel-minify-webpack-plugin":"^0.2.0","babel-plugin-transform-es2015-modules-commonjs":"^6.26.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.9.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","mocha":"^3.1.2","mocha-junit-reporter":"^1.15.0","webpack":"^3.8.1"},"dependencies":{"@a-ignatov-parc/virtual-dom":"^2.2.0"},"files":["dist"],"gitHead":"a5defa2e2b91588d9af666d3d3f5e710272da728","_id":"tvdml@4.0.0","_shasum":"c458da2ea5f6e7c6c4124e08e4d4d9307998bb49","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"shasum":"c458da2ea5f6e7c6c4124e08e4d4d9307998bb49","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-4.0.0.tgz","integrity":"sha512-Q0yTpBDJVrRbiIhGIfKq9NTi9CgRWeiynuRiumORetiABYszAGzi+VYbFmYIiQWM/AyK7cEdxNnctM6anhP1vg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDyVr73ieECkuwhahMOogG4cGqCaUYXqwmS3800L02kNQIhAIlbVfxjaSlYHYt+B2pUtyzR8jkvQUts+lG3B89TQ+LN"}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml-4.0.0.tgz_1511707459400_0.7469180529005826"},"directories":{}},"4.0.1":{"name":"tvdml","version":"4.0.1","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":"^6.0.0","yarn":">=1.0.0"},"scripts":{"install-deps":"npm run yarn:install && npm run yarn:install-deps","yarn:install":"npm i yarn@$npm_package_engines_yarn","yarn:install-deps":"yarn","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-core":"^6.22.1","babel-loader":"^7.1.2","babel-minify-webpack-plugin":"^0.2.0","babel-plugin-transform-es2015-modules-commonjs":"^6.26.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.9.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","mocha":"^3.1.2","mocha-junit-reporter":"^1.15.0","webpack":"^3.8.1"},"dependencies":{"@a-ignatov-parc/virtual-dom":"^2.2.0"},"files":["dist"],"gitHead":"353c50b2ae30c0c471c7011b1d85c1454d45d50d","_id":"tvdml@4.0.1","_shasum":"126910c7c492a3e0dce440e60c7e651814e6624d","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"shasum":"126910c7c492a3e0dce440e60c7e651814e6624d","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-4.0.1.tgz","integrity":"sha512-JxwlX9TUiD2TSJbLGBc5KAZZiPPFKF1Bo2AtJ7XHApDlgml2T/d+Z0uVbnARH+W0YsFucfKWcGc/ixe0IapXXA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHoYbR7Wtn+HU7kpVt+vRyo/JXugFHX0DTH9ODwYJkRaAiEA8tSuTKqmXG5pXtNk40RdCXaiUpumdqEJWPhQqMDtPAE="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml-4.0.1.tgz_1511770111138_0.1718783788383007"},"directories":{}},"5.0.0":{"name":"tvdml","version":"5.0.0","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":">=6.10.0","yarn":">=1.3.0"},"scripts":{"install-deps":"npm run yarn:install && npm run yarn:install-deps","yarn:install":"npm i --no-save --no-package-lock yarn@$npm_package_engines_yarn","yarn:install-deps":"yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-core":"^6.22.1","babel-loader":"^7.1.2","babel-minify-webpack-plugin":"^0.2.0","babel-plugin-transform-es2015-modules-commonjs":"^6.26.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.9.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jsdom":"^11.5.1","mocha":"^3.1.2","mocha-junit-reporter":"^1.15.0","webpack":"^3.8.1"},"dependencies":{"@a-ignatov-parc/virtual-dom":"^2.2.0"},"files":["dist"],"gitHead":"c052e9937411204247b6499bd1175f98a3ba89ff","_id":"tvdml@5.0.0","_shasum":"9ab87f1b0addfacce3307978af4742e03c2ab5c5","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"shasum":"9ab87f1b0addfacce3307978af4742e03c2ab5c5","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-5.0.0.tgz","integrity":"sha512-EAzBd6KJBKmWDFfhvj+6LRxyqPA24iyobSWf/2vxMp89/2CyOi3/JtakFTdgPss+PDcDKgQh4bQbo0MpBqXVQg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFPeZbdWU6A8SltIkIFlHH5EB0bsCnVlsKTSQfT7go1BAiEAuhe5tsExXPXHx7vap1dB59AIGUhtAxiqyURsh9i8V7U="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml-5.0.0.tgz_1512150509475_0.2852823156863451"},"directories":{}},"5.1.0":{"name":"tvdml","version":"5.1.0","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":">=6.10.0","yarn":">=1.3.0"},"scripts":{"install-deps":"npm run yarn:install && npm run yarn:install-deps","yarn:install":"npm i --no-save --no-package-lock yarn@$npm_package_engines_yarn","yarn:install-deps":"yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-core":"^6.22.1","babel-loader":"^7.1.2","babel-minify-webpack-plugin":"^0.2.0","babel-plugin-transform-es2015-modules-commonjs":"^6.26.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.9.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jsdom":"^11.5.1","mocha":"^3.1.2","mocha-junit-reporter":"^1.15.0","webpack":"^3.8.1"},"dependencies":{"@a-ignatov-parc/virtual-dom":"^2.2.0"},"files":["dist"],"gitHead":"1c274a1e0333f25276a531a1596421f9643cfeb5","_id":"tvdml@5.1.0","_shasum":"6609fa27866bbd68b597e922e8db37af702da488","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"shasum":"6609fa27866bbd68b597e922e8db37af702da488","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-5.1.0.tgz","integrity":"sha512-oAIpnONuPnYYctuHVPSbwYortSxcR9/vf5FtXRE28iyYl0tlUsMhgzZsFVV1DcH7o859mlwxndLB/T0wVAlO4g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH1f8airVH4V+HIzZ9VTvYXKEMC7Gt054u7BYceH0HLNAiEAkJvI97fO7HS2Jf+bMKTtF9Kblrw4zeCU4bvf7UytU9I="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml-5.1.0.tgz_1512297246042_0.46560338721610606"},"directories":{}},"5.1.1":{"name":"tvdml","version":"5.1.1","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":">=6.10.0","yarn":">=1.3.0"},"scripts":{"install-deps":"npm run yarn:install && npm run yarn:install-deps","yarn:install":"npm i --no-save --no-package-lock yarn@$npm_package_engines_yarn","yarn:install-deps":"yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["virtual","apple","tvos","tvjs","tvml","dom","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","devDependencies":{"babel-core":"^6.22.1","babel-loader":"^7.1.2","babel-minify-webpack-plugin":"^0.2.0","babel-plugin-transform-es2015-modules-commonjs":"^6.26.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.9.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jsdom":"^11.5.1","mocha":"^3.1.2","mocha-junit-reporter":"^1.15.0","webpack":"^3.8.1"},"dependencies":{"@a-ignatov-parc/virtual-dom":"^2.2.0"},"files":["dist"],"gitHead":"3061e1a9caff85bb20454db461b6668d361c95b5","_id":"tvdml@5.1.1","_shasum":"6a75549c82a626f8ac9ed696c0bb3c6a4472ed7d","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"shasum":"6a75549c82a626f8ac9ed696c0bb3c6a4472ed7d","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-5.1.1.tgz","integrity":"sha512-t6igr2ZK+ItcAPvY58LUGN00EI8Bq+OoxmJzyKNZDdahTc1nhiPCSDZYmgnptM5ps3WeK4Fwrrns78mQKjk/kQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpplr4Nk6Fn/ajhd7hm/g/Iq9Gvi/4eZ5Xm+dCYf7zMwIgK3X70+CaDeh8RMa0B6o1NljCR+ipcVtniYprbpIG/PI="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml-5.1.1.tgz_1512340208355_0.9135454669594765"},"directories":{}},"6.0.0-0":{"name":"tvdml","version":"6.0.0-0","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":"^8.9.0","yarn":"^1.3.0"},"scripts":{"install-deps":"npx yarn@$npm_package_engines_yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register","update-readme-toc":"npx doctoc README.md"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["react","apple","tvos","tvjs","tvml","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","dependencies":{"react-reconciler":"^0.7.0"},"devDependencies":{"babel-core":"^6.22.1","babel-loader":"^7.1.2","babel-plugin-transform-es2015-modules-commonjs":"^6.26.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.13.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.5.1","mocha":"^4.0.1","mocha-junit-reporter":"^1.15.0","react":"^16.2.0","uglifyjs-webpack-plugin":"^1.1.4","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.2.0"},"files":["dist"],"gitHead":"585209c665bf46f5c3881f93ee0cc6d9a18dba5f","_id":"tvdml@6.0.0-0","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"integrity":"sha512-bAngEmJpzDYuvM1vKcBOmqT+h8638w0ROSdCTxXui8yfARdmQ5iEIn4YGN/f3T4FoDqK36yoq+EsUqGXETSc4w==","shasum":"1e0d7fee3ca3b70cbec9c53d49ed4c838fc0bd0a","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-6.0.0-0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGyQmWR+vEQ0qrCu1YmBuxru0wLB67BcZk7CJ1O2H5XhAiEA/QWlNDpdN8WXTMwtCZTCOXQhhD7Z0AZLp01QDEpfHlA="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml-6.0.0-0.tgz_1514273869358_0.4530158566776663"},"directories":{}},"6.0.0-1":{"name":"tvdml","version":"6.0.0-1","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":"^8.9.0","yarn":"^1.3.0"},"scripts":{"install-deps":"npx yarn@$npm_package_engines_yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register","update-readme-toc":"npx doctoc README.md"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["react","apple","tvos","tvjs","tvml","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","dependencies":{"react-reconciler":"^0.7.0"},"devDependencies":{"babel-core":"^6.22.1","babel-loader":"^7.1.2","babel-plugin-transform-es2015-modules-commonjs":"^6.26.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.13.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.5.1","mocha":"^4.0.1","mocha-junit-reporter":"^1.15.0","react":"^16.2.0","uglifyjs-webpack-plugin":"^1.1.4","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.2.0"},"files":["dist"],"gitHead":"553dfd608ce02220eb5f1d9034421160ce0659ed","_id":"tvdml@6.0.0-1","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"integrity":"sha512-0+DeQVehfG8PQVZ197k3gO1n1Z+RnusTQ2RThZzlQLKVc8Yi1HsFFjaPtjMdXhK0wIB9TpvH6vGzg0wvPInrgg==","shasum":"9bb9d2a2cfcfda8c8d105ac6b4e88c6031300e61","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-6.0.0-1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFOt7zefM9cU+YUutYM08xK6Q3/FLECIIJmf++h0iyHwIhAMSnhmCcw2ov3oVW/KRudLVFmuAwcCsk3sBxCgUaAZZk"}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml-6.0.0-1.tgz_1514276770558_0.6119426996447146"},"directories":{}},"6.0.0-2":{"name":"tvdml","version":"6.0.0-2","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":"^8.9.0","yarn":"^1.3.0"},"scripts":{"install-deps":"npx yarn@$npm_package_engines_yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register","update-readme-toc":"npx doctoc README.md"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["react","apple","tvos","tvjs","tvml","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","dependencies":{"react-reconciler":"^0.7.0"},"devDependencies":{"babel-core":"^6.22.1","babel-loader":"^7.1.2","babel-plugin-transform-es2015-modules-commonjs":"^6.26.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.13.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.5.1","mocha":"^4.0.1","mocha-junit-reporter":"^1.15.0","react":"^16.2.0","uglifyjs-webpack-plugin":"^1.1.4","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.2.0"},"files":["dist"],"gitHead":"20ab7356511eff27803fa98c88886a7e90c23819","_id":"tvdml@6.0.0-2","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"integrity":"sha512-e2lLdlHltlnqoYeQCwWXcONQCxqULuOtq06TpWaRfsvyWsxC+pJw43Nh7myUgTQGYOHA9/jAboSKGWUKaR0x4w==","shasum":"9da36e36280fb49ce0959e7b71de3c240cdd935f","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-6.0.0-2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAtTifJnBJ+L3VGOSFLbdtDvVj2FMvG6X0CqEnPrKInHAiA+6X/2AyROtu5UsAbm8r6O0QBVxiHt+OzE1VIIi9/7hA=="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml-6.0.0-2.tgz_1514387081806_0.47385798394680023"},"directories":{}},"6.0.0-3":{"name":"tvdml","version":"6.0.0-3","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":"^8.9.0","yarn":"^1.3.0"},"scripts":{"install-deps":"npx yarn@$npm_package_engines_yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register","update-readme-toc":"npx doctoc README.md"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["react","apple","tvos","tvjs","tvml","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","dependencies":{"react-reconciler":"^0.7.0"},"devDependencies":{"babel-core":"^6.22.1","babel-loader":"^7.1.2","babel-plugin-transform-es2015-modules-commonjs":"^6.26.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.13.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.5.1","mocha":"^4.0.1","mocha-junit-reporter":"^1.15.0","react":"^16.2.0","uglifyjs-webpack-plugin":"^1.1.4","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.2.0"},"files":["dist"],"gitHead":"0470c34d2de234d0e2dd939f314ad19e46e9d234","_id":"tvdml@6.0.0-3","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"integrity":"sha512-SEBckghEdQHw+OYh4oRD9nN39gvEpz/spLK4vI9tc498wGwffdBbUpL7FeIqhAqUFbW11ws9/gfq4OpxfKOkdA==","shasum":"0bc45a0a9a4d735ade95e742d7b32c99fe3c8f78","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-6.0.0-3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIECQUl03eyWL+5SCbdWLG+UYHtETuXh5Tnz23G8AyT+uAiEA3q48lgjgslApTYGvJ8Wr6rf/Sj3Hn3PwCNarJuMvsMQ="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml-6.0.0-3.tgz_1515192803787_0.7290394001174718"},"directories":{}},"6.0.0":{"name":"tvdml","version":"6.0.0","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":"^8.9.0","yarn":"^1.3.0"},"scripts":{"install-deps":"npx yarn@$npm_package_engines_yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register","update-readme-toc":"npx doctoc README.md","add-old-tag":"npm dist-tag add $npm_package_name@$npm_package_version old","remove-next-tag":"npm dist-tag rm $npm_package_name next"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["react","apple","tvos","tvjs","tvml","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","dependencies":{"react-reconciler":"^0.7.0"},"devDependencies":{"babel-core":"^6.22.1","babel-loader":"^7.1.2","babel-plugin-transform-es2015-modules-commonjs":"^6.26.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.13.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.5.1","mocha":"^4.0.1","mocha-junit-reporter":"^1.15.0","react":"^16.2.0","uglifyjs-webpack-plugin":"^1.1.4","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.2.0"},"files":["dist"],"gitHead":"cd78df540b1e2e90069566eda1b756d295348d8b","_id":"tvdml@6.0.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"integrity":"sha512-7VWG9/MqGPqfD2pFzlz+F3bfSKThBpDHpG0ZZDBhRhMhc9L43Wq/kghtVBwOj9zPfHVbYq0qZXpfY+xK2e6/RA==","shasum":"3d4ff9ba5e2324e2a167d048d9fa342b575a7aca","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-6.0.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHWoZcRoC46AvN+tqkIw40hS06JpxaMf+QJf5EFtJfuHAiALYPRRc4DQ1HHHXyDsyKCBXypmrGX5bxZ5tIaynZLX8g=="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml-6.0.0.tgz_1515660144234_0.4415001175366342"},"directories":{}},"6.0.1":{"name":"tvdml","version":"6.0.1","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":"^8.9.0","yarn":"^1.3.0"},"scripts":{"install-deps":"npx yarn@$npm_package_engines_yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register","update-readme-toc":"npx doctoc README.md","add-old-tag":"npm dist-tag add $npm_package_name@$npm_package_version old","remove-next-tag":"npm dist-tag rm $npm_package_name next"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["react","apple","tvos","tvjs","tvml","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","dependencies":{"react-reconciler":"^0.8.0"},"devDependencies":{"babel-core":"^6.22.1","babel-loader":"^7.1.2","babel-plugin-transform-es2015-modules-commonjs":"^6.26.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.13.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.5.1","mocha":"^4.0.1","mocha-junit-reporter":"^1.15.0","react":"^16.3.0","uglifyjs-webpack-plugin":"^1.1.4","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.3.0"},"files":["dist"],"gitHead":"669c00678d8994f11f25623e1926178e52341999","_id":"tvdml@6.0.1","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"integrity":"sha512-5KALU0PmpTBl++JVlMU0HkSIpTmsi+0XTlApAaEs0ecsChV/9FSTLbPdRJq13FnsjIvj+jHAGiIWJXQdawbQrA==","shasum":"024860610e6ea5e23b8bdc83731e91a2930ff98b","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-6.0.1.tgz","fileCount":3,"unpackedSize":239286,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWU1ysqdPxWPBYCMqVzepjXYmKHiYCJ8Rd9yP+eZRGvQIgKz8Oflf8RKtLHpW5yP16pNaflWur4BD1wVg/j19d9zY="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml_6.0.1_1522416177593_0.21436857696358835"},"_hasShrinkwrap":false},"6.0.2":{"name":"tvdml","version":"6.0.2","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":"^8.9.0","yarn":"^1.3.0"},"scripts":{"install-deps":"npx yarn@$npm_package_engines_yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register","update-readme-toc":"npx doctoc README.md","add-old-tag":"npm dist-tag add $npm_package_name@$npm_package_version old","remove-next-tag":"npm dist-tag rm $npm_package_name next"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["react","apple","tvos","tvjs","tvml","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","dependencies":{"react-reconciler":"^0.8.0"},"devDependencies":{"babel-core":"^6.22.1","babel-loader":"^7.1.2","babel-plugin-transform-es2015-modules-commonjs":"^6.26.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.13.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.5.1","mocha":"^4.0.1","mocha-junit-reporter":"^1.15.0","react":"^16.3.0","uglifyjs-webpack-plugin":"^1.1.4","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.3.0"},"files":["LICENSE","README.md","dist"],"gitHead":"9b15ec5ddbf5b57eb29557e89889d69a5c78def3","_id":"tvdml@6.0.2","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"integrity":"sha512-PRk+M9ms1IFAHVzD2XPjy3skBmxFA/7ozBHUzFyxwXy8gmQwpfdwvbcr8MWtvpKlaxgSmSoKm9+hvrgoo1Ovzg==","shasum":"9ec912b518620c4f3daf161a4f89b4f4e9bcdecd","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-6.0.2.tgz","fileCount":3,"unpackedSize":239725,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQChnsI71A1Eh8zJa5IlKhSBnh+MIBt4H9i56Fa0ll1oWgIhAJe3dE5iMnsPKkuqMF8G5gwjbVLqgYJqVFViPlPpOqsI"}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml_6.0.2_1522538438980_0.5415234033104195"},"_hasShrinkwrap":false},"6.0.3":{"name":"tvdml","version":"6.0.3","description":"Small library for creating declarative apps for tvOS with TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":"^8.9.0","yarn":"^1.3.0"},"scripts":{"install-deps":"npx yarn@$npm_package_engines_yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register","update-readme-toc":"npx doctoc README.md","add-old-tag":"npm dist-tag add $npm_package_name@$npm_package_version old","remove-next-tag":"npm dist-tag rm $npm_package_name next"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["react","apple","tvos","tvjs","tvml","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","dependencies":{"react-reconciler":"^0.8.0"},"devDependencies":{"babel-core":"^6.22.1","babel-loader":"^7.1.2","babel-plugin-transform-es2015-modules-commonjs":"^6.26.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.13.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.5.1","mocha":"^4.0.1","mocha-junit-reporter":"^1.15.0","react":"^16.3.0","uglifyjs-webpack-plugin":"^1.1.4","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.3.0"},"files":["dist"],"gitHead":"d539575e0091dabf78906a5a021a76729b783eb8","_id":"tvdml@6.0.3","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"integrity":"sha512-+p8yKEehjXO6exFceP22+TUpfQAKxBxmhCgMDd2Qhsdp6TxXCqVjHiZ6Q5cCs22nh1mTrjHYY5wHGIbGhDwrfg==","shasum":"b0f9ad8f0f5a89022d9172b1bcfabfcdf8214e51","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-6.0.3.tgz","fileCount":5,"unpackedSize":269167,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwXoCktbT8UgF3i1VlBw0kebRFV/nnsxDkeg2YZHb7OwIhAOxeqyV92ieop9Sm2snNkpTenMFoxd8BbHDuC72rLSv2"}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml_6.0.3_1522539308939_0.8489939278282457"},"_hasShrinkwrap":false},"6.0.4":{"name":"tvdml","version":"6.0.4","description":"Small library for creating declarative apps for tvOS with React.js using TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":"^8.9.0","yarn":"^1.3.0"},"scripts":{"install-deps":"npx yarn@$npm_package_engines_yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register","update-readme-toc":"npx doctoc README.md","add-old-tag":"npm dist-tag add $npm_package_name@$npm_package_version old","remove-next-tag":"npm dist-tag rm $npm_package_name next"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["react","apple","tvos","tvjs","tvml","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","dependencies":{"react-reconciler":"^0.8.0"},"devDependencies":{"babel-core":"^6.22.1","babel-loader":"^7.1.2","babel-plugin-transform-es2015-modules-commonjs":"^6.26.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.13.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.5.1","mocha":"^4.0.1","mocha-junit-reporter":"^1.15.0","react":"^16.3.0","uglifyjs-webpack-plugin":"^1.1.4","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.3.0"},"files":["dist"],"gitHead":"dc018676d3d9efd0716057974f9180fb340b99c4","_id":"tvdml@6.0.4","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"integrity":"sha512-FNqhTKTnK6PMGJXTVLMLclpQrwrVejkNIQSbv/jGmLhaNUw1Mf3/z/x7QIiy8ZkfdsuowIvsKGKBLMIFMiV/7Q==","shasum":"278417ee60f6168d5050e7dbe937ba257e92ae0c","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-6.0.4.tgz","fileCount":5,"unpackedSize":269019,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICQqpehIzqGETr5kXD18S2HbbGLB3LhTKLcgUznK2YxAAiAjYrpxybByNR128GbFh/EAmiACvMRpJNOu6WGFbmLJHQ=="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml_6.0.4_1522779151865_0.8548565432568316"},"_hasShrinkwrap":false},"6.1.0":{"name":"tvdml","version":"6.1.0","description":"Small library for creating declarative apps for tvOS with React.js using TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":"^8.9.0","yarn":"^1.3.0"},"scripts":{"install-deps":"npx yarn@$npm_package_engines_yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register","update-readme-toc":"npx doctoc README.md","add-old-tag":"npm dist-tag add $npm_package_name@$npm_package_version old","remove-next-tag":"npm dist-tag rm $npm_package_name next"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["react","apple","tvos","tvjs","tvml","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","dependencies":{"react-reconciler":"^0.11.0"},"devDependencies":{"babel-core":"^6.26.3","babel-loader":"^7.1.4","babel-plugin-transform-es2015-modules-commonjs":"^6.26.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.12.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.8.2","mocha":"^4.0.1","mocha-junit-reporter":"^1.15.0","react":"^16.4.0","uglifyjs-webpack-plugin":"^1.1.4","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.4.0"},"files":["dist"],"gitHead":"e29e847a22a7f2eddc4a65f942459b05bc9e2937","_id":"tvdml@6.1.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"integrity":"sha512-nlc3DkNWdRpnvfjmoMnNdqC3LzZkzr/tT9eJHMMZvjkd52YkLqvaXZHPrxC4B44ajRzOrPjc9KyAF+hRoSeC0A==","shasum":"f8e8054a7bc934a50ae7467cc3e54cecda5a0c5d","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-6.1.0.tgz","fileCount":5,"unpackedSize":267463,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBmh3CRA9TVsSAnZWagAANZgP/2MCjq9s0es+pgo8Szkg\nGaQZ5HOrT8XRR0nAL0qdsptR9J58rsLdGCcxFiWFjl8fqAou8DfZMP+/s7nH\nz7CCtMqA/niqzzx2xe6cadAndVMAEKW5lv3fHdmGTs0WD9SX/pRPFzQvKgHM\n/kUYKxqdmkwq5SP4XVvjfgroObPb2LXqhWiSwHxu2p1xTB5JlKzYJ/FrRNBi\njUSNLUL+oW+jijWQybodm0gppDDB+XCnKhA4jpUpXI6Z1LjsLnpLo9aaHWqr\n23s7J8iBZQ3CX5fNKntQbkVD5+boxeM2pvXWFodPu0c2JTfadOrQc+8tUBXF\nwpsxvd/+PxPA2urgWoAWEXmXl8E8Z0m1DEMYiOqugcdLK5Nb2myNzeyQHVjx\nKz+V8OfEonp7VWjKVo9pNLqtUdJEoMOPhtAmi2Mt+tymuAr6bnNOleWkOy5g\nSDL7XxDnX9a7RTk+z12KMkit/sgJ9xLSOQCxzQxZB9ZXkjuIVrVzqmJ+1v2H\nNKs+4d48qyVGTvc3B+OMhR6nbSa7t/dHUPCssl1cQoYUDLiTrQ9oj90Q5BFW\nKYneUYhEoMMj+F2/znJDsINNFYuQGavkDpoNYU1sJpj1H3lSVyReLL3/k9ke\n65kHUAJLEVzEAp+sgOb4T/LZm/cL1y3vAuxAG6B9ne4+zewdyVIMUmk5ODfX\ndlvD\r\n=snbL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3dYWdwLO9HW4VT/TPBGfPh2QTL3qTXvcuM6Pi9Wkb9AIhAMwhp2MNl+gZSUtospWGXnDe8FmDhcsO0sqzlZzHDF0S"}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml_6.1.0_1527146613490_0.07781491034031718"},"_hasShrinkwrap":false},"6.1.1":{"name":"tvdml","version":"6.1.1","description":"Small library for creating declarative apps for tvOS with React.js using TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":">=8.9.0","yarn":"^1.3.0"},"scripts":{"install-deps":"npx yarn@$npm_package_engines_yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register","update-readme-toc":"npx doctoc README.md","add-old-tag":"npm dist-tag add $npm_package_name@$npm_package_version old","remove-next-tag":"npm dist-tag rm $npm_package_name next"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["react","apple","tvos","tvjs","tvml","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","dependencies":{"react-reconciler":"^0.11.0"},"devDependencies":{"babel-core":"^6.26.3","babel-loader":"^7.1.4","babel-plugin-transform-es2015-modules-commonjs":"^6.26.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.12.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.8.2","mocha":"^4.0.1","mocha-junit-reporter":"^1.15.0","react":"^16.4.0","uglifyjs-webpack-plugin":"^1.1.4","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.4.0"},"files":["dist"],"gitHead":"44e96bc458d0e029e64b1b626bd4531b4926a78f","_id":"tvdml@6.1.1","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"integrity":"sha512-vfBjTe/GnzqrCRbyxgmMpVnYKGObjoq6FTdvFaVgXHdq4NSHaTr3QEZxKxsCfrY3OcQUPCk8kkEfy6C9UHCFYQ==","shasum":"f6e8ba9fe9bb5a4925636e674d929271eea3cb70","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-6.1.1.tgz","fileCount":5,"unpackedSize":267464,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbMcFPCRA9TVsSAnZWagAACj0P/R4b6E+5JPupTLKjt0a7\nXbdguWsLwsbYm0jl3Wjz4lGgEzWiJdZ1UfvbIea27rsQB9hGFCXtyS0GpiWW\nPseFM0RurGs9h+WGjj4DU5eDOSxxzsfPVPpKd2+J+uiL7FxPgMmn8t1Ovvwl\noIp7XHV4WQFWoBUrQBci1dBkF/0JWe5oaUPiaBqZUyLKkQPb7NOYvdjFSaj0\nF32wBh1PlMWCPE6DcvPOakC3M/EsKANuUJWpCKEzUdzqEjYzwIq4HJ//H7RO\nVUBt1q1Vg64ealikbF2A7WNEw/7/UaynShEksUaLN6TXEbpuHclnMQ5KS99H\nsTn7gYmM3BuAxoLncw23eg+DT9NkJTPoZOjmZeCn31hk8UqM3yFPGSHf5YSt\ntnZ2sBmaBOlg54qZzxIxlGlVXdfcOME2A51mLbdjwvbjEQq1DkF1a8+tEKmf\nPoQ8nNePtIRindskj7FD9GwItbE+/+3yZtBI2lpP5zwvM9PrbKzf87ACnKM6\noVngdG92qVKN2yuNLgaYj3qzyVq4ZQJ49XybOBxLqCzFLL0Sd1XnLupolETg\negbnMOX/yCEMdrurFqz/pc2DmcOOOd41MzWsSHsZ5DIGQyTfPy+w1mT44dE5\nZiUdhtoVYysFy8S5vvrZQZrcT+8vv9RohR3+5Af+c/4BGxwhTEhRqv7Gvgus\niX1Y\r\n=l5Cq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEFcrCYfdw9/xjMIlcuiJqVDPVr4kQ/cnV+V/yp7GgWEAiAsTJgCjpu1pkZlrHzKR+/a7HM7yzaAAsdPAEtuyfH/5g=="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml_6.1.1_1529987407091_0.314434012841482"},"_hasShrinkwrap":false},"6.2.0":{"name":"tvdml","version":"6.2.0","description":"Small library for creating declarative apps for tvOS with React.js using TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":">=8.9.0","yarn":"^1.3.0"},"scripts":{"install-deps":"npx yarn@$npm_package_engines_yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register","update-readme-toc":"npx doctoc README.md","add-old-tag":"npm dist-tag add $npm_package_name@$npm_package_version old","remove-next-tag":"npm dist-tag rm $npm_package_name next"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["react","apple","tvos","tvjs","tvml","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","dependencies":{"react-reconciler":"^0.15.0"},"devDependencies":{"babel-core":"^6.26.3","babel-loader":"^7.1.4","babel-plugin-transform-es2015-modules-commonjs":"^6.26.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.12.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.8.2","mocha":"^4.0.1","mocha-junit-reporter":"^1.15.0","react":"^16.5.2","uglifyjs-webpack-plugin":"^1.1.4","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.5.2"},"gitHead":"c853d8a475a467c21f86da9b201a687628a1a738","_id":"tvdml@6.2.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"integrity":"sha512-AOzK5gYU9Gvc99XYouHMvkFF17wW7Db75Jamym5Z7EEOzvHpb2+om5s5Pg1eyQLp//T14UO4+n5qjiSyyDSlbw==","shasum":"88a87725a3e1f8cab4ff8c9743db25153c093649","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-6.2.0.tgz","fileCount":5,"unpackedSize":276147,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbw3NQCRA9TVsSAnZWagAAUQQP/3jJrSJWPM9FXedJ2+5A\n16xzPDCUIKCefDYlE/h/DUicaj8pPMTQmP2Vhpc9PQq4RKvpv7ajIcBBfBmG\nyH4mXpCsQn1XB9sAGq2THEj1naDpfEVZT8OxOqoEuXWViA+EWjsmkPzcX12J\nogktJX1BvEE9eq56nqBETguh+EgUx4cIBsCKCLp5/UBtWa9+IBn8KoVJbc+F\n3mJQcWRpgA0G0hm25UDPtceTOgTHj/X1Dz0yMgr863sOlfPssIKzQ+mg84Lb\nIlDVYP4gyoF95nryOGBtsj3Imzd5+8RvjD9ce8KWagm7sFcdnXT6ZuslhImS\nn4DGGgPuif/i2enVDjyRWkKrCzI5OBJF9C3UyqWcr5WDZ2zyUInatncafFrT\nBpUh5ko0u4+TjQAZF4B20pYHdFZXJDgfWViLW3iW0ixtgWgBMgpOaLv8kO9P\nEKRtXgPSttCNRgV3tFRMIvLw2ZaQ+THgGSmUNVyTAh1ZfY3n1Sp+RDDBlrUP\neMJw3w4Bg2+hGkxZR7/Etu84vWOlOA01tyuptp+5YCXorFF880jnjdW5oQ3L\n1VPr6OLVeZnJEPYCrbkR4sVFhsWcHh2yIdQXCaaJ7R56ZvEYhriUv+7uw/ex\nX28gjXAWHURf94gtuDlRlDq07F1p5SChJr4lVd++GoJ6KZRDE596i7BtF8Kh\ny0m+\r\n=eRN8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAZR6yK8Mw1gsNq912g9+UdQz4abqfpMoC93j/XcKR1LAiEAhTbgPzZZGrwOZwvWDsaV+pZibcpPo+fq8N6/ktvnEpM="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml_6.2.0_1539535695662_0.776626952056656"},"_hasShrinkwrap":false},"6.2.1":{"name":"tvdml","version":"6.2.1","description":"Small library for creating declarative apps for tvOS with React.js using TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":">=8.9.0","yarn":"^1.3.0"},"scripts":{"install-deps":"npx yarn@$npm_package_engines_yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register","update-readme-toc":"npx doctoc README.md","add-old-tag":"npm dist-tag add $npm_package_name@$npm_package_version old","remove-next-tag":"npm dist-tag rm $npm_package_name next"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["react","apple","tvos","tvjs","tvml","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","dependencies":{"react-reconciler":"^0.15.0"},"devDependencies":{"babel-core":"^6.26.3","babel-loader":"^7.1.4","babel-plugin-transform-es2015-modules-commonjs":"^6.26.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.12.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.8.2","mocha":"^4.0.1","mocha-junit-reporter":"^1.15.0","react":"^16.5.2","uglifyjs-webpack-plugin":"^1.1.4","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.5.2"},"gitHead":"5aa55139779a08daea242a621758ee46cfaf5440","_id":"tvdml@6.2.1","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"integrity":"sha512-9THY0TENml31asXURhN+GhOilbdRB3ob8zYQlQx92/0BP4MAbwSX8zo859z16xwvDOOOBignpjdLRnuHfJPvAg==","shasum":"19969b2879f9ce1475d83776fe825484140e7e8e","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-6.2.1.tgz","fileCount":5,"unpackedSize":277728,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbyMjVCRA9TVsSAnZWagAAoc8QAJAXe1igtGJnJp+KNOzg\ng54fz1rdd5MK1qcbJ9b+aqLJtsEMbCPj79Wrd46FcOQEkqVRU+l6RUxCMcnk\nq9joHcY17RrRsWLrOebkEuo1qj1HTZWv4GmWFufKigh6U9qP1JYxsLmWLc8U\nAJzKL1AWgrGi8Cup8GToC+7VMMoJWSqcma9vEYSLSef/Pkbr70O4NeA0v98U\n8jk4iyhoqHTXYHZs7sjDkL7fHMTgTK6HJMoWCK4CpXn2o1iQXyuX4P0qu0tT\nCfS8h5T2hhbuJF6p5KCD1sqD/o23T6eqlDl/Mf6LQ/preA4X/HDwPybu2It/\n/ZJ/gQowkFMwCBB7c4PEASxVgCrKWcW3CoKEs9DGF+jW5Ctt4UHqXEcoq4HS\nLpAXBi1n+8ipvVfNzKhQWoD+4G+EK9b8aG2waFPdS8dcW1ZZ7ojDEb5Uow3E\nhMC6RnJI/pFxddBq3gI5UJoiqH6fYXOvGmUVaUW9h7/waZ5gzQD9SFoANxnJ\n8LoGX20c55wLycLXJOxWj2PL6F09TRLIaW9GA6lL5QLv9+Q9p8nkF/pdTqHa\nvYyKhpBCQWIZTvG6OMtWntqzeQMWi5ohxnR7E4SlccVxBZ8MqwQ1Nxn0mDzQ\n0l+XWmlSo76gyw/tCNtcjOM3ABuKccnfvoh70VkaAaQ5feKB2e+FNhs7/H5o\nwYf5\r\n=okgA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID6laaqsHL3Ojs166hOnHLBZpwWNY+jF7qMrIj1HY2g3AiBOxgTmgTz4xMMfDM8Yu/KMYCFfyU44oqWen78UbAk0Vw=="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml_6.2.1_1539885268838_0.7348311231761404"},"_hasShrinkwrap":false},"6.2.2":{"name":"tvdml","version":"6.2.2","description":"Small library for creating declarative apps for tvOS with React.js using TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":">=8.9.0","yarn":"^1.3.0"},"scripts":{"install-deps":"npx yarn@$npm_package_engines_yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register","update-readme-toc":"npx doctoc README.md","add-old-tag":"npm dist-tag add $npm_package_name@$npm_package_version old","remove-next-tag":"npm dist-tag rm $npm_package_name next"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["react","apple","tvos","tvjs","tvml","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","dependencies":{"react-reconciler":"^0.15.0"},"devDependencies":{"babel-core":"^6.26.3","babel-loader":"^7.1.4","babel-plugin-transform-es2015-modules-commonjs":"^6.26.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.12.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.8.2","mocha":"^4.0.1","mocha-junit-reporter":"^1.15.0","react":"^16.5.2","uglifyjs-webpack-plugin":"^1.1.4","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.5.2"},"gitHead":"23e835a3d4507e6b80bb7690597221c5e312ee78","_id":"tvdml@6.2.2","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"integrity":"sha512-5FbAjWIA2KxUEl9i+RQ4C5ngoGf0Ra4gOWYTk3zYjTG9nKhE0xGhuUA7BH4sJ8qPsjgbyisT6wleqDtcOV/FQg==","shasum":"e5a5c5afecb4ba6af66362e05ae363f9597cd337","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-6.2.2.tgz","fileCount":5,"unpackedSize":277944,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbzuhNCRA9TVsSAnZWagAAS/AP/RsyxmiFOxWXBx1IMO6y\njFMa9esVo2GvMVuwJ9YontLAHG6lw5RqV0485NG+fofs0f/h2OzB2ovdqOiB\npL+gUQpz4JnWOdw2Ss4K2/tvCurIVun1b6ABoxCuKbGLw0NlHh/PHWk/RUwX\n3QYO5iyeMql5brR9wzD1jJ30AQEgnbfjWf7ZLtYS/xS1qhHoP6reiutbgGTp\n7vZqcVO6ydCwQxnN/gW/0OqAn0NOwh1dkkg+INpzwhN9gZOSc9wjnpF+BA7h\nGzKOiIK4e//6Tw++OuBGqzy+Y9kaLmFf3l5wZYpOkVDMiyPnctTtrSCnebPX\nH7IxW4HxLZgSRSkKKkZnFBf6nk73rWXHdIWzBANTNiKdmyhMCAbYDMT/S/UC\nCtbYhLNUGRIx3Vfjty6qtQAZKlzX7sM4RYn6ryTc13pLysqefkdlcPpg8MWX\n3QOSz6arOOtZaNlAXarLAIOOhXPCSb/++Swb/X4uPKocsfn/uez11ObzHeJ7\nPJr3K468eLDXBnI+kOMLnl1qmLMwqLdrH7BNUA8NJjguD7lU0MToW2113qqo\nj6JHLJG2oGJtMyE3C7eaQ91Kp8DsPmQjWGik3InLO6KFgq0mktHeu1/rQeDk\nq9Gxl1DKG9V/GiNWH65xiM5AIo6WCDlLt+MScjQvLqlTFsbtJ96xjdqXkGDB\npWcp\r\n=8r5E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDa9DLQu6X7qRCRESEiFZcSw3hAoeQTtqBbCScQq66RiAIhAJiapJtcNBiciuXmj2WHw9nKTOlVImmhe+8/pJeckA3O"}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml_6.2.2_1540286540760_0.6406644506739325"},"_hasShrinkwrap":false},"6.2.3":{"name":"tvdml","version":"6.2.3","description":"Small library for creating declarative apps for tvOS with React.js using TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":">=8.9.0","yarn":"^1.3.0"},"scripts":{"install-deps":"npx yarn@$npm_package_engines_yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require babel-register","update-readme-toc":"npx doctoc README.md","add-old-tag":"npm dist-tag add $npm_package_name@$npm_package_version old","remove-next-tag":"npm dist-tag rm $npm_package_name next"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["react","apple","tvos","tvjs","tvml","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","dependencies":{"react-reconciler":"^0.15.0"},"devDependencies":{"babel-core":"^6.26.3","babel-loader":"^7.1.4","babel-plugin-transform-es2015-modules-commonjs":"^6.26.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-register":"^6.26.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.12.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.8.2","mocha":"^4.0.1","mocha-junit-reporter":"^1.15.0","react":"^16.5.2","uglifyjs-webpack-plugin":"^1.1.4","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.5.2"},"gitHead":"5b32ed06c21e9d9da0d1539ec59f630611c26356","_id":"tvdml@6.2.3","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"integrity":"sha512-yznGjSK1rlnfbOlr5MUIB/eb3Ru5ERbIjXdjMBRR4DYygzNu4wMueLdcGewD6US3xzVz+i/zxryl3SxIWG5YpA==","shasum":"7e120ddd93041ec2d9424b60bd4bb753edb0da5f","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-6.2.3.tgz","fileCount":5,"unpackedSize":279427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbz5I2CRA9TVsSAnZWagAAAyoP/2B3UolEDYq+gclNKy3A\nYIyZL84SZ7o7tt55gcmR+sjJPlymTFI/rvOeflOwj47Z+Q5j4h1UD0kiuQlM\nJL37nshONmtR3tJLYSxbmc5wcuTO6isQ8vUdnjhqj5etGaq4KXTLfs3rDB/+\nfbrOAcx0hx3XFlahz6P4uWL4b908rQI4yuEVrs5Lz1RO5wN16bqWncDTQVdP\nCu0POHOb7zGFkjB2Olnrguu8B9OFzgOVUhYAQ120YSfHj9OecW5fbZp1HyxL\ncf7ejD12fQjBsKT5YKgDuq64PFAXvOJEjw/tldnOD/ilNZ/tBuR0y8WS4xeg\n34xTLa1iOpe6W4zrwDiiJ/9A+34JH0AAlYHmEN9jhP6ixHY4D1ElzgePHF7i\nNtpKPIzwhk7Wj3C1njxbBKObppAuV+OpwvdqBGUgYI0cghFICcysIhunvdml\nmHAi9xPFoH8QjJYenKUvj0WX6xUbfeeTknmvL+75+f9E+tLrebPdKy3C8zTQ\nwHg2QR05Pk3UYE7AAX+tGD6OQ1sz9hqJeGOtFa57EjnTFUUkZQ9WEmdGEiKS\nTbH5ykHS4VCWpS/Na4M06/etfMNktgo9JWE7OSKZjWhWbiXRiKpYeQ4ZVBBc\n+hdP9PRKh9kAs8An/a5uPVEzeIGDJg0ZVJGSI+4r+9+523qidgJ4GTgRBw8O\n4X2D\r\n=9+lo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBQtliouvmRJGsPvCz90h5myf26f5JAS5n09JLwU25XrAiAijTMwkBkeV976LHADuQnTuZ+Y1v8HD9n9mj4ntS1sWw=="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml_6.2.3_1540330037358_0.025780320051022265"},"_hasShrinkwrap":false},"6.3.0-0":{"name":"tvdml","version":"6.3.0-0","description":"Small library for creating declarative apps for tvOS with React.js using TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":">=8.9.0","yarn":"^1.3.0"},"scripts":{"install-deps":"npx yarn@$npm_package_engines_yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","prettier":"prettier --write webpack.config.js src/**/*.js test/**/*.js","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require @babel/register","update-readme-toc":"npx doctoc README.md","add-old-tag":"npm dist-tag add $npm_package_name@$npm_package_version old","remove-next-tag":"npm dist-tag rm $npm_package_name next"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["react","apple","tvos","tvjs","tvml","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.js":["eslint","prettier --write","git add"]},"dependencies":{"react-reconciler":"^0.20.3","scheduler":"^0.13.5"},"devDependencies":{"@babel/core":"^7.4.0","@babel/plugin-proposal-object-rest-spread":"^7.4.0","@babel/plugin-transform-modules-commonjs":"^7.4.0","@babel/register":"^7.4.0","babel-loader":"^8.0.5","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-config-prettier":"^4.1.0","eslint-plugin-import":"^2.12.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.8.2","husky":"^1.3.1","lint-staged":"^8.1.5","mocha":"^4.0.1","mocha-junit-reporter":"^1.15.0","prettier":"^1.16.4","react":"^16.8.5","webpack":"^4.29.6","webpack-cli":"^3.3.0"},"peerDependencies":{"react":"^16.8.5"},"gitHead":"a4e79bc73a487e0f781e712496d91a5dd0360579","readme":"# TVDML [![CircleCI](https://circleci.com/gh/a-ignatov-parc/tvdml.svg?style=svg)](https://circleci.com/gh/a-ignatov-parc/tvdml)\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\n\n- [New!](#new)\n  - [Update highlights](#update-highlights)\n  - [Migration guide](#migration-guide)\n- [Intro](#intro)\n- [System Requirements](#system-requirements)\n- [Getting started](#getting-started)\n- [Routing](#routing)\n- [Using React.js](#using-reactjs)\n  - [Rendering to player's documents](#rendering-to-players-documents)\n  - [Modals](#modals)\n  - [Working with `menuBar`](#working-with-menubar)\n  - [Styling elements](#styling-elements)\n  - [Events](#events)\n  - [Working with `DataItem`](#working-with-dataitem)\n  - [Complete rendering api](#complete-rendering-api)\n- [Pipelines and Streams](#pipelines-and-streams)\n  - [Streams](#streams)\n    - [Streams' public api](#streams-public-api)\n  - [Pipelines](#pipelines)\n    - [Pipelines' public api](#pipelines-public-api)\n  - [Rules of combining streams and pipelines](#rules-of-combining-streams-and-pipelines)\n- [Additional tools](#additional-tools)\n  - [Detecting Menu button press](#detecting-menu-button-press)\n- [Sample code](#sample-code)\n- [Useful Links](#useful-links)\n- [Contributions](#contributions)\n- [License](#license)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n## New!\n\nThis is the new version of tvdml, `6.X`.\n\n### Update highlights\n\n- Switched TVML renderer to React.js (**Breaking**).\n- Unified different ways to create TVML documents (**Breaking**).\n- Simpler syntax to create stylesheets using `<style>` element (**Breaking**).\n- Improved Menu button detection.\n- Changed `TVDML.renderModal()` rerendering behavior (**Breaking**).\n\n### Migration guide\n\nCheck out [migration guide from `5.X`](docs/MIGRATION_5.md).\n\nFor the older version of tvdml, refer to the [`5.X` branch](https://github.com/a-ignatov-parc/tvdml/tree/v5.1.1).\n\n## Intro\n\nThis is a library that's the main goal is to greatly simplify app development for Apple TV using [React.js](https://reactjs.org/) and provide tools to solve problems like:\n\n- React.js integration with TVML and TVJS.\n- Routing.\n- Event binding.\n- \"Menu\" button detection.\n\n## System Requirements\n\nStarting from `4.X` TVDML drops support for tvOS < 10. If you need that support please consider using [`3.X`](https://github.com/a-ignatov-parc/tvdml/tree/v3.0.4).\n\n## Getting started\n\nTVDML is shipping as [npm package](https://www.npmjs.com/package/tvdml) and can be installed with npm or `yarn`. In addition you'll need to install React.js.\n\n```\nnpm install --save tvdml react\n```\n\nOr using `yarn`\n```\nyarn add tvdml react\n```\n\nTVDML is written in ES6 and built using UMD wrapper so it can be used in any environment with any of this ways:\n\n```js\n// Directly from global scope.\nApp.onLaunch = function() {\n  console.log(TVDML);\n}\n\n// Or with CommonJS if you are using bundlers like browserify.\nvar TVDML = require('tvdml');\n\n// Or with ES6 imports.\nimport * as TVDML from 'tvdml';\n\n// You can use ES6 destructuring if you need only few\n// of the provided features.\nimport { subscribe, handleRoute, navigate } from 'tvdml';\n\n// Or even require modules from their sources.\nimport { handleRoute, navigate } from 'tvdml/src/navigation';\n```\n\n> Requiring modules from their sources can help you decrease app size if you are using [rollup](http://rollupjs.org/) for your builds.\n\nDespite being written totally in ES6 TVDML is not forcing you to use it.\n\nBut you should agree that this...\n\n```js\nApp.onLaunch = function(options) {\n  evaluateScripts([\n    options.BASEURL + 'libs/tvdml.js',\n    options.BASEURL + 'libs/react.js',\n  ], function(success) {\n    if (success) {\n      TVDML\n        .render(function(payload) {\n          return React.createElement(\n            'document',\n            null,\n            React.createElement(\n              'alertTemplate',\n              null,\n              React.createElement(\n                'title',\n                null,\n                'Hello world'\n              )\n            )\n          );\n        })\n        .sink();\n    }\n  });\n}\n```\n\nDoesn't look as nice as this\n\n```js\nimport React from 'react';\nimport * as TVDML from 'tvdml';\n\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(TVDML.render(payload => (\n    <document>\n      <alertTemplate>\n        <title>Hello world</title>\n      </alertTemplate>\n    </document>\n  )));\n```\n\nSo what we need to be able to write code as in second example? Well it's not that simple but this [tvdml-boilerplate](https://github.com/a-ignatov-parc/tvdml-app-boilerplate) repo will shed the light on basic build configuration.\n\nWell! Now we know how to write apps using ES6 and JSX so let's start from the basic features!\n\n## Routing\n\ntvOS provided great foundation to write apps using [TVML](https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/ATV_Template_Guide/index.html) and [TVJS](https://developer.apple.com/reference/tvmljs). But you need somehow to react on user's activity and map it to the UI.\n\nTo help you solve this issues TVDML provides navigation module.\n\n```js\nimport React from 'react';\nimport * as TVDML from 'tvdml';\n\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(() => TVDML.navigate('start'));\n\nTVDML\n  .handleRoute('start')\n  .pipe(TVDML.render(() => (\n    <document>\n      <alertTemplate>\n        <title>This is initial view</title>\n        <description>You can now navigate to another view</description>\n        <button onSelect={event => TVDML.navigate('next')}>\n          <text>Go to next page</text>\n        </button>\n      </alertTemplate>\n    </document>\n  )));\n\nTVDML\n  .handleRoute('next')\n  .pipe(TVDML.render(() => (\n    <document>\n      <alertTemplate>\n        <title>This is next view</title>\n        <description>Now you know how to use routes!</description>\n      </alertTemplate>\n    </document>\n  )));\n```\n\n> This is a small example of navigation and rendering modules usage which helps handle routes and show views to the user.\n\nHere is a complete navigation module api:\n\n- `TVDML.handleRoute(routeName)` — Creates pipeline for route handling. Only one pipeline can be created for the route. Otherwise it will throw error.\n\n- `TVDML.dismissRoute(routeName)` — Destroy previously created route pipeline. Can destroy only created pipelines. Otherwise it will throw error.\n\n- `TVDML.navigate(routeName[, params][, isRedirect])` — Navigation trigger. Will invoke registered route pipeline with passed params if they are specified. Route pipeline will result in creating new navigation document. if param `isRedirect` is passed then route pipeline will replace current navigation document with new one.\n\n- `TVDML.redirect(routeName[, params])` — Same as `TVDML.navigate(routeName, params, true)`.\n\n```js\nimport * as TVDML from 'tvdml';\n\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(() => TVDML.navigate('start', { foo: 'bar' }));\n\n// To create route handler use `handleRoute` method.\nTVDML\n  .handleRoute('start')\n  .pipe(payload => {\n    const {\n      route,\n      redirect,\n      navigation,\n    } = payload;\n\n    console.log(route); // 'start'\n    console.log(redirect); // false\n    console.log(navigation); // { foo: 'bar' }\n  });\n\n// `dismissRoute` method will help you destroy route handler.\nTVDML.dismissRoute('start');\n```\n\nHere is a list of predefined constants for system events:\n\n- `TVDML.event.EXIT`\n- `TVDML.event.ERROR`\n- `TVDML.event.LAUNCH`\n- `TVDML.event.RELOAD`\n- `TVDML.event.RESUME`\n- `TVDML.event.SUSPEND`\n\n> This events are related to system handlers: `App.onLaunch`, `App.onExit` etc.\n\nWhy would you use this events and not system handlers directly? Handlers can be assigned only once and events can be attached multiple times. But no one force you to use them.\n\nYou can add event listeners like this:\n\n```js\nimport * as TVDML from 'tvdml';\n\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(eventSymbol => console.log('App is launched!'));\n\nconst suspendEventPipeline = TVDML\n  .subscribe(TVDML.event.SUSPEND)\n  .pipe(eventSymbol => console.log('App is sent to background'));\n\n// To destroy event pipeline use `unsubscribe` method.\nsuspendEventPipeline.unsubscribe();\n```\n\n> To know more about how pipelines works check [Pipelines](#pipelines) section.\n\nAlso there are some predefined routes that may help you:\n\n- `TVDML.route.NOT_FOUND` — Will be invoked when navigation module was unable to find match to requested route.\n\nThe next big thing is...\n\n## Using React.js\n\nWith TVDML your main way to create documents will be React.js.\n\n> Here is a [list of all available documents](https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/ATV_Template_Guide/TextboxTemplate.html) in TVML.\n\nTo render any react component you need to provide rendering factory to `TVDML.render` pipeline.\n\nPipeline's payload will be passed as the first argument to rendering factory so you'll be able to map it's props to rendering tree.\n\n```js\nimport React from 'react';\nimport * as TVDML from 'tvdml';\n\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(TVDML.render(payload => (\n    <document>\n      <alertTemplate>\n        <title>Hello world</title>\n      </alertTemplate>\n    </document>\n  )));\n```\n\nHere is how to render any component you like:\n\n```js\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport * as TVDML from 'tvdml';\n\nfunction Hello(props) {\n  return (\n    <document>\n      <alertTemplate>\n        <title>Hello {props.name}</title>\n      </alertTemplate>\n    </document>\n  );\n}\n\nHello.propTypes = {\n  name: PropTypes.string,\n};\n\nHello.defaultProps = {\n  name: 'world',\n};\n\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(TVDML.render(payload => (\n    <Hello name=\"user\" />\n  )));\n```\n\nIt's just plain old React.js.\n\nBut there are some things you need to remember about TVML and React.js.\n\nBecause TVML and TVJS are not your normal browser they have some limitations. And to be able to work with them as best as possible react's tvml renderer have some quirks:\n\n1. Attribute names should be written in props as they are written in [docs](https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/ATV_Template_Guide/TVJSAttributes.html). There is no `className` to set `class` attribute.\n1. Events are normal DOM events provided by TVML.\n\nEverythin else should be as you expected.\n\n### Rendering to player's documents\n\n`player.overlayDocument` and `player.interactiveOverlayDocument` are not default targets for rendering components but there are two ways to do this:\n\n1. Sink empty document to `TVDML.render()`:\n\n    ```js\n    const document = TVDML.createEmptyDocument();\n\n    const pipeline = TVDML.render(() => (\n      <document>\n        <alertTemplate>\n          <title>Hello</title>\n        </alertTemplate>\n      </document>\n    ));\n\n    pipeline.sink({ document }).then(() => {\n      player.interactiveOverlayDocument = document;\n    });\n    ```\n\n1. Use TVML renderer directly\n\n    ```js\n    const document = TVDML.createEmptyDocument();\n\n    TVDML.ReactTVML.render((\n      <document>\n        <alertTemplate>\n          <title>Hello</title>\n        </alertTemplate>\n      </document>\n    ), document, () => {\n      player.interactiveOverlayDocument = document;\n    });\n    ```\n\nJust don't forget to unmount components when you clear player's documents or you may face memory leaks and many other issues.\n\nYou can unmount component by passing previously rendered document to `TVDML.ReactTVML.unmountComponentAtNode(document)`.\n\n### Modals\n\nModals are perfect when you need to show some useful information but don't want to interupt opened view context. You can use `TVDML.renderModal()` method to render any document you want in overlay. `TVDML.renderModal()` behaviour is similar to `TVDML.render()`.\n\nThere is also `TVDML.removeModal()` method that removes any presented modal document. Or `TVDML.dismissModal()` to compose modal dismissal with other operations.\n\n```js\nimport React from 'react';\nimport * as TVDML from 'tvdml';\n\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(() => TVDML.navigate('start'));\n\nTVDML\n  .handleRoute('start')\n  .pipe(downloadTVShows())\n  .pipe(TVDML.render(payload => (\n    <document>\n      <stackTemplate>\n        <banner>\n          <title>TV Shows</title>\n        </banner>\n        <collectionList>\n          <grid>\n            {payload.tvshows.map(tvshow => {\n              return (\n                <lockup onSelect={showTVShowDescription.bind(this, tvshow)}>\n                  <img src={tvshow.cover} width=\"250\" height=\"250\" />\n                  <title>{tvshow.title}</title>\n                </lockup>\n              );\n            })}\n          </grid>\n        </collectionList>\n      </stackTemplate>\n    </document>\n  )));\n\nfunction showTVShowDescription(tvshow) {\n  // Creating modal document rendering pipeline.\n  const pipeline = TVDML.renderModal(() => (\n    <document>\n      <descriptiveAlertTemplate>\n        <title>{tvshow.title}</title>\n        <description>{tvshow.description}</description>\n      </descriptiveAlertTemplate>\n    </document>\n  ));\n\n  // Invoking created pipeline.\n  pipeline.sink();\n}\n```\n\nEvery next invocation of `TVDML.renderModal()` will rerender active modal without closing it.\n\nIf you need to close and then open modal again use `TVDML.dismissModal()` pipeline.\n\n```js\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(TVDML.renderModal(() => (\n    <document>\n      <descriptiveAlertTemplate>\n        <title>Modal #1</title>\n      </descriptiveAlertTemplate>\n    </document>\n  )))\n  .pipe(TVDML.dismissModal())\n  .pipe(TVDML.renderModal(() => (\n    <document>\n      <descriptiveAlertTemplate>\n        <title>Modal #2</title>\n      </descriptiveAlertTemplate>\n    </document>\n  )));\n```\n\n### Working with `menuBar`\n\nOne of the trickiest things in TVML is configure and use [menu bar](https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/ATV_Template_Guide/MenuBarTemplate.html) across multiple views.\n\nTVDML provides easy to use solution for this issue.\n\n```js\nimport React from 'react';\nimport * as TVDML from 'tvdml';\n\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(TVDML.render(() => (\n    <document>\n      <menuBarTemplate>\n        <menuBar>\n          <menuItem route=\"search\">\n            <title>Search</title>\n          </menuItem>\n          <menuItem route=\"my\" autoHighlight>\n            <title>My</title>\n          </menuItem>\n          <menuItem route=\"all\">\n            <title>TV Shows</title>\n          </menuItem>\n          <menuItem route=\"settings\">\n            <title>Settings</title>\n          </menuItem>\n        </menuBar>\n      </menuBarTemplate>\n    </document>\n  )));\n\nTVDML\n  .handleRoute('my')\n  .pipe(...);\n\nTVDML\n  .handleRoute('all')\n  .pipe(...);\n\nTVDML\n  .handleRoute('search')\n  .pipe(...);\n\nTVDML\n  .handleRoute('settings')\n  .pipe(...);\n```\n\nViews switching will be handled by TVDML. All you have to do is to create `menuItem` elements with defined `route` attribute which must point to defined routes.\n\n> If you want to select specific menu item use `autoHighlight` attribute for this purpose.\n\n### Styling elements\n\nThere are two ways to style elements:\n\n1. Using `style` prop to write inline styles. `style` prop is key-value dictionary. Keys are style names written in camelCase.\n1. Using `<style>` element to define stylesheets  + `class` prop to bind them to elements.\n\n```js\nimport React from 'react';\nimport * as TVDML from 'tvdml';\n\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(TVDML.render(payload => (\n    <document>\n      <head>\n        <style>{`\n          .title {\n            tv-text-style: title1;\n          }\n        `}</style>\n      </head>\n      <alertTemplate>\n        <title class=\"title\">Hello user</title>\n        <description style={{ tvTextStyle: 'title2' }}>\n          Nice to see you\n        </description>\n      </alertTemplate>\n    </document>\n  )));\n```\n\nAll available styles can be found here: [TVML Styles](https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/ATV_Template_Guide/ITMLStyles.html).\n\n### Events\n\nHere is everything as in React.js except that all events are native TVML events.\n\nList of controllable elements:\n\n- `button`\n- `lockup`\n- `listItemLockup`\n\nList of available handlers:\n\n- `onPlay` — Triggers when \"Play\" button is pressed.\n- `onSelect` — Triggers when Touchpad is pressed.\n- `onChange` — Triggers when element change its value. `<ratingBadge />` for example.\n- `onHighlight` — Triggers when element becoming highlighted.\n- `onHoldselect` — Triggers when Touchpad is pressed with a long press.\n- `onNeedsmore` — Triggers when user approaches end of the list by scrolling.\n\n```js\n<button onSelect={event => console.log(event.target)}>\n  <text>Press Me</text>\n</button>\n```\n\n### Working with `DataItem`\n\nIn tvOS 11 [`DataItem`](https://developer.apple.com/documentation/tvmljs/dataitem) binding api was presented to fix performance issues with large documents that may ended up with very long parsing and rendering.\n\nHere is a [short example](https://developer.apple.com/library/content/documentation/TVMLKitJS/Conceptual/TVMLProgrammingGuide/GeneratingContentForYourApp.html) how Apple suggests to use it.\n\nSo now you may wondering how we can use this cool feature in JSX?\n\nWe got you covered! Here is an updated example from \"[Requesting and rendering data](#requesting-and-rendering-data)\" section:\n\n```js\nconst tvshows = [\n  {\n    title: 'Arrow, Season 1',\n    url: 'http://is2.mzstatic.com/image/thumb/Music6/v4/e9/bb/9b/e9bb9bbb-16c0-d946-063d-15632dd78a76/source/600x600bb.jpg',\n  },\n  {\n    title: 'Arrow, Season 2',\n    url: 'http://is1.mzstatic.com/image/thumb/Music3/v4/bb/87/84/bb8784ca-7e31-0cc1-b56d-9243624863d3/source/600x600bb.jpg',\n  },\n  {\n    title: 'Arrow, Season 3',\n    url: 'http://is2.mzstatic.com/image/thumb/Video62/v4/ec/ca/78/ecca78a3-5bb0-0b32-954c-f7fd966582ab/source/600x600bb.jpg',\n  },\n];\n\nTVDML\n  .handleRoute('start')\n  .pipe(TVDML.render(() => (\n    <document>\n      <stackTemplate>\n        <banner>\n          <title>TV Shows</title>\n        </banner>\n        <collectionList>\n          <shelf>\n            <prototypes>\n              <lockup prototype=\"tvshow\">\n                <img\n                  binding=\"@src:{url};\"\n                  width=\"300\"\n                  height=\"300\"\n                />\n                <title binding=\"textContent:{title};\" />\n              </lockup>\n            </prototypes>\n            <section\n              binding=\"items:{tvshows};\"\n              onSelect={event => console.log(event.target.dataItem)}\n              dataItem={{\n                tvshows: mockData.map((cover, i) => {\n                  const item = new DataItem('tvshow', i);\n\n                  item.url = cover.url;\n                  item.title = cover.title;\n\n                  return item;\n                }),\n              }}\n            />\n          </shelf>\n        </collectionList>\n      </stackTemplate>\n    </document>\n  )));\n```\n\nThe key difference from the example provided by Apple is `dataItem` attribute. It's responsible to apply `DataItems` to final document and this:\n\n```js\n<section\n  binding=\"items:{tvshows}\"\n  dataItem={{\n    tvshows: tvshows.map(tvshow => {\n      const item = new DataItem('tvshow', i);\n\n      item.url = cover.url;\n      item.title = cover.title;\n\n      return item;\n    }),\n  }}\n/>\n```\n\nIs same as:\n\n```js\n<section binding=\"items:{tvshows}\" />\n\nfunction parseJson(information) {\n  const results = JSON.parse(information);\n\n  const parsedTemplate = templateDocument();\n\n  navigationDocument.pushDocument(parsedTemplate);\n\n  const shelf = parsedTemplate.getElementsByTagName('shelf').item(0);\n  const section = shelf.getElementsByTagName('section').item(0);\n\n  section.dataItem = new DataItem();\n\n  const newItems = results.map((result) => {\n      const objectItem = new DataItem(result.type, result.ID);\n      objectItem.cover = result.cover;\n      objectItem.title = result.title;\n      return objectItem;\n  });\n\n  section.dataItem.setPropertyPath('tvshows', newItems);\n}\n```\n\n### Complete rendering api\n\n- `TVDML.render(renderFactory)` — Main rendering pipeline for React.js components. Responsible for rendering new document to `navigationDocument` or update previously rendered documents passed through pipeline.\n\n- `TVDML.renderModal(renderFactory)` — Same as `TVDML.render()` but for modals.\n\n- `TVDML.dismissModal()` — Pipeline that removes active modal with ability to track progress.\n\n- `TVDML.removeModal()` — Utility over `TVDML.dismissModal()`. Use it when you don't need to track modal dismissal and don't want to invoke pipeline manually.\n\n- `TVDML.ReactTVML` — Publicly exposed React.js' reconciler for TVML. May be useful for advanced usage. It contains next methods:\n\n  - `render(element, container, callback)` — Mount React.js element to container (usualy TVML document).\n  - `unmountComponentAtNode(container)` — Unmount active React.js components at container and clears markup.\n\n- `TVDML.createEmptyDocument()` — Method to create empty TVML document. May be useful when using `TVDML.ReactTVML` directly. It does same as:\n\n    ```jsx\n    DOMImplementationRegistry.getDOMImplementation().createDocument();\n    ```\n\n## Pipelines and Streams\n\nTo be able to easily manage your data flows TVDML provides two additional utils. They are **Streams** and **Pipelines**. They have similar api but a little different behaviours. All core functionality in TVDML is based upon them.\n\n### Streams\n\nStreams can be created using `TVDML.createStream()` factory and can be described as event bus with ability to combine transforms and create forks. Here is an example:\n\n```js\nconst head = TVDML.createStream();\n\nhead.pipe(value => console.log(value));\nhead.pipe(value => console.log(value));\n\nhead.sink(1);\n```\n\nConsole:\n\n```js\n1\n1\n```\n\nThis code will be resulted with two records in the console because we create two forks of the main stream and all of them will receive sinked value.\n\nEvery `pipe` creates another stream that can be used separately:\n\n```js\nconst head = TVDML.createStream();\nconst tail = head.pipe(value => log(value + 1));\n\ntail.pipe(value => log(value * 3));\n\nhead.sink(1);\ntail.sink(1);\n\nfunction log(value) {\n  console.log(value);\n  return value;\n}\n```\n\nConsole:\n\n```js\n2 // ┬── 1 + 1\n3 // │ ─── 1 * 3\n6 // └── 2 * 3\n```\n\nAs you can see `2` and `6` were produced by sinking `1` to `head` stream and `3` were produced by sinking `1` to `tail` stream. `3` is placed between `2` and `6` because of using promises to resolve pipes.\n\n> Promises execution scheduled after current event loop.\n\nStreams can be combined:\n\n```js\nconst head1 = TVDML.createStream();\nconst head2 = TVDML.createStream();\n\nhead1\n  .pipe(value => log(value + 1))\n  .pipe(head2)\n  .pipe(value => log(value + 2))\n\nhead2\n  .pipe(value => log(value + 3))\n  .pipe(value => log(value + 4))\n\nhead1.sink(1);\n\nfunction log(value) {\n  console.log(value);\n  return value;\n}\n```\n\nConsole:\n\n```js\n2 // ┬─┬ 1 + 1\n5 // │ ├── 2 + 3\n9 // │ └── 5 + 4\n4 // └── 2 + 2\n```\n\nPipe transformations supports promised operations:\n\n```js\nconst head = TVDML.createPipeline();\n\nhead\n  .pipe(value => {\n    return new Promise(resolve => {\n      setTimeout(() => resolve(log(value + 1)), 100);\n    });\n  })\n  .pipe(value => log(value + 2))\n  .sink(1);\n\nfunction log(value) {\n  console.log(value);\n  return value;\n}\n```\n\nConsole:\n\n```js\n2 // (100ms)\n4\n```\n\n#### Streams' public api\n\n- `pipe(handler)` — Fork parent stream and apply transform provided by `handler` function. `handler` can be function or other stream.\n\n- `sink(value)` — Emit passed value to stream and all of its forks. Returns promise that will be resolved when all branches will process sinked value.\n\n### Pipelines\n\nPipelines are streams too. But instead sinking values from the starting point of the stream you create processing pipeline with transformations and sink values from its end. Only requested brunch will be executed. Other forks stays untouched.\n\nLet's compare with streams' first example:\n\n```js\nconst head = TVDML.createPipeline();\n\nhead.pipe(value => console.log(value));\nhead\n  .pipe(value => console.log(value))\n  .sink(1);\n```\n\nConsole:\n\n```js\n1\n```\n\nAs we can see only sinked branch were exected.\n\nLet's compare other examples:\n\n```js\nconst head = TVDML.createPipeline();\nconst tail = head.pipe(value => log(value + 1));\n\ntail.sink(1);\ntail\n  .pipe(value => log(value * 3))\n  .sink(1);\n\nfunction log(value) {\n  console.log(value);\n  return value;\n}\n```\n\nConsole:\n\n```js\n2 // ─── 1 + 1\n2 // ┬── 1 + 1\n6 // └── 2 * 3\n```\n\nCombining pipelines:\n\n```js\nconst head1 = TVDML.createPipeline();\nconst head2 = TVDML.createPipeline();\n\nconst tail2 = head2\n  .pipe(value => log(value + 3))\n  .pipe(value => log(value + 4));\n\nhead1\n  .pipe(value => log(value + 1))\n  .pipe(tail2)\n  .pipe(value => log(value + 2))\n  .sink(1);\n\nfunction log(value) {\n  console.log(value);\n  return value;\n}\n```\n\nConsole:\n\n```js\n2  // ┬── 1 + 1\n5  // ├── 2 + 3\n9  // ├── 5 + 4\n11 // └── 9 + 2\n```\n\n#### Pipelines' public api\n\n- `pipe(handler)` — Fork parent pipeline and create new one with applying transform provided by `handler` function. `handler` can be function or other stream or pipeline.\n\n- `sink(value)` — Emit passed value to pipeline from its first pipe. Returns promise that will be resolved when all transforms in pipeline will process sinked value.\n\n### Rules of combining streams and pipelines\n\n- If stream is passed as `handler` it will pass incoming value to next pipe without changes.\n- If pipeline is passed as `handler` it will return computed value to next pipe.\n\n## Additional tools\n\n### Detecting Menu button press\n\ntvOS and TVJS aren't providing any way to detect Menu button activity on Apple TV Remote (Siri Remote). To be able to detect when user returns from active screen to previous TVDML provides special event that describes activitiy that is posible only with press of the Menu button.\n\n```js\nTVDML\n  .subscribe('menu-button-press')\n  .pipe(transition => {\n    console.log(transition); // { from: { route, document, modal }, to: { route, document, modal } }\n  });\n```\n\nWith this snippet you can detect when user returned to specific screen and perform some activity like update results etc.\n\n```js\nfunction isMenuButtonPressNavigatedTo(targetDocument) {\n  return ({ to: { document } }) => targetDocument === document;\n}\n\nclass MyComponent extends React.PureComponent {\n  componentDidMount() {\n    const currentDocument = this.document.ownerDocument;\n\n    this.menuButtonPressStream = TVDML.subscribe('menu-button-press');\n    this.menuButtonPressStream\n      .pipe(isMenuButtonPressNavigatedTo(currentDocument))\n      .pipe(isNavigated => isNavigated && this.loadData().then(this.setState.bind(this)));\n  }\n\n  componentWillUnmount() {\n    this.menuButtonPressStream.unsubscribe();\n  }\n\n  loadData() {...}\n\n  render() {\n    return (\n      <document ref={node => (this.document = node)}>\n        ...\n      </document>\n    );\n  }\n}\n\nTVDML\n  .createPipeline()\n  .pipe(TVDML.render(() => (\n    <MyComponent />\n  )));\n```\n\n## Sample code\n\nYou can check example application [written using TVDML](https://github.com/a-ignatov-parc/tvos-soap4.me) for [soap4.me](https://soap4.me/) video service.\n\nOr [boilerplate app](https://github.com/a-ignatov-parc/tvdml-app-boilerplate) with base configuration and basic examples.\n\n## Useful Links\n\n- [React.js documentation](https://reactjs.org/docs/hello-world.html)\n- [TVMLKit JS](https://developer.apple.com/reference/tvmljs)\n- [TVML Programming Guide](https://developer.apple.com/library/content/documentation/TVMLKitJS/Conceptual/TVMLProgrammingGuide/)\n- [Apple TV Markup Language Reference](https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/ATV_Template_Guide/)\n- [Beginning tvOS Development with TVML Tutorial](http://www.raywenderlich.com/114886/beginning-tvos-development-with-tvml-tutorial) by Kelvin Lau ([@KelvinlauKl](https://twitter.com/KelvinlauKL))\n\n## Contributions\n\n1. Fork the project.\n1. Commit your enhancements and bug fixes.\n1. Create a pull request describing the changes.\n\n## License\n\nTVDML is released under the [MIT License](LICENSE).\n","readmeFilename":"README.md","_id":"tvdml@6.3.0-0","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"integrity":"sha512-3Opyuzu1iJ1S/PYavLy9oMf62w11tAgINFtTOd1bjdk5FAI7fTKALLsmXOi3G0T4SFcTB59IUIMajy9/GrcqXQ==","shasum":"8e177e5b688b9b75a2fb3ca3c0108b34f0d0d5f4","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-6.3.0-0.tgz","fileCount":5,"unpackedSize":346075,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcl+gpCRA9TVsSAnZWagAAzAQQAIZ7ht6HeDpMC1oeY8PW\nebIxpFDIRRU+I3VlJgFAA0W7Dk8MAQJ+spblahOD83i1ykFae5RiJpT6WjDI\nGFT5HKzpsgEGNnkNjKHvKZnvXrxgLUWZQUPIr2LibqroM5YVzxNfIz5NTNbI\nqEZcyP4FM9Zo4psP3gjyiEyeLlCeLAbzyqeOLvmwe3xnFOWOx0Igqe9LyBvm\n3iRzyqAIcD3aN4qBj3ofMo+dxvg8G+u95OThnbbbbBsr2SeFwZWwTcnWNhH1\nSqLliSmbJWGyXs14IhWQDnV4q/uvzN/LTjNj1LswGSKwO4tIzy4+qSD62J2l\nSjrI59NBo/5EGkLVhrvfjaDC8H2LpFLNBv8566/wi84kDK5SzA5lPVy4g+8+\nGzKATbECWeQm8rzzqBOwKIAvNjgJn0MfUG2I3rQCYoZGgp8RRxKqeMdFNyuH\n3YpgmKD57xa0GMcxXTfPyR/GGlGw5/m2OZIIDfXjrumIMj5h6QqgyCO4HcMb\nsjZbQFXfaTaM7nZQXPH9plkn257oJZQDfB9feXtvePhhzaRlEJotwEhETX/B\nwmCdAl0viacvAYkNlRWZibmB2RDgqQ+wACJRW+krvroNrXxLpnKbTt/Qh3MQ\nIhnpDu5ywCVfEK8dlqm21WFZXED8rw3+H5apj8H1TgbwcY4LhhmslljaHqF4\n/cFc\r\n=zzTu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC82AibkAtN8lNLLqNWiltKQJIr4MwWWk0cpTnLolz7XgIgXkfQnnBrzdRsTKV7HY3NlDFeOKS1bpb5mLQQ8OjiS1k="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml_6.3.0-0_1553459240247_0.8656620975047336"},"_hasShrinkwrap":false},"6.3.0":{"name":"tvdml","version":"6.3.0","description":"Small library for creating declarative apps for tvOS with React.js using TVML and TVJS","main":"dist/tvdml.js","engine-strict":true,"engines":{"node":">=8.9.0","yarn":"^1.3.0"},"scripts":{"install-deps":"npx yarn@$npm_package_engines_yarn install --frozen-lockfile --check-files","build":"webpack --progress","watch":"webpack --watch --progress","dist":"NODE_ENV=production webpack --progress","lint":"eslint webpack.config.js src test","prettier":"prettier --write webpack.config.js src/**/*.js test/**/*.js","test":"NODE_ENV=test mocha --reporter spec --timeout 4000 --require @babel/register","update-readme-toc":"npx doctoc README.md","add-old-tag":"npm dist-tag add $npm_package_name@$npm_package_version old","remove-next-tag":"npm dist-tag rm $npm_package_name next"},"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"keywords":["react","apple","tvos","tvjs","tvml","tv"],"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.js":["eslint","prettier --write","git add"]},"dependencies":{"react-reconciler":"^0.20.3","scheduler":"^0.13.5"},"devDependencies":{"@babel/core":"^7.4.0","@babel/plugin-proposal-object-rest-spread":"^7.4.0","@babel/plugin-transform-modules-commonjs":"^7.4.0","@babel/register":"^7.4.0","babel-loader":"^8.0.5","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-config-prettier":"^4.1.0","eslint-plugin-import":"^2.12.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.8.2","husky":"^1.3.1","lint-staged":"^8.1.5","mocha":"^4.0.1","mocha-junit-reporter":"^1.15.0","prettier":"^1.16.4","react":"^16.8.5","webpack":"^4.29.6","webpack-cli":"^3.3.0"},"peerDependencies":{"react":"^16.8.5"},"gitHead":"d6278a85a1070866497644797a44db4028abbe89","_id":"tvdml@6.3.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"a-ignatov-parc","email":"abietis@gmail.com"},"dist":{"integrity":"sha512-oltWGF9bgW/OmOIz2FI7gvvi7Nokh1UTyQrUQt9se/ofxsPdAAsNUulfu/PCAcbrro1tO9dEcArKLO/leL2TOw==","shasum":"e7b4037b77d6167f3a596a77e1f7e049ff183188","tarball":"https://registry.npmjs.org/tvdml/-/tvdml-6.3.0.tgz","fileCount":5,"unpackedSize":346073,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcl/h3CRA9TVsSAnZWagAAvhgP/3glNc7qrAcfqgR4sfSC\nknBSxPSgWzB4CWopds/6Po+Qg6ifQQSTbMwl+3+RZhpUwlZVA9clZzN6BwiH\nFOuy4Hqta5EDxhVrHybeliDiAH2AlA/C76/QoIQdxr7xDGuIFQtOJ020Lub6\nOSwgh02XB5IqeUzA8aqBgrDurdnBaH05zBba6yThUjLLmxkd2tpHucckkiGU\nLAqWSujXAnkK8ATxQKB+HnMnEwnpi/S8SdIvQtMgvzXrsP2I9Q9iq40/UWnP\nloXVSWgDTeOVFnhbK/QKKWnEBZxw+84z3Vzyx8CFMQn23DY2hIAWxARrx1wM\n+hA9F065R/mBKlHtUit+8w71LxrXBUg6rc7K4EMV8q2XPUIxtQ5kIz4mBm2N\nELrvt/0dEfXTmPgbqNTfjbDVKTXNjVU9g7h7byDWVVW7Wn/6zO2+9sDlTNnE\naQAFwNVFOEiGXqxyGY0kW6oXD/beGbN2G5hTmxIsnEPO+kgmLHlPOyhnQtIx\n/znVbG+594z76Akc2vDOiNaHi3FhxamDiRbUrNbg5YnXDvBTCzGdPHHRcwCx\nXEz83uUhWkWAHRbWpMptqgof9lQnTUevoARZQID/GbM9N+lFmpE5g1Jnfgz/\nhGzwN8xLdG/rI4YA+38XVNk+r6GuHfW4S3B3hN79Dj1gD3P6ndd8/XFljT5G\ngZJE\r\n=RVYI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICD0zOVR7eNV4Rkr02Bo//X68hRb++FGfKRxZEmjEYgMAiAXLgQfTKA2SPnTH8sa7AjF0N5sQHMwwZiD1FHRU1pF3Q=="}]},"maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tvdml_6.3.0_1553463414628_0.15297063139815048"},"_hasShrinkwrap":false}},"readme":"# TVDML [![CircleCI](https://circleci.com/gh/a-ignatov-parc/tvdml.svg?style=svg)](https://circleci.com/gh/a-ignatov-parc/tvdml)\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\n\n- [New!](#new)\n  - [Update highlights](#update-highlights)\n  - [Migration guide](#migration-guide)\n- [Intro](#intro)\n- [System Requirements](#system-requirements)\n- [Getting started](#getting-started)\n- [Routing](#routing)\n- [Using React.js](#using-reactjs)\n  - [Rendering to player's documents](#rendering-to-players-documents)\n  - [Modals](#modals)\n  - [Working with `menuBar`](#working-with-menubar)\n  - [Styling elements](#styling-elements)\n  - [Events](#events)\n  - [Working with `DataItem`](#working-with-dataitem)\n  - [Complete rendering api](#complete-rendering-api)\n- [Pipelines and Streams](#pipelines-and-streams)\n  - [Streams](#streams)\n    - [Streams' public api](#streams-public-api)\n  - [Pipelines](#pipelines)\n    - [Pipelines' public api](#pipelines-public-api)\n  - [Rules of combining streams and pipelines](#rules-of-combining-streams-and-pipelines)\n- [Additional tools](#additional-tools)\n  - [Detecting Menu button press](#detecting-menu-button-press)\n- [Sample code](#sample-code)\n- [Useful Links](#useful-links)\n- [Contributions](#contributions)\n- [License](#license)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n## New!\n\nThis is the new version of tvdml, `6.X`.\n\n### Update highlights\n\n- Switched TVML renderer to React.js (**Breaking**).\n- Unified different ways to create TVML documents (**Breaking**).\n- Simpler syntax to create stylesheets using `<style>` element (**Breaking**).\n- Improved Menu button detection.\n- Changed `TVDML.renderModal()` rerendering behavior (**Breaking**).\n\n### Migration guide\n\nCheck out [migration guide from `5.X`](docs/MIGRATION_5.md).\n\nFor the older version of tvdml, refer to the [`5.X` branch](https://github.com/a-ignatov-parc/tvdml/tree/v5.1.1).\n\n## Intro\n\nThis is a library that's the main goal is to greatly simplify app development for Apple TV using [React.js](https://reactjs.org/) and provide tools to solve problems like:\n\n- React.js integration with TVML and TVJS.\n- Routing.\n- Event binding.\n- \"Menu\" button detection.\n\n## System Requirements\n\nStarting from `4.X` TVDML drops support for tvOS < 10. If you need that support please consider using [`3.X`](https://github.com/a-ignatov-parc/tvdml/tree/v3.0.4).\n\n## Getting started\n\nTVDML is shipping as [npm package](https://www.npmjs.com/package/tvdml) and can be installed with npm or `yarn`. In addition you'll need to install React.js.\n\n```\nnpm install --save tvdml react\n```\n\nOr using `yarn`\n```\nyarn add tvdml react\n```\n\nTVDML is written in ES6 and built using UMD wrapper so it can be used in any environment with any of this ways:\n\n```js\n// Directly from global scope.\nApp.onLaunch = function() {\n  console.log(TVDML);\n}\n\n// Or with CommonJS if you are using bundlers like browserify.\nvar TVDML = require('tvdml');\n\n// Or with ES6 imports.\nimport * as TVDML from 'tvdml';\n\n// You can use ES6 destructuring if you need only few\n// of the provided features.\nimport { subscribe, handleRoute, navigate } from 'tvdml';\n\n// Or even require modules from their sources.\nimport { handleRoute, navigate } from 'tvdml/src/navigation';\n```\n\n> Requiring modules from their sources can help you decrease app size if you are using [rollup](http://rollupjs.org/) for your builds.\n\nDespite being written totally in ES6 TVDML is not forcing you to use it.\n\nBut you should agree that this...\n\n```js\nApp.onLaunch = function(options) {\n  evaluateScripts([\n    options.BASEURL + 'libs/tvdml.js',\n    options.BASEURL + 'libs/react.js',\n  ], function(success) {\n    if (success) {\n      TVDML\n        .render(function(payload) {\n          return React.createElement(\n            'document',\n            null,\n            React.createElement(\n              'alertTemplate',\n              null,\n              React.createElement(\n                'title',\n                null,\n                'Hello world'\n              )\n            )\n          );\n        })\n        .sink();\n    }\n  });\n}\n```\n\nDoesn't look as nice as this\n\n```js\nimport React from 'react';\nimport * as TVDML from 'tvdml';\n\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(TVDML.render(payload => (\n    <document>\n      <alertTemplate>\n        <title>Hello world</title>\n      </alertTemplate>\n    </document>\n  )));\n```\n\nSo what we need to be able to write code as in second example? Well it's not that simple but this [tvdml-boilerplate](https://github.com/a-ignatov-parc/tvdml-app-boilerplate) repo will shed the light on basic build configuration.\n\nWell! Now we know how to write apps using ES6 and JSX so let's start from the basic features!\n\n## Routing\n\ntvOS provided great foundation to write apps using [TVML](https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/ATV_Template_Guide/index.html) and [TVJS](https://developer.apple.com/reference/tvmljs). But you need somehow to react on user's activity and map it to the UI.\n\nTo help you solve this issues TVDML provides navigation module.\n\n```js\nimport React from 'react';\nimport * as TVDML from 'tvdml';\n\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(() => TVDML.navigate('start'));\n\nTVDML\n  .handleRoute('start')\n  .pipe(TVDML.render(() => (\n    <document>\n      <alertTemplate>\n        <title>This is initial view</title>\n        <description>You can now navigate to another view</description>\n        <button onSelect={event => TVDML.navigate('next')}>\n          <text>Go to next page</text>\n        </button>\n      </alertTemplate>\n    </document>\n  )));\n\nTVDML\n  .handleRoute('next')\n  .pipe(TVDML.render(() => (\n    <document>\n      <alertTemplate>\n        <title>This is next view</title>\n        <description>Now you know how to use routes!</description>\n      </alertTemplate>\n    </document>\n  )));\n```\n\n> This is a small example of navigation and rendering modules usage which helps handle routes and show views to the user.\n\nHere is a complete navigation module api:\n\n- `TVDML.handleRoute(routeName)` — Creates pipeline for route handling. Only one pipeline can be created for the route. Otherwise it will throw error.\n\n- `TVDML.dismissRoute(routeName)` — Destroy previously created route pipeline. Can destroy only created pipelines. Otherwise it will throw error.\n\n- `TVDML.navigate(routeName[, params][, isRedirect])` — Navigation trigger. Will invoke registered route pipeline with passed params if they are specified. Route pipeline will result in creating new navigation document. if param `isRedirect` is passed then route pipeline will replace current navigation document with new one.\n\n- `TVDML.redirect(routeName[, params])` — Same as `TVDML.navigate(routeName, params, true)`.\n\n```js\nimport * as TVDML from 'tvdml';\n\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(() => TVDML.navigate('start', { foo: 'bar' }));\n\n// To create route handler use `handleRoute` method.\nTVDML\n  .handleRoute('start')\n  .pipe(payload => {\n    const {\n      route,\n      redirect,\n      navigation,\n    } = payload;\n\n    console.log(route); // 'start'\n    console.log(redirect); // false\n    console.log(navigation); // { foo: 'bar' }\n  });\n\n// `dismissRoute` method will help you destroy route handler.\nTVDML.dismissRoute('start');\n```\n\nHere is a list of predefined constants for system events:\n\n- `TVDML.event.EXIT`\n- `TVDML.event.ERROR`\n- `TVDML.event.LAUNCH`\n- `TVDML.event.RELOAD`\n- `TVDML.event.RESUME`\n- `TVDML.event.SUSPEND`\n\n> This events are related to system handlers: `App.onLaunch`, `App.onExit` etc.\n\nWhy would you use this events and not system handlers directly? Handlers can be assigned only once and events can be attached multiple times. But no one force you to use them.\n\nYou can add event listeners like this:\n\n```js\nimport * as TVDML from 'tvdml';\n\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(eventSymbol => console.log('App is launched!'));\n\nconst suspendEventPipeline = TVDML\n  .subscribe(TVDML.event.SUSPEND)\n  .pipe(eventSymbol => console.log('App is sent to background'));\n\n// To destroy event pipeline use `unsubscribe` method.\nsuspendEventPipeline.unsubscribe();\n```\n\n> To know more about how pipelines works check [Pipelines](#pipelines) section.\n\nAlso there are some predefined routes that may help you:\n\n- `TVDML.route.NOT_FOUND` — Will be invoked when navigation module was unable to find match to requested route.\n\nThe next big thing is...\n\n## Using React.js\n\nWith TVDML your main way to create documents will be React.js.\n\n> Here is a [list of all available documents](https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/ATV_Template_Guide/TextboxTemplate.html) in TVML.\n\nTo render any react component you need to provide rendering factory to `TVDML.render` pipeline.\n\nPipeline's payload will be passed as the first argument to rendering factory so you'll be able to map it's props to rendering tree.\n\n```js\nimport React from 'react';\nimport * as TVDML from 'tvdml';\n\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(TVDML.render(payload => (\n    <document>\n      <alertTemplate>\n        <title>Hello world</title>\n      </alertTemplate>\n    </document>\n  )));\n```\n\nHere is how to render any component you like:\n\n```js\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport * as TVDML from 'tvdml';\n\nfunction Hello(props) {\n  return (\n    <document>\n      <alertTemplate>\n        <title>Hello {props.name}</title>\n      </alertTemplate>\n    </document>\n  );\n}\n\nHello.propTypes = {\n  name: PropTypes.string,\n};\n\nHello.defaultProps = {\n  name: 'world',\n};\n\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(TVDML.render(payload => (\n    <Hello name=\"user\" />\n  )));\n```\n\nIt's just plain old React.js.\n\nBut there are some things you need to remember about TVML and React.js.\n\nBecause TVML and TVJS are not your normal browser they have some limitations. And to be able to work with them as best as possible react's tvml renderer have some quirks:\n\n1. Attribute names should be written in props as they are written in [docs](https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/ATV_Template_Guide/TVJSAttributes.html). There is no `className` to set `class` attribute.\n1. Events are normal DOM events provided by TVML.\n\nEverythin else should be as you expected.\n\n### Rendering to player's documents\n\n`player.overlayDocument` and `player.interactiveOverlayDocument` are not default targets for rendering components but there are two ways to do this:\n\n1. Sink empty document to `TVDML.render()`:\n\n    ```js\n    const document = TVDML.createEmptyDocument();\n\n    const pipeline = TVDML.render(() => (\n      <document>\n        <alertTemplate>\n          <title>Hello</title>\n        </alertTemplate>\n      </document>\n    ));\n\n    pipeline.sink({ document }).then(() => {\n      player.interactiveOverlayDocument = document;\n    });\n    ```\n\n1. Use TVML renderer directly\n\n    ```js\n    const document = TVDML.createEmptyDocument();\n\n    TVDML.ReactTVML.render((\n      <document>\n        <alertTemplate>\n          <title>Hello</title>\n        </alertTemplate>\n      </document>\n    ), document, () => {\n      player.interactiveOverlayDocument = document;\n    });\n    ```\n\nJust don't forget to unmount components when you clear player's documents or you may face memory leaks and many other issues.\n\nYou can unmount component by passing previously rendered document to `TVDML.ReactTVML.unmountComponentAtNode(document)`.\n\n### Modals\n\nModals are perfect when you need to show some useful information but don't want to interupt opened view context. You can use `TVDML.renderModal()` method to render any document you want in overlay. `TVDML.renderModal()` behaviour is similar to `TVDML.render()`.\n\nThere is also `TVDML.removeModal()` method that removes any presented modal document. Or `TVDML.dismissModal()` to compose modal dismissal with other operations.\n\n```js\nimport React from 'react';\nimport * as TVDML from 'tvdml';\n\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(() => TVDML.navigate('start'));\n\nTVDML\n  .handleRoute('start')\n  .pipe(downloadTVShows())\n  .pipe(TVDML.render(payload => (\n    <document>\n      <stackTemplate>\n        <banner>\n          <title>TV Shows</title>\n        </banner>\n        <collectionList>\n          <grid>\n            {payload.tvshows.map(tvshow => {\n              return (\n                <lockup onSelect={showTVShowDescription.bind(this, tvshow)}>\n                  <img src={tvshow.cover} width=\"250\" height=\"250\" />\n                  <title>{tvshow.title}</title>\n                </lockup>\n              );\n            })}\n          </grid>\n        </collectionList>\n      </stackTemplate>\n    </document>\n  )));\n\nfunction showTVShowDescription(tvshow) {\n  // Creating modal document rendering pipeline.\n  const pipeline = TVDML.renderModal(() => (\n    <document>\n      <descriptiveAlertTemplate>\n        <title>{tvshow.title}</title>\n        <description>{tvshow.description}</description>\n      </descriptiveAlertTemplate>\n    </document>\n  ));\n\n  // Invoking created pipeline.\n  pipeline.sink();\n}\n```\n\nEvery next invocation of `TVDML.renderModal()` will rerender active modal without closing it.\n\nIf you need to close and then open modal again use `TVDML.dismissModal()` pipeline.\n\n```js\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(TVDML.renderModal(() => (\n    <document>\n      <descriptiveAlertTemplate>\n        <title>Modal #1</title>\n      </descriptiveAlertTemplate>\n    </document>\n  )))\n  .pipe(TVDML.dismissModal())\n  .pipe(TVDML.renderModal(() => (\n    <document>\n      <descriptiveAlertTemplate>\n        <title>Modal #2</title>\n      </descriptiveAlertTemplate>\n    </document>\n  )));\n```\n\n### Working with `menuBar`\n\nOne of the trickiest things in TVML is configure and use [menu bar](https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/ATV_Template_Guide/MenuBarTemplate.html) across multiple views.\n\nTVDML provides easy to use solution for this issue.\n\n```js\nimport React from 'react';\nimport * as TVDML from 'tvdml';\n\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(TVDML.render(() => (\n    <document>\n      <menuBarTemplate>\n        <menuBar>\n          <menuItem route=\"search\">\n            <title>Search</title>\n          </menuItem>\n          <menuItem route=\"my\" autoHighlight>\n            <title>My</title>\n          </menuItem>\n          <menuItem route=\"all\">\n            <title>TV Shows</title>\n          </menuItem>\n          <menuItem route=\"settings\">\n            <title>Settings</title>\n          </menuItem>\n        </menuBar>\n      </menuBarTemplate>\n    </document>\n  )));\n\nTVDML\n  .handleRoute('my')\n  .pipe(...);\n\nTVDML\n  .handleRoute('all')\n  .pipe(...);\n\nTVDML\n  .handleRoute('search')\n  .pipe(...);\n\nTVDML\n  .handleRoute('settings')\n  .pipe(...);\n```\n\nViews switching will be handled by TVDML. All you have to do is to create `menuItem` elements with defined `route` attribute which must point to defined routes.\n\n> If you want to select specific menu item use `autoHighlight` attribute for this purpose.\n\n### Styling elements\n\nThere are two ways to style elements:\n\n1. Using `style` prop to write inline styles. `style` prop is key-value dictionary. Keys are style names written in camelCase.\n1. Using `<style>` element to define stylesheets  + `class` prop to bind them to elements.\n\n```js\nimport React from 'react';\nimport * as TVDML from 'tvdml';\n\nTVDML\n  .subscribe(TVDML.event.LAUNCH)\n  .pipe(TVDML.render(payload => (\n    <document>\n      <head>\n        <style>{`\n          .title {\n            tv-text-style: title1;\n          }\n        `}</style>\n      </head>\n      <alertTemplate>\n        <title class=\"title\">Hello user</title>\n        <description style={{ tvTextStyle: 'title2' }}>\n          Nice to see you\n        </description>\n      </alertTemplate>\n    </document>\n  )));\n```\n\nAll available styles can be found here: [TVML Styles](https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/ATV_Template_Guide/ITMLStyles.html).\n\n### Events\n\nHere is everything as in React.js except that all events are native TVML events.\n\nList of controllable elements:\n\n- `button`\n- `lockup`\n- `listItemLockup`\n\nList of available handlers:\n\n- `onPlay` — Triggers when \"Play\" button is pressed.\n- `onSelect` — Triggers when Touchpad is pressed.\n- `onChange` — Triggers when element change its value. `<ratingBadge />` for example.\n- `onHighlight` — Triggers when element becoming highlighted.\n- `onHoldselect` — Triggers when Touchpad is pressed with a long press.\n- `onNeedsmore` — Triggers when user approaches end of the list by scrolling.\n\n```js\n<button onSelect={event => console.log(event.target)}>\n  <text>Press Me</text>\n</button>\n```\n\n### Working with `DataItem`\n\nIn tvOS 11 [`DataItem`](https://developer.apple.com/documentation/tvmljs/dataitem) binding api was presented to fix performance issues with large documents that may ended up with very long parsing and rendering.\n\nHere is a [short example](https://developer.apple.com/library/content/documentation/TVMLKitJS/Conceptual/TVMLProgrammingGuide/GeneratingContentForYourApp.html) how Apple suggests to use it.\n\nSo now you may wondering how we can use this cool feature in JSX?\n\nWe got you covered! Here is an updated example from \"[Requesting and rendering data](#requesting-and-rendering-data)\" section:\n\n```js\nconst tvshows = [\n  {\n    title: 'Arrow, Season 1',\n    url: 'http://is2.mzstatic.com/image/thumb/Music6/v4/e9/bb/9b/e9bb9bbb-16c0-d946-063d-15632dd78a76/source/600x600bb.jpg',\n  },\n  {\n    title: 'Arrow, Season 2',\n    url: 'http://is1.mzstatic.com/image/thumb/Music3/v4/bb/87/84/bb8784ca-7e31-0cc1-b56d-9243624863d3/source/600x600bb.jpg',\n  },\n  {\n    title: 'Arrow, Season 3',\n    url: 'http://is2.mzstatic.com/image/thumb/Video62/v4/ec/ca/78/ecca78a3-5bb0-0b32-954c-f7fd966582ab/source/600x600bb.jpg',\n  },\n];\n\nTVDML\n  .handleRoute('start')\n  .pipe(TVDML.render(() => (\n    <document>\n      <stackTemplate>\n        <banner>\n          <title>TV Shows</title>\n        </banner>\n        <collectionList>\n          <shelf>\n            <prototypes>\n              <lockup prototype=\"tvshow\">\n                <img\n                  binding=\"@src:{url};\"\n                  width=\"300\"\n                  height=\"300\"\n                />\n                <title binding=\"textContent:{title};\" />\n              </lockup>\n            </prototypes>\n            <section\n              binding=\"items:{tvshows};\"\n              onSelect={event => console.log(event.target.dataItem)}\n              dataItem={{\n                tvshows: mockData.map((cover, i) => {\n                  const item = new DataItem('tvshow', i);\n\n                  item.url = cover.url;\n                  item.title = cover.title;\n\n                  return item;\n                }),\n              }}\n            />\n          </shelf>\n        </collectionList>\n      </stackTemplate>\n    </document>\n  )));\n```\n\nThe key difference from the example provided by Apple is `dataItem` attribute. It's responsible to apply `DataItems` to final document and this:\n\n```js\n<section\n  binding=\"items:{tvshows}\"\n  dataItem={{\n    tvshows: tvshows.map(tvshow => {\n      const item = new DataItem('tvshow', i);\n\n      item.url = cover.url;\n      item.title = cover.title;\n\n      return item;\n    }),\n  }}\n/>\n```\n\nIs same as:\n\n```js\n<section binding=\"items:{tvshows}\" />\n\nfunction parseJson(information) {\n  const results = JSON.parse(information);\n\n  const parsedTemplate = templateDocument();\n\n  navigationDocument.pushDocument(parsedTemplate);\n\n  const shelf = parsedTemplate.getElementsByTagName('shelf').item(0);\n  const section = shelf.getElementsByTagName('section').item(0);\n\n  section.dataItem = new DataItem();\n\n  const newItems = results.map((result) => {\n      const objectItem = new DataItem(result.type, result.ID);\n      objectItem.cover = result.cover;\n      objectItem.title = result.title;\n      return objectItem;\n  });\n\n  section.dataItem.setPropertyPath('tvshows', newItems);\n}\n```\n\n### Complete rendering api\n\n- `TVDML.render(renderFactory)` — Main rendering pipeline for React.js components. Responsible for rendering new document to `navigationDocument` or update previously rendered documents passed through pipeline.\n\n- `TVDML.renderModal(renderFactory)` — Same as `TVDML.render()` but for modals.\n\n- `TVDML.dismissModal()` — Pipeline that removes active modal with ability to track progress.\n\n- `TVDML.removeModal()` — Utility over `TVDML.dismissModal()`. Use it when you don't need to track modal dismissal and don't want to invoke pipeline manually.\n\n- `TVDML.ReactTVML` — Publicly exposed React.js' reconciler for TVML. May be useful for advanced usage. It contains next methods:\n\n  - `render(element, container, callback)` — Mount React.js element to container (usualy TVML document).\n  - `unmountComponentAtNode(container)` — Unmount active React.js components at container and clears markup.\n\n- `TVDML.createEmptyDocument()` — Method to create empty TVML document. May be useful when using `TVDML.ReactTVML` directly. It does same as:\n\n    ```jsx\n    DOMImplementationRegistry.getDOMImplementation().createDocument();\n    ```\n\n## Pipelines and Streams\n\nTo be able to easily manage your data flows TVDML provides two additional utils. They are **Streams** and **Pipelines**. They have similar api but a little different behaviours. All core functionality in TVDML is based upon them.\n\n### Streams\n\nStreams can be created using `TVDML.createStream()` factory and can be described as event bus with ability to combine transforms and create forks. Here is an example:\n\n```js\nconst head = TVDML.createStream();\n\nhead.pipe(value => console.log(value));\nhead.pipe(value => console.log(value));\n\nhead.sink(1);\n```\n\nConsole:\n\n```js\n1\n1\n```\n\nThis code will be resulted with two records in the console because we create two forks of the main stream and all of them will receive sinked value.\n\nEvery `pipe` creates another stream that can be used separately:\n\n```js\nconst head = TVDML.createStream();\nconst tail = head.pipe(value => log(value + 1));\n\ntail.pipe(value => log(value * 3));\n\nhead.sink(1);\ntail.sink(1);\n\nfunction log(value) {\n  console.log(value);\n  return value;\n}\n```\n\nConsole:\n\n```js\n2 // ┬── 1 + 1\n3 // │ ─── 1 * 3\n6 // └── 2 * 3\n```\n\nAs you can see `2` and `6` were produced by sinking `1` to `head` stream and `3` were produced by sinking `1` to `tail` stream. `3` is placed between `2` and `6` because of using promises to resolve pipes.\n\n> Promises execution scheduled after current event loop.\n\nStreams can be combined:\n\n```js\nconst head1 = TVDML.createStream();\nconst head2 = TVDML.createStream();\n\nhead1\n  .pipe(value => log(value + 1))\n  .pipe(head2)\n  .pipe(value => log(value + 2))\n\nhead2\n  .pipe(value => log(value + 3))\n  .pipe(value => log(value + 4))\n\nhead1.sink(1);\n\nfunction log(value) {\n  console.log(value);\n  return value;\n}\n```\n\nConsole:\n\n```js\n2 // ┬─┬ 1 + 1\n5 // │ ├── 2 + 3\n9 // │ └── 5 + 4\n4 // └── 2 + 2\n```\n\nPipe transformations supports promised operations:\n\n```js\nconst head = TVDML.createPipeline();\n\nhead\n  .pipe(value => {\n    return new Promise(resolve => {\n      setTimeout(() => resolve(log(value + 1)), 100);\n    });\n  })\n  .pipe(value => log(value + 2))\n  .sink(1);\n\nfunction log(value) {\n  console.log(value);\n  return value;\n}\n```\n\nConsole:\n\n```js\n2 // (100ms)\n4\n```\n\n#### Streams' public api\n\n- `pipe(handler)` — Fork parent stream and apply transform provided by `handler` function. `handler` can be function or other stream.\n\n- `sink(value)` — Emit passed value to stream and all of its forks. Returns promise that will be resolved when all branches will process sinked value.\n\n### Pipelines\n\nPipelines are streams too. But instead sinking values from the starting point of the stream you create processing pipeline with transformations and sink values from its end. Only requested brunch will be executed. Other forks stays untouched.\n\nLet's compare with streams' first example:\n\n```js\nconst head = TVDML.createPipeline();\n\nhead.pipe(value => console.log(value));\nhead\n  .pipe(value => console.log(value))\n  .sink(1);\n```\n\nConsole:\n\n```js\n1\n```\n\nAs we can see only sinked branch were exected.\n\nLet's compare other examples:\n\n```js\nconst head = TVDML.createPipeline();\nconst tail = head.pipe(value => log(value + 1));\n\ntail.sink(1);\ntail\n  .pipe(value => log(value * 3))\n  .sink(1);\n\nfunction log(value) {\n  console.log(value);\n  return value;\n}\n```\n\nConsole:\n\n```js\n2 // ─── 1 + 1\n2 // ┬── 1 + 1\n6 // └── 2 * 3\n```\n\nCombining pipelines:\n\n```js\nconst head1 = TVDML.createPipeline();\nconst head2 = TVDML.createPipeline();\n\nconst tail2 = head2\n  .pipe(value => log(value + 3))\n  .pipe(value => log(value + 4));\n\nhead1\n  .pipe(value => log(value + 1))\n  .pipe(tail2)\n  .pipe(value => log(value + 2))\n  .sink(1);\n\nfunction log(value) {\n  console.log(value);\n  return value;\n}\n```\n\nConsole:\n\n```js\n2  // ┬── 1 + 1\n5  // ├── 2 + 3\n9  // ├── 5 + 4\n11 // └── 9 + 2\n```\n\n#### Pipelines' public api\n\n- `pipe(handler)` — Fork parent pipeline and create new one with applying transform provided by `handler` function. `handler` can be function or other stream or pipeline.\n\n- `sink(value)` — Emit passed value to pipeline from its first pipe. Returns promise that will be resolved when all transforms in pipeline will process sinked value.\n\n### Rules of combining streams and pipelines\n\n- If stream is passed as `handler` it will pass incoming value to next pipe without changes.\n- If pipeline is passed as `handler` it will return computed value to next pipe.\n\n## Additional tools\n\n### Detecting Menu button press\n\ntvOS and TVJS aren't providing any way to detect Menu button activity on Apple TV Remote (Siri Remote). To be able to detect when user returns from active screen to previous TVDML provides special event that describes activitiy that is posible only with press of the Menu button.\n\n```js\nTVDML\n  .subscribe('menu-button-press')\n  .pipe(transition => {\n    console.log(transition); // { from: { route, document, modal }, to: { route, document, modal } }\n  });\n```\n\nWith this snippet you can detect when user returned to specific screen and perform some activity like update results etc.\n\n```js\nfunction isMenuButtonPressNavigatedTo(targetDocument) {\n  return ({ to: { document } }) => targetDocument === document;\n}\n\nclass MyComponent extends React.PureComponent {\n  componentDidMount() {\n    const currentDocument = this.document.ownerDocument;\n\n    this.menuButtonPressStream = TVDML.subscribe('menu-button-press');\n    this.menuButtonPressStream\n      .pipe(isMenuButtonPressNavigatedTo(currentDocument))\n      .pipe(isNavigated => isNavigated && this.loadData().then(this.setState.bind(this)));\n  }\n\n  componentWillUnmount() {\n    this.menuButtonPressStream.unsubscribe();\n  }\n\n  loadData() {...}\n\n  render() {\n    return (\n      <document ref={node => (this.document = node)}>\n        ...\n      </document>\n    );\n  }\n}\n\nTVDML\n  .createPipeline()\n  .pipe(TVDML.render(() => (\n    <MyComponent />\n  )));\n```\n\n## Sample code\n\nYou can check example application [written using TVDML](https://github.com/a-ignatov-parc/tvos-soap4.me) for [soap4.me](https://soap4.me/) video service.\n\nOr [boilerplate app](https://github.com/a-ignatov-parc/tvdml-app-boilerplate) with base configuration and basic examples.\n\n## Useful Links\n\n- [React.js documentation](https://reactjs.org/docs/hello-world.html)\n- [TVMLKit JS](https://developer.apple.com/reference/tvmljs)\n- [TVML Programming Guide](https://developer.apple.com/library/content/documentation/TVMLKitJS/Conceptual/TVMLProgrammingGuide/)\n- [Apple TV Markup Language Reference](https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/ATV_Template_Guide/)\n- [Beginning tvOS Development with TVML Tutorial](http://www.raywenderlich.com/114886/beginning-tvos-development-with-tvml-tutorial) by Kelvin Lau ([@KelvinlauKl](https://twitter.com/KelvinlauKL))\n\n## Contributions\n\n1. Fork the project.\n1. Commit your enhancements and bug fixes.\n1. Create a pull request describing the changes.\n\n## License\n\nTVDML is released under the [MIT License](LICENSE).\n","maintainers":[{"name":"a-ignatov-parc","email":"abietis@gmail.com"}],"time":{"modified":"2022-06-27T23:47:34.754Z","created":"2016-11-01T06:38:25.431Z","1.0.0":"2016-11-01T06:38:25.431Z","1.0.1":"2017-01-03T11:00:16.485Z","1.0.2":"2017-01-03T11:51:05.037Z","1.0.3":"2017-01-03T20:29:36.918Z","1.1.0":"2017-02-07T05:32:11.687Z","1.2.0":"2017-02-22T21:28:45.373Z","1.2.1":"2017-02-23T03:51:47.252Z","2.0.0":"2017-03-04T01:11:26.460Z","2.0.1":"2017-03-04T02:57:23.464Z","2.0.2":"2017-03-06T20:45:39.563Z","2.0.3":"2017-03-07T23:31:04.246Z","2.0.4":"2017-10-07T01:18:14.669Z","3.0.1":"2017-10-21T23:50:55.543Z","3.0.2":"2017-10-22T00:36:55.860Z","3.0.3":"2017-10-22T00:46:49.489Z","3.0.4":"2017-10-22T00:56:30.548Z","4.0.0":"2017-11-26T14:44:19.553Z","4.0.1":"2017-11-27T08:08:32.302Z","5.0.0":"2017-12-01T17:48:30.539Z","5.1.0":"2017-12-03T10:34:07.100Z","5.1.1":"2017-12-03T22:30:08.422Z","6.0.0-0":"2017-12-26T07:37:50.752Z","6.0.0-1":"2017-12-26T08:26:11.670Z","6.0.0-2":"2017-12-27T15:04:42.854Z","6.0.0-3":"2018-01-05T22:53:26.107Z","6.0.0":"2018-01-11T08:42:25.542Z","6.0.1":"2018-03-30T13:22:58.687Z","6.0.2":"2018-03-31T23:20:39.169Z","6.0.3":"2018-03-31T23:35:09.388Z","6.0.4":"2018-04-03T18:12:31.953Z","6.1.0":"2018-05-24T07:23:33.607Z","6.1.1":"2018-06-26T04:30:07.169Z","6.2.0":"2018-10-14T16:48:15.796Z","6.2.1":"2018-10-18T17:54:28.955Z","6.2.2":"2018-10-23T09:22:20.860Z","6.2.3":"2018-10-23T21:27:17.550Z","6.3.0-0":"2019-03-24T20:27:20.378Z","6.3.0":"2019-03-24T21:36:54.787Z"},"homepage":"https://github.com/a-ignatov-parc/tvdml#readme","keywords":["react","apple","tvos","tvjs","tvml","tv"],"repository":{"type":"git","url":"git+https://github.com/a-ignatov-parc/tvdml.git"},"author":{"name":"Anton Ignatov","email":"abietis@gmail.com"},"bugs":{"url":"https://github.com/a-ignatov-parc/tvdml/issues"},"license":"MIT","readmeFilename":"README.md"}