{"_id":"dio.js","_rev":"106-73281a496193eeb3022613ecb70350e3","name":"dio.js","description":"A Library For Building User Interfaces.","dist-tags":{"latest":"9.1.1","next":"9.0.0-rc.2"},"versions":{"1.0.0":{"name":"dio.js","main":"dio.js","description":"Dio is a lightweight (~7kb) feature rich Virtual DOM framework","version":"1.0.0","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["vdom","virtual","dom","virtual dom","react","dio","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"files":["dio.min.js","dio.js"],"gitHead":"60397350653fde0239f8304228afce6032e6814c","_id":"dio.js@1.0.0","scripts":{},"_shasum":"736366b694f7bd827b8b0893579e1b4842eb5050","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"736366b694f7bd827b8b0893579e1b4842eb5050","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-1.0.0.tgz","integrity":"sha512-KLwxm8D24yrMENT849/YoAGL+hKEdBgH6RZEuIGOUPZhaJgf8nev+pfa/RqW/IUt7u3KIxCnTjRuIPuqefVp4A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG5RaGBKjclPv4PUxkKDSNiy3RtNCZGrANsI2GfE3O+OAiATLS6rZSPDVlenHT8M6ItJn7X0bs1enRZkFArqFqV4zQ=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/dio.js-1.0.0.tgz_1471484727090_0.9856390741188079"},"directories":{}},"1.0.2":{"name":"dio.js","main":"dio.js","description":"Dio is a lightweight (~7kb) feature rich Virtual DOM framework","version":"1.0.2","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["vdom","virtual","dom","virtual dom","react","dio","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"files":["dio.min.js","dio.js"],"gitHead":"ec0ee315dce01a04ea8f1bf58ff5007e223a4497","_id":"dio.js@1.0.2","scripts":{},"_shasum":"ed041e3b040198a42ab42c129ae14ea438686383","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"ed041e3b040198a42ab42c129ae14ea438686383","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-1.0.2.tgz","integrity":"sha512-I0sCuiIpR6rIJp9mqVwE0ODxB49aBlKdLb7jd5Iw1T1Z1M6EQvPhthTpmZhIxmlk2kH9RQLu1sJPAWCYdsNYQQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDC6wO5gVlZzZb2wgLPw+JvY8/ETubQUtzIfgA8cBiZ8QIhAPuTruFq1ZF60ZTyhGb4XBqnTlv+gnbyqBkk8OFLk9C+"}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/dio.js-1.0.2.tgz_1471623270852_0.08298025652766228"},"directories":{}},"1.0.3":{"name":"dio.js","main":"dio.js","description":"Dio is a lightweight (~7kb) feature rich Virtual DOM framework","version":"1.0.3","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["vdom","virtual","dom","virtual dom","react","dio","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"files":["dio.min.js","dio.js"],"gitHead":"ec0ee315dce01a04ea8f1bf58ff5007e223a4497","_id":"dio.js@1.0.3","scripts":{},"_shasum":"62344f3f31edcf86c70c9b33b03da1b12ce9a9bf","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"62344f3f31edcf86c70c9b33b03da1b12ce9a9bf","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-1.0.3.tgz","integrity":"sha512-KFGO99kblydjrZmTug69Qqo0bLDDLaCwL+D4AwiknakSHWwhbfDrCGst7KCIMaPgYV6XwikHSLtBifxX/5bVkA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFUo5biLk7+sJ4kWJZQiOJIxcFvjXLvMU4fVdyQg5ww4AiEA7Ky0Bl+5uSjw0qlJoJ6g/2KltvheGn9u7AdzyhoZPP0="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-1.0.3.tgz_1471623865664_0.02578142355196178"},"directories":{}},"1.0.5":{"name":"dio.js","main":"dio.js","description":"Dio is a lightweight (~7kb) feature rich Virtual DOM framework","version":"1.0.5","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["vdom","virtual","dom","virtual dom","react","dio","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"files":["dio.min.js","dio.js"],"gitHead":"ab33af5e4e84c03967b327a11f8a5562f740e17d","_id":"dio.js@1.0.5","scripts":{},"_shasum":"57e080de02de2798627b0cc8635b8039d456dab2","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"57e080de02de2798627b0cc8635b8039d456dab2","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-1.0.5.tgz","integrity":"sha512-5vOQMRvV4YCWKCdIB/J2kGDP8ObAZeS5GMd19n2RZt+g+6oRI/jX/3vs480aeekiRBpIbJXrjxyVAe2ycfizQg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTInugD+TZsxNrGiXsO+q58gLol6aKvYjd8qOWQRQavAIhAK60TXbuoVZkqAkSr+spY7LgusyXSnmRnzYxBHBZcmr3"}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-1.0.5.tgz_1471625259982_0.16304287244565785"},"directories":{}},"1.0.6":{"name":"dio.js","main":"dio.js","description":"Dio is a lightweight (~7kb) feature rich Virtual DOM framework","version":"1.0.6","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["vdom","virtual","dom","virtual dom","react","dio","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"files":["dio.min.js","dio.js"],"gitHead":"bf5bfa83029bbffe0d780850087208442352d4f4","_id":"dio.js@1.0.6","scripts":{},"_shasum":"23bb28ed74e1dadfcd2f2c393a88ccf4102b448a","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"23bb28ed74e1dadfcd2f2c393a88ccf4102b448a","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-1.0.6.tgz","integrity":"sha512-47GS3EoNi5WO3Zeom9zqmIqVTgUUk7iEXp1hsQS+KI5VHRye4dzLT0L24BPpYAabfLh80Rzi74z36/mWko96uA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAwrqmwNTf/Ewo7/QrL/4IayKSbwq9qft401294O0YhZAiEA5R1S7sjxG7ObdRoBZlR8CK6gBQUxFUpjNd6wuXa0Ceo="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/dio.js-1.0.6.tgz_1471632945582_0.564077427610755"},"directories":{}},"1.0.7":{"name":"dio.js","main":"dio.js","description":"Dio is a fast and lightweight (~7kb) feature rich Virtual DOM framework","version":"1.0.7","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["vdom","virtual","dom","virtual dom","react","dio","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/tests.js"},"files":["dio.min.js","dio.js"],"gitHead":"a69d273e9d30b72f4088ad2f401edba3403c86ec","_id":"dio.js@1.0.7","_shasum":"978ed46fb8c26b61c8ab3231393dc4b52ab5bd7d","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"978ed46fb8c26b61c8ab3231393dc4b52ab5bd7d","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-1.0.7.tgz","integrity":"sha512-8PYm1p9Nl8dv0n9LflPxznkXRGEf8dh/xas02OdNOWrsGXWGXQXO3/HZeuucf+3LKjOU1bCV+iBlMsjTt+blFw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDgJNkLfNvtJzPER1YY05KGAl3/bEOmJByI4aeTdqJWVAiEAoe9Vc7RyrFLeSXf0P6xi8u6sOqPRkAmjM6wdOjTIm90="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-1.0.7.tgz_1471725014178_0.07844226085580885"},"directories":{}},"1.0.8":{"name":"dio.js","main":"dio.js","description":"Dio is a fast and lightweight (~7kb) feature rich Virtual DOM framework","version":"1.0.8","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["vdom","virtual","dom","virtual dom","react","dio","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/tests.js"},"files":["dio.min.js","dio.js"],"gitHead":"6f24652a77118baa72b4ae5797fe888655abf89a","_id":"dio.js@1.0.8","_shasum":"24b64a8bb8671a0050f9a63ff331c3108a201c9c","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"24b64a8bb8671a0050f9a63ff331c3108a201c9c","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-1.0.8.tgz","integrity":"sha512-Kh2pKkLOp5tmaQGBI6vJy9Eo0+tc6np8fx5AFO6MzA705V6EjezwCHhZwuo7ZYNQ/0lAN6OBlZ/tt/HpTaQGTw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGRgXXN+Kjo7Pi60OfV3FkgsOIG2qBtAOcU8zwZx6GbhAiB81NsPdmgaQ1cTajTICEEMPJNELcOfccPt6BumpfpNhA=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/dio.js-1.0.8.tgz_1471889239913_0.5374517813324928"},"directories":{}},"1.1.0":{"name":"dio.js","main":"dio.js","description":"Dio is a fast and lightweight (~7kb) feature rich Virtual DOM framework","version":"1.1.0","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["vdom","virtual","dom","virtual dom","react","dio","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/tests.js"},"files":["dio.min.js","dio.js"],"gitHead":"a38d87948aedc47b6c7fc63a6cd554a4116b4835","_id":"dio.js@1.1.0","_shasum":"45839d561789a998f72a089cf08e35e95b22627c","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"45839d561789a998f72a089cf08e35e95b22627c","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-1.1.0.tgz","integrity":"sha512-WbLVZjjoBV1ENK4FL5ihAikvFRPhc+jiA1Rnyif2ANQIRO8OKnAAkXbFxem/BPollsodwMJOUSaDfkMZOE3Cnw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEasbbw/hc1DdhiEO72kGG+wocTnzzhqunqVaL9jzHHCAiBlOuCADGNQhAT1Mb5/6xnQY0Fc9RyoD7XB+lXM2ycFTQ=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-1.1.0.tgz_1472044744607_0.3736605595331639"},"directories":{}},"1.1.1":{"name":"dio.js","main":"dio.js","description":"Dio is a fast and lightweight (~7kb) feature rich Virtual DOM framework","version":"1.1.1","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["vdom","virtual","dom","virtual dom","react","dio","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/tests.js"},"files":["dio.min.js","dio.js"],"gitHead":"ecbc414ae36cfa5b7a62ff81ec4f7098809f0d8a","_id":"dio.js@1.1.1","_shasum":"39d8b246644a56b9f75970013881a9ee6d3aa918","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"39d8b246644a56b9f75970013881a9ee6d3aa918","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-1.1.1.tgz","integrity":"sha512-HSZLIsO2LzI1A4AcZPv5qWrbF7abs3F6CYww/yHXmHs/1tk/FT9CfCmQMuofiw8Ob9twzHC1HmRNj6CRww4Utg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDD66pdLiRZ8JZprYzWN9BlwW+hddszGHmail94bcLh1wIgf2A7u9Ltx5C8tTHkhz+YfaThLxXDBgAxoOEMGkRnTa4="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/dio.js-1.1.1.tgz_1472158171679_0.48476432263851166"},"directories":{}},"1.1.2":{"name":"dio.js","main":"dio.js","description":"Dio is a fast and lightweight (~7kb) feature rich Virtual DOM framework","version":"1.1.2","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["vdom","virtual","dom","virtual dom","react","dio","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/tests.js"},"files":["dio.min.js","dio.js"],"gitHead":"b033a673c9b1299974f8bee6311b59fb06de74b6","_id":"dio.js@1.1.2","_shasum":"aaf2cadf84de700e2dcd20a4ceb574f19edb5efa","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"aaf2cadf84de700e2dcd20a4ceb574f19edb5efa","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-1.1.2.tgz","integrity":"sha512-EjR3XPRIJyhz+OIrC+3JFVkUIOG2dwAiYqtYd2+rO8wL0n/1gdpSuZxTF3/S4p1VCXu3IWb2ODsua7ovvJlzyA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAj0vAqNUo7u06E3mGOBvFHeBhGs4jmjaOj66gcfMJtPAiA9F7+cm6EniNyDDjLtY8tk6vRTR6Ebrys2wKIebvv6xQ=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-1.1.2.tgz_1472710229606_0.9089953254442662"},"directories":{}},"1.1.3":{"name":"dio.js","main":"dio.js","description":"Dio is a fast and lightweight (~7kb) feature rich Virtual DOM framework","version":"1.1.3","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["vdom","virtual","dom","virtual dom","react","dio","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/tests.js"},"files":["dio.min.js","dio.js"],"gitHead":"220bac20dd70c17342e3fd3c0a7f0e37ecd2708b","_id":"dio.js@1.1.3","_shasum":"51afb873399945f112d71cca65bf6084bcbc9e42","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"51afb873399945f112d71cca65bf6084bcbc9e42","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-1.1.3.tgz","integrity":"sha512-v/0FM5FJ+qK5Kxef8k7+fKL1MYrAxhMxU8dnBZIVCWgQz4TuVCSoOwrMw1T5P0fhah7XKv3W3stehPlu+QJPQw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYDh3ojoafGs0i8ifQGjnQeOZ6RXaDyf0+VD+pMlfkvAIgOTB2SyFkmba8KXy1l0PsfxwVXOR3fUyEmBmios53eRI="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-1.1.3.tgz_1472785504077_0.3901540017686784"},"directories":{}},"1.1.4":{"name":"dio.js","main":"dio.js","description":"Dio is a fast and lightweight (~7kb) feature rich Virtual DOM framework","version":"1.1.4","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["vdom","virtual","dom","virtual dom","react","dio","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/tests.js"},"files":["dio.min.js","dio.js"],"gitHead":"8ede0a87d0f677ec8745613a46f57704587e0c79","_id":"dio.js@1.1.4","_shasum":"d74f0406635e9d6f9d008d79b4332dfeab0acb07","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"d74f0406635e9d6f9d008d79b4332dfeab0acb07","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-1.1.4.tgz","integrity":"sha512-ZKXZYJcUtF952rZnHUTXRrbqu8OwDZJBfCvriOmSXGEFqk2nWUv5F1rX53YGpkcW1x1fm6VSwTqh6PO8j+UYKw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMl1tP2nqySqHuV/W+qzhTwJ//536VOsnEbAJ9mdSaHQIhAMX1Bm/A9/CyesdZKgD6XLqu4f23bpDv1+gEPDgaCQzZ"}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-1.1.4.tgz_1472805803529_0.5881475834175944"},"directories":{}},"1.1.5":{"name":"dio.js","main":"dio.js","description":"Dio is a fast and lightweight (~7kb) feature rich Virtual DOM framework","version":"1.1.5","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["vdom","virtual","dom","virtual dom","react","dio","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/tests.js"},"files":["dio.min.js","dio.js"],"gitHead":"7c9b1fd6b80eb42b36f6f9cb591397a41b3d1ee7","_id":"dio.js@1.1.5","_shasum":"19520f4252f3d2560fc07158ed830ab1c22f89e2","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"19520f4252f3d2560fc07158ed830ab1c22f89e2","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-1.1.5.tgz","integrity":"sha512-SGLy2+tPwiaQGY7s+CQgc/dloZHRNSgmM7jKMJUj+0nHPpLtPs5YCOEjbCDxlk6uuinSpnXEoBebIuBGPx/YHw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAyPObuF5IF+sMoirnxRLQ07QT68tCHnB49ricpHINydAiEAqQRBiinlGphyqCZU5aJzBU0KTZpRjlZV1vY5Zrki4Fc="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-1.1.5.tgz_1473143834784_0.9133182666264474"},"directories":{}},"1.2.0":{"name":"dio.js","main":"dio.js","description":"Dio is a fast and lightweight (~9kb) feature rich Virtual DOM framework","version":"1.2.0","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["vdom","virtual","dom","virtual dom","react","dio","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/tests.js"},"files":["dio.min.js","dio.js"],"gitHead":"6f7d0b12ed8f620c2142b2003d146ccca8aaa1dd","_id":"dio.js@1.2.0","_shasum":"65c97ee6b2c98b431e1d019c5e5f3c6d01aa5b78","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"65c97ee6b2c98b431e1d019c5e5f3c6d01aa5b78","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-1.2.0.tgz","integrity":"sha512-KfgGa5bzkmRPup2jNtFxg9B3NCtcYByKF4kvjTt5iOzzURlWr6Yv3AqDpX7sjriGGPc7lM0rUGrM5pCeJCc6mw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpL4KETT7dgW8QJDgSoCf2rT/tXAKOjCJiIY32jhFuQQIgAIBBSZUaFPnc8dkvAt/mzaS4yJLgE9dKDm3Zn/EY6+c="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-1.2.0.tgz_1473705061016_0.22147309849970043"},"directories":{}},"1.2.2":{"name":"dio.js","main":"dio.js","description":"Dio is a fast and lightweight (~9kb) feature rich Virtual DOM framework","version":"1.2.2","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["vdom","virtual","dom","virtual dom","react","dio","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/tests.js"},"files":["dio.min.js","dio.js"],"gitHead":"ff82425aa508ced8a23b8fa7d8b64f8fa1344529","_id":"dio.js@1.2.2","_shasum":"da2975f60f60d0a8e9a3de4276b3a641a70e433a","_from":".","_npmVersion":"3.10.7","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"da2975f60f60d0a8e9a3de4276b3a641a70e433a","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-1.2.2.tgz","integrity":"sha512-SNLmW3X3Efw5MTL3dsixkf+mMcjgkLJWTBBpvvhEKUweRXprfQB/rImpHqi/5em+fvS3ZxE2KkdsvMwylmu/Gg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpKzcXoEAazFviW+21doSOcfKJwqs7xQ0bQeINvs5qcwIgVJe0RzlfPZhV0pJi8fd0QHQfzP0lfuvHBIT/foSQiNo="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/dio.js-1.2.2.tgz_1473948429445_0.39481460861861706"},"directories":{}},"1.2.3":{"name":"dio.js","main":"dio.js","description":"Dio is a fast and lightweight (~9kb) feature rich Virtual DOM framework","version":"1.2.3","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["vdom","virtual","dom","virtual dom","react","dio","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/tests.js"},"files":["dio.min.js","dio.js"],"gitHead":"b8bd7d533cc796e55e69a719bac2df4d74fa9ec7","_id":"dio.js@1.2.3","_shasum":"7bf0fb2d0fb5c3e46f96ba3a522e742b6dc6cea2","_from":".","_npmVersion":"3.10.7","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"7bf0fb2d0fb5c3e46f96ba3a522e742b6dc6cea2","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-1.2.3.tgz","integrity":"sha512-qwhLNVm8Uuvk0E8r1Vx4UMKiy2BTx+FVRWhyJ6U2QPdf22F/T9GNDWD3lCrO2jTzJuiP4hnqQhIvxqqc/uhgRA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgLdRWzei6JYkGlMwqtBB+ZBf3bAcsn5FeE6M7a1SXvAIgBHQTp+WBeOySPsBeDVZLt085TOoEnIOcnmT/mwv0VNg="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-1.2.3.tgz_1474033706171_0.85249586077407"},"directories":{}},"2.0.0":{"name":"dio.js","main":"dio.js","description":"Dio is a blazing fast, lightweight (~9kb) feature rich Virtual DOM framework.","version":"2.0.0","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","vdom","virtual","dom","virtual dom","blazing","fast","lightweight","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/tests.js"},"files":["dio.min.js","dio.js"],"gitHead":"ef291cde4b50e1b7188fb3d0073d6479bac850b8","_id":"dio.js@2.0.0","_shasum":"bf7f2ac412d8158e9ff791132cf7e9945ffe9fbf","_from":".","_npmVersion":"3.10.7","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"bf7f2ac412d8158e9ff791132cf7e9945ffe9fbf","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-2.0.0.tgz","integrity":"sha512-dWI+5VnlXh/d92xvFpclSUQKxeh25hxsxKbT8Mk+7n/kr+xugGcp0MxHZe+z0whbuPCd77L4kyn4jeFtprSWLQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDkTQ+nOwwPMS7BXavsgb0Hc1jmOiisZttiIAO6JD7lowIhAMOs8MKjuFH4sVg9MOphjZzKHKpa6uwcW1GGXD9RmjLd"}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-2.0.0.tgz_1475882162318_0.9787211297079921"},"directories":{}},"2.0.1":{"name":"dio.js","main":"dio.js","description":"Dio is a blazing fast, lightweight (~9kb) feature rich Virtual DOM framework.","version":"2.0.1","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","vdom","virtual","dom","virtual dom","blazing","fast","lightweight","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/tests.js"},"files":["dio.min.js","dio.js"],"gitHead":"f561eb958082ddd0e43bbb30c4e6b5a797105fc5","_id":"dio.js@2.0.1","_shasum":"ff45441d599d408c7806c735b86a2b612074fc6c","_from":".","_npmVersion":"3.10.7","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"ff45441d599d408c7806c735b86a2b612074fc6c","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-2.0.1.tgz","integrity":"sha512-BqVO04TO/2VjsJqco9qVChvYh3c22iTrreLb97QsbhMzS+0hGPqdHu6zACpg67fJKP8jQXnbVzOqEGyoW/7nkg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD0YchA/YbLjKtrV1X03knE4Wdk4dQT9yy3V4mfTkTf8QIgZXfPSMJLpQZzr6ZUYIxHgAcf22nHYNG92X9ezAnBWXw="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-2.0.1.tgz_1476408753837_0.8121235044673085"},"directories":{}},"2.1.0":{"name":"dio.js","main":"dio.js","description":"Dio is a blazing fast, lightweight (~9kb) feature rich Virtual DOM framework.","version":"2.1.0","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","vdom","virtual","dom","virtual dom","blazing","fast","lightweight","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/tests.js"},"files":["dio.min.js","dio.js"],"gitHead":"b962594d9c066805bf6da721e310110d81ed37a9","_id":"dio.js@2.1.0","_shasum":"35a83b50943bc71e1c289e54d0b211bd35b7d9fb","_from":".","_npmVersion":"3.10.7","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"35a83b50943bc71e1c289e54d0b211bd35b7d9fb","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-2.1.0.tgz","integrity":"sha512-PCheWPzsjfAe7bY7+/BzLJgEa3/gPNkBcvB2qjdxii8+dU7jcq3/yOA/86LTCbuHbB0/70ICUizZrESUMUTAeA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBiW7pgRg0i2q2iJ7AQaiuVczxsZvOs0lLm1PMVWI1+pAiBFVJztdqcnjkMhdFQf7NZp2WbAr14xcHTHyY19XXVdiQ=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/dio.js-2.1.0.tgz_1476752595497_0.7290014047175646"},"directories":{}},"2.1.1":{"name":"dio.js","main":"dio.js","description":"Dio is a blazing fast, lightweight (~9kb) feature rich Virtual DOM framework.","version":"2.1.1","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","vdom","virtual","dom","virtual dom","blazing","fast","lightweight","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/tests.js"},"files":["dio.min.js","dio.js"],"gitHead":"c3f830d23b462a9f32f7c88f37b09edcb4d43111","_id":"dio.js@2.1.1","_shasum":"d32574a4dbe57f6fe072ec52c8b8b4740fd8d435","_from":".","_npmVersion":"3.10.7","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"d32574a4dbe57f6fe072ec52c8b8b4740fd8d435","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-2.1.1.tgz","integrity":"sha512-uQqxA5+vt09mZCyGps//fvLWC1QPl2bU/MWdVGfFdNCLaN+B9SbIka+vyyez0Sif8r570Hm/iN55nLccCh3kZA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICD0JIxmSr2ZJybsPYDbgMp2f02oDnfr0RkPpCOcJPDGAiEAp8gCJicq3u4NiCvdM3zeYqOUaq3Mjj3GwGS7L6oNBC8="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-2.1.1.tgz_1477251188592_0.14264032058417797"},"directories":{}},"2.1.2":{"name":"dio.js","main":"dio.js","description":"Dio is a blazing fast, lightweight (~9kb) feature rich Virtual DOM framework.","version":"2.1.2","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","vdom","virtual","dom","virtual dom","blazing","fast","lightweight","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/tests.js"},"files":["dio.min.js","dio.js"],"gitHead":"e8957a85fda38c441068de59ef272f70e19f1384","_id":"dio.js@2.1.2","_shasum":"d7c93ef3638ac7baadb699d23191d81ab356132a","_from":".","_npmVersion":"3.10.7","_nodeVersion":"6.2.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"d7c93ef3638ac7baadb699d23191d81ab356132a","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-2.1.2.tgz","integrity":"sha512-bBTdkNOY0SquJX++qaedJkhGwX570vAXORqYo47wCDwxlPR5WOBQD6QIZm7NeD96BD072o+fxZMeOW+Bl1y9Zw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFflc5qje4QDMOu93pt51LZIO7s53tud9OUgujx1mLePAiAohVibFQijJIgIHwtggJt+84Xsn3oh1Dv7gzADJibs0w=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/dio.js-2.1.2.tgz_1477695348542_0.2179738029371947"},"directories":{}},"3.0.0":{"name":"dio.js","main":"dio.js","description":"Dio is a blazing fast, lightweight (~10kb) feature rich Virtual DOM framework.","version":"3.0.0","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","vdom","virtual","dom","virtual dom","blazing","fast","lightweight","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/index.js","build":"node ./build/index.js"},"files":["dio.min.js","dio.js"],"gitHead":"b46d466cd43dcae9585ed1e4cb78555a2609e82a","_id":"dio.js@3.0.0","_shasum":"23e6bdbc8c8e088cd7950c0eb69a53f2d38a7eb2","_from":".","_npmVersion":"3.10.8","_nodeVersion":"7.0.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"23e6bdbc8c8e088cd7950c0eb69a53f2d38a7eb2","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-3.0.0.tgz","integrity":"sha512-Vj053d58uWXNhhZE3SUZNKPsI5+ATr/pheQhTeYhqsr82spP09OGtdTF2HwYu8U699Cs5EBUq2bHrHkPFY2IvQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC9e8PaZGSXPJkiXnsgfctgwmA+CgPEX5klbf0eutmWBQIhAJM1OE7W4Yi9God3gbYFdBaIptDgAFVEyYnUf0WXQRDF"}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/dio.js-3.0.0.tgz_1478909189964_0.3969500574748963"},"directories":{}},"3.0.1":{"name":"dio.js","main":"dio.js","description":"Dio is a blazing fast, lightweight (~10kb) feature rich Virtual DOM framework.","version":"3.0.1","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","vdom","virtual","dom","virtual dom","blazing","fast","lightweight","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/index.js","build":"node ./build/index.js"},"files":["dio.min.js","dio.js"],"gitHead":"63a2cb7ce5cdb33e0a451339d246867c59df6a72","_id":"dio.js@3.0.1","_shasum":"d1bdbf11082d9936a082448767c2f496388cc7c6","_from":".","_npmVersion":"3.10.8","_nodeVersion":"7.0.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"d1bdbf11082d9936a082448767c2f496388cc7c6","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-3.0.1.tgz","integrity":"sha512-ku1/jUzkZ7Zs8oQshM5nQ4dLAqiQFLq5nK3NYDxvQ2GKSqgPKCJiKeduuo/xpPYzg2cv54ICBsQZO7q3Atc1nw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICy7NVBgn8SkaoYc/0+rWGQObAaWp+Eb6Q0P3fUSiYADAiEAhxaOuhUKI4QFMgkLUAIn8/snk2RWoCsWXRrKRKoy9nk="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/dio.js-3.0.1.tgz_1478914019459_0.9873117450624704"},"directories":{}},"3.0.2":{"name":"dio.js","main":"dio.js","description":"Dio is a blazing fast, lightweight (~10kb) feature rich Virtual DOM framework.","version":"3.0.2","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","vdom","virtual","dom","virtual dom","blazing","fast","lightweight","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/index.js","build":"node ./build/index.js '../src/' '../dio.js' 'index.js'"},"files":["dio.min.js","dio.js"],"gitHead":"e7dc245bc1bd3dd30469a299393cb0b024aaf1fe","_id":"dio.js@3.0.2","_shasum":"9d5e775f876304576593639cb92a0cd0a4eb4074","_from":".","_npmVersion":"3.10.8","_nodeVersion":"7.0.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"9d5e775f876304576593639cb92a0cd0a4eb4074","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-3.0.2.tgz","integrity":"sha512-sOSBK89T1hAYEbDQQ0DPsw1gCqpjj7OfGCFYslrldMCMKbt2vOuB6xYWzJnT0UwdsqwgdMEo1eqTytxmtoDVYw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG8qG/Yqbh3lmdosMAssI5jM1vOkYlFnkcURIHyVYLaUAiBFX7Fo3OObjmEN/0BAo7/b6IXoHs9LjrPYNYOe2jQJjg=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/dio.js-3.0.2.tgz_1479361629631_0.5277631087228656"},"directories":{}},"3.0.3":{"name":"dio.js","main":"dio.js","description":"Dio is a blazing fast, lightweight (~10kb) feature rich Virtual DOM framework.","version":"3.0.3","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","vdom","virtual","dom","virtual dom","blazing","fast","lightweight","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/index.js","build":"node ./build/index.js '../src/' '../dio.js' 'index.js'"},"files":["dio.min.js","dio.js"],"gitHead":"3c416fe477808daa5c3c269c14722c80568266ba","_id":"dio.js@3.0.3","_shasum":"647aa0a34571340b7067cb2c8692a43d4dcd9779","_from":".","_npmVersion":"3.10.8","_nodeVersion":"7.0.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"647aa0a34571340b7067cb2c8692a43d4dcd9779","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-3.0.3.tgz","integrity":"sha512-yNbzjWr4ub4CY+Qz8xRopAaclmiYazemU9LjbSeyaa19xwTPW0E98cYtLVY6jY2KkZYpqRGSuM7JHbL5Z5NOwQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDf0BkGxx0WyRe4k6iY8v0NSGEE8EJP4ijH9klo3bK/8wIgV2sa3v81S1V2+cW6ulz2FDduF8dhYvgD5MiV4DzEDOU="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/dio.js-3.0.3.tgz_1479363245944_0.06542988889850676"},"directories":{}},"3.0.4":{"name":"dio.js","main":"dio.js","description":"Dio is a blazing fast, lightweight (~10kb) feature rich Virtual DOM framework.","version":"3.0.4","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","vdom","virtual","dom","virtual dom","blazing","fast","lightweight","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/index.js","build":"node ./build/index.js '../src/' '../dio.js' 'index.js'"},"files":["dio.min.js","dio.js"],"gitHead":"926561eb3e41b630ecb49b7799b66573da34e1f3","_id":"dio.js@3.0.4","_shasum":"6ab4903fee90dfda7d8f3c788ecd9e2c2d556a43","_from":".","_npmVersion":"3.10.8","_nodeVersion":"7.0.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"6ab4903fee90dfda7d8f3c788ecd9e2c2d556a43","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-3.0.4.tgz","integrity":"sha512-gVtk59XxVY55hkvywuMU6l/vb7Vf3YR6Czx/K3LAHsPYIFTa2+9IAshlBEzvBtviAJVjz91iJPXXDVeJ+wL6Pg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICMiikOg/XafWwqtqjFvQBWJu5E2C9+2mFC9qnTCYQWJAiEAsdEoxT6lH/yKPXNa/RYxn11IxzBe274BDXAIprDCIuY="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-3.0.4.tgz_1479381844888_0.8862809182610363"},"directories":{}},"3.0.5":{"name":"dio.js","main":"dio.js","description":"Dio is a blazing fast, lightweight (~10kb) feature rich Virtual DOM framework.","version":"3.0.5","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","vdom","virtual","dom","virtual dom","blazing","fast","lightweight","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/index.js","build":"node ./build/index.js '../src/' '../dio.js' 'index.js'"},"files":["dio.min.js","dio.js"],"gitHead":"db5ac006ed08ec76c8af8c0b79dc03456e082892","_id":"dio.js@3.0.5","_shasum":"24e5ca3d0c88bf3297336fc224414e892ec315df","_from":".","_npmVersion":"3.10.8","_nodeVersion":"7.0.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"24e5ca3d0c88bf3297336fc224414e892ec315df","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-3.0.5.tgz","integrity":"sha512-haqVz5HtzrnBqosnfCytcWlBiG+gzXYOirai9UcoT6poHjGao6zHpS9X4yu4oyVZnpeIX+yVlOV0GddqntrF6A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH2DHpKDxPlbTMUpzdTqlYJ24Zr0pUbA5ZVFLjSczuEtAiEA6FI9V7aLWS2+JDHUUWdvIsxAzWHOsppWi3hhCKwWOpo="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/dio.js-3.0.5.tgz_1479534513103_0.9409944156650454"},"directories":{}},"3.0.6":{"name":"dio.js","main":"dio.js","description":"Dio is a blazing fast, lightweight (~10kb) feature rich Virtual DOM framework.","version":"3.0.6","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","vdom","virtual","dom","virtual dom","blazing","fast","lightweight","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/ '../src/' '../dio.js' 'index.js'"},"files":["dio.min.js","dio.js"],"gitHead":"957e0b6e32a07eef8f84870e0d7bace7aa78466f","_id":"dio.js@3.0.6","_shasum":"f4210d7b6c4c3a43f148f198179eed21e9185eb2","_from":".","_npmVersion":"3.10.8","_nodeVersion":"7.0.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"f4210d7b6c4c3a43f148f198179eed21e9185eb2","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-3.0.6.tgz","integrity":"sha512-VMCgH/obtnQZNnu65OvRcQosr3Ms+dDDK9Mp0AwOZVpZx28KKwefWC+bWezgO1vvUmMEehhTCzb6EekMABzqzQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBNtY0fRn9E6AuV4y07VUry9tK7gimuFpXXaZMutoREZAiBg+X2oMT6m6SEQFkCY5t1Yb4nzTwsZxhNQR+8GBZYyow=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-3.0.6.tgz_1479747219181_0.5100998228881508"},"directories":{}},"3.1.0":{"name":"dio.js","main":"dio.js","description":"Dio is a blazing fast, lightweight (~10kb) feature rich Virtual DOM framework.","version":"3.1.0","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","vdom","virtual","dom","virtual dom","blazing","fast","lightweight","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/ '../src/' '../dio.js' 'index.js'"},"files":["dio.min.js","dio.js"],"gitHead":"7b18c76579f25b4f8e84cd7a6908d7ff7bdeb9d6","_id":"dio.js@3.1.0","_shasum":"f053a3071bea2943c4026a45b81176791a092c87","_from":".","_npmVersion":"3.10.8","_nodeVersion":"7.0.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"f053a3071bea2943c4026a45b81176791a092c87","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-3.1.0.tgz","integrity":"sha512-8sh2ENuHMS98d09GYtbyxVAqc74BJaaPv6oQqm5O+yJHYYApxc9NEozEX9Ma20nrXVgBiwvynGMwmMgkaZVhyA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICxaKxvqg6YeTrImfR6+Q4PCJGNr3NQE2jE4FFyjLsM+AiEAmm/MNcawhP+yTt+gJIUAjZB2NsD5rQTqA3EHUuP1J8I="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/dio.js-3.1.0.tgz_1479791433582_0.18975004646927118"},"directories":{}},"3.2.0":{"name":"dio.js","main":"dio.js","description":"Dio is a blazing fast, lightweight (~10kb) feature rich Virtual DOM framework.","version":"3.2.0","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","vdom","virtual","dom","virtual dom","blazing","fast","lightweight","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/ '../src/' '../dio.js' 'index.js'"},"files":["dio.min.js","dio.js"],"gitHead":"d652369a217a27191dfe15c20618f66ae3b827a7","_id":"dio.js@3.2.0","_shasum":"b4cf57ea7dabb52ae7f921a1a53474a2773cbb55","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"b4cf57ea7dabb52ae7f921a1a53474a2773cbb55","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-3.2.0.tgz","integrity":"sha512-/JnPb1CuG+JPVc7dvFOcReNDV17FLySQdJChEwUuQScfvzeOgpCzUCNjPIJutJxA7g0eMuu2BuG2BCks+WUS/A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDx4SP1Y/um1ppxY3tIUjA8mr+jK2WctZBjqpn6A3ch5QIgDDo8hyHv4BGWqE3guPbvkZjPdXNCAIprZyffeEonraY="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-3.2.0.tgz_1480107917311_0.6328384932130575"},"directories":{}},"3.3.0":{"name":"dio.js","main":"dio.js","description":"Dio is a blazing fast, lightweight (~10kb) feature rich Virtual DOM framework.","version":"3.3.0","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","vdom","virtual","dom","virtual dom","blazing","fast","lightweight","framework","html","server","browser"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/ '../src/' '../dio.js' 'index.js'"},"files":["dio.min.js","dio.js"],"gitHead":"312a78fb39c95f8c2aa9816603b1960314924a3b","_id":"dio.js@3.3.0","_shasum":"df237b59200627bf12554a6aa2f15cdaaea42501","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"df237b59200627bf12554a6aa2f15cdaaea42501","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-3.3.0.tgz","integrity":"sha512-gcaJoWgZ4nIB2LeZ8bIwHLOMZXSwHe1E9dmtDhTKYZdSmaB52d5s3UgEmkJ/ljBP3BMNNuUAVHFY9hxlDF8i8A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBCcJdr6DQFd0mYlYan2YvX2+V7ox7pJ/K8J2RP2pwvQAiEAyE/oJdY0sJV3unMAqA31xKbyFkfuU/qUHkxPtKP1LeE="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/dio.js-3.3.0.tgz_1480175634230_0.35045599192380905"},"directories":{}},"3.4.0":{"name":"dio.js","main":"dio.js","description":"Dio is a blazing fast, lightweight (~10kb) feature rich Virtual DOM framework.","version":"3.4.0","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","vdom","virtual","dom","virtual dom","blazing","fast","lightweight","framework","html","server","browser","node"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/ '../src/' '../dio.js' 'index.js'"},"files":["dio.min.js","dio.js"],"gitHead":"31499b88ca8f709dbcaa2b8143affe808f698a3a","_id":"dio.js@3.4.0","_shasum":"0ef1394d44835ae94448ccb5e2a9f11f7cbfe74c","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"0ef1394d44835ae94448ccb5e2a9f11f7cbfe74c","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-3.4.0.tgz","integrity":"sha512-zsNmeLVq3agl/OIMD5Ep5J+vwL827DqjzheNUA0FN9d//ejH+xAJPKS5cbkHOkHTSliNipO4DfGUiDM61+7ZDw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFozKnaUzS/AYgpGYMIFPc54YFIGYyPX18/f/0kwebklAiEA3oOPSFy1Z+A0DWngOSSsvDAFsxz5hiMlEkjo77Py0tM="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/dio.js-3.4.0.tgz_1480244110445_0.7848703875206411"},"directories":{}},"4.0.0":{"name":"dio.js","main":"dio.js","description":"dio is a fast javascript framework","version":"4.0.0","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","vdom","virtual","dom","virtual dom","fast","lightweight","framework","html","server","browser","node"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/"},"files":["dio.min.js","dio.js"],"gitHead":"8b35d19c0beaa137fc88b48f1587b39e57c23241","_id":"dio.js@4.0.0","_shasum":"58dc9e27c207478a4fbfc87bf4a6e6c911a9d0db","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"58dc9e27c207478a4fbfc87bf4a6e6c911a9d0db","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-4.0.0.tgz","integrity":"sha512-zdu5iwtSk82Ily9VYSBEoA/6/7/O/vpDyOFqsVL7O+qIqKIb5I2v7q8ny1XCnum7SgBOrjT+7mfXWoy4pNedvw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA3x+57RsTtiqWl6knYc9SFNMB5FvgqUHGZT5QFraLVoAiEA7K/YopQnaxSBfRXmYpsmozs31VB5SD799DiF8jbfKNM="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/dio.js-4.0.0.tgz_1481927614987_0.3010993399657309"},"directories":{}},"4.0.1":{"name":"dio.js","main":"dio.js","description":"dio is a fast javascript framework","version":"4.0.1","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","vdom","virtual","dom","virtual dom","fast","lightweight","framework","html","server","browser","node"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/"},"files":["dio.min.js","dio.js"],"gitHead":"2f8aea4298970ad13843e111893d9d8bd5bbddba","_id":"dio.js@4.0.1","_shasum":"4b2b487b28cb2a8d789ee2108406834e48111bc9","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"4b2b487b28cb2a8d789ee2108406834e48111bc9","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-4.0.1.tgz","integrity":"sha512-5j+7o8vxmwXP00yWwP1NN/LwDc1pV1aEBe8LQN0n4bpvDpAnGuzf6CB8cZapEcH/pXSOJND3GuKYQesLIDMKIg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHJPukoy4vs07aUa2vqFi7IXvc0WEJt4IwSExjJs8lVdAiAQLl+lsntSLgyIknmAjYUMWqZI6/n3E35GpKYO9bZlXQ=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/dio.js-4.0.1.tgz_1482187509239_0.15979477926157415"},"directories":{}},"5.0.0":{"name":"dio.js","main":"dio.js","description":"dio is a fast javascript framework for building applications.","version":"5.0.0","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","fast","lightweight","framework","server","browser","components"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/"},"files":["dio.min.js","dio.js"],"gitHead":"45be0e193e26176010ab0026fd2e53927893bde3","_id":"dio.js@5.0.0","_shasum":"9bf6867c075c68f8378394240a877e953a802159","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"9bf6867c075c68f8378394240a877e953a802159","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-5.0.0.tgz","integrity":"sha512-MNv5TnuRNGB5wzTeOqPS0QAD8joCojPzjAdt9waIToZn/pI7oX5RLp5brDmQZ2xSoa8MKowtPYZ6Qb1lwiVp7A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRm1sLWb9YXFJqBPgqtcLNFTnJHX7D3N0VRit5CTb/igIhALyPYpBRjJJpKakBFhbFgcWFJszVV6+Z2zV/zzr6Uske"}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-5.0.0.tgz_1482776244976_0.5151715809479356"},"directories":{}},"5.0.1":{"name":"dio.js","main":"dio.js","description":"dio is a fast javascript framework for building applications.","version":"5.0.1","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","fast","lightweight","framework","server","browser","components"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/"},"files":["dio.min.js","dio.js"],"gitHead":"30566a4b118a01f7c056662cee112404c632f9fc","_id":"dio.js@5.0.1","_shasum":"cea442324b4e6b27587e4e2f93e342dd4833f8f1","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"cea442324b4e6b27587e4e2f93e342dd4833f8f1","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-5.0.1.tgz","integrity":"sha512-dVJKz/CwosPoNInilTwkbgIxOaaRX7iNWQmThZjhxs2SPJpLQ9Molt/nZxu40XQjftP3tfvB9TEWDmu3Fl+kvA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC1Gry/+LpcWMfkD6cwnZJbvs6RlGhrZBv26/3ZsJxMWAiEA+9y1DqRLf86ZHP4ZEDolZKuNsVfnX9/yxPHpjCqvRik="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/dio.js-5.0.1.tgz_1482800065441_0.10904690041206777"},"directories":{}},"5.0.2":{"name":"dio.js","main":"dio.js","description":"dio is a fast javascript framework for building applications.","version":"5.0.2","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","fast","lightweight","framework","server","browser","components"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/"},"files":["dio.min.js","dio.js"],"gitHead":"019d5180e08b1cb2c30df0459806191db7a5a731","_id":"dio.js@5.0.2","_shasum":"d3f6ab4b7c41b994b1bc5eaef5cdc9f4521542a6","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"d3f6ab4b7c41b994b1bc5eaef5cdc9f4521542a6","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-5.0.2.tgz","integrity":"sha512-uCzLyhFzKsg1zshqHYk6PcBlzU/A53uz5U1HV4rJpSNJ2qe1Gry8xVewWcGGbTOci2HZDKRoUhaGtkn6R5lbiA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEt/Wq2c1vyNtd7+4jvTd/u/umelFd4A9sdPvUOPjUuEAiB2FAF2DjfVZNK+U+yuQlQdVyK5kBAtj2+rWLS/t37lWg=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-5.0.2.tgz_1482800734676_0.5463210053276271"},"directories":{}},"5.0.3":{"name":"dio.js","main":"dio.js","description":"dio is a fast javascript framework for building applications.","version":"5.0.3","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","fast","lightweight","framework","server","browser","components"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/"},"files":["dio.min.js","dio.js"],"gitHead":"bde8b62456caca3d103cb23670204728a57bb330","_id":"dio.js@5.0.3","_shasum":"318209e2622217d0826101df311f1a6a44301c78","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"318209e2622217d0826101df311f1a6a44301c78","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-5.0.3.tgz","integrity":"sha512-SKG+DTWrnRD6N9A7m10K7mElh7PjE9DXPuRtt3j9yZ5NlV5ngKiLap8O+ZOnb27wOfOdPQUlKoPyULtWuAX98Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDeG3Nv1hEDIB0WRi2Fk/XK8oIVTCk3itKa6JDrJQgpDgIhALmTpCytEhRQBLmnGjc3pSp+K0Q/5udnVA0RB3G9hVWb"}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/dio.js-5.0.3.tgz_1483166737081_0.7376753694843501"},"directories":{}},"5.0.4":{"name":"dio.js","main":"dio.js","description":"dio is a fast javascript framework for building applications.","version":"5.0.4","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","fast","lightweight","framework","server","browser","components"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/"},"files":["dio.min.js","dio.js"],"gitHead":"e2fa60e40d8e423ee124b889d0fcb8651eda44c3","_id":"dio.js@5.0.4","_shasum":"b45186f5806eccc9bef25e05762bd18a3723d37d","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"b45186f5806eccc9bef25e05762bd18a3723d37d","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-5.0.4.tgz","integrity":"sha512-QhQBDHHVtBKYo5eX6kS4yjkd+FrIErFvot/dC5jMGIsldbQQGvlcU/ML0+s9D7Mfdgl/8JhmfLizcrW18XrpEw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnPoiOuF2I8UDhEhTdnm7JujlRwXNI1AwnGZGJHrvmNwIgSQu/SlE2kmJ6d3Ir4OO3RV5HuToYUyGeIAL4WmTUlwM="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-5.0.4.tgz_1483755002601_0.06929025356657803"},"directories":{}},"5.0.5":{"name":"dio.js","main":"dio.js","description":"dio is a fast javascript framework for building applications.","version":"5.0.5","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","fast","lightweight","framework","server","browser","components"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/"},"files":["dio.min.js","dio.js"],"gitHead":"a965c9e49f2a96cb0ab05dda8c7ed48e3f96d74e","_id":"dio.js@5.0.5","_shasum":"5f9116d1c622cb836bcf278a8d01975a4481b3a8","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"5f9116d1c622cb836bcf278a8d01975a4481b3a8","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-5.0.5.tgz","integrity":"sha512-6ymmBqt6d08eRxonDSpd3+Yv6T8jtqmf3VP58Ai12dxYUslPviSpfO1lZhlowJ/r13GjLVeqOtQ3/jxRctcc8w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH9X/YyZBBiv3TYn+SNJp41RK0Zew4vqHubcataoS0voAiACoyPIxoQqQ+Uk2D14ehHYKCe1U0KV96BbE0pEGpfkSg=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/dio.js-5.0.5.tgz_1483775496729_0.05998514895327389"},"directories":{}},"5.1.0":{"name":"dio.js","main":"dio.js","types":"dio.d.ts","description":"dio is a fast javascript framework for building applications.","version":"5.1.0","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","fast","lightweight","framework","server","browser","components"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/"},"files":["dio.d.ts","dio.min.js","dio.js"],"gitHead":"c777b8d8bcf91337be3e6f25337570de07c83440","_id":"dio.js@5.1.0","_shasum":"1360f03ff458adc2270ad5948f28a72b6f269335","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"1360f03ff458adc2270ad5948f28a72b6f269335","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-5.1.0.tgz","integrity":"sha512-AtPZFpn/ofz/UPeyhmxd+5j3POzAEINlb8vSs641XbeUyetMnO8lC84jqqRXBJAFFxYOG5e1M1GCtfVskmCEvQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGCCLxpii0d4Mh0IliLuYh+UzqbjbtnYcLqn1YS5QBCRAiA65h28q8pTlILLSdiXrRiDTldvqMuC1SYR4ja6JK07sQ=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/dio.js-5.1.0.tgz_1484057494745_0.19597171642817557"},"directories":{}},"6.0.0":{"name":"dio.js","main":"dio.js","types":"dio.d.ts","description":"dio is a javascript framework for building applications.","version":"6.0.0","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","fast","lightweight","framework","server","browser","components"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/"},"files":["dio.d.ts","dio.min.js","dio.js"],"gitHead":"17a4602621b7eaa24a4946a5dc4757937ef3d8ef","_id":"dio.js@6.0.0","_shasum":"bcb25e4b1c085db91ef30af3270d335cc2cbc761","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"bcb25e4b1c085db91ef30af3270d335cc2cbc761","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-6.0.0.tgz","integrity":"sha512-nZOyivOkV4rPB+hI68PDYmqKLHI2q0yHyYYZPjRCBoVPeSLu4FZja7a/CxEJVLu2W9zpa3dRwVS0DqpMz/FAkw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCoJuyk0bh2+OuW88fE0RmU+MwEarmcMsDqzEbfuRcEHQIhAIHIFf45vGPgn8i192bu7ly2pP8CLnmDnEf2CcCSP3f+"}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/dio.js-6.0.0.tgz_1485104629862_0.5509807409252971"},"directories":{}},"6.0.1":{"name":"dio.js","main":"dio.js","types":"dio.d.ts","description":"dio is a javascript framework for building applications.","version":"6.0.1","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","fast","lightweight","framework","server","browser","components"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/"},"files":["dio.d.ts","dio.min.js","dio.js"],"gitHead":"e93f3e7182358bf6c344aae68ed83413a71b3918","_id":"dio.js@6.0.1","_shasum":"4145693c7b063c61ee19f6b1476d463998105b34","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"4145693c7b063c61ee19f6b1476d463998105b34","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-6.0.1.tgz","integrity":"sha512-Xckjvf7dxV5tkffSpqjx5M4ixPnKI2uAN2aA1onxKcY8UAPU8qH+rVqR5iw8oHsH9zoMNe9AfZWKVEkcjVj6lA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDU/4UVw0ao7upq5ck1LyiXXOpPUdiGQp5+uELtjPgyHQIgZgvgNpsMhYHRSWfdLJr0DTmEf9vwdy6aIs9aVrSTrpA="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/dio.js-6.0.1.tgz_1485115990949_0.7683383226394653"},"directories":{}},"6.0.2":{"name":"dio.js","main":"dio.js","types":"dio.d.ts","description":"dio is a javascript framework for building applications.","version":"6.0.2","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","fast","lightweight","framework","server","browser","components"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/"},"files":["dio.d.ts","dio.min.js","dio.js"],"gitHead":"c15d6c927abfc76d2734539df4a810c0058d998f","_id":"dio.js@6.0.2","_shasum":"cf7400e4859b3d6b00e284067ad52a4605ca8ed3","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"cf7400e4859b3d6b00e284067ad52a4605ca8ed3","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-6.0.2.tgz","integrity":"sha512-M5Gc4+Dtjk1L4oJj/iHdpZkq4C1RWoNqrtu7wzqERpie8SwQhO94rEGkIlsVd9Y6+6704erSOIp/5IQPnnfecA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHbByUhqED0riQc0jcUvDUkyR4LA9cIdbiHACPYx69dKAiEAnJfzcoVMA6mw78M3ATWXYSwgPReyM/uSK1sLUaA5f3M="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-6.0.2.tgz_1485206281694_0.38932236819528043"},"directories":{}},"6.1.0":{"name":"dio.js","main":"dio.js","types":"dio.d.ts","description":"dio is a javascript framework for building applications.","version":"6.1.0","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","fast","lightweight","framework","server","browser","components"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/"},"files":["dio.d.ts","dio.min.js","dio.js"],"gitHead":"3a44bd8c14f6be0ee5942a568e6376a2713046bf","_id":"dio.js@6.1.0","_shasum":"bf830d0e8b056f4362634e06f41cf73448e2347b","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"bf830d0e8b056f4362634e06f41cf73448e2347b","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-6.1.0.tgz","integrity":"sha512-5HK07SrPAtY2galH0O4VwIsgQeH0XvZQ6gktzJNjVHIreKr0RPVv/k6qRiRaZ3+IhjD7oH71N/y/Npx4HIgF3Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHxSnzZ6d0vTXCe8O3l9V7xFOJ1kQxLnQ/6aKIpc9xWPAiBvH1uqv9KPVY9jZtL0lN9z3IWWXae6o9Dy8yCAWECCBA=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/dio.js-6.1.0.tgz_1485459715766_0.3132655303925276"},"directories":{}},"6.1.1":{"name":"dio.js","main":"dio.js","types":"dio.d.ts","description":"dio is a javascript framework for building applications.","version":"6.1.1","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","fast","lightweight","framework","server","browser","components"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/"},"files":["dio.d.ts","dio.min.js","dio.js"],"gitHead":"db81162513cb85a35fe7220625a08dff779bc776","_id":"dio.js@6.1.1","_shasum":"70f3523be02468ea576980a3d0673e89175a051c","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"70f3523be02468ea576980a3d0673e89175a051c","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-6.1.1.tgz","integrity":"sha512-rHcsgejylqH8dM9yczfVq81r21DDZoK68EG1+kVo+xvtPGHkLzpYP7iKy5YB3HvA/Ib4wmS3C6P1YBpmbDk5ZA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIES2XuIceFWiEi68dZwxBWNWP+0QL0vd05FzEPKSSwkAAiEA2a7zb4T2OZfN3j+Y7+8Jgkhi9TgNFKmtPqSAOCGnaTU="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-6.1.1.tgz_1486404914101_0.19854679773561656"},"directories":{}},"6.1.2":{"name":"dio.js","main":"dio.js","types":"dio.d.ts","description":"dio is a javascript framework for building applications.","version":"6.1.2","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio","react","fast","lightweight","framework","server","browser","components"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"test":"node ./tests/","build":"node ./build/"},"files":["dio.d.ts","dio.min.js","dio.js"],"gitHead":"83fb503ad286f7094afe21c30ac77b025706ee81","_id":"dio.js@6.1.2","_shasum":"5d003050961443a7117e74e5db11add266953fc0","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"5d003050961443a7117e74e5db11add266953fc0","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-6.1.2.tgz","integrity":"sha512-Ibrz+b/pN3oRYUvyG1rNqxRuZZbqFmaYNxsmO28eKEUckR2AqVZopHMVE59wDONQU6vGDhhb2eBfYmf+UxSmoA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGZ7ihOD7sGZDY+WckeIcyzuNMcZQpCZyRIDQTP0u90eAiEA3SSkCu2nZ5MKXs0oFFFMzsGvGoTuXiWS7TCsjJtz5I8="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dio.js-6.1.2.tgz_1486566556189_0.9360207743011415"},"directories":{}},"7.0.0":{"name":"dio.js","main":"dio.js","types":"dio.d.ts","description":"a library for building user interfaces","version":"7.0.0","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"files":["dio.js","dio.min.js","dio.server.js","dio.d.ts"],"scripts":{"test":"node ./tests","tests":"node ./tests --watch","build":"node ./bundle --bundle && node ./bundle/minify","dev":"node ./bundle"},"devDependencies":{"chokidar":"^1.6.1","uglify-js":"^2.8.16","jsdom":"^10.0.0"},"gitHead":"70dbe849b701d484373fd10d1733157fe661f53d","_id":"dio.js@7.0.0","_shasum":"7db907e0304bc78c97fc285f627eb4195140bb0c","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"7db907e0304bc78c97fc285f627eb4195140bb0c","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-7.0.0.tgz","integrity":"sha512-X/eSzn/lhC2s4pRlHKN1YA6hpdeMCgSYmSKD4Q3OsDWhhhUOahKORUgeKJRkhDghCtW9/QE6ElSJh5562fGQpQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFpBhBCSseSCnEE25EVq0/sy41pUFO/EaAeioDHoJ5OeAiBs5bl45bt+d161J+ONJOcbm0pNg+pNHUndQ0KlGASkow=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-7.0.0.tgz_1495667975879_0.08926123683340847"},"directories":{}},"7.0.1":{"name":"dio.js","main":"dio.js","types":"dio.d.ts","description":"a library for building user interfaces","version":"7.0.1","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"files":["dio.js","dio.min.js","dio.server.js","dio.d.ts"],"scripts":{"test":"node ./tests","tests":"node ./tests --watch","build":"node ./bundle --bundle && node ./bundle/minify","dev":"node ./bundle"},"devDependencies":{"chokidar":"^1.6.1","uglify-js":"^2.8.16","jsdom":"^10.0.0"},"gitHead":"786f2dbac6fee35db60741d405da841ad9f20237","_id":"dio.js@7.0.1","_shasum":"2029d57150ba30b9dc00b6163d759754253d5603","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"2029d57150ba30b9dc00b6163d759754253d5603","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-7.0.1.tgz","integrity":"sha512-xFc9K65fa/PHl7X0XPpghQgca9iUPPE4w1+0BAACAhmJ5D7ymX+cwD5f3vbll/QSGMViVEUQgNw6t3/6LNmT9A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCT2iqw0oyS4JEkGf5ltKR7umL0z3AMU81IlsV01xgmcQIge/EFriLcPlLhsr9E22smuPOKXj28G9bxDkJ7oJoYb/0="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-7.0.1.tgz_1495833702682_0.29590089921839535"},"directories":{}},"7.0.2":{"name":"dio.js","main":"dio.js","types":"dio.d.ts","description":"a library for building user interfaces","version":"7.0.2","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"files":["dio.js","dio.min.js","dio.server.js","dio.d.ts"],"scripts":{"test":"node ./tests","tests":"node ./tests --watch","build":"node ./bundle --bundle && node ./bundle/minify","dev":"node ./bundle"},"devDependencies":{"chokidar":"^1.6.1","uglify-js":"^2.8.16","jsdom":"^10.0.0"},"gitHead":"b1783101f9d2e5b43dfbe589719665e84f620de3","_id":"dio.js@7.0.2","_shasum":"7dc91261f7be113517070604510f3bb2990c7e3a","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"7dc91261f7be113517070604510f3bb2990c7e3a","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-7.0.2.tgz","integrity":"sha512-mlJVY6PP3Zzk0RCHnZxnP9EjO+1Ei/c4s61BHjBo2egdzqXhmsYscWMkh9w2DVfOpUc5Foo5/jH8QfzdHprbIw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID/M/YqCTWRDW614e4GtQL8GmJ7uUw+SJHW+Bhvki1gfAiBUONPzuKElZSUjpwkKC9WEiF6OdrnloP134z7vkfIAew=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-7.0.2.tgz_1496362854052_0.17573506897315383"},"directories":{}},"7.0.3":{"name":"dio.js","main":"dio.js","types":"dio.d.ts","description":"a library for building user interfaces","version":"7.0.3","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"files":["dio.js","dio.min.js","dio.server.js","dio.d.ts"],"scripts":{"test":"node ./tests","tests":"node ./tests --watch","build":"node ./bundle --bundle && node ./bundle/minify","dev":"node ./bundle"},"devDependencies":{"chokidar":"^1.6.1","uglify-js":"^2.8.16","jsdom":"^10.0.0"},"gitHead":"37c20f968a335be82d275f328110214f23281fde","_id":"dio.js@7.0.3","_shasum":"7f60584659ccda9552459ff5129e9fa4d4136c94","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"7f60584659ccda9552459ff5129e9fa4d4136c94","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-7.0.3.tgz","integrity":"sha512-Vir/iI1D1yznXWlz0qKvBkoWHE0eoxLVkroC8J3NvUQLo3Ma4NuSI5uSsVLIJJdbn5YpuFD/VwuSzMK5uPnD+g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD95c1S9U4IiGUJNKhTyGH28b0TUt8tewbdMPnoDLo6TAIgK0hk5zh4Ts7Od/QQeYybrRG8H4jEzonNbRmBh8CXsOg="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-7.0.3.tgz_1496399747954_0.33565288153477013"},"directories":{}},"7.0.4":{"name":"dio.js","main":"dio.js","types":"dio.d.ts","description":"a library for building user interfaces","version":"7.0.4","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"files":["dio.js","dio.min.js","dio.server.js","dio.d.ts"],"scripts":{"test":"node ./tests","tests":"node ./tests --watch","build":"node ./bundle --bundle && node ./bundle/minify","bundle":"node ./bundle --bundle && node ./bundle/minify","dev":"node ./bundle"},"devDependencies":{"chokidar":"^1.6.1","uglify-js":"^2.8.16","jsdom":"^10.0.0"},"gitHead":"eef5a5d04054e76dbef6ed938ee8eeae12f63461","_id":"dio.js@7.0.4","_shasum":"1f1b38f45a9bcb867e10c18241949ec54e2206b2","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"1f1b38f45a9bcb867e10c18241949ec54e2206b2","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-7.0.4.tgz","integrity":"sha512-5NU4B5zhlHZ2vPW2gc0Il4e/3y/YbmC4eIvTvXt57GU8boP6yyNCzCPhR5AB3rCQ8lILalsZKDbT3JJwgpov5w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFQl/emAg9hroF5n67h3IjSmgWwm94+qgBoB3JDNthoBAiEA0bUsR2czaB7dY5hWrmY1ZhW33dEhzzEEps2gITdCWDM="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-7.0.4.tgz_1497994081790_0.6749173256102949"},"directories":{}},"7.1.0":{"name":"dio.js","main":"dio.js","types":"dio.d.ts","description":"a library for building user interfaces","version":"7.1.0","homepage":"https://github.com/thysultan/dio.js","license":"MIT","author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"keywords":["dio"],"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"files":["dio.js","dio.min.js","dio.server.js","dio.d.ts"],"scripts":{"test":"node ./tests","tests":"node ./tests --watch","build":"node ./bundle --bundle && node ./bundle/minify","bundle":"node ./bundle --bundle && node ./bundle/minify","dev":"node ./bundle"},"devDependencies":{"chokidar":"^1.6.1","uglify-js":"^2.8.16","jsdom":"^10.0.0"},"gitHead":"fe06a9918162b355b5aae82b0fd2bb3492e9fed5","_id":"dio.js@7.1.0","_shasum":"899a8334ec107087389fd6e432227878c5be2574","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"shasum":"899a8334ec107087389fd6e432227878c5be2574","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-7.1.0.tgz","integrity":"sha512-9Qse+c43VGqYtprmY5pMK8Zt6QNQWh5zB9vO0r7lbT+c6+82Wb5E9Hr5n5P9/LIPJy6nElkJ1+5dDtCz7IvbKw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAVHSH+UQmVFCpQ56rA1eo/o3ag9W65K89U2W2u305yQIgaSjvKRnbXRIqiEyqj0rrhq+QGwhW0MJBTf+0y6IJeDU="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-7.1.0.tgz_1500914982809_0.2999984510242939"},"directories":{}},"8.0.0-alpha":{"name":"dio.js","version":"8.0.0-alpha","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","module":"dist/esm.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"dev":"node ./script/build","build":"node ./script/build --bundle","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-es":"^3.0.28","uglify-js":"^3.0.28"},"gitHead":"05abc710ad9f7cf1c9c1c29d4a7c320c66276f3f","_id":"dio.js@8.0.0-alpha","_npmVersion":"5.4.2","_nodeVersion":"7.1.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-uD/ohUnm0lzW1QocW3esbGIUYSVD+VBW6ba9Mp9BTt8V+bBE7aVXpx59j2QsbQJi1m5UrYFU7GsucS5q3f+kag==","shasum":"ee9e605eacfb4f947a17ad4678e46748299932b1","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.0.0-alpha.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCreOt+lSVYnXzFp/afKkjf0Ni3oImONacs6UFogL2ouAIgMyHFYxC0mpk0GGkjUHeJ6KwlpoA2mIii/rybus7fNh4="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.0.0-alpha.tgz_1506946233666_0.21974778408184648"},"directories":{}},"8.0.0-alpha.0":{"name":"dio.js","version":"8.0.0-alpha.0","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","module":"dist/esm.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"dev":"node ./script/build","build":"node ./script/build --bundle","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-es":"^3.0.28","uglify-js":"^3.0.28"},"gitHead":"28e17c4d16925787613153c3ba3f2a8dd8b7dfe7","_id":"dio.js@8.0.0-alpha.0","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-idvfv2YEQlZ3ozXCcG1gsX+nGUIl82YvexjbmwQ7xmikBGOZW0TxtaQ2EDEL4kxFjykrVWOH8kku8R/n0LyRPA==","shasum":"bec25c91e990284e580dc93c437e50ab9bdba014","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.0.0-alpha.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC66fbrjDl3XOHamg/oK74FY73n/KuDE1J2ZnsbNMF0LQIhALxABtqVyo9Fo25rmteQNweBakCxz8ziR/p+jOCD8MlO"}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.0.0-alpha.0.tgz_1507039936620_0.8509967264253646"},"directories":{}},"8.0.0-alpha.1":{"name":"dio.js","version":"8.0.0-alpha.1","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","module":"dist/esm.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"dev":"node ./script/build","build":"node ./script/build --bundle","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-es":"^3.0.28","uglify-js":"^3.0.28"},"gitHead":"d845bcfa3bbcb6d8024361433229aba58dbf3aee","_id":"dio.js@8.0.0-alpha.1","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-Nt9TQ/dYpI34vp52bnW4vxImJHO6ZdEI6b7rZ22K4VuwAfB3TBkvpXC2viEdiIRCp270yc//NmBAWTJzz0MXMg==","shasum":"25f07a1fd9cd089e711cd521645ccaa1d9dfdc69","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.0.0-alpha.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/JuB5QIsKIxjE3UtVqpJYaK0XMM3Yd+XKLVjXd9TL3QIgbPOIGLixDridK1yJ9vDNxC24nNfOQiVYK20lSFDYcnc="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.0.0-alpha.1.tgz_1507060604443_0.42401726986281574"},"directories":{}},"8.0.0-alpha.2":{"name":"dio.js","version":"8.0.0-alpha.2","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","module":"dist/esm.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"dev":"node ./script/build","build":"node ./script/build --bundle","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-es":"^3.0.28","uglify-js":"^3.0.28"},"gitHead":"b076cabcfe4137d34686482a886218ec8b4b9549","_id":"dio.js@8.0.0-alpha.2","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-Rs+WQEuNYYn2c295M1L0NdVUEEa7UCH4qNv6fKD7LTkBbhfbCwaeLJC8cEpe5pmPGhL2voJHhmOoZ01fiCcI4A==","shasum":"c0cb875521627201c1c0ad3644446db13b4c336c","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.0.0-alpha.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHTnffKCQCK6+7+UoLfSeqmS1xRiUyfzFqSsFVRyDtO6AiAl+ef1IyC1lGJ6F8kL7gAPI4RHnU0gxsd+3eBXvX5qwg=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.0.0-alpha.2.tgz_1507063942051_0.7084829830564559"},"directories":{}},"8.0.0-alpha.3":{"name":"dio.js","version":"8.0.0-alpha.3","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","module":"dist/esm.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"dev":"node ./script/build","build":"node ./script/build --bundle","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-es":"^3.0.28","uglify-js":"^3.0.28"},"gitHead":"b076cabcfe4137d34686482a886218ec8b4b9549","_id":"dio.js@8.0.0-alpha.3","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-j8rhQMsXLal/J3zsjRz1j/XQOrZX6u9+IO7QhcTjs95+YZD42uPNxojLhExjd6afHcZKdwpeOBwtPWNC/3GOEQ==","shasum":"8b404ce683549137232cac3e8c4a0a0154e7a4a4","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.0.0-alpha.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGfC2/e62qAC+1HblhAObfmlxlabSf/kZSvlkNeX+HKJAiAUTUOTItwCIGOcO0WqvRX08JqPo9K4St9LX7NU63e1WA=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.0.0-alpha.3.tgz_1507067185060_0.49656750238500535"},"directories":{}},"8.0.0-beta.0":{"name":"dio.js","version":"8.0.0-beta.0","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","module":"dist/esm.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"dev":"node ./script/build","build":"node ./script/build --bundle","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-es":"^3.0.28","uglify-js":"^3.0.28"},"gitHead":"1ec562e56b13c5976e40edec0c84e11ef9a7ffee","_id":"dio.js@8.0.0-beta.0","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-9ylaeAjJkrOOg0uyz4sgcCuwRWXxxMGhXlh2veU18f0grK9LpgxWNT4JwSXG5K9lXbU/Fb3OfAgb3qS5m+dWjg==","shasum":"309e89e2c393dd39ccaeb2cd705aac88582b40fe","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.0.0-beta.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCV+yVN5qwhneXcvdQh6T3TJFjatC+gFrd0pxg5RXT4tgIgcdbXUNNT+StQxAOOwyYIlsDF9iBkhW5E1Am7Y2f3ZIg="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.0.0-beta.0.tgz_1507067638827_0.07045775675214827"},"directories":{}},"8.0.0-beta.1":{"name":"dio.js","version":"8.0.0-beta.1","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28"},"gitHead":"bbcba6a94c4a24caafaffe89838551b21ec2847f","_id":"dio.js@8.0.0-beta.1","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-zAFQ/2w6xzMxoLu+aJEknl9+VtFDbJrMw+yH7m+9b0lDkXENUjWPSPRG76mMFDiU5r4lblfYU5TGsNvVdd9heQ==","shasum":"5fbcaec0c418b0a4c05f6b7498b9d5fb6222baa6","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.0.0-beta.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICnB3qKKntl16+ahXxQY+uHgoGsaNjnaDolUyLr6IeR9AiANE4i+1On/LS3k4h2a88MNWQJARfRIWJ9a5d8hXQZa8A=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.0.0-beta.1.tgz_1507223030399_0.389239041833207"},"directories":{}},"8.0.0":{"name":"dio.js","version":"8.0.0","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28"},"gitHead":"f0c407b2d8af8c640316ceeae12538333578cecb","_id":"dio.js@8.0.0","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-uK3wFGJ6dOXWnsDZtXDJZA0lCMD4Oo8KuzjFZND0ETOdVCoD8NXv80CJlQrDJmMd1rEl3bwvbiOxGknuWoTg6A==","shasum":"8fe459f3daa000fa32f1c0177b40f97ca787b21e","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.0.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICrGjD7K3pcd4v4awMtv0WPY6Rrzc20SItqxSmFwZa91AiEAtVB4OykaeH7BpMsu9KnUSE+vbsF6CGBtddKC3+Jss+8="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.0.0.tgz_1507258165985_0.36869208863936365"},"directories":{}},"8.0.1":{"name":"dio.js","version":"8.0.1","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28"},"gitHead":"cc62f1e47d4143bb61249307f97636cd9f0a9e58","_id":"dio.js@8.0.1","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-S6PDbqPRm6JvsSc2v3f18m8+nikd/l9wRglEKa13Y5y6b61jZBTyfRm+p/+nBhKnkYg9ND7xXCjk2wbOZ6/kkg==","shasum":"0aca2c9ec314305f815773ce563460515353e738","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.0.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGC52Cn7oMatrGUMphA3VXbVIOfTLG3Iso7q8J4kIXlUAiEAzUw+JVHt95seC5CSAjIIvaE3EmJ4dVebG+O6BwhwgSI="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.0.1.tgz_1507259116753_0.24612381565384567"},"directories":{}},"8.0.2":{"name":"dio.js","version":"8.0.2","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28"},"gitHead":"3cdb8aeab90e04295436b28f800ac3f17764d65f","_id":"dio.js@8.0.2","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-PX5ubDkWHbH6smyjgWowTNqyjJDC7xxX8IY7Hlwr1wdFW+6QqqGQdcl5MR3VXAvNHzVXc3BU2fl5Sn5bjszxGA==","shasum":"8b92b0002da0320e95eb1c9f3c9109283520426c","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.0.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCB+YhgPqPzaySJuxjLKxT5bWkLJI3Yh4SmsyKqAUq9AAIgFsn4lEU3k5cBjva/9LQdBYZOA5FgYFLUeJceV8FD4Fw="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.0.2.tgz_1507494006283_0.645434612641111"},"directories":{}},"8.0.3":{"name":"dio.js","version":"8.0.3","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28"},"gitHead":"09a29c3c695267c9771f60013e342f3e35711be7","_id":"dio.js@8.0.3","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-KrwFCl4hh0v8BZtPDIWsl3std4/WFDw/DUENFltFgvp+NHrqNfoCndHSF8WXFE1LrMvEyBHQ4MmNbXnuXTxdVQ==","shasum":"02f88eb902c859e2823422580ae4f3f1de07f88d","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.0.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGS5PXvz8T0wv0702N73I2MkT6hFR6LPaJVlqQXNALPLAiEA1cQBnRp1MspbzPaR8vJpHhzka6r+2qMdfcMsS+dQ48o="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.0.3.tgz_1507562662209_0.08363736537285149"},"directories":{}},"8.1.0-alpha":{"name":"dio.js","version":"8.1.0-alpha","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28"},"gitHead":"6864f3bc9df2b4ff9272585a271153ea8a8e2fa1","_id":"dio.js@8.1.0-alpha","_npmVersion":"5.5.1","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-tqXt5flO3jxBvpIyuwJoN0FgXUFpjfRBuFZ1VwAj9JQ36ZKZ6cVQfTrjVBcF/b3uoR1+z9CeogyNW3npJX2LGQ==","shasum":"8559f4211dc2733a248bdfbf63754db42cfda1e0","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.1.0-alpha.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxpHz6yOpWbw97/KzidwlM3cFJ4V3wHqTmnahYrQjYHwIgZccuE1JgIShbeMGwRAOHLJ2gNgll7ajWnvYo1rrZFzs="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.1.0-alpha.tgz_1510503991447_0.18917995900847018"},"directories":{}},"8.1.0-alpha.0":{"name":"dio.js","version":"8.1.0-alpha.0","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28"},"gitHead":"90ea2b4506538a003fc4183124dc5948574edd68","_id":"dio.js@8.1.0-alpha.0","_npmVersion":"5.5.1","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-lygHDhVmggyxqbLBjC0TRmAUBtPX1iTxJ3o4jvzMH9c0cmFblaOOZl9Q2PwNm2FuGLK/yu33l0VgrxfF2zsenw==","shasum":"f5b0bcd63a991fac421fbae6e0a1f59a6d314d67","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.1.0-alpha.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCAPUWB4eHXpuge3lZ4Ji418UI6xqWTwjgPvX4kSgvOzwIgNbeZg8HPPOoNZUjHukdvQGeutcwtpDQjfcOJYgqoqBo="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.1.0-alpha.0.tgz_1510632638554_0.41822819388471544"},"directories":{}},"8.1.0-alpha.1":{"name":"dio.js","version":"8.1.0-alpha.1","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28"},"gitHead":"d2882c54d53bbc85fe156846d8f417fe38453cd2","_id":"dio.js@8.1.0-alpha.1","_npmVersion":"5.5.1","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-c030BqICmDWz+youKqdF29D6uW1XW3SxMMb4YkdBtlm6v9WC1TmHDfk5WiQ2eQgyMuaSfF6+9OL0nIEKlfG2Sg==","shasum":"55bca3589537ad3c2c1969a9dfe9e7bb3ceecc00","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.1.0-alpha.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDb/KMyHTM5LYnZtjWgD3MPC0qo/ORD1oewnKsCzam6CAIhAJGGsxgGraUdZwCu/8d1F3ZbjoYwmCywgtzgn+jgviD5"}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.1.0-alpha.1.tgz_1510636653861_0.27878505480475724"},"directories":{}},"8.1.0-alpha.2":{"name":"dio.js","version":"8.1.0-alpha.2","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28"},"gitHead":"2115eea28121b62a440514bd6209cc7aa712acf9","_id":"dio.js@8.1.0-alpha.2","_npmVersion":"5.5.1","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-c67lM4/4ikY28xVT1KgKWgQFdbD4ZXFXvmZfXHc8bwTi3m36EcmV7nxpDdHW2zYsES3UYpAag4OkYSX7/O5D+Q==","shasum":"8f047c9a0fdb5efd3e5bb6675cc75d733246df9d","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.1.0-alpha.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHvJ4aROOoFTCwHNg0A9zIODH+KfMFwh04YaqoOwDcLQAiBvZ02upHVlOk/QFT4o7uQRmA3qL4xlZbgMgEbFRCgkiQ=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.1.0-alpha.2.tgz_1510737332858_0.07004860229790211"},"directories":{}},"8.1.0-alpha.3":{"name":"dio.js","version":"8.1.0-alpha.3","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28"},"gitHead":"9f9a94e71f1acba42d1704b2a2f2bdf013a0f028","_id":"dio.js@8.1.0-alpha.3","_npmVersion":"5.5.1","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-EjoYf3cEmbqd0TWBHTty6lCiXzFL9IDhaCy/8T+xfWmrLXiOkTwkAn4pakY8hnSXW12y4iIpF6uL/z3IRlHd5w==","shasum":"29ea7dd3a25d87b004dae0a9c397def6446db1c0","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.1.0-alpha.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqtKH+fLD8NMmxzYOMKagaXGb+HmF1yWUFKmHwhA+NLQIhALD/oQO88H393YxUY7xQIHQAYO6xHnHng4Tpyf4PjHhI"}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.1.0-alpha.3.tgz_1510990263238_0.2956453086808324"},"directories":{}},"8.1.0-beta":{"name":"dio.js","version":"8.1.0-beta","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28"},"gitHead":"7d8bd867ba3acde997a2f9d7a42e3389ba06de0c","_id":"dio.js@8.1.0-beta","_npmVersion":"5.5.1","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-mn6vQAU1y25NgVung37AGWdPJWkC0f97fuQA4TR1lKhQQTgc5iVuOiy6ZuonJ5HX5BJgK0YzsYNi94b/VKFx5Q==","shasum":"166a30e19c079b8ece9725f8e3a31a81d3d7e2d3","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.1.0-beta.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCRR+89iGrCq2j9fPDKBasiaeIjAEpbd+uRgAVIrAdgwwIgJGU49ftyq5Eg1IRNIwrDAi7SKLg5DWXL3ClyvVA0KKg="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.1.0-beta.tgz_1511066338512_0.001052426639944315"},"directories":{}},"8.1.0-beta.0":{"name":"dio.js","version":"8.1.0-beta.0","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28"},"gitHead":"b3b1833c69b60a16957aed57afd310af4736051f","_id":"dio.js@8.1.0-beta.0","_npmVersion":"5.5.1","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-NhxscA7uH4Dl0Ec2r/IsYoO8nOCUQ6t1XIHurj78jucia2nwMTVhFQ9Yx5mdKqSkKUykzsEN4XuzUsZHJK8Xrw==","shasum":"f91b686615a48f0a1a08d146c775c440912743b5","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.1.0-beta.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEgbZ4/kl2D5HLpxRwEZlKXMIGxBj6NRtwyFOjh5TtOjAiA4dwHBHybhStLC/SzAK9f/Bxqvs4emgxTEDuApoCfs1A=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.1.0-beta.0.tgz_1511070525710_0.755664698081091"},"directories":{}},"8.1.0-rc":{"name":"dio.js","version":"8.1.0-rc","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28"},"gitHead":"ff96bede7761b44a80752fa61a8376323cbb26f0","_id":"dio.js@8.1.0-rc","_npmVersion":"5.5.1","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-dI4YOCcECnetNwRPn/iM0er8TSfzlTNQZt2eUh1OrVcbSZAaC/XVv6a2aeawDyCU4cTUP8c8ykeoOieCP+23KA==","shasum":"0355dbfc2dfcb92b2cab87c33388242253174bae","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.1.0-rc.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnXyxkldts10lG4GbjUqZWWMAoDyTGLr1zAFZpfVUNUwIgPXTp11OVZwboXmwsXkuH/wJsdo74DaRGGgTebRrU0KA="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.1.0-rc.tgz_1511094445676_0.764563956297934"},"directories":{}},"8.1.0":{"name":"dio.js","version":"8.1.0","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28"},"gitHead":"1ebf2ea8946e8adbe25b614c0c32a5583094d16e","_id":"dio.js@8.1.0","_npmVersion":"5.5.1","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-Isx/9QKj8njZXdUDkZ+oYmZq0BKC/QkuyoN0lLOwbqMHzUk79ac0dqJM2VUsOIWVt2GFW2Xy+vKZFVsLQqR8nQ==","shasum":"34a2b0de2f2a9ade31a4e99e31a12880b7c6a461","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG9K0AFq5VVLc/2oGwqXvVELGijP3MGf/nLwsIJy3bhkAiEAwOyCYXhLHzySTPQTWSrh1zETM8RzYenWGm7OZbKJRe8="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.1.0.tgz_1511107433789_0.8476251410320401"},"directories":{}},"8.1.1":{"name":"dio.js","version":"8.1.1","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28"},"gitHead":"1917b0453da8660e4646a8c63c0bd5f24eda70c6","_id":"dio.js@8.1.1","_npmVersion":"5.5.1","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-siF8aeMF1vQE+Jb4LGjQdWpx4s8a1k1lmQf4Ba/mkePWYuKxzlbjKliJIXybkPRwzGLRsCxAG7CRsWOjmj+Gvg==","shasum":"5907eb3a7ff336e0f85f26172d113f3ae450fe2b","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.1.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHiCWheFdCDwWTcPbQrtMKMuE3qH6cFs3DjxcAW2oyzmAiEAzrA2N3qSYT0fMkkuGdcrMCGIDvtGfskHLCzWgXMJYu8="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.1.1.tgz_1511272944378_0.39958841842599213"},"directories":{}},"8.2.0-alpha":{"name":"dio.js","version":"8.2.0-alpha","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.map.js","dist/umd.js","dist/umd.min.js","dist/umd.map.js","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28","uglify-es":"^3.1.10"},"gitHead":"0f0e5da992fd6ce78047b08e5e6a8b7cce584855","_id":"dio.js@8.2.0-alpha","_npmVersion":"5.5.1","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-wvORIW8OUFWOFDxW/91hPwECP/voljJnBMg2omzXM74x9rAyqI7RaFi3lPkopmpOOg3lojS65Cl75J/dJB/pxg==","shasum":"8fab720b3dc6d9279147ea53455c7d604974605a","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.2.0-alpha.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAJW2ocLbKNOTDnWkLDWtqDRi9XNQrXfin7BrETaJu6TAiBiKyK1f15BnUggzjiPGeXrA/MbCOB64z7GNqmTL8FBUw=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.2.0-alpha.tgz_1512418962743_0.4716915958561003"},"directories":{}},"8.2.0-alpha.0":{"name":"dio.js","version":"8.2.0-alpha.0","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.map.js","dist/umd.js","dist/umd.min.js","dist/umd.min.map.js","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28","uglify-es":"^3.1.10"},"gitHead":"0f0e5da992fd6ce78047b08e5e6a8b7cce584855","_id":"dio.js@8.2.0-alpha.0","_npmVersion":"5.5.1","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-JhlpRpW3xeTy26tVqLv5HcxPJp71/lVUHqRRA4AuPkgZ1f5OcGHVILpS/PJy+YHoXbnlmlFQuaIJb/CD/qyH/g==","shasum":"81537e610087ed514a52c9aa9d74a4140e303263","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.2.0-alpha.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0MueA2LCD4P6W9D91NsxvXOOjWngbVIV7DEif5L5kRQIhALP1FiekSPMMS9kmcBDg2hjCzEkJ8OaMs9mtq9sjdIId"}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.2.0-alpha.0.tgz_1512419101649_0.26405866094864905"},"directories":{}},"8.2.0-alpha.1":{"name":"dio.js","version":"8.2.0-alpha.1","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28","uglify-es":"^3.1.10"},"gitHead":"0f0e5da992fd6ce78047b08e5e6a8b7cce584855","_id":"dio.js@8.2.0-alpha.1","_npmVersion":"5.5.1","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-fnoxh9npTJyzljplLvoy75PMc9DzKbxigg/jFAWqjD1N711BSaVVfBL6PHj5eKBa4HvgbZKPWS1Kj15pOO/GJA==","shasum":"07b98e2c441f9ffcba2e3865a5a11914cf82ef7e","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.2.0-alpha.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH3czMWhPulevASc70NO4wrcSnZgo+pXLs7Wf8j8TdMrAiBlb4ZWnaB/FinGmmh1muEE6i5+TkdV4RWXpFVM3US16Q=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.2.0-alpha.1.tgz_1512419199850_0.794436439871788"},"directories":{}},"8.2.0-rc":{"name":"dio.js","version":"8.2.0-rc","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28","uglify-es":"^3.1.10"},"gitHead":"0f0e5da992fd6ce78047b08e5e6a8b7cce584855","_id":"dio.js@8.2.0-rc","_npmVersion":"5.5.1","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-+r7Jt4zf8hB+OFnezNUIvyBzC7mVKZtPzWQa5bl3gB4L5YNM+qpv2mSjHoSyPD05iKR4T6rUv2RRkya8LDQR7Q==","shasum":"02e7cdb59259f5525e059b844d6e268d8a57f830","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.2.0-rc.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJY7EvMrtT+ZJLd8GnvbQ4gfP9fg3/FS2crirSWY3WrQIgLjav16KnN7TTJWo+C0GqH9RmQutw+Okf3anIFSgvlwU="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.2.0-rc.tgz_1512419447780_0.1567920653615147"},"directories":{}},"8.2.0":{"name":"dio.js","version":"8.2.0","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28","uglify-es":"^3.1.10"},"gitHead":"24d4412d46830b3ac77564087d87acfba852f189","_id":"dio.js@8.2.0","_npmVersion":"5.5.1","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-GYSwh1blStNkmjXfflEvcBjRo5bWfvwF4+uQRaaWTtICbu9eo+Apfz4y3wjwWto76FYc+bmy/1op85e1fWsQ8g==","shasum":"11020006b3ce561a8fc94e70c75f6c7a3884c8a6","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.2.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvLFNZ/4JvYiUxvSZgdK0nX9NiQ1xwb7asfEeZuNRVQAIhAI3RZy7qdCWsGPxasGvy5QJlcNOHVu2qJ1d/oTGYLSKt"}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.2.0.tgz_1512426447580_0.7559575741179287"},"directories":{}},"8.2.1":{"name":"dio.js","version":"8.2.1","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28","uglify-es":"^3.1.10"},"gitHead":"9f092575e0318e8e0d0aa3f181426a61a08c9d0d","_id":"dio.js@8.2.1","_npmVersion":"5.6.0","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-fuIsxpiaWprwjrQ5ZmnWw9cbxoT0Ke1uCWuOOTiXeo3TymvgEH/gDPOlgYQX37l3qSqk5gZwohHFTr8r+RCQyQ==","shasum":"4097cce302960f7138dc302bd9d66270c220644e","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.2.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICtyqc8D6Ir7/3MOze80oVaXeM7Hn2SBz/GmdJF2aMoUAiEAwDRNrMtMgmhS38TnFqr4UEc1GifNrWkK4g4YbvKn9+o="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.2.1.tgz_1516289288857_0.24144078139215708"},"directories":{}},"8.2.2":{"name":"dio.js","version":"8.2.2","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28","uglify-es":"^3.1.10"},"gitHead":"85cfd9a5db616ac8e0d6374b87076084901b6052","_id":"dio.js@8.2.2","_npmVersion":"5.6.0","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-yaVyVTFMrLBVudluM+rvYLBnqzC+/Ro23VYodUEc4n7fS0kSHhkFgI0ATO6pS6FQbGlOxzQ2Io5/1qo/dou1Kg==","shasum":"bd6b1f30b48f64ea3316fb90406bc60214fc3558","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.2.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQJOUTPctD4iNTLJa3fwVdEnTMLgsn1VFIOVsse5rm3AIhAK1R/ckCPH6yj2PgMmZs2MaklcLCth+CdZaF63VdDfhS"}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.2.2.tgz_1516348188917_0.11605560989119112"},"directories":{}},"8.2.3":{"name":"dio.js","version":"8.2.3","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28","uglify-es":"^3.1.10"},"gitHead":"5f214c93f240f28e110a50e1a454e693969ad7ab","_id":"dio.js@8.2.3","_npmVersion":"5.6.0","_nodeVersion":"8.6.0","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-tnJj591IPeLyHFKqM8EJ0PGD5nVLvBNyExMQWWP3074N5o/4iWmfB94lsRlbwd3zvPXqV8Pw56TaqishZqSi4Q==","shasum":"6bc71137398abe2fdd33d34bd55b8c6d5d22ef00","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.2.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDBo+O+qEs/OM8THZVPigqg9OJxK6ZLOSeRXtLd0dlkYAiA3T53x9507GoNZ5LIH9EJM3wTn2UeEIBOq/7WalGakLg=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js-8.2.3.tgz_1516911392515_0.9445921601727605"},"directories":{}},"8.2.4":{"name":"dio.js","version":"8.2.4","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node ./script/build","build:watch":"node ./script/build -- --watch","test":"nyc mocha --recursive --require script/test/index.js","test:watch":"mocha --recursive --require script/test/index.js --watch","test:debug":"mocha --recursive --require script/test/index.js","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.1.0","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.0.28","uglify-es":"^3.1.10"},"gitHead":"dd9fd99ed09b93fe24ac4810fddc745f50972e27","_id":"dio.js@8.2.4","_npmVersion":"5.6.0","_nodeVersion":"9.7.1","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-hDDwoRd3ASMbP15ColXk9DXlkMoEYzaGMbEd6uuWjEVLi85kb9/0SyPHGKDAzrpOImvH89zp8O9tI78Fwd1q0w==","shasum":"2e8a1eaef0b8d157fa743f8129bde457eba9d4ad","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-8.2.4.tgz","fileCount":12,"unpackedSize":308290,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCiQVqqsoK8jV6e6BEC+WV+L9Vo6dd81m/G8AWnU4svqwIhAI6pueLZn8+Sz7F2qP7nzfxQTTWFi0uzQGi6dZTsJ/m+"}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js_8.2.4_1520799391824_0.4625795820161005"},"_hasShrinkwrap":false},"9.0.0-alpha":{"name":"dio.js","version":"9.0.0-alpha","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node --harmony script/build","build:watch":"node --harmony script/build -- --watch","test":"nyc mocha --harmony --recursive --require script/test","test:watch":"mocha --harmony --recursive --require script/test --watch","test:debug":"mocha --harmony --recursive --require script/test","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.6.2","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.3.12","uglify-es":"^3.3.9"},"readme":"# DIO\n\n[![dio.js](https://dio.js.org/assets/images/logo.svg)](https://dio.js.org/)\n\nA Library For Building User Interfaces.\n\n- ~8kb\n\n[![licence](https://img.shields.io/badge/licence-MIT-blue.svg?style=flat)](https://github.com/thysultan/dio.js/blob/master/LICENSE.md)\n[![npm](https://img.shields.io/npm/v/dio.js.svg?style=flat)](https://www.npmjs.com/package/dio.js)\n[![Build Status](https://travis-ci.org/thysultan/dio.js.svg)](https://travis-ci.org/thysultan/dio.js)\n[![Coverage Status](https://coveralls.io/repos/github/thysultan/dio.js/badge.svg)](https://coveralls.io/github/thysultan/dio.js)\n![dependencies](https://img.shields.io/badge/dependencies-none-green.svg?style=flat)\n[![Join the chat at https://gitter.im/thysultan/dio.js](https://img.shields.io/badge/chat-gitter-green.svg?style=flat)](https://gitter.im/thysultan/dio.js)\n\n## Support\n\n* Edge\n* IE 9+\n* Chrome\n* Firefox\n* Safari\n* Node\n\n---\n\n## Installation\n\n#### Direct Download\n\n```html\n<script src=dio.min.js></script>\n```\n\n#### CDN\n\n```html\n<script src=https://unpkg.com/dio.js></script>\n<script src=https://cdn.jsdelivr.net/npm/dio.js></script>\n```\n\n#### NPM\n\n```\nnpm install dio.js --save\n```\n\n---\n\n## Getting started\n\n```js\ndio.render(\n  h('h1', 'Hello, world!'),\n  document.getElementById('root')\n)\n```\n\nThe easiest way to get started with DIO is to walk through the [Introduction to DIO](https://dio.js.org/introduction) or the [API Documentation](https://dio.js.org/api).\n\n## Features\n\nThe following is an overview of the features DIO allows you to make use of.\n\n1. ### Rendering\n\n\t1. Elements\n\t1. Components\n\t1. Primitives like strings, numbers, null, undefined\n\t1. Fragments like Arrays, Iterables\n\t1. and others renderables like Promises and Portals\n\n1. ### Components\n\n\t1. Functional stateful components\n\t1. Class stateful components\n\n1. ### Events\n\n\t1. Functions or [EventListener](https://developer.mozilla.org/en/docs/Web/API/EventListener)\n\t1. Preserve \"this\" reference\n\n1. ### Errors\n\n\t1. Error boundaries through `componentDidCatch`\n\n1. ### setState\n\n\t1. As with a Object\n\t1. As with a Promise\n\t1. As with an implicit return\n\n1. ### Lifecycle\n\n\t1. async componentWillUnmount\n\t1. async getInitialState\n\n## Example\n\nThis intentionally overloaded example presents a few features detailed above, namely – error boundaries, an implicit setState return, Promise setState and rendering Promises & Fragments.\n\n```js\nclass Input {\n\t// Error Boundary\n\tcomponentDidCatch ({stack, message, ...error}, {componentStack}) {\n\t\treturn {error: true}\n\t}\n\t// Isomorphic Async getInitialState\n\tasync getInitialState() {\n\t\treturn {value: 'Hi!'}\n\t}\n\t// Implicit Promise setState\n\tasync handleInput({target}, props, state) {\n\t\treturn {value: target.value}\n\t}\n\t// Rendering Promises\n\tasync render(props, {value, error}, context) {\n\t\tif (error)\n\t\t\treturn h('h1', 'Something went wrong!')\n\n\t\t// Rendering Fragments\n\t\treturn [\n\t\t\th('input', {\n\t\t\t\tvalue: value,\n\t\t\t\t// bonus: events preserve \"this\" reference\n\t\t\t\tonInput: this.handleInput\n\t\t\t}),\n\t\t\th('p', value)\n\t\t]\n\t}\n}\n\ndio.render(h(Input))\n```\n\n## Links\n\n1. [Introduction to DIO](https://dio.js.org/introduction)\n2. [API Documentation](https://dio.js.org/api)\n3. [REPL](https://dio.js.org/repl)\n\n--\n\n\n## Goals\n\nPublic react compatibility with an [edge](#edge), this means that any react library should work as long as it does not make use of undocumented/public features for example API's prefixed with `unstable_`.\n\n## Differences\n\n#### Custom Reconciler, Config\n\nThere are a few react-like libraries but at the date of this writing DIO might be the only one to afford the ability to create your own renderer. Now while both React and DIO expose a way to create your own renderer, there is a difference in how you create this custom renderer.\n\nWhile react might exposes a package called `react-reconciler` DIO exposes a public API for this as part of an overloaded `createFactory` API.\n\nThis is coupled with fact that the config structure somewhat differ as do the arguments passed to the methodes implemented – for example react might pass the view instance(in the case of ReactDOM this might be a DOM node) to the method while DIO would pass the related virtual element(s) that have a reference to the DOM node, which you can then extract(by means of a readonly property), which can be argued gives renderers room to do more with what they have.\n\nAll in all it is easy for DIO to consume the react reconcilers config, so the plan is that once the `react-reconciler` package is considererd stable by the React team DIO is in a position to consume the sementics of its config.\n\nAs a show of confidence DIO itself uses this interface to implement the DOM renderer that it ships by default, which can be used to create any renderer.\n\n#### Portals, Event Bubbling\n\nEvents bubble in Portals as you would expect them to in the DOM, this avoid issues like [#11387](https://github.com/facebook/react/issues/11387) where bubbling them through the virtual tree has unintented behaviors.\n\nThe `createPortal` API also supports string selectors which allows for server-side rendering portals and out-of-order rendering, a feature that might also make it into react: [related issue](https://github.com/facebook/react/issues/10711).\n\n#### Events, Delegation\n\nThough it may sound strange when considering all the articles about event delegation and performance/memory DIO on the other hand intentionally does not implement events with delegation to avoid the performance impact that comes with re-implementing(in JavaScript) event bubbling that browsers do, which is almost always efficiently handled by the host enviroment.\n\nHowever DIO's model does not create any more memory when attaching events than you might imagine React's event delegation model to use, interestingly it might just create less considerering that where react might create a Map entry for each element-event-pair the browser is in a better position to use an optimial reference pointer and data-strucuture to track the relationship between event handlers and elements when using addEventListener for each element.\n\nIn simple terms implementing events with Reacts model of delegation(preserving the DOM model of bubbling) involves doing the same/more amount of work at assignment of the event and more work when emitting the events than a browser would otherwise do.\n\n#### Hydration, Self Correcting\n\nDIO goes the [whole 9 yards](https://en.wikipedia.org/wiki/The_whole_nine_yards) to correct differences when hydrating where react might otherwise error or ignore.\n\n#### Error Messages\n\nThere are error messages for incorrect use of top-level API's but react is famous for going the extra mile in both error messages and warnings regarding what is considered best practices in **dev mode** but the presence of error boundaries insures that if an error does occur DIO can give you a full trace of the component tree affected in a presentable error message and more.\n\n## Tradeoffs\n\n#### Community.\n\nReact hands down has the bigger community.\n\n#### Warnings\n\nReact has dev mode warnings where DIO does not.\n\n#### unstable_API\n\nSadly some libraries do make use of these undocumented unstable API's that React sometimes exposes with a `unstable_` prefix – which DIO intentionally ignores implementing due to their otherwise \"considered\" unstable nature.\n\n## Edge\n\nThere a lot of small details that give DIO its edge that don't realy touch on new API's but rather on creating a larger surface area of what React already supports and adding to this.\n\nFor example React can render strings, numbers, elements and components but what if it was able to render Promises or Thenables? This would help solve a lot of \"problems\" with data fetching and lazy loading that is possible with React but not declaratively incentivised at the library level.\n\n#### Supporting Thenables/Promises\n\nThe ability to render thenables makes support for code-splitting and lazy loading easy at the library level. The ability to use a Promise for initial state makes data fetching more declartive at the library level and the ability to update state with a promise allows you to deal with async services without cutting back on the declarative nature that is afforded to first-class citizens like elements.\n\n```js\nclass Input {\n\tasync getInitialState() {\n\t\treturn await fetch('service/')\n\t}\n\tasync handleInput({target}, props, state) {\n\t\treturn await fetch('service/?value=${target.value}')\n\t}\n\tasync render() {\n\t\treturn h('input', {\n\t\t\tvalue: value,\n\t\t\tonInput: this.handleInput\n\t\t})\n\t}\n}\n```\n\n#### Supporting Pending Unmounts\n\nIt's no suprise that declarative entry and outro animations in react are not at its best compared to other first-class citizens.\nAllowing a means to declaratively define a pending unmount that can trigger an outro animation before it is unmounted goes a long away in reducing the abstractions that go into dealing with this when this feature is abscent from the library level.\n\n```js\nclass Input {\n\tasync componentWillUnmount(){\n\t\treturn new Promise((resolve) => {\n\t\t\tfindDOMNode(this).animate([...], {\n\t\t\t\t...\n\t\t\t}).onfinish = resolve\n\t\t})\n\t}\n\tasync getInitialState() {\n\t\treturn {value: 'Initial value!'}\n\t}\n\tasync handleInput({target}, props, state) {\n\t\treturn {value: target.value}\n\t}\n\tasync render() {\n\t\treturn h('input', {\n\t\t\tvalue: value,\n\t\t\tonInput: this.handleInput\n\t\t})\n\t}\n}\n```\n\n#### Events & \"This\"\n\nEvents in React have the infamous legacy of `.bind`. The implementation details of DIO allow it to avoid this legacy as demonstrated in the examples mentioned.\n\n#### Server Side Renderer\n\nWhile React 16 does allow some level of async server side rendering with `renderToNodeStream` DIO takes it a step further to make sure that the mentioned points about rendering Promises and Promise states applies just as well in a server side render.\n\nThat is to say the server-side renderer can render whatever the client renderer can, including portals – which coupled with the client renderers hydration API allows for out of order rendering that is ordered on the client while hydrating.\n\n#### Custom Components\n\nCustom components are components that instantiate their own host elements. A custom elements constructor might fall under this group of components.\n\n\n```js\nclass WordCount extends HTMLElement {\n\t// ...\n}\ncustomElements.define('word-count', WordCount)\n```\n\nGiven DIO's goal to support custom renderers that might not even target the DOM the definition of a what is a custom component is left up to the renderer to configure. In the case of the default DOM renderer this would match custom elements/web components allowing us to render the `WordCount` custom element given without knowing its `localName`.\n\n```js\nrender(h(WordCount))\n```\n","readmeFilename":"README.md","gitHead":"8476fcd8c9bdb017271f7a394efd1ef591a8c50f","_id":"dio.js@9.0.0-alpha","_npmVersion":"5.6.0","_nodeVersion":"9.7.1","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-bzakv+OBXCzssQS8BxO+sD4yqYKDEBg1tFOQ0ycIlvsQj873ZH8Tz+AqZH7FIi34TW8HvFUTr7AyB++7CtPrmQ==","shasum":"374d1860911175eaafada989e2cbbfd5fd8ec577","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-9.0.0-alpha.tgz","fileCount":12,"unpackedSize":348264,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAE7RHN78z/vIdaumARGZITSudPC6ecG4PNkYYmevYUzAiEAxe8c+IK8GleNHzqieRRABsYpz2Bhk2rrRkv5BVvldUM="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js_9.0.0-alpha_1522080823338_0.47868000168183156"},"_hasShrinkwrap":false},"9.0.0-alpha.0":{"name":"dio.js","version":"9.0.0-alpha.0","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node --harmony script/build","build:watch":"node --harmony script/build -- --watch","test":"nyc mocha --harmony --recursive --require script/test","test:watch":"mocha --harmony --recursive --require script/test --watch","test:debug":"mocha --harmony --recursive --require script/test","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.6.2","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.3.12","uglify-es":"^3.3.9"},"readme":"# DIO\n\n[![dio.js](https://dio.js.org/assets/images/logo.svg)](https://dio.js.org/)\n\nA Library For Building User Interfaces.\n\n- ~8kb\n\n[![licence](https://img.shields.io/badge/licence-MIT-blue.svg?style=flat)](https://github.com/thysultan/dio.js/blob/master/LICENSE.md)\n[![npm](https://img.shields.io/npm/v/dio.js.svg?style=flat)](https://www.npmjs.com/package/dio.js)\n[![Build Status](https://travis-ci.org/thysultan/dio.js.svg)](https://travis-ci.org/thysultan/dio.js)\n[![Coverage Status](https://coveralls.io/repos/github/thysultan/dio.js/badge.svg)](https://coveralls.io/github/thysultan/dio.js)\n![dependencies](https://img.shields.io/badge/dependencies-none-green.svg?style=flat)\n[![Join the chat at https://gitter.im/thysultan/dio.js](https://img.shields.io/badge/chat-gitter-green.svg?style=flat)](https://gitter.im/thysultan/dio.js)\n\n## Support\n\n* Edge\n* IE 9+\n* Chrome\n* Firefox\n* Safari\n* Node\n\n---\n\n## Installation\n\n#### Direct Download\n\n```html\n<script src=dio.min.js></script>\n```\n\n#### CDN\n\n```html\n<script src=https://unpkg.com/dio.js></script>\n<script src=https://cdn.jsdelivr.net/npm/dio.js></script>\n```\n\n#### NPM\n\n```\nnpm install dio.js --save\n```\n\n---\n\n## Getting started\n\n```js\ndio.render(\n  h('h1', 'Hello, world!'),\n  document.getElementById('root')\n)\n```\n\nThe easiest way to get started with DIO is to walk through the [Introduction to DIO](https://dio.js.org/introduction) or the [API Documentation](https://dio.js.org/api).\n\n## Features\n\nThe following is an overview of the features DIO allows you to make use of.\n\n1. ### Rendering\n\n\t1. Elements\n\t1. Components\n\t1. Primitives like strings, numbers, null, undefined\n\t1. Fragments like Arrays, Iterables\n\t1. and others renderables like Promises and Portals\n\n1. ### Components\n\n\t1. Functional stateful components\n\t1. Class stateful components\n\n1. ### Events\n\n\t1. Functions or [EventListener](https://developer.mozilla.org/en/docs/Web/API/EventListener)\n\t1. Preserve \"this\" reference\n\n1. ### Errors\n\n\t1. Error boundaries through `componentDidCatch`\n\n1. ### setState\n\n\t1. As with a Object\n\t1. As with a Promise\n\t1. As with an implicit return\n\n1. ### Lifecycle\n\n\t1. async componentWillUnmount\n\t1. async getInitialState\n\n## Example\n\nThis intentionally overloaded example presents a few features detailed above, namely – error boundaries, an implicit setState return, Promise setState and rendering Promises & Fragments.\n\n```js\nclass Input {\n\t// Error Boundary\n\tcomponentDidCatch ({stack, message, ...error}, {componentStack}) {\n\t\treturn {error: true}\n\t}\n\t// Isomorphic Async getInitialState\n\tasync getInitialState() {\n\t\treturn {value: 'Hi!'}\n\t}\n\t// Implicit Promise setState\n\tasync handleInput({target}, props, state) {\n\t\treturn {value: target.value}\n\t}\n\t// Rendering Promises\n\tasync render(props, {value, error}, context) {\n\t\tif (error)\n\t\t\treturn h('h1', 'Something went wrong!')\n\n\t\t// Rendering Fragments\n\t\treturn [\n\t\t\th('input', {\n\t\t\t\tvalue: value,\n\t\t\t\t// bonus: events preserve \"this\" reference\n\t\t\t\tonInput: this.handleInput\n\t\t\t}),\n\t\t\th('p', value)\n\t\t]\n\t}\n}\n\ndio.render(h(Input))\n```\n\n## Links\n\n1. [Introduction to DIO](https://dio.js.org/introduction)\n2. [API Documentation](https://dio.js.org/api)\n3. [REPL](https://dio.js.org/repl)\n\n--\n\n\n## Goals\n\nPublic react compatibility with an [edge](#edge), this means that any react library should work as long as it does not make use of undocumented/public features for example API's prefixed with `unstable_`.\n\n## Differences\n\n#### Custom Reconciler, Config\n\nThere are a few react-like libraries but at the date of this writing DIO might be the only one to afford the ability to create your own renderer. Now while both React and DIO expose a way to create your own renderer, there is a difference in how you create this custom renderer.\n\nWhile react might exposes a package called `react-reconciler` DIO exposes a public API for this as part of an overloaded `createFactory` API.\n\nThis is coupled with fact that the config structure somewhat differ as do the arguments passed to the methodes implemented – for example react might pass the view instance(in the case of ReactDOM this might be a DOM node) to the method while DIO would pass the related virtual element(s) that have a reference to the DOM node, which you can then extract(by means of a readonly property), which can be argued gives renderers room to do more with what they have.\n\nAll in all it is easy for DIO to consume the react reconcilers config, so the plan is that once the `react-reconciler` package is considererd stable by the React team DIO is in a position to consume the sementics of its config.\n\nAs a show of confidence DIO itself uses this interface to implement the DOM renderer that it ships by default, which can be used to create any renderer.\n\n#### Portals, Event Bubbling\n\nEvents bubble in Portals as you would expect them to in the DOM, this avoid issues like [#11387](https://github.com/facebook/react/issues/11387) where bubbling them through the virtual tree has unintented behaviors.\n\nThe `createPortal` API also supports string selectors which allows for server-side rendering portals and out-of-order rendering, a feature that might also make it into react: [related issue](https://github.com/facebook/react/issues/10711).\n\n#### Events, Delegation\n\nThough it may sound strange when considering all the articles about event delegation and performance/memory DIO on the other hand intentionally does not implement events with delegation to avoid the performance impact that comes with re-implementing(in JavaScript) event bubbling that browsers do, which is almost always efficiently handled by the host enviroment.\n\nHowever DIO's model does not create any more memory when attaching events than you might imagine React's event delegation model to use, interestingly it might just create less considerering that where react might create a Map entry for each element-event-pair the browser is in a better position to use an optimial reference pointer and data-strucuture to track the relationship between event handlers and elements when using addEventListener for each element.\n\nIn simple terms implementing events with Reacts model of delegation(preserving the DOM model of bubbling) involves doing the same/more amount of work at assignment of the event and more work when emitting the events than a browser would otherwise do.\n\n#### Hydration, Self Correcting\n\nDIO goes the [whole 9 yards](https://en.wikipedia.org/wiki/The_whole_nine_yards) to correct differences when hydrating where react might otherwise error or ignore.\n\n#### Error Messages\n\nThere are error messages for incorrect use of top-level API's but react is famous for going the extra mile in both error messages and warnings regarding what is considered best practices in **dev mode** but the presence of error boundaries insures that if an error does occur DIO can give you a full trace of the component tree affected in a presentable error message and more.\n\n## Tradeoffs\n\n#### Community.\n\nReact hands down has the bigger community.\n\n#### Warnings\n\nReact has dev mode warnings where DIO does not.\n\n#### unstable_API\n\nSadly some libraries do make use of these undocumented unstable API's that React sometimes exposes with a `unstable_` prefix – which DIO intentionally ignores implementing due to their otherwise \"considered\" unstable nature.\n\n## Edge\n\nThere a lot of small details that give DIO its edge that don't realy touch on new API's but rather on creating a larger surface area of what React already supports and adding to this.\n\nFor example React can render strings, numbers, elements and components but what if it was able to render Promises or Thenables? This would help solve a lot of \"problems\" with data fetching and lazy loading that is possible with React but not declaratively incentivised at the library level.\n\n#### Supporting Thenables/Promises\n\nThe ability to render thenables makes support for code-splitting and lazy loading easy at the library level. The ability to use a Promise for initial state makes data fetching more declartive at the library level and the ability to update state with a promise allows you to deal with async services without cutting back on the declarative nature that is afforded to first-class citizens like elements.\n\n```js\nclass Input {\n\tasync getInitialState() {\n\t\treturn await fetch('service/')\n\t}\n\tasync handleInput({target}, props, state) {\n\t\treturn await fetch('service/?value=${target.value}')\n\t}\n\tasync render() {\n\t\treturn h('input', {\n\t\t\tvalue: value,\n\t\t\tonInput: this.handleInput\n\t\t})\n\t}\n}\n```\n\n#### Supporting Pending Unmounts\n\nIt's no suprise that declarative entry and outro animations in react are not at its best compared to other first-class citizens.\nAllowing a means to declaratively define a pending unmount that can trigger an outro animation before it is unmounted goes a long away in reducing the abstractions that go into dealing with this when this feature is abscent from the library level.\n\n```js\nclass Input {\n\tasync componentWillUnmount(){\n\t\treturn new Promise((resolve) => {\n\t\t\tfindDOMNode(this).animate([...], {\n\t\t\t\t...\n\t\t\t}).onfinish = resolve\n\t\t})\n\t}\n\tasync getInitialState() {\n\t\treturn {value: 'Initial value!'}\n\t}\n\tasync handleInput({target}, props, state) {\n\t\treturn {value: target.value}\n\t}\n\tasync render() {\n\t\treturn h('input', {\n\t\t\tvalue: value,\n\t\t\tonInput: this.handleInput\n\t\t})\n\t}\n}\n```\n\n#### Events & \"This\"\n\nEvents in React have the infamous legacy of `.bind`. The implementation details of DIO allow it to avoid this legacy as demonstrated in the examples mentioned.\n\n#### Server Side Renderer\n\nWhile React 16 does allow some level of async server side rendering with `renderToNodeStream` DIO takes it a step further to make sure that the mentioned points about rendering Promises and Promise states applies just as well in a server side render.\n\nThat is to say the server-side renderer can render whatever the client renderer can, including portals – which coupled with the client renderers hydration API allows for out of order rendering that is ordered on the client while hydrating.\n\n#### Custom Components\n\nCustom components are components that instantiate their own host elements. A custom elements constructor might fall under this group of components.\n\n\n```js\nclass WordCount extends HTMLElement {\n\t// ...\n}\ncustomElements.define('word-count', WordCount)\n```\n\nGiven DIO's goal to support custom renderers that might not even target the DOM the definition of a what is a custom component is left up to the renderer to configure. In the case of the default DOM renderer this would match custom elements/web components allowing us to render the `WordCount` custom element given without knowing its `localName`.\n\n```js\nrender(h(WordCount))\n```\n","readmeFilename":"README.md","gitHead":"8cc3658cc779acfa3e63052d5361b062fad1b40a","_id":"dio.js@9.0.0-alpha.0","_npmVersion":"5.6.0","_nodeVersion":"9.7.1","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-AjRh38YAI4AHxeRNXVZuPUIDOAheFYxXrdfbwkmyPPKrnulPr5sLRbwfSnDe5jsgnup1Z/p2pXlk1caQPaK7zQ==","shasum":"d9401b7336ef2e989f7cbe0ed96be2bfd5079263","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-9.0.0-alpha.0.tgz","fileCount":12,"unpackedSize":351314,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBZPdmr86tYcJHnVyHQntPLp2lABpwBdit5rB/5m1i19AiBDW5G82z25YMBDtj3gf8hJRe41MrYKLfdVFh0AjeuAmA=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js_9.0.0-alpha.0_1522497957344_0.5355934464161713"},"_hasShrinkwrap":false},"9.0.0-beta":{"name":"dio.js","version":"9.0.0-beta","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node --harmony script/build","build:watch":"node --harmony script/build -- --watch","test":"nyc mocha --harmony --recursive --require script/test","test:watch":"mocha --harmony --recursive --require script/test --watch","test:debug":"mocha --harmony --recursive --require script/test","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.6.2","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.3.12","uglify-es":"^3.3.9"},"readme":"# DIO\n\n[![dio.js](https://dio.js.org/assets/images/logo.svg)](https://dio.js.org/)\n\nA Library For Building User Interfaces.\n\n- ~8kb\n\n[![licence](https://img.shields.io/badge/licence-MIT-blue.svg?style=flat)](https://github.com/thysultan/dio.js/blob/master/LICENSE.md)\n[![npm](https://img.shields.io/npm/v/dio.js.svg?style=flat)](https://www.npmjs.com/package/dio.js)\n[![Build Status](https://travis-ci.org/thysultan/dio.js.svg)](https://travis-ci.org/thysultan/dio.js)\n[![Coverage Status](https://coveralls.io/repos/github/thysultan/dio.js/badge.svg)](https://coveralls.io/github/thysultan/dio.js)\n![dependencies](https://img.shields.io/badge/dependencies-none-green.svg?style=flat)\n[![Join the chat at https://gitter.im/thysultan/dio.js](https://img.shields.io/badge/chat-gitter-green.svg?style=flat)](https://gitter.im/thysultan/dio.js)\n\n## Support\n\n* Edge\n* IE 9+\n* Chrome\n* Firefox\n* Safari\n* Node\n\n---\n\n## Installation\n\n#### Direct Download\n\n```html\n<script src=dio.min.js></script>\n```\n\n#### CDN\n\n```html\n<script src=https://unpkg.com/dio.js></script>\n<script src=https://cdn.jsdelivr.net/npm/dio.js></script>\n```\n\n#### NPM\n\n```\nnpm install dio.js --save\n```\n\n---\n\n## Getting started\n\n```js\ndio.render(\n  h('h1', 'Hello, world!'),\n  document.getElementById('root')\n)\n```\n\nThe easiest way to get started with DIO is to walk through the [Introduction to DIO](https://dio.js.org/introduction) or the [API Documentation](https://dio.js.org/api).\n\n## Features\n\nThe following is an overview of the features DIO allows you to make use of.\n\n1. ### Rendering\n\n\t1. Elements\n\t1. Components\n\t1. Primitives like strings, numbers, null, undefined\n\t1. Fragments like Arrays, Iterables\n\t1. and others renderables like Promises and Portals\n\n1. ### Components\n\n\t1. Functional stateful components\n\t1. Class stateful components\n\n1. ### Events\n\n\t1. Functions or [EventListener](https://developer.mozilla.org/en/docs/Web/API/EventListener)\n\t1. Preserve \"this\" reference\n\n1. ### Errors\n\n\t1. Error boundaries through `componentDidCatch`\n\n1. ### setState\n\n\t1. As with a Object\n\t1. As with a Promise\n\t1. As with an implicit return\n\n1. ### Lifecycle\n\n\t1. async componentWillUnmount\n\t1. async getInitialState\n\n## Example\n\nThis intentionally overloaded example presents a few features detailed above, namely – error boundaries, an implicit setState return, Promise setState and rendering Promises & Fragments.\n\n```js\nclass Input {\n\t// Error Boundary\n\tcomponentDidCatch ({stack, message, ...error}, {componentStack}) {\n\t\treturn {error: true}\n\t}\n\t// Isomorphic Async getInitialState\n\tasync getInitialState() {\n\t\treturn {value: 'Hi!'}\n\t}\n\t// Implicit Promise setState\n\tasync handleInput({target}, props, state) {\n\t\treturn {value: target.value}\n\t}\n\t// Rendering Promises\n\tasync render(props, {value, error}, context) {\n\t\tif (error)\n\t\t\treturn h('h1', 'Something went wrong!')\n\n\t\t// Rendering Fragments\n\t\treturn [\n\t\t\th('input', {\n\t\t\t\tvalue: value,\n\t\t\t\t// bonus: events preserve \"this\" reference\n\t\t\t\tonInput: this.handleInput\n\t\t\t}),\n\t\t\th('p', value)\n\t\t]\n\t}\n}\n\ndio.render(h(Input))\n```\n\n## Links\n\n1. [Introduction to DIO](https://dio.js.org/introduction)\n2. [API Documentation](https://dio.js.org/api)\n3. [REPL](https://dio.js.org/repl)\n\n--\n\n\n## Goals\n\nPublic react compatibility with an [edge](#edge), this means that any react library should work as long as it does not make use of undocumented/public features for example API's prefixed with `unstable_`.\n\n## Differences\n\n#### Custom Reconciler, Config\n\nThere are a few react-like libraries but at the date of this writing DIO might be the only one to afford the ability to create your own renderer. Now while both React and DIO expose a way to create your own renderer, there is a difference in how you create this custom renderer.\n\nWhile react might exposes a package called `react-reconciler` DIO exposes a public API for this as part of an overloaded `createFactory` API.\n\nThis is coupled with fact that the config structure somewhat differ as do the arguments passed to the methodes implemented – for example react might pass the view instance(in the case of ReactDOM this might be a DOM node) to the method while DIO would pass the related virtual element(s) that have a reference to the DOM node, which you can then extract(by means of a readonly property), which can be argued gives renderers room to do more with what they have.\n\nAll in all it is easy for DIO to consume the react reconcilers config, so the plan is that once the `react-reconciler` package is considererd stable by the React team DIO is in a position to consume the sementics of its config.\n\nAs a show of confidence DIO itself uses this interface to implement the DOM renderer that it ships by default, which can be used to create any renderer.\n\n#### Portals, Event Bubbling\n\nEvents bubble in Portals as you would expect them to in the DOM, this avoid issues like [#11387](https://github.com/facebook/react/issues/11387) where bubbling them through the virtual tree has unintented behaviors.\n\nThe `createPortal` API also supports string selectors which allows for server-side rendering portals and out-of-order rendering, a feature that might also make it into react: [related issue](https://github.com/facebook/react/issues/10711).\n\n#### Events, Delegation\n\nThough it may sound strange when considering all the articles about event delegation and performance/memory DIO on the other hand intentionally does not implement events with delegation to avoid the performance impact that comes with re-implementing(in JavaScript) event bubbling that browsers do, which is almost always efficiently handled by the host enviroment.\n\nHowever DIO's model does not create any more memory when attaching events than you might imagine React's event delegation model to use, interestingly it might just create less considerering that where react might create a Map entry for each element-event-pair the browser is in a better position to use an optimial reference pointer and data-strucuture to track the relationship between event handlers and elements when using addEventListener for each element.\n\nIn simple terms implementing events with Reacts model of delegation(preserving the DOM model of bubbling) involves doing the same/more amount of work at assignment of the event and more work when emitting the events than a browser would otherwise do.\n\n#### Hydration, Self Correcting\n\nDIO goes the [whole 9 yards](https://en.wikipedia.org/wiki/The_whole_nine_yards) to correct differences when hydrating where react might otherwise error or ignore.\n\n#### Error Messages\n\nThere are error messages for incorrect use of top-level API's but react is famous for going the extra mile in both error messages and warnings regarding what is considered best practices in **dev mode** but the presence of error boundaries insures that if an error does occur DIO can give you a full trace of the component tree affected in a presentable error message and more.\n\n## Tradeoffs\n\n#### Community.\n\nReact hands down has the bigger community.\n\n#### Warnings\n\nReact has dev mode warnings where DIO does not.\n\n#### unstable_API\n\nSadly some libraries do make use of these undocumented unstable API's that React sometimes exposes with a `unstable_` prefix – which DIO intentionally ignores implementing due to their otherwise \"considered\" unstable nature.\n\n## Edge\n\nThere a lot of small details that give DIO its edge that don't realy touch on new API's but rather on creating a larger surface area of what React already supports and adding to this.\n\nFor example React can render strings, numbers, elements and components but what if it was able to render Promises or Thenables? This would help solve a lot of \"problems\" with data fetching and lazy loading that is possible with React but not declaratively incentivised at the library level.\n\n#### Supporting Thenables/Promises\n\nThe ability to render thenables makes support for code-splitting and lazy loading easy at the library level. The ability to use a Promise for initial state makes data fetching more declartive at the library level and the ability to update state with a promise allows you to deal with async services without cutting back on the declarative nature that is afforded to first-class citizens like elements.\n\n```js\nclass Input {\n\tasync getInitialState() {\n\t\treturn await fetch('service/')\n\t}\n\tasync handleInput({target}, props, state) {\n\t\treturn await fetch('service/?value=${target.value}')\n\t}\n\tasync render() {\n\t\treturn h('input', {\n\t\t\tvalue: value,\n\t\t\tonInput: this.handleInput\n\t\t})\n\t}\n}\n```\n\n#### Supporting Pending Unmounts\n\nIt's no suprise that declarative entry and outro animations in react are not at its best compared to other first-class citizens.\nAllowing a means to declaratively define a pending unmount that can trigger an outro animation before it is unmounted goes a long away in reducing the abstractions that go into dealing with this when this feature is abscent from the library level.\n\n```js\nclass Input {\n\tasync componentWillUnmount(){\n\t\treturn new Promise((resolve) => {\n\t\t\tfindDOMNode(this).animate([...], {\n\t\t\t\t...\n\t\t\t}).onfinish = resolve\n\t\t})\n\t}\n\tasync getInitialState() {\n\t\treturn {value: 'Initial value!'}\n\t}\n\tasync handleInput({target}, props, state) {\n\t\treturn {value: target.value}\n\t}\n\tasync render() {\n\t\treturn h('input', {\n\t\t\tvalue: value,\n\t\t\tonInput: this.handleInput\n\t\t})\n\t}\n}\n```\n\n#### Events & \"This\"\n\nEvents in React have the infamous legacy of `.bind`. The implementation details of DIO allow it to avoid this legacy as demonstrated in the examples mentioned.\n\n#### Server Side Renderer\n\nWhile React 16 does allow some level of async server side rendering with `renderToNodeStream` DIO takes it a step further to make sure that the mentioned points about rendering Promises and Promise states applies just as well in a server side render.\n\nThat is to say the server-side renderer can render whatever the client renderer can, including portals – which coupled with the client renderers hydration API allows for out of order rendering that is ordered on the client while hydrating.\n\n#### Custom Components\n\nCustom components are components that instantiate their own host elements. A custom elements constructor might fall under this group of components.\n\n\n```js\nclass WordCount extends HTMLElement {\n\t// ...\n}\ncustomElements.define('word-count', WordCount)\n```\n\nGiven DIO's goal to support custom renderers that might not even target the DOM the definition of a what is a custom component is left up to the renderer to configure. In the case of the default DOM renderer this would match custom elements/web components allowing us to render the `WordCount` custom element given without knowing its `localName`.\n\n```js\nrender(h(WordCount))\n```\n","readmeFilename":"README.md","gitHead":"155ef5da407bac6f9170355f6bf1964a3e119bd4","_id":"dio.js@9.0.0-beta","_npmVersion":"5.6.0","_nodeVersion":"9.7.1","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-5aTjol6KUdV8nB570DRk/8M0FTmZR08hlqGNatUgVOZ/HDIh4SVgJHM7mBd+/mmTC6kmKPbLXFWrP+DqbWs3jQ==","shasum":"01e1aad7685ca82192ed967c2e128115c402d8a0","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-9.0.0-beta.tgz","fileCount":12,"unpackedSize":363171,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDS+ce3WAT57qpCxAgXzXFrTxY+Rn8YiHFxkdVzHD7asAiEAlQp6jbkABevDHhe6FJoJQTrhURJh0Yg77ReScVvFX2o="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js_9.0.0-beta_1522759678972_0.4299123388130144"},"_hasShrinkwrap":false},"9.0.0-rc":{"name":"dio.js","version":"9.0.0-rc","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node --harmony script/build","build:watch":"node --harmony script/build -- --watch","test":"nyc mocha --harmony --recursive --require script/test","test:watch":"mocha --harmony --recursive --require script/test --watch","test:debug":"mocha --harmony --recursive --require script/test","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.6.2","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.3.12","uglify-es":"^3.3.9"},"readme":"# DIO\n\n[![dio.js](https://dio.js.org/assets/images/logo.svg)](https://dio.js.org/)\n\nA Library For Building User Interfaces.\n\n- ~8kb\n\n[![licence](https://img.shields.io/badge/licence-MIT-blue.svg?style=flat)](https://github.com/thysultan/dio.js/blob/master/LICENSE.md)\n[![npm](https://img.shields.io/npm/v/dio.js.svg?style=flat)](https://www.npmjs.com/package/dio.js)\n[![Build Status](https://travis-ci.org/thysultan/dio.js.svg)](https://travis-ci.org/thysultan/dio.js)\n[![Coverage Status](https://coveralls.io/repos/github/thysultan/dio.js/badge.svg)](https://coveralls.io/github/thysultan/dio.js)\n![dependencies](https://img.shields.io/badge/dependencies-none-green.svg?style=flat)\n[![Join the chat at https://gitter.im/thysultan/dio.js](https://img.shields.io/badge/chat-gitter-green.svg?style=flat)](https://gitter.im/thysultan/dio.js)\n\n## Support\n\n* Edge\n* IE 9+\n* Chrome\n* Firefox\n* Safari\n* Node\n\n---\n\n## Installation\n\n#### Direct Download\n\n```html\n<script src=dio.min.js></script>\n```\n\n#### CDN\n\n```html\n<script src=https://unpkg.com/dio.js></script>\n<script src=https://cdn.jsdelivr.net/npm/dio.js></script>\n```\n\n#### NPM\n\n```\nnpm install dio.js --save\n```\n\n---\n\n## Getting started\n\n```js\ndio.render(\n  h('h1', 'Hello, world!'),\n  document.getElementById('root')\n)\n```\n\nThe easiest way to get started with DIO is to walk through the [Introduction to DIO](https://dio.js.org/introduction) or the [API Documentation](https://dio.js.org/api).\n\n## Features\n\nThe following is an overview of the features DIO allows you to make use of.\n\n1. ### Rendering\n\n\t1. Elements\n\t1. Components\n\t1. Primitives like strings, numbers, null, undefined\n\t1. Fragments like Arrays, Iterables\n\t1. and others renderables like Promises and Portals\n\n1. ### Components\n\n\t1. Functional stateful components\n\t1. Class stateful components\n\n1. ### Events\n\n\t1. Functions or [EventListener](https://developer.mozilla.org/en/docs/Web/API/EventListener)\n\t1. Preserve \"this\" reference\n\n1. ### Errors\n\n\t1. Error boundaries through `componentDidCatch`\n\n1. ### setState\n\n\t1. As with a Object\n\t1. As with a Promise\n\t1. As with an implicit return\n\n1. ### Lifecycle\n\n\t1. async componentWillUnmount\n\t1. async getInitialState\n\n## Example\n\nThis intentionally overloaded example presents a few features detailed above, namely – error boundaries, an implicit setState return, Promise setState and rendering Promises & Fragments.\n\n```js\nclass Input {\n\t// Error Boundary\n\tcomponentDidCatch ({stack, message, ...error}, {componentStack}) {\n\t\treturn {error: true}\n\t}\n\t// Isomorphic Async getInitialState\n\tasync getInitialState() {\n\t\treturn {value: 'Hi!'}\n\t}\n\t// Implicit Promise setState\n\tasync handleInput({target}, props, state) {\n\t\treturn {value: target.value}\n\t}\n\t// Rendering Promises\n\tasync render(props, {value, error}, context) {\n\t\tif (error)\n\t\t\treturn h('h1', 'Something went wrong!')\n\n\t\t// Rendering Fragments\n\t\treturn [\n\t\t\th('input', {\n\t\t\t\tvalue: value,\n\t\t\t\t// bonus: events preserve \"this\" reference\n\t\t\t\tonInput: this.handleInput\n\t\t\t}),\n\t\t\th('p', value)\n\t\t]\n\t}\n}\n\ndio.render(h(Input))\n```\n\n## Links\n\n1. [Introduction to DIO](https://dio.js.org/introduction)\n2. [API Documentation](https://dio.js.org/api)\n3. [REPL](https://dio.js.org/repl)\n\n--\n\n\n## Goals\n\nPublic react compatibility with an [edge](#edge), this means that any react library should work as long as it does not make use of undocumented/public features for example API's prefixed with `unstable_`.\n\n## Differences\n\n#### Custom Reconciler, Config\n\nThere are a few react-like libraries but at the date of this writing DIO might be the only one to afford the ability to create your own renderer. Now while both React and DIO expose a way to create your own renderer, there is a difference in how you create this custom renderer.\n\nWhile react might exposes a package called `react-reconciler` DIO exposes a public API for this as part of an overloaded `createFactory` API.\n\nThis is coupled with fact that the config structure somewhat differ as do the arguments passed to the methodes implemented – for example react might pass the view instance(in the case of ReactDOM this might be a DOM node) to the method while DIO would pass the related virtual element(s) that have a reference to the DOM node, which you can then extract(by means of a readonly property), which can be argued gives renderers room to do more with what they have.\n\nAll in all it is easy for DIO to consume the react reconcilers config, so the plan is that once the `react-reconciler` package is considererd stable by the React team DIO is in a position to consume the sementics of its config.\n\nAs a show of confidence DIO itself uses this interface to implement the DOM renderer that it ships by default, which can be used to create any renderer.\n\n#### Portals, Event Bubbling\n\nEvents bubble in Portals as you would expect them to in the DOM, this avoid issues like [#11387](https://github.com/facebook/react/issues/11387) where bubbling them through the virtual tree has unintented behaviors.\n\nThe `createPortal` API also supports string selectors which allows for server-side rendering portals and out-of-order rendering, a feature that might also make it into react: [related issue](https://github.com/facebook/react/issues/10711).\n\n#### Events, Delegation\n\nThough it may sound strange when considering all the articles about event delegation and performance/memory DIO on the other hand intentionally does not implement events with delegation to avoid the performance impact that comes with re-implementing(in JavaScript) event bubbling that browsers do, which is almost always efficiently handled by the host enviroment.\n\nHowever DIO's model does not create any more memory when attaching events than you might imagine React's event delegation model to use, interestingly it might just create less considerering that where react might create a Map entry for each element-event-pair the browser is in a better position to use an optimial reference pointer and data-strucuture to track the relationship between event handlers and elements when using addEventListener for each element.\n\nIn simple terms implementing events with Reacts model of delegation(preserving the DOM model of bubbling) involves doing the same/more amount of work at assignment of the event and more work when emitting the events than a browser would otherwise do.\n\n#### Hydration, Self Correcting\n\nDIO goes the [whole 9 yards](https://en.wikipedia.org/wiki/The_whole_nine_yards) to correct differences when hydrating where react might otherwise error or ignore.\n\n#### Error Messages\n\nThere are error messages for incorrect use of top-level API's but react is famous for going the extra mile in both error messages and warnings regarding what is considered best practices in **dev mode** but the presence of error boundaries insures that if an error does occur DIO can give you a full trace of the component tree affected in a presentable error message and more.\n\n## Tradeoffs\n\n#### Community.\n\nReact hands down has the bigger community.\n\n#### Warnings\n\nReact has dev mode warnings where DIO does not.\n\n#### unstable_API\n\nSadly some libraries do make use of these undocumented unstable API's that React sometimes exposes with a `unstable_` prefix – which DIO intentionally ignores implementing due to their otherwise \"considered\" unstable nature.\n\n## Edge\n\nThere a lot of small details that give DIO its edge that don't realy touch on new API's but rather on creating a larger surface area of what React already supports and adding to this.\n\nFor example React can render strings, numbers, elements and components but what if it was able to render Promises or Thenables? This would help solve a lot of \"problems\" with data fetching and lazy loading that is possible with React but not declaratively incentivised at the library level.\n\n#### Supporting Thenables/Promises\n\nThe ability to render thenables makes support for code-splitting and lazy loading easy at the library level. The ability to use a Promise for initial state makes data fetching more declartive at the library level and the ability to update state with a promise allows you to deal with async services without cutting back on the declarative nature that is afforded to first-class citizens like elements.\n\n```js\nclass Input {\n\tasync getInitialState() {\n\t\treturn await fetch('service/')\n\t}\n\tasync handleInput({target}, props, state) {\n\t\treturn await fetch('service/?value=${target.value}')\n\t}\n\tasync render() {\n\t\treturn h('input', {\n\t\t\tvalue: value,\n\t\t\tonInput: this.handleInput\n\t\t})\n\t}\n}\n```\n\n#### Supporting Pending Unmounts\n\nIt's no suprise that declarative entry and outro animations in react are not at its best compared to other first-class citizens.\nAllowing a means to declaratively define a pending unmount that can trigger an outro animation before it is unmounted goes a long away in reducing the abstractions that go into dealing with this when this feature is abscent from the library level.\n\n```js\nclass Input {\n\tasync componentWillUnmount(){\n\t\treturn new Promise((resolve) => {\n\t\t\tfindDOMNode(this).animate([...], {\n\t\t\t\t...\n\t\t\t}).onfinish = resolve\n\t\t})\n\t}\n\tasync getInitialState() {\n\t\treturn {value: 'Initial value!'}\n\t}\n\tasync handleInput({target}, props, state) {\n\t\treturn {value: target.value}\n\t}\n\tasync render() {\n\t\treturn h('input', {\n\t\t\tvalue: value,\n\t\t\tonInput: this.handleInput\n\t\t})\n\t}\n}\n```\n\n#### Events & \"This\"\n\nEvents in React have the infamous legacy of `.bind`. The implementation details of DIO allow it to avoid this legacy as demonstrated in the examples mentioned.\n\n#### Server Side Renderer\n\nWhile React 16 does allow some level of async server side rendering with `renderToNodeStream` DIO takes it a step further to make sure that the mentioned points about rendering Promises and Promise states applies just as well in a server side render.\n\nThat is to say the server-side renderer can render whatever the client renderer can, including portals – which coupled with the client renderers hydration API allows for out of order rendering that is ordered on the client while hydrating.\n\n#### Custom Components\n\nCustom components are components that instantiate their own host elements. A custom elements constructor might fall under this group of components.\n\n\n```js\nclass WordCount extends HTMLElement {\n\t// ...\n}\ncustomElements.define('word-count', WordCount)\n```\n\nGiven DIO's goal to support custom renderers that might not even target the DOM the definition of a what is a custom component is left up to the renderer to configure. In the case of the default DOM renderer this would match custom elements/web components allowing us to render the `WordCount` custom element given without knowing its `localName`.\n\n```js\nrender(h(WordCount))\n```\n","readmeFilename":"README.md","gitHead":"8d916c2844e6cafca7d8c4aca8580d79c1cc92d8","_id":"dio.js@9.0.0-rc","_npmVersion":"5.6.0","_nodeVersion":"9.7.1","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-bZdwEfuploN/uXjUM63xCGbH4lBUwcUrv4sM5pJLEk5d3BxtmrFla5UJLcXsR5S1dGIiW/m/L/iP3WFi71AAug==","shasum":"bc40702b4676427cc1fa969205484d6595800095","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-9.0.0-rc.tgz","fileCount":12,"unpackedSize":375813,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICQy17/3c/B/AmK6CKSM8vtsPpZRGwFNccwUz1hsf4NcAiEAsSG+B851u+QJYnr7GbDmtwbvScYAjkkk6GIqp5k8CaQ="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js_9.0.0-rc_1522945649192_0.19042712632044512"},"_hasShrinkwrap":false},"9.0.0-rc.0":{"name":"dio.js","version":"9.0.0-rc.0","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node --harmony script/build","build:watch":"node --harmony script/build -- --watch","test":"nyc mocha --harmony --recursive --require script/test","test:watch":"mocha --harmony --recursive --require script/test --watch","test:debug":"mocha --harmony --recursive --require script/test","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.6.2","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.3.12","uglify-es":"^3.3.9"},"readme":"# DIO\n\n[![dio.js](https://dio.js.org/assets/images/logo.svg)](https://dio.js.org/)\n\nA Library For Building User Interfaces.\n\n- ~8kb\n\n[![licence](https://img.shields.io/badge/licence-MIT-blue.svg?style=flat)](https://github.com/thysultan/dio.js/blob/master/LICENSE.md)\n[![npm](https://img.shields.io/npm/v/dio.js.svg?style=flat)](https://www.npmjs.com/package/dio.js)\n[![Build Status](https://travis-ci.org/thysultan/dio.js.svg)](https://travis-ci.org/thysultan/dio.js)\n[![Coverage Status](https://coveralls.io/repos/github/thysultan/dio.js/badge.svg)](https://coveralls.io/github/thysultan/dio.js)\n![dependencies](https://img.shields.io/badge/dependencies-none-green.svg?style=flat)\n[![Join the chat at https://gitter.im/thysultan/dio.js](https://img.shields.io/badge/chat-gitter-green.svg?style=flat)](https://gitter.im/thysultan/dio.js)\n\n## Support\n\n* Edge\n* IE 9+\n* Chrome\n* Firefox\n* Safari\n* Node\n\n---\n\n## Installation\n\n#### Direct Download\n\n```html\n<script src=dio.min.js></script>\n```\n\n#### CDN\n\n```html\n<script src=https://unpkg.com/dio.js></script>\n<script src=https://cdn.jsdelivr.net/npm/dio.js></script>\n```\n\n#### NPM\n\n```\nnpm install dio.js --save\n```\n\n---\n\n## Getting started\n\n```js\ndio.render(\n  h('h1', 'Hello, world!'),\n  document.getElementById('root')\n)\n```\n\nThe easiest way to get started with DIO is to walk through the [Introduction to DIO](https://dio.js.org/introduction) or the [API Documentation](https://dio.js.org/api).\n\n## Features\n\nThe following is an overview of the features DIO allows you to make use of.\n\n1. ### Rendering\n\n\t1. Elements\n\t1. Components\n\t1. Primitives like strings, numbers, null, undefined\n\t1. Fragments like Arrays, Iterables\n\t1. and others renderables like Promises and Portals\n\n1. ### Components\n\n\t1. Functional stateful components\n\t1. Class stateful components\n\n1. ### Events\n\n\t1. Functions or [EventListener](https://developer.mozilla.org/en/docs/Web/API/EventListener)\n\t1. Preserve \"this\" reference\n\n1. ### Errors\n\n\t1. Error boundaries through `componentDidCatch`\n\n1. ### setState\n\n\t1. As with a Object\n\t1. As with a Promise\n\t1. As with an implicit return\n\n1. ### Lifecycle\n\n\t1. async componentWillUnmount\n\t1. async getInitialState\n\n## Example\n\nThis intentionally overloaded example presents a few features detailed above, namely – error boundaries, an implicit setState return, Promise setState and rendering Promises & Fragments.\n\n```js\nclass Input {\n\t// Error Boundary\n\tcomponentDidCatch ({stack, message, ...error}, {componentStack}) {\n\t\treturn {error: true}\n\t}\n\t// Isomorphic Async getInitialState\n\tasync getInitialState() {\n\t\treturn {value: 'Hi!'}\n\t}\n\t// Implicit Promise setState\n\tasync handleInput({target}, props, state) {\n\t\treturn {value: target.value}\n\t}\n\t// Rendering Promises\n\tasync render(props, {value, error}, context) {\n\t\tif (error)\n\t\t\treturn h('h1', 'Something went wrong!')\n\n\t\t// Rendering Fragments\n\t\treturn [\n\t\t\th('input', {\n\t\t\t\tvalue: value,\n\t\t\t\t// bonus: events preserve \"this\" reference\n\t\t\t\tonInput: this.handleInput\n\t\t\t}),\n\t\t\th('p', value)\n\t\t]\n\t}\n}\n\ndio.render(h(Input))\n```\n\n## Links\n\n1. [Introduction to DIO](https://dio.js.org/introduction)\n2. [API Documentation](https://dio.js.org/api)\n3. [REPL](https://dio.js.org/repl)\n\n--\n\n\n## Goals\n\nPublic react compatibility with an [edge](#edge), this means that any react library should work as long as it does not make use of undocumented/public features for example API's prefixed with `unstable_`.\n\n## Differences\n\n#### Custom Reconciler, Config\n\nThere are a few react-like libraries but at the date of this writing DIO might be the only one to afford the ability to create your own renderer. Now while both React and DIO expose a way to create your own renderer, there is a difference in how you create this custom renderer.\n\nWhile react might exposes a package called `react-reconciler` DIO exposes a public API for this as part of an overloaded `createFactory` API.\n\nThis is coupled with fact that the config structure somewhat differ as do the arguments passed to the methodes implemented – for example react might pass the view instance(in the case of ReactDOM this might be a DOM node) to the method while DIO would pass the related virtual element(s) that have a reference to the DOM node, which you can then extract(by means of a readonly property), which can be argued gives renderers room to do more with what they have.\n\nAll in all it is easy for DIO to consume the react reconcilers config, so the plan is that once the `react-reconciler` package is considererd stable by the React team DIO is in a position to consume the sementics of its config.\n\nAs a show of confidence DIO itself uses this interface to implement the DOM renderer that it ships by default, which can be used to create any renderer.\n\n#### Portals, Event Bubbling\n\nEvents bubble in Portals as you would expect them to in the DOM, this avoid issues like [#11387](https://github.com/facebook/react/issues/11387) where bubbling them through the virtual tree has unintented behaviors.\n\nThe `createPortal` API also supports string selectors which allows for server-side rendering portals and out-of-order rendering, a feature that might also make it into react: [related issue](https://github.com/facebook/react/issues/10711).\n\n#### Events, Delegation\n\nThough it may sound strange when considering all the articles about event delegation and performance/memory DIO on the other hand intentionally does not implement events with delegation to avoid the performance impact that comes with re-implementing(in JavaScript) event bubbling that browsers do, which is almost always efficiently handled by the host enviroment.\n\nHowever DIO's model does not create any more memory when attaching events than you might imagine React's event delegation model to use, interestingly it might just create less considerering that where react might create a Map entry for each element-event-pair the browser is in a better position to use an optimial reference pointer and data-strucuture to track the relationship between event handlers and elements when using addEventListener for each element.\n\nIn simple terms implementing events with Reacts model of delegation(preserving the DOM model of bubbling) involves doing the same/more amount of work at assignment of the event and more work when emitting the events than a browser would otherwise do.\n\n#### Hydration, Self Correcting\n\nDIO goes the [whole 9 yards](https://en.wikipedia.org/wiki/The_whole_nine_yards) to correct differences when hydrating where react might otherwise error or ignore.\n\n#### Error Messages\n\nThere are error messages for incorrect use of top-level API's but react is famous for going the extra mile in both error messages and warnings regarding what is considered best practices in **dev mode** but the presence of error boundaries insures that if an error does occur DIO can give you a full trace of the component tree affected in a presentable error message and more.\n\n## Tradeoffs\n\n#### Community.\n\nReact hands down has the bigger community.\n\n#### Warnings\n\nReact has dev mode warnings where DIO does not.\n\n#### unstable_API\n\nSadly some libraries do make use of these undocumented unstable API's that React sometimes exposes with a `unstable_` prefix – which DIO intentionally ignores implementing due to their otherwise \"considered\" unstable nature.\n\n## Edge\n\nThere a lot of small details that give DIO its edge that don't realy touch on new API's but rather on creating a larger surface area of what React already supports and adding to this.\n\nFor example React can render strings, numbers, elements and components but what if it was able to render Promises or Thenables? This would help solve a lot of \"problems\" with data fetching and lazy loading that is possible with React but not declaratively incentivised at the library level.\n\n#### Supporting Thenables/Promises\n\nThe ability to render thenables makes support for code-splitting and lazy loading easy at the library level. The ability to use a Promise for initial state makes data fetching more declartive at the library level and the ability to update state with a promise allows you to deal with async services without cutting back on the declarative nature that is afforded to first-class citizens like elements.\n\n```js\nclass Input {\n\tasync getInitialState() {\n\t\treturn await fetch('service/')\n\t}\n\tasync handleInput({target}, props, state) {\n\t\treturn await fetch('service/?value=${target.value}')\n\t}\n\tasync render() {\n\t\treturn h('input', {\n\t\t\tvalue: value,\n\t\t\tonInput: this.handleInput\n\t\t})\n\t}\n}\n```\n\n#### Supporting Pending Unmounts\n\nIt's no suprise that declarative entry and outro animations in react are not at its best compared to other first-class citizens.\nAllowing a means to declaratively define a pending unmount that can trigger an outro animation before it is unmounted goes a long away in reducing the abstractions that go into dealing with this when this feature is abscent from the library level.\n\n```js\nclass Input {\n\tasync componentWillUnmount(){\n\t\treturn new Promise((resolve) => {\n\t\t\tfindDOMNode(this).animate([...], {\n\t\t\t\t...\n\t\t\t}).onfinish = resolve\n\t\t})\n\t}\n\tasync getInitialState() {\n\t\treturn {value: 'Initial value!'}\n\t}\n\tasync handleInput({target}, props, state) {\n\t\treturn {value: target.value}\n\t}\n\tasync render() {\n\t\treturn h('input', {\n\t\t\tvalue: value,\n\t\t\tonInput: this.handleInput\n\t\t})\n\t}\n}\n```\n\n#### Events & \"This\"\n\nEvents in React have the infamous legacy of `.bind`. The implementation details of DIO allow it to avoid this legacy as demonstrated in the examples mentioned.\n\n#### Server Side Renderer\n\nWhile React 16 does allow some level of async server side rendering with `renderToNodeStream` DIO takes it a step further to make sure that the mentioned points about rendering Promises and Promise states applies just as well in a server side render.\n\nThat is to say the server-side renderer can render whatever the client renderer can, including portals – which coupled with the client renderers hydration API allows for out of order rendering that is ordered on the client while hydrating.\n\n#### Custom Components\n\nCustom components are components that instantiate their own host elements. A custom elements constructor might fall under this group of components.\n\n\n```js\nclass WordCount extends HTMLElement {\n\t// ...\n}\ncustomElements.define('word-count', WordCount)\n```\n\nGiven DIO's goal to support custom renderers that might not even target the DOM the definition of a what is a custom component is left up to the renderer to configure. In the case of the default DOM renderer this would match custom elements/web components allowing us to render the `WordCount` custom element given without knowing its `localName`.\n\n```js\nrender(h(WordCount))\n```\n","readmeFilename":"README.md","gitHead":"48802d8cabb07d2d358fd9a8cd10b2a3a9ec401d","_id":"dio.js@9.0.0-rc.0","_npmVersion":"5.6.0","_nodeVersion":"9.7.1","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-eNTOKj0brD2csUhnySgT9U5aMy5fluUmcj9TbP72uzL2RMFekeE/2QjDtimEZl9ONesemkK07wgLVk+gm/dG+Q==","shasum":"6beec4ee0afb807822b22f5f1cbdf24c2388d7aa","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-9.0.0-rc.0.tgz","fileCount":12,"unpackedSize":376346,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDuUJ7ZEUlw6k/Pbor8LJrIbi0+g6EQN1d5WWHRJlsPTAiA1AU2IV+UnMiSF8n1MJRJ4fo7gCb4RsSp6ju8Bkz6+VQ=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js_9.0.0-rc.0_1523100935347_0.084948787175257"},"_hasShrinkwrap":false},"9.0.0-rc.1":{"name":"dio.js","version":"9.0.0-rc.1","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node --harmony script/build","build:watch":"node --harmony script/build -- --watch","test":"nyc mocha --harmony --recursive --require script/test","test:watch":"mocha --harmony --recursive --require script/test --watch","test:debug":"mocha --harmony --recursive --require script/test","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.6.2","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.3.12","uglify-es":"^3.3.9"},"readme":"# DIO\n\n[![dio.js](https://dio.js.org/assets/images/logo.svg)](https://dio.js.org/)\n\nA Library For Building User Interfaces.\n\n- ~8kb\n\n[![licence](https://img.shields.io/badge/licence-MIT-blue.svg?style=flat)](https://github.com/thysultan/dio.js/blob/master/LICENSE.md)\n[![npm](https://img.shields.io/npm/v/dio.js.svg?style=flat)](https://www.npmjs.com/package/dio.js)\n[![Build Status](https://travis-ci.org/thysultan/dio.js.svg)](https://travis-ci.org/thysultan/dio.js)\n[![Coverage Status](https://coveralls.io/repos/github/thysultan/dio.js/badge.svg)](https://coveralls.io/github/thysultan/dio.js)\n![dependencies](https://img.shields.io/badge/dependencies-none-green.svg?style=flat)\n[![Join the chat at https://gitter.im/thysultan/dio.js](https://img.shields.io/badge/chat-gitter-green.svg?style=flat)](https://gitter.im/thysultan/dio.js)\n\n## Support\n\n* Edge\n* IE 9+\n* Chrome\n* Firefox\n* Safari\n* Node\n\n---\n\n## Installation\n\n#### Direct Download\n\n```html\n<script src=dio.min.js></script>\n```\n\n#### CDN\n\n```html\n<script src=https://unpkg.com/dio.js></script>\n<script src=https://cdn.jsdelivr.net/npm/dio.js></script>\n```\n\n#### NPM\n\n```\nnpm install dio.js --save\n```\n\n---\n\n## Getting started\n\n```js\ndio.render(\n  h('h1', 'Hello, world!'),\n  document.getElementById('root')\n)\n```\n\nThe easiest way to get started with DIO is to walk through the [Introduction to DIO](https://dio.js.org/introduction) or the [API Documentation](https://dio.js.org/api).\n\n## Features\n\nThe following is an overview of the features DIO allows you to make use of.\n\n1. ### Rendering\n\n\t1. Elements\n\t1. Components\n\t1. Primitives like strings, numbers, null, undefined\n\t1. Fragments like Arrays, Iterables\n\t1. and others renderables like Promises and Portals\n\n1. ### Components\n\n\t1. Functional stateful components\n\t1. Class stateful components\n\n1. ### Events\n\n\t1. Functions or [EventListener](https://developer.mozilla.org/en/docs/Web/API/EventListener)\n\t1. Preserve \"this\" reference\n\n1. ### Errors\n\n\t1. Error boundaries through `componentDidCatch`\n\n1. ### setState\n\n\t1. As with a Object\n\t1. As with a Promise\n\t1. As with an implicit return\n\n1. ### Lifecycle\n\n\t1. async componentWillUnmount\n\t1. async getInitialState\n\n## Example\n\nThis intentionally overloaded example presents a few features detailed above, namely – error boundaries, an implicit setState return, Promise setState and rendering Promises & Fragments.\n\n```js\nclass Input {\n\t// Error Boundary\n\tcomponentDidCatch ({stack, message, ...error}, {componentStack}) {\n\t\treturn {error: true}\n\t}\n\t// Isomorphic Async getInitialState\n\tasync getInitialState() {\n\t\treturn {value: 'Hi!'}\n\t}\n\t// Implicit Promise setState\n\tasync handleInput({target}, props, state) {\n\t\treturn {value: target.value}\n\t}\n\t// Rendering Promises\n\tasync render(props, {value, error}, context) {\n\t\tif (error)\n\t\t\treturn h('h1', 'Something went wrong!')\n\n\t\t// Rendering Fragments\n\t\treturn [\n\t\t\th('input', {\n\t\t\t\tvalue: value,\n\t\t\t\t// bonus: events preserve \"this\" reference\n\t\t\t\tonInput: this.handleInput\n\t\t\t}),\n\t\t\th('p', value)\n\t\t]\n\t}\n}\n\ndio.render(h(Input))\n```\n\n## Links\n\n1. [Introduction to DIO](https://dio.js.org/introduction)\n2. [API Documentation](https://dio.js.org/api)\n3. [REPL](https://dio.js.org/repl)\n\n--\n\n\n## Goals\n\nPublic react compatibility with an [edge](#edge), this means that any react library should work as long as it does not make use of undocumented/public features for example API's prefixed with `unstable_`.\n\n## Differences\n\n#### Custom Renderer, Factory\n\nThere are a few react-like libraries but at the date of this writing DIO might be the only one to afford the ability to create your own renderer. Now while both React and DIO expose a way to create your own renderer, there is a difference in how you create this custom renderer.\n\nWhile react might exposes a package called `react-reconciler` DIO exposes a public API for this as part of an overloaded `createFactory` API.\n\nThis is coupled with fact that the config structure somewhat differ as do the arguments passed to the methodes implemented – for example react might pass the view instance(in the case of ReactDOM this might be a DOM node) to the method while DIO would pass the related virtual element(s) that have a reference to the DOM node, which you can then extract(by means of a readonly property), which can be argued gives renderers room to do more with what they have.\n\nAll in all it is easy for DIO to consume the react reconcilers config, so the plan is that once the `react-reconciler` package is considererd stable by the React team DIO is in a position to consume the sementics of its config.\n\nAs a show of confidence DIO itself uses this interface to implement the DOM renderer that it ships by default, which can be used to create any renderer.\n\n#### Portals, Event Bubbling\n\nEvents bubble in Portals as you would expect them to in the DOM, this avoid issues like [#11387](https://github.com/facebook/react/issues/11387) where bubbling them through the virtual tree has unintented behaviors.\n\nThe `createPortal` API also supports string selectors which allows for server-side rendering portals and out-of-order rendering, a feature that might also make it into react: [related issue](https://github.com/facebook/react/issues/10711).\n\n#### Events, Delegation\n\nThough it may sound strange when considering all the articles about event delegation and performance/memory DIO on the other hand intentionally does not implement events with delegation to avoid the performance impact that comes with re-implementing(in JavaScript) event bubbling that browsers do, which is almost always efficiently handled by the host enviroment.\n\nHowever DIO's model does not create any more memory when attaching events than you might imagine React's event delegation model to use, interestingly it might just create less considerering that where react might create a Map entry for each element-event-pair the browser is in a better position to use an optimial reference pointer and data-strucuture to track the relationship between event handlers and elements when using addEventListener for each element.\n\nIn simple terms implementing events with Reacts model of delegation(preserving the DOM model of bubbling) involves doing the same/more amount of work at assignment of the event and more work when emitting the events than a browser would otherwise do.\n\n#### Hydration, Self Correcting\n\nDIO goes the [whole 9 yards](https://en.wikipedia.org/wiki/The_whole_nine_yards) to correct differences when hydrating where react might otherwise error or ignore.\n\n#### Error Messages\n\nThere are error messages for incorrect use of top-level API's but react is famous for going the extra mile in both error messages and warnings regarding what is considered best practices in **dev mode** but the presence of error boundaries insures that if an error does occur DIO can give you a full trace of the component tree affected in a presentable error message and more.\n\n## Tradeoffs\n\n#### Community.\n\nReact hands down has the bigger community.\n\n#### Warnings\n\nReact has dev mode warnings where DIO does not.\n\n#### unstable_API\n\nSadly some libraries do make use of these undocumented unstable API's that React sometimes exposes with a `unstable_` prefix – which DIO intentionally ignores implementing due to their otherwise \"considered\" unstable nature.\n\n## Edge\n\nThere a lot of small details that give DIO its edge that don't realy touch on new API's but rather on creating a larger surface area of what React already supports and adding to this.\n\nFor example React can render strings, numbers, elements and components but what if it was able to render Promises or Thenables? This would help solve a lot of \"problems\" with data fetching and lazy loading that is possible with React but not declaratively incentivised at the library level.\n\n#### Supporting Thenables/Promises\n\nThe ability to render thenables makes support for code-splitting and lazy loading easy at the library level. The ability to use a Promise for initial state makes data fetching more declartive at the library level and the ability to update state with a promise allows you to deal with async services without cutting back on the declarative nature that is afforded to first-class citizens like elements.\n\n```js\nclass Input {\n\tasync getInitialState() {\n\t\treturn await fetch('service/')\n\t}\n\tasync handleInput({target}, props, state) {\n\t\treturn await fetch('service/?value=${target.value}')\n\t}\n\tasync render() {\n\t\treturn h('input', {\n\t\t\tvalue: value,\n\t\t\tonInput: this.handleInput\n\t\t})\n\t}\n}\n```\n\n#### Supporting Pending Unmounts\n\nIt's no suprise that declarative entry and outro animations in react are not at its best compared to other first-class citizens.\nAllowing a means to declaratively define a pending unmount that can trigger an outro animation before it is unmounted goes a long away in reducing the abstractions that go into dealing with this when this feature is abscent from the library level.\n\n```js\nclass Input {\n\tasync componentWillUnmount(){\n\t\treturn new Promise((resolve) => {\n\t\t\tfindDOMNode(this).animate([...], {\n\t\t\t\t...\n\t\t\t}).onfinish = resolve\n\t\t})\n\t}\n\tasync getInitialState() {\n\t\treturn {value: 'Initial value!'}\n\t}\n\tasync handleInput({target}, props, state) {\n\t\treturn {value: target.value}\n\t}\n\tasync render() {\n\t\treturn h('input', {\n\t\t\tvalue: value,\n\t\t\tonInput: this.handleInput\n\t\t})\n\t}\n}\n```\n\n#### Events & \"This\"\n\nEvents in React have the infamous legacy of `.bind`. The implementation details of DIO allow it to avoid this legacy as demonstrated in the examples mentioned. In addition DIO allows for multiple event handlers on a single event as illustrated in the following example.\n\n```js\nclass Input {\n\thandleSubmit(e, props, state) {\n\t\t// ...\n\t}\n\thandleReset(e, props, state) {\n\t\t// ...\n\t}\n\trender() {\n\t\treturn h('form', {\n\t\t\tonSubmit: [this.handleSubmit, this.handleReset]\n\t\t})\n\t}\n}\n```\n\n##### Async Generators\n\n```js\nclass Suspense {\n\tasync *render() {\n\t\tyield 'Loading...'\n\t\tyield h('h1', 'Complete!')\n\t}\n}\n```\n\n#### Server Side Renderer\n\nWhile React 16 does allow some level of async server side rendering with `renderToNodeStream` DIO takes it a step further to make sure that the mentioned points about rendering Promises and Promise states applies just as well in a server side render.\n\nThat is to say the server-side renderer can render whatever the client renderer can, including portals – which coupled with the client renderers hydration API allows for out of order rendering that is ordered on the client while hydrating.\n\n#### Custom Components\n\nCustom components are components that instantiate their own host elements. A custom elements constructor might fall under this group of components.\n\n\n```js\nclass WordCount extends HTMLElement {\n\t// ...\n}\ncustomElements.define('word-count', WordCount)\n```\n\nGiven DIO's goal to support custom renderers that might not even target the DOM the definition of a what is a custom component is left up to the renderer to configure. In the case of the default DOM renderer this would match custom elements/web components allowing us to render the `WordCount` custom element given without knowing its `localName`.\n\n```js\nrender(h(WordCount))\n```\n","readmeFilename":"README.md","gitHead":"f7a944b7606d64ecca17f955f9a6fbefcbadf0dc","_id":"dio.js@9.0.0-rc.1","_npmVersion":"5.6.0","_nodeVersion":"9.7.1","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-tFFcTTvkgKOYdKimGgFvAB0F08tVragqlQGq9WwEggiJaVtPChv8hlhdrCwxmbMaPRkhLCAGJqK6uaVvYjNgqw==","shasum":"27f345494c3cd425f9f4c3f1573f11ed92dc83a9","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-9.0.0-rc.1.tgz","fileCount":12,"unpackedSize":377386,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHr0cn/k6CdAnJjLNtFLY+axis+a5o7E6YbPizqov69UAiEAtytpdwHo3cgBrjjAYPSaS5Qg81Vu43WoIBvLSUE9txM="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js_9.0.0-rc.1_1523347732454_0.33748051454883843"},"_hasShrinkwrap":false},"9.0.0-rc.2":{"name":"dio.js","version":"9.0.0-rc.2","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node --harmony script/build","build:watch":"node --harmony script/build -- --watch","test":"nyc mocha --harmony --recursive --require script/test","test:watch":"mocha --harmony --recursive --require script/test --watch","test:debug":"mocha --harmony --recursive --require script/test","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.6.2","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.3.12","uglify-es":"^3.3.9"},"readme":"# DIO\n\n[![dio.js](https://dio.js.org/assets/images/logo.svg)](https://dio.js.org/)\n\nA Library For Building User Interfaces.\n\n- ~8kb\n\n[![licence](https://img.shields.io/badge/licence-MIT-blue.svg?style=flat)](https://github.com/thysultan/dio.js/blob/master/LICENSE.md)\n[![npm](https://img.shields.io/npm/v/dio.js.svg?style=flat)](https://www.npmjs.com/package/dio.js)\n[![Build Status](https://travis-ci.org/thysultan/dio.js.svg)](https://travis-ci.org/thysultan/dio.js)\n[![Coverage Status](https://coveralls.io/repos/github/thysultan/dio.js/badge.svg)](https://coveralls.io/github/thysultan/dio.js)\n![dependencies](https://img.shields.io/badge/dependencies-none-green.svg?style=flat)\n[![Join the chat at https://gitter.im/thysultan/dio.js](https://img.shields.io/badge/chat-gitter-green.svg?style=flat)](https://gitter.im/thysultan/dio.js)\n\n## Support\n\n* Edge\n* IE 9+\n* Chrome\n* Firefox\n* Safari\n* Node\n\n---\n\n## Installation\n\n#### Direct Download\n\n```html\n<script src=dio.min.js></script>\n```\n\n#### CDN\n\n```html\n<script src=https://unpkg.com/dio.js></script>\n<script src=https://cdn.jsdelivr.net/npm/dio.js></script>\n```\n\n#### NPM\n\n```\nnpm install dio.js --save\n```\n\n---\n\n## Getting started\n\n```js\ndio.render(\n  h('h1', 'Hello, world!'),\n  document.getElementById('root')\n)\n```\n\nThe easiest way to get started with DIO is to walk through the [Introduction to DIO](https://dio.js.org/introduction) or the [API Documentation](https://dio.js.org/api).\n\n## Features\n\nThe following is an overview of the features DIO allows you to make use of.\n\n1. ### Rendering\n\n\t1. Elements\n\t1. Components\n\t1. Primitives like strings, numbers, null, undefined\n\t1. Fragments like Arrays, Iterables\n\t1. and others renderables like Promises and Portals\n\n1. ### Components\n\n\t1. Functional stateful components\n\t1. Class stateful components\n\n1. ### Events\n\n\t1. Functions or [EventListener](https://developer.mozilla.org/en/docs/Web/API/EventListener)\n\t1. Preserve \"this\" reference\n\n1. ### Errors\n\n\t1. Error boundaries through `componentDidCatch`\n\n1. ### setState\n\n\t1. As with a Object\n\t1. As with a Promise\n\t1. As with an implicit return\n\n1. ### Lifecycle\n\n\t1. async componentWillUnmount\n\t1. async getInitialState\n\n## Example\n\nThis intentionally overloaded example presents a few features detailed above, namely – error boundaries, an implicit setState return, Promise setState and rendering Promises & Fragments.\n\n```js\nclass Input {\n\t// Error Boundary\n\tcomponentDidCatch ({stack, message, ...error}, {componentStack}) {\n\t\treturn {error: true}\n\t}\n\t// Isomorphic Async getInitialState\n\tasync getInitialState() {\n\t\treturn {value: 'Hi!'}\n\t}\n\t// Implicit Promise setState\n\tasync handleInput({target}, props, state) {\n\t\treturn {value: target.value}\n\t}\n\t// Rendering Promises\n\tasync render(props, {value, error}, context) {\n\t\tif (error)\n\t\t\treturn h('h1', 'Something went wrong!')\n\n\t\t// Rendering Fragments\n\t\treturn [\n\t\t\th('input', {\n\t\t\t\tvalue: value,\n\t\t\t\t// bonus: events preserve \"this\" reference\n\t\t\t\tonInput: this.handleInput\n\t\t\t}),\n\t\t\th('p', value)\n\t\t]\n\t}\n}\n\ndio.render(h(Input))\n```\n\n## Links\n\n1. [Introduction to DIO](https://dio.js.org/introduction)\n2. [API Documentation](https://dio.js.org/api)\n3. [REPL](https://dio.js.org/repl)\n\n--\n\n\n## Goals\n\nPublic react compatibility with an [edge](#edge), this means that any react library should work as long as it does not make use of undocumented/public features for example API's prefixed with `unstable_`.\n\n## Differences\n\n#### Custom Renderer, Factory\n\nThere are a few react-like libraries but at the date of this writing DIO might be the only one to afford the ability to create your own renderer. Now while both React and DIO expose a way to create your own renderer, there is a difference in how you create this custom renderer.\n\nWhile react might exposes a package called `react-reconciler` DIO exposes a public API for this as part of an overloaded `createFactory` API.\n\nThis is coupled with fact that the config structure somewhat differ as do the arguments passed to the methodes implemented – for example react might pass the view instance(in the case of ReactDOM this might be a DOM node) to the method while DIO would pass the related virtual element(s) that have a reference to the DOM node, which you can then extract(by means of a readonly property), which can be argued gives renderers room to do more with what they have.\n\nAll in all it is easy for DIO to consume the react reconcilers config, so the plan is that once the `react-reconciler` package is considererd stable by the React team DIO is in a position to consume the sementics of its config.\n\nAs a show of confidence DIO itself uses this interface to implement the DOM renderer that it ships by default, which can be used to create any renderer.\n\n#### Portals, Event Bubbling\n\nEvents bubble in Portals as you would expect them to in the DOM, this avoid issues like [#11387](https://github.com/facebook/react/issues/11387) where bubbling them through the virtual tree has unintented behaviors.\n\nThe `createPortal` API also supports string selectors which allows for server-side rendering portals and out-of-order rendering, a feature that might also make it into react: [related issue](https://github.com/facebook/react/issues/10711).\n\n#### Events, Delegation\n\nThough it may sound strange when considering all the articles about event delegation and performance/memory DIO on the other hand intentionally does not implement events with delegation to avoid the performance impact that comes with re-implementing(in JavaScript) event bubbling that browsers do, which is almost always efficiently handled by the host enviroment.\n\nHowever DIO's model does not create any more memory when attaching events than you might imagine React's event delegation model to use, interestingly it might just create less considerering that where react might create a Map entry for each element-event-pair the browser is in a better position to use an optimial reference pointer and data-strucuture to track the relationship between event handlers and elements when using addEventListener for each element.\n\nIn simple terms implementing events with Reacts model of delegation(preserving the DOM model of bubbling) involves doing the same/more amount of work at assignment of the event and more work when emitting the events than a browser would otherwise do.\n\n#### Hydration, Self Correcting\n\nDIO goes the [whole 9 yards](https://en.wikipedia.org/wiki/The_whole_nine_yards) to correct differences when hydrating where react might otherwise error or ignore.\n\n#### Error Messages\n\nThere are error messages for incorrect use of top-level API's but react is famous for going the extra mile in both error messages and warnings regarding what is considered best practices in **dev mode** but the presence of error boundaries insures that if an error does occur DIO can give you a full trace of the component tree affected in a presentable error message and more.\n\n## Tradeoffs\n\n#### Community.\n\nReact hands down has the bigger community.\n\n#### Warnings\n\nReact has dev mode warnings where DIO does not.\n\n#### unstable_API\n\nSadly some libraries do make use of these undocumented unstable API's that React sometimes exposes with a `unstable_` prefix – which DIO intentionally ignores implementing due to their otherwise \"considered\" unstable nature.\n\n## Edge\n\nThere a lot of small details that give DIO its edge that don't realy touch on new API's but rather on creating a larger surface area of what React already supports and adding to this.\n\nFor example React can render strings, numbers, elements and components but what if it was able to render Promises or Thenables? This would help solve a lot of \"problems\" with data fetching and lazy loading that is possible with React but not declaratively incentivised at the library level.\n\n#### Supporting Thenables/Promises\n\nThe ability to render thenables makes support for code-splitting and lazy loading easy at the library level. The ability to use a Promise for initial state makes data fetching more declartive at the library level and the ability to update state with a promise allows you to deal with async services without cutting back on the declarative nature that is afforded to first-class citizens like elements.\n\n```js\nclass Input {\n\tasync getInitialState() {\n\t\treturn await fetch('service/')\n\t}\n\tasync handleInput({target}, props, state) {\n\t\treturn await fetch('service/?value=${target.value}')\n\t}\n\tasync render() {\n\t\treturn h('input', {\n\t\t\tvalue: value,\n\t\t\tonInput: this.handleInput\n\t\t})\n\t}\n}\n```\n\n#### Supporting Pending Unmounts\n\nIt's no suprise that declarative entry and outro animations in react are not at its best compared to other first-class citizens.\nAllowing a means to declaratively define a pending unmount that can trigger an outro animation before it is unmounted goes a long away in reducing the abstractions that go into dealing with this when this feature is abscent from the library level.\n\n```js\nclass Input {\n\tasync componentWillUnmount(){\n\t\treturn new Promise((resolve) => {\n\t\t\tfindDOMNode(this).animate([...], {\n\t\t\t\t...\n\t\t\t}).onfinish = resolve\n\t\t})\n\t}\n\tasync getInitialState() {\n\t\treturn {value: 'Initial value!'}\n\t}\n\tasync handleInput({target}, props, state) {\n\t\treturn {value: target.value}\n\t}\n\tasync render() {\n\t\treturn h('input', {\n\t\t\tvalue: value,\n\t\t\tonInput: this.handleInput\n\t\t})\n\t}\n}\n```\n\n#### Events & \"This\"\n\nEvents in React have the infamous legacy of `.bind`. The implementation details of DIO allow it to avoid this legacy as demonstrated in the examples mentioned. In addition DIO allows for multiple event handlers on a single event as illustrated in the following example.\n\n```js\nclass Input {\n\thandleSubmit(e, props, state) {\n\t\t// ...\n\t}\n\thandleReset(e, props, state) {\n\t\t// ...\n\t}\n\trender() {\n\t\treturn h('form', {\n\t\t\tonSubmit: [this.handleSubmit, this.handleReset]\n\t\t})\n\t}\n}\n```\n\n##### Async Generators\n\n```js\nclass Suspense {\n\tasync *render() {\n\t\tyield 'Loading...'\n\t\tyield h('h1', 'Complete!')\n\t}\n}\n```\n\n#### Server Side Renderer\n\nWhile React 16 does allow some level of async server side rendering with `renderToNodeStream` DIO takes it a step further to make sure that the mentioned points about rendering Promises and Promise states applies just as well in a server side render.\n\nThat is to say the server-side renderer can render whatever the client renderer can, including portals – which coupled with the client renderers hydration API allows for out of order rendering that is ordered on the client while hydrating.\n\n#### Custom Components\n\nCustom components are components that instantiate their own host elements. A custom elements constructor might fall under this group of components.\n\n\n```js\nclass WordCount extends HTMLElement {\n\t// ...\n}\ncustomElements.define('word-count', WordCount)\n```\n\nGiven DIO's goal to support custom renderers that might not even target the DOM the definition of a what is a custom component is left up to the renderer to configure. In the case of the default DOM renderer this would match custom elements/web components allowing us to render the `WordCount` custom element given without knowing its `localName`.\n\n```js\nrender(h(WordCount))\n```\n","readmeFilename":"README.md","gitHead":"c845b0fb7d35bc69b1faf45478e56051d219342b","_id":"dio.js@9.0.0-rc.2","_npmVersion":"5.6.0","_nodeVersion":"9.7.1","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-Ao07xM3xRYaa4N4mQFJnOaYKutKcOK5Vfvvw1sroLQixmE7qcarvoVgPS5RmaTrdyVwp41ZhtgrHg2KNDY/alw==","shasum":"b5b4c1e16292f94aa80e38d2d407a1939074520e","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-9.0.0-rc.2.tgz","fileCount":12,"unpackedSize":374813,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuSNTxuYIm4b9ZZ1bf/3iSlaVnSpwLhOks3i0J7xWS4QIgdM56waUNqFWiIrPkvxSJ7yPnninbu0maWKaatKXAmCI="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js_9.0.0-rc.2_1523382621844_0.842559926387001"},"_hasShrinkwrap":false},"9.0.0":{"name":"dio.js","version":"9.0.0","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node --harmony script/build","build:watch":"node --harmony script/build -- --watch","test":"nyc mocha --harmony --recursive --require script/test","test:watch":"mocha --harmony --recursive --require script/test --watch","test:debug":"mocha --harmony --recursive --require script/test","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.6.2","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.3.12","uglify-es":"^3.3.9"},"gitHead":"80d928111f91204da7c3e8427f77f9db389ba22e","_id":"dio.js@9.0.0","_npmVersion":"5.6.0","_nodeVersion":"9.7.1","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-KCQ4tBumiJxnU4EKJ2mKCiHmJrB/r2kcLjcjiDe/KBwJsrmdqmFfUqrK+YqoZDue2xka9/G58+W4E6sL0L+1Aw==","shasum":"94d4a137ffff9e88a256e6d4e88adadfeee6277b","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-9.0.0.tgz","fileCount":12,"unpackedSize":371512,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID4XnPjceT4dZNo/JKu24SDgu+wdurdlswU/hfv4EoG2AiBbbrSycn33Hzf0pHYWnKBfQnFKHI/eZVWZiHAZbuQMGg=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js_9.0.0_1523445006532_0.3765064772772424"},"_hasShrinkwrap":false},"9.0.1":{"name":"dio.js","version":"9.0.1","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node --harmony script/build","build:watch":"node --harmony script/build -- --watch","test":"nyc mocha --harmony --recursive --require script/test","test:watch":"mocha --harmony --recursive --require script/test --watch","test:debug":"mocha --harmony --recursive --require script/test","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.6.2","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.3.12","uglify-es":"^3.3.9"},"gitHead":"5b61aa1c40d96d6171acc707887a7fbb05b7d18e","_id":"dio.js@9.0.1","_npmVersion":"5.6.0","_nodeVersion":"9.7.1","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-u1YjbKwjdTFoLrWuqsFRm1bE5re9AKP/MZ4DMRP14cNoNB7SrhYMFD3JiPmqMtUMlHkIAS3Zpv2cDDE2KErXSw==","shasum":"e1736501d31d19001f236c935f35211051ab9075","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-9.0.1.tgz","fileCount":12,"unpackedSize":371732,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSJ55N+0yvVHRU7PiscN+8Dwgdj6icCfuzQmeEUjtViwIgCtIrhLIRoCabrvRIY5q5Edop93z1GqKWExvB63IYNNc="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js_9.0.1_1523449827105_0.39894873778595064"},"_hasShrinkwrap":false},"9.0.2":{"name":"dio.js","version":"9.0.2","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node --harmony script/build","build:watch":"node --harmony script/build -- --watch","test":"nyc mocha --harmony --recursive --require script/test","test:watch":"mocha --harmony --recursive --require script/test --watch","test:debug":"mocha --harmony --recursive --require script/test","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.6.2","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.3.12","uglify-es":"^3.3.9"},"gitHead":"80781fee2dfce55f8298d65ae2cf414fe81f11e9","_id":"dio.js@9.0.2","_npmVersion":"5.6.0","_nodeVersion":"9.7.1","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-uHoFU1wK3bTqj11DqkOI6yoZx3FvhRFbVxdDEiyncbDzIJOkRp7OoPOV64S13cZNYnGn42F5xZUT5CY6TXqWGw==","shasum":"2da5dc954731245eee20c3afdc4da11ccc573d24","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-9.0.2.tgz","fileCount":12,"unpackedSize":372126,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPl2ekUX4NCumjTZaSberqFxTjotBPibCB7UWn04lwfwIhAP+wkwsDYxNjR/XDJMaF33dBh/WG3Cou6zyGeeF0MBXT"}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js_9.0.2_1523460210446_0.7690791016485936"},"_hasShrinkwrap":false},"9.0.3":{"name":"dio.js","version":"9.0.3","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node --harmony script/build","build:watch":"node --harmony script/build -- --watch","test":"nyc mocha --harmony --recursive --require script/test","test:watch":"mocha --harmony --recursive --require script/test --watch","test:debug":"mocha --harmony --recursive --require script/test","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.6.2","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.3.12","uglify-es":"^3.3.9"},"gitHead":"3d0f0b1780734f1df38759a95c093b1c0f1605ce","_id":"dio.js@9.0.3","_npmVersion":"5.6.0","_nodeVersion":"9.7.1","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-GHFeXSlm44gnRRozv/x24WlwGp2pg1y0n8NVY+pUSAYqW0ZxBO9hJ+JvS0kSVIWrGcGBee+/36D+hEk/AAm+aA==","shasum":"320167ee9afa56f1819c9e1216322558717219c9","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-9.0.3.tgz","fileCount":12,"unpackedSize":372194,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDJDH7Bc5aD9t9f5jEuqtdHkSwhzK6m4nB+LqBdeX40gIgPZq4UNSc+eUwPDix5RLH5tbG24S772cy9qYGnMUGx2g="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js_9.0.3_1523476683203_0.6550283645312802"},"_hasShrinkwrap":false},"9.0.4":{"name":"dio.js","version":"9.0.4","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node --harmony script/build","build:watch":"node --harmony script/build -- --watch","test":"nyc mocha --harmony --recursive --require script/test","test:watch":"mocha --harmony --recursive --require script/test --watch","test:debug":"mocha --harmony --recursive --require script/test","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.6.2","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.3.12","uglify-es":"^3.3.9"},"gitHead":"cc23e7d6c01f21349c55bc2c2f70269b8a6feac1","_id":"dio.js@9.0.4","_npmVersion":"5.6.0","_nodeVersion":"9.7.1","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-tE2NFfuRL5zpA939yTH2Gnzg2NGSk027hDSRXZ6BjPnl+vsIt1jaBWuWEtvxJWyaw7yRSiOWRpwmYpGONW6LpA==","shasum":"d14c5585207ad93c6f68cf01f808a8c97568810e","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-9.0.4.tgz","fileCount":12,"unpackedSize":372428,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa2QEcCRA9TVsSAnZWagAAckkP/RbABDfF5cTZIpIQmPEx\nxKMIcMalxkv/dLlqw08GxLyVnL1TocwMPfV4UEthYyPSXIjNyXz4tbI3lU1X\nf2knD2ZsRHxigpXM5ZnSoLfAkOPZ3zgjguu2uqe3mXJ8Uz2XDTUvo39tEymn\nIISuPP8RBMKq4KYrHoXrE36U50IAUXLBcFRhc7rZ+YQZtQhMadeh8jX9GuLU\nqjBR8loGplBhObIaGPj+818i0o3ou/7dqhiREjW7rUSX75vpHRkWBfIalSwa\nswi53+Mkm+H/v6Knm0QuPQEhqLf0BIaWjCMoHLFFMv3V9RLhkDtpgnLvyZcA\nVSzig9erAF8PeVKTa8oNqNkQmySUQYucJKEeGMkYVSgYiXEIAihZUoh9edUb\nSs3IOv59UmlGaZdew3igZnjQ0MuIfcg1glzLCZDsKCH9DJ0rTSY6NksH91pT\n9+RZt1NrAPmT+TLLnnX1GJ9xY2uhPmrvbW3i0Ut27w+cp1YDZjTBTLFBz8mf\nGnUh8RiRpzjg23ZX65r22COqas/x0JXiDNYfF8qaUh9vZ9yVTpbT1L8D/CMP\ns90DUp6uoOrVDQN3zS4w1Q5F257UxS14YcIXS99Slm8ZaaOprwPc3rsO1ptm\nvEx8XsswwfOVEjcur0eC5ncKE+euxPMqtUIs6kN5HNx/4Vs3u+2IgY3cR4q5\nMQ74\r\n=YD/+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC+e0cTl4sGZuJ8B21AozGysjDKsiCci9SygaHa1woyKgIgd6Nj82cI3BofsED9qXa4hNChurzAATkIMMp7S/CiBN8="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js_9.0.4_1524171035403_0.623339845937743"},"_hasShrinkwrap":false},"9.1.0":{"name":"dio.js","version":"9.1.0","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node --harmony script/build","build:watch":"node --harmony script/build -- --watch","test":"nyc mocha --harmony --recursive --require script/test","test:watch":"mocha --harmony --recursive --require script/test --watch","test:debug":"mocha --harmony --recursive --require script/test","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.6.2","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.3.12","uglify-es":"^3.3.9"},"gitHead":"d44b6faeec0be21d2643bd57d962f813014ab7dd","_id":"dio.js@9.1.0","_npmVersion":"5.6.0","_nodeVersion":"9.7.1","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-IBPKo1TI6OazvMVGYLdi2pwijlxAWDPY0S6bRA2NBdp7XzqFeIFjLizyNC9aLTT3LX6p9afVlvFIpdv24scMAg==","shasum":"204ee172dc404f2b7626f8036f0db4506ac253ea","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-9.1.0.tgz","fileCount":12,"unpackedSize":382271,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbH34MCRA9TVsSAnZWagAAZaYQAJepHJN6OB1yHvH5qe+3\nfzOogiuUr839cTfPjLLNr6US6Pd5P+pSsEIAjVUC1n5Slo1RE+x83Sdmz52n\nEvqtjekruhNIcV2CyCj/1RSA3z0nwbZVaOvTKD/jg6PZL5GGKkAjAGvH9y/i\nsTj0RvJAPjxwHjz46JzYJKvLbSjhx34atGqm0pxSQ1cd/n/IeWuNpa5BxeCI\nvazURvG0/KqkbOA8JygiingljZnmEBfRO05CHBSfPj5sVtAMn3dLJgrWYhC8\njredUgH0FHi4ZRIyL2zne/GVhiXl24t3qJ5hfICwYKxbiegj5QTjGfjm1BlV\nAHYvjXzVvRbko88PSC7DsNi+TkXu3am4Ee//Kr6p24fh6FCbkdsAwLNcknQZ\nxFouYlM/HP2K94DmcFPH6efr4mKl0VUpFFynMEF+QkL5QxEemFL3Tjlmx9wH\n3xaREfWMgSBDgKwPrpIbNDulkBLVIrlmd1FjZPY76leR5ryTyUYfTWCDAiNv\nmV/BAW2C68jv9wB6V2Bz1fSlHFKU1Qrkm7z0ezPWT3uQt4h8tQrXjEmcclKQ\nATg0vcqi5CQxwxie5T8j1foivdbmFzhkuMUWnd2XH9vWUhxZIHipZ+lYnLi6\ng/SS44JEhsOPPhCDIsjvgLyw8SAruNeW6YM3esZKOk/5o3D2+Yq/C1zAFYp3\n2w1/\r\n=OvXc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGJ2YcG+ZWzLNC3ndKgahsNe9axt3f9EaPnMMX2YTDeUAiAIYFUMDbmPzrdLhoo/rPJLrCvREebv3UeIXrtX5foCmQ=="}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js_9.1.0_1528790538143_0.17089608344366902"},"_hasShrinkwrap":false},"9.1.1":{"name":"dio.js","version":"9.1.1","license":"MIT","description":"A Library For Building User Interfaces.","homepage":"https://github.com/thysultan/dio.js","main":"dist/umd.js","unpkg":"dist/umd.min.js","jsdelivr":"dist/umd.min.js","types":"types/typescript.d.ts","files":["dist/cjs.js","dist/esm.js","dist/esm.min.js","dist/esm.min.js.map","dist/umd.js","dist/umd.min.js","dist/umd.min.js.map","types/typescript.d.ts"],"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"scripts":{"build":"node --harmony script/build","build:watch":"node --harmony script/build -- --watch","test":"nyc mocha --harmony --recursive --require script/test","test:watch":"mocha --harmony --recursive --require script/test --watch","test:debug":"mocha --harmony --recursive --require script/test","coverage":"nyc report --reporter=text-lcov | coveralls"},"nyc":{"temp-directory":"./coverage/.nyc_output","exclude":["script/*","test/*"],"reporter":["lcov","text"]},"devDependencies":{"chai":"^4.1.2","chokidar":"^1.7.0","coveralls":"^2.13.1","jsdom":"^11.6.2","mocha":"^3.5.3","nyc":"^11.2.1","uglify-js":"^3.3.12","uglify-es":"^3.3.9"},"gitHead":"f319359381604edae382081c9f333810cd28772c","_id":"dio.js@9.1.1","_npmVersion":"5.6.0","_nodeVersion":"9.7.1","_npmUser":{"name":"thysultan","email":"sultantarimo@me.com"},"dist":{"integrity":"sha512-c8SeGi8w8fZFAGDzeZC4lnMUoL5vlyO3vQ7cC++jOycCIGIdQQJzwrwDmMtVQXxIofZwpdxX5Gi406VSOm1ojA==","shasum":"98534cef8d98ec2477e41bf516bcb60125b9c2c6","tarball":"https://registry.npmjs.org/dio.js/-/dio.js-9.1.1.tgz","fileCount":12,"unpackedSize":383061,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbUK7ECRA9TVsSAnZWagAA7U8P/3UBn/cQmzxHKK81giQH\n9OeHCzBDmV62tS2PBGHicGBV+MCk/RfikwRDh+tziyw111EzDy64IxQoA/Y9\nTBKMUPxT11fMYrN46r5fW63gYOxkdmk3475x3lCzq/69br5TDjHrlhpTlcoD\n2sXJ944C+FbduYHAXkEraurNnybbrXLKE346jmAAuys6zSaVbvLSTkF4NSWd\nWnRPgkD501k8cl6NSDTP+2CXBJAATcPIjlwVtTrWepQ7mJK6Y9z5eD+rU6mz\n9WYzHZmNj0r1O+UuHxDr4HV7mLyNodO5uiG7tQT1RJww9Uob3Rf+ArnzLiSc\nupmgXPpCdqPYCAFbpyEUKCJUF6KcTfJS/sxdZgvsvMtn54wfrAdFarDhr/1U\nxqIoMoBmkrEssRisoCRGp55C8/msLzMR2AIPL6ZKnSFoXs1+ujSqW4DHD/72\n2ePXeLxzRvA+H2Q3fy+rmreunPIh1ey/XLesSNX4l/eDfo3cPfxK3Eru6fxi\n6vHf6Tv0IXtKrPMRmrwrbmmllv05mGIc/XzLpe+LlsR2IVonxQCcaHJs+iCM\nI1vLfrJhFiSNkOeQXKoqpbc0Um8xEofJGGBn3zDGorS1aRhN3Q/x5ib88YoD\neDf+m5A/wKXi25QRQou2/uIhvyLY4blebUo7+s8kXjWx9nJS/MqxbQrk0+gb\nH+2Q\r\n=KUcv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClKJwZa+uXpuFQW2a7CUA3exZouvHgSg0Koc0K/dbFDgIhAMwOL4YydRuhuZ3lQXg3KLxSiE8eFMkKEkVFOZBgYnYZ"}]},"maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dio.js_9.1.1_1532014276544_0.7017210388870903"},"_hasShrinkwrap":false}},"readme":"# DIO\n\n[![dio.js](https://dio.js.org/assets/images/logo.svg)](https://dio.js.org)\n\nA Library For Building User Interfaces.\n\n- ~8kb\n\n[![licence](https://img.shields.io/badge/licence-MIT-blue.svg?style=flat)](https://github.com/thysultan/dio.js/blob/master/LICENSE.md)\n[![npm](https://img.shields.io/npm/v/dio.js.svg?style=flat)](https://www.npmjs.com/package/dio.js)\n[![Build Status](https://travis-ci.org/thysultan/dio.js.svg)](https://travis-ci.org/thysultan/dio.js)\n[![Coverage Status](https://coveralls.io/repos/github/thysultan/dio.js/badge.svg)](https://coveralls.io/github/thysultan/dio.js)\n![dependencies](https://img.shields.io/badge/dependencies-none-green.svg?style=flat)\n[![Join the chat at https://gitter.im/thysultan/dio.js](https://img.shields.io/badge/chat-gitter-green.svg?style=flat)](https://gitter.im/thysultan/dio.js)\n\n## Support\n\n* Edge\n* IE 9+\n* Chrome\n* Firefox\n* Safari\n* Node\n\n---\n\n## Installation\n\n#### Direct Download\n\n```html\n<script src=dio.min.js></script>\n```\n\n#### CDN\n\n```html\n<script src=https://unpkg.com/dio.js></script>\n<script src=https://cdn.jsdelivr.net/npm/dio.js></script>\n```\n\n#### NPM\n\n```\nnpm install dio.js --save\n```\n\n---\n\n## Getting started\n\n```js\ndio.render(\n  h('h1', 'Hello, world!'),\n  document.getElementById('root')\n)\n```\n\n## Links\n\n1. [Introduction](https://dio.js.org/introduction)\n2. [API](https://dio.js.org/api)\n3. [REPL](https://dio.js.org/repl)\n\n## Features\n\nThe following is an overview of the features afforded.\n\n1. ### Rendering\n\n\t1. Elements\n\t1. Components\n\t1. Primitives\n\t1. Fragments, Arrays, Iterables\n\t1. Comments, Portals, and Promises\n\n1. ### Components\n\n\t1. Functional stateful components\n\t1. Class stateful components\n\n1. ### Events\n\n\t1. Functions, [EventListener](https://developer.mozilla.org/en/docs/Web/API/EventListener) or an Array of either.\n\n1. ### Errors\n\n\t1. Error boundaries marked by the `componentDidCatch` lifecycle.\n\n1. ### setState\n\n\t1. Object\n\t1. Promise\n\n1. ### Async Lifecycle\n\n\t1. async componentWillUnmount\n\t1. async getInitialState\n\n## Example\n\nThe following overloaded example presents a few features detailed above, namely – error boundaries, an implicit setState return, Promise setState and rendering Promises & Fragments.\n\n```js\nclass Input {\n\t// error boundary\n\tcomponentDidCatch (err, {componentStack, origin, message}) {\n\t\treturn {error: true}\n\t}\n\t// isomorphic async getInitialState\n\tasync getInitialState() {\n\t\treturn {value: 'Hi!'}\n\t}\n\t// implicit promise setState\n\tasync handleInput({target}, props, state) {\n\t\treturn {value: target.value}\n\t}\n\t// rendering promises\n\tasync render(props, {value, error}, context) {\n\t\t// error state\n\t\tif (error)\n\t\t\treturn h('h1', 'Something went wrong!')\n\n\t\t// fragments\n\t\treturn [\n\t\t\th('input', {\n\t\t\t\tvalue: value,\n\t\t\t\t// bonus: events preserve \"this\" reference\n\t\t\t\tonInput: this.handleInput\n\t\t\t}),\n\t\t\th('p', value)\n\t\t]\n\t}\n}\n\ndio.render(h(Input))\n```\n\n---\n\n## Goals\n\nPublic react compatibility with an [edge](#edge), this should mean that most react libraries can work as long as they does not make use of undocumented/public features, for example API's prefixed with `unstable_` and vice-versa.\n\n## Comparison, React\n\n#### Custom Renderer, Factory\n\nAffords the same ability as React to create your own renderer.\n\n#### Portals, Event Bubbling\n\nEvents bubble in Portals as you would expect them to in the DOM, this avoids issues such as [#11387](https://github.com/facebook/react/issues/11387) where bubbling through the virtual tree has some unintended behaviors.\n\nIn addition  `createPortal` supports string selectors and server-side rendering portals, a feature that might also make it into react: [related issue](https://github.com/facebook/react/issues/10711).\n\n#### Events, Delegation\n\nIn contrary to the assumed pros of event delegation a general purpose event delegation model is intentionally avoided to avoid the performance and memory pitfalls that come with re-implementing this at the level of abstraction that JavaScript affords, when considering the standard event bubbling behaviour that the host platform implements. That is to say, implementing such a system involves doing more work than the host platform would otherwise do.\n\n#### Hydration, Self Correction\n\nHydration goes the [whole 9 yards](https://en.wikipedia.org/wiki/The_whole_nine_yards) to correct differences when hydrating, where React might otherwise error or ignore.\n\n#### Error Messages\n\nAs opposed to React, the concept of developer warnings in a development build does not exist, The semantics that surround error boundaries help provide error messages when they occur at runtime.\n\n## Tradeoffs\n\n#### Community.\n\nReact has a big community.\n\n#### Warnings\n\nReact has developer build warnings.\n\n## Edge\n\n#### Supporting Promises\n\nThe ability to render Promises makes support for code-splitting and lazy loading straight forward when supported at the library level. The ability to use a Promise for initial state makes data fetching more declarative and the ability to update state with a promise allows you to deal with async services without cutting back on the declarative nature that is afforded to other first-class citizens.\n\n```js\nclass Input {\n\tasync getInitialState() {\n\t\treturn await fetch('service/')\n\t}\n\tasync handleInput({target}, props, state) {\n\t\treturn await fetch('service/?value=${target.value}')\n\t}\n\tasync render() {\n\t\treturn h('input', {\n\t\t\tvalue: value,\n\t\t\tonInput: this.handleInput\n\t\t})\n\t}\n}\n```\n\n#### Supporting Delayed Unmount\n\nIt is no surprise that declarative entry and exit animations in React are not at its best compared to other first-class citizens.\n\nAllowing a means to declaratively define a delayed unmount that can enqueue  exit animations before an unmount goes a long away in reducing the abstractions that go into dealing with this in its absence.\n\n```js\nclass Input {\n\tasync componentWillUnmount(node){\n\t\treturn new Promise((resolve) => {\n\t\t\tnode.animate([...], {...}).onfinish = resolve\n\t\t})\n\t}\n\tasync getInitialState() {\n\t\treturn {value: 'Initial value!'}\n\t}\n\tasync handleInput({target}, props, state) {\n\t\treturn {value: target.value}\n\t}\n\tasync render() {\n\t\treturn h('input', {\n\t\t\tref: 'input'\n\t\t\tvalue: value,\n\t\t\tonInput: this.handleInput\n\t\t})\n\t}\n}\n```\n\n#### Event \"this\"\n\nReact events outside of `createClass` components have an infamous relationship with `.bind`. The implementation details allow us to avoid this relationship and additionally allow multiple event handlers for a single event.\n\n```js\nclass Input {\n\thandleSubmit(e, props, state) {\n\t\tthis instanceof Input\n\t}\n\thandleReset(e, props, state) {\n\t\tthis instanceof Input\n\t}\n\trender() {\n\t\treturn h('form', {\n\t\t\tonSubmit: [this.handleSubmit, this.handleReset]\n\t\t})\n\t}\n}\n```\n\n##### Async Generators\n\nSupport for async iterators works much like regular iterators, but instead of a sequence of elements involve a sequence of states. This allows synchronous designs to emerge from otherwise asynchronous programs.\n\n```js\nclass Suspense {\n\tasync *render() {\n\t\tyield 'Loading...'\n\t\tconst data = await fetch('./')\n\t\tyield h('pre', JSON.stringify(data))\n\t}\n}\n```\n\n#### Server Side Renderer\n\nRendering promises/awaiting promise states is afforded to components within the context of `renderToNodeStream` allowing both the previous example uses of `async getInitialState` and Async Generators to render just as well when delivering a rendered payload from a server.\n\n#### Custom Components\n\nCustom components are components that instantiate their own host elements. Within a DOM context a custom element constructor might fall under this group of components.\n\n```js\nclass WordCount extends HTMLElement {\n\t// ...\n}\ncustomElements.define('word-count', WordCount)\n```\n\nThis allows us to render the given `WordCount` custom element without afore knowledge of its defined `localName`.\n\n```js\nrender(h(WordCount))\n```\n","maintainers":[{"name":"thysultan","email":"sultantarimo@me.com"}],"time":{"modified":"2022-06-15T04:19:40.495Z","created":"2016-08-18T01:45:28.024Z","1.0.0":"2016-08-18T01:45:28.024Z","1.0.1":"2016-08-19T16:05:27.290Z","1.0.2":"2016-08-19T16:14:32.282Z","1.0.3":"2016-08-19T16:24:27.614Z","1.0.4":"2016-08-19T16:27:15.478Z","1.0.5":"2016-08-19T16:47:41.943Z","1.0.6":"2016-08-19T18:55:46.999Z","1.0.7":"2016-08-20T20:30:16.049Z","1.0.8":"2016-08-22T18:07:21.942Z","1.1.0":"2016-08-24T13:19:06.706Z","1.1.1":"2016-08-25T20:49:32.474Z","1.1.2":"2016-09-01T06:10:31.639Z","1.1.3":"2016-09-02T03:05:06.184Z","1.1.4":"2016-09-02T08:43:25.865Z","1.1.5":"2016-09-06T06:37:16.928Z","1.2.0":"2016-09-12T18:31:03.138Z","1.2.2":"2016-09-15T14:07:10.985Z","1.2.3":"2016-09-16T13:48:28.600Z","2.0.0":"2016-10-07T23:16:04.513Z","2.0.1":"2016-10-14T01:32:35.839Z","2.1.0":"2016-10-18T01:03:17.709Z","2.1.1":"2016-10-23T19:33:10.917Z","2.1.2":"2016-10-28T22:55:49.314Z","3.0.0":"2016-11-12T00:06:30.657Z","3.0.1":"2016-11-12T01:27:00.198Z","3.0.2":"2016-11-17T05:47:10.367Z","3.0.3":"2016-11-17T06:14:06.677Z","3.0.4":"2016-11-17T11:24:07.378Z","3.0.5":"2016-11-19T05:48:33.889Z","3.0.6":"2016-11-21T16:53:41.504Z","3.1.0":"2016-11-22T05:10:34.364Z","3.2.0":"2016-11-25T21:05:19.847Z","3.3.0":"2016-11-26T15:53:54.955Z","3.4.0":"2016-11-27T10:55:11.173Z","4.0.0":"2016-12-16T22:33:35.770Z","4.0.1":"2016-12-19T22:45:10.065Z","5.0.0":"2016-12-26T18:17:27.040Z","5.0.1":"2016-12-27T00:54:26.345Z","5.0.2":"2016-12-27T01:05:36.987Z","5.0.3":"2016-12-31T06:45:37.777Z","5.0.4":"2017-01-07T02:10:04.912Z","5.0.5":"2017-01-07T07:51:37.528Z","5.1.0":"2017-01-10T14:11:35.695Z","6.0.0":"2017-01-22T17:03:50.648Z","6.0.1":"2017-01-22T20:13:11.771Z","6.0.2":"2017-01-23T21:18:03.673Z","6.1.0":"2017-01-26T19:41:56.490Z","6.1.1":"2017-02-06T18:15:14.342Z","6.1.2":"2017-02-08T15:09:18.278Z","7.0.0":"2017-05-24T23:19:35.965Z","7.0.1":"2017-05-26T21:21:42.796Z","7.0.2":"2017-06-02T00:20:54.173Z","7.0.3":"2017-06-02T10:35:48.131Z","7.0.4":"2017-06-20T21:28:02.062Z","7.1.0":"2017-07-24T16:49:42.903Z","8.0.0-alpha":"2017-10-02T12:10:34.293Z","8.0.0-alpha.0":"2017-10-03T14:12:16.750Z","8.0.0-alpha.1":"2017-10-03T19:56:44.623Z","8.0.0-alpha.2":"2017-10-03T20:52:22.240Z","8.0.0-alpha.3":"2017-10-03T21:46:25.190Z","8.0.0-beta.0":"2017-10-03T21:53:58.919Z","8.0.0-beta.1":"2017-10-05T17:03:50.537Z","8.0.0":"2017-10-06T02:49:26.180Z","8.0.1":"2017-10-06T03:05:16.917Z","8.0.2":"2017-10-08T20:20:06.405Z","8.0.3":"2017-10-09T15:24:22.414Z","8.1.0-alpha":"2017-11-12T16:26:31.588Z","8.1.0-alpha.0":"2017-11-14T04:10:38.750Z","8.1.0-alpha.1":"2017-11-14T05:17:34.302Z","8.1.0-alpha.2":"2017-11-15T09:15:32.948Z","8.1.0-alpha.3":"2017-11-18T07:31:03.352Z","8.1.0-beta":"2017-11-19T04:38:58.662Z","8.1.0-beta.0":"2017-11-19T05:48:45.788Z","8.1.0-rc":"2017-11-19T12:27:25.786Z","8.1.0":"2017-11-19T16:03:53.938Z","8.1.1":"2017-11-21T14:02:24.458Z","8.2.0-alpha":"2017-12-04T20:22:42.853Z","8.2.0-alpha.0":"2017-12-04T20:25:01.789Z","8.2.0-alpha.1":"2017-12-04T20:26:40.081Z","8.2.0-rc":"2017-12-04T20:30:47.918Z","8.2.0":"2017-12-04T22:27:27.680Z","8.2.1":"2018-01-18T15:28:09.241Z","8.2.2":"2018-01-19T07:49:48.998Z","8.2.3":"2018-01-25T20:16:32.795Z","8.2.4":"2018-03-11T20:16:31.921Z","9.0.0-alpha":"2018-03-26T16:13:43.479Z","9.0.0-alpha.0":"2018-03-31T12:05:57.539Z","9.0.0-beta":"2018-04-03T12:47:59.054Z","9.0.0-rc":"2018-04-05T16:27:29.293Z","9.0.0-rc.0":"2018-04-07T11:35:35.405Z","9.0.0-rc.1":"2018-04-10T08:08:52.561Z","9.0.0-rc.2":"2018-04-10T17:50:21.897Z","9.0.0":"2018-04-11T11:10:06.658Z","9.0.1":"2018-04-11T12:30:27.228Z","9.0.2":"2018-04-11T15:23:30.543Z","9.0.3":"2018-04-11T19:58:03.282Z","9.0.4":"2018-04-19T20:50:35.685Z","9.1.0":"2018-06-12T08:02:18.340Z","9.1.1":"2018-07-19T15:31:16.682Z"},"homepage":"https://github.com/thysultan/dio.js","repository":{"type":"git","url":"git+https://github.com/thysultan/dio.js.git"},"author":{"name":"Sultan Tarimo","email":"sultantarimo@me.com"},"bugs":{"url":"https://github.com/thysultan/dio.js/issues"},"license":"MIT","readmeFilename":"README.md"}