{"_id":"sentinel.js","_rev":"32-024ba4604a26244d2a604db3e839e420","name":"sentinel.js","description":"A dead simple Model-View Javascript framework with two way databinding.","dist-tags":{"latest":"1.2.9"},"versions":{"1.0.0":{"name":"sentinel.js","version":"1.0.0","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.0.0","_shasum":"c704b0a471bd76ea3fd3753847570532d3dc5e72","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"c704b0a471bd76ea3fd3753847570532d3dc5e72","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.0.0.tgz","integrity":"sha512-C8ji1hN++66ypgByOb8sNlBSE0eXbPiORqkRA+3VSa1WQu095nGKfcqjcSAN+IDRNOVma9hGE9emCPlRCInwnw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNgNJ5fjvXYDKe7X5WbFTfccSM+DzuhoUhlrIXKH6TpAIgF94DHhzqBe5t1cOCi8Fu1OVG3P5V5LTUmK5rGO4cMa4="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.0.1":{"name":"sentinel.js","version":"1.0.1","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.0.1","_shasum":"8a550acc3e503f62da8520491f3c271df0feb599","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"8a550acc3e503f62da8520491f3c271df0feb599","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.0.1.tgz","integrity":"sha512-trsedaMgzCW5ZWQC+l4wVdwc7OY3z2GGJxV80G0n5m3SRzxDdlL3dEF1RGiANb/lI51lQCH29XBU4RZv2KLZQQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBs0Ct/TXc2ncW4oNLr1XSjAfvrRuDZNMvo3m7MXQ0IsAiEA9E4G++TxlSEQJU5SHW5DCW4ZAzQbFdtoYS71ALhWstc="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.0.2":{"name":"sentinel.js","version":"1.0.2","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.0.2","_shasum":"c2b9f3f64d9feba0edc775330b23a91de9141657","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"c2b9f3f64d9feba0edc775330b23a91de9141657","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.0.2.tgz","integrity":"sha512-ycjVIQGZLSh71z959jqqMYPp0WKRlUAXzkL4uzbRy6g1phN9GftK4TgWUtPSK00UjT3ZZFfeNQsDomLi1QaANQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDmTxlyqCF/1+tlIHD7UL1a9k70QpSD54TSF97C+EoGDAiBpLyvJbYfVvgPJ6MB1u0QzqvO9EZc+6U8umaXwIbO04w=="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.0.3":{"name":"sentinel.js","version":"1.0.3","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.0.3","_shasum":"08d2780523cbe4af5838df6eab45e95ec8daacdf","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"08d2780523cbe4af5838df6eab45e95ec8daacdf","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.0.3.tgz","integrity":"sha512-b2RdklHfWt49mbiUSmd84qvwWdAlspDL7sgtR4e+M4e++NsVyOnjV0NuecKUFgh4SYFZN5YKGCarq1R1ZNuIUw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFCUnvxl9jc9PPeuFiYeuWOO7GPVB0t+OTt9PLfWy0R6AiEA4nNFIaRXzr5Ysykze7N1U/yewFkIjABpdWmxxh1cR8k="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.0.4":{"name":"sentinel.js","version":"1.0.4","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.0.4","_shasum":"10e41136160c35b4dca4e390934183bf331e92a9","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"10e41136160c35b4dca4e390934183bf331e92a9","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.0.4.tgz","integrity":"sha512-BSPjhS4Jb9MsBNhoGE7jObEQASJIaO8xFJLxLWFxVIEC5cckv03Ou8O0MikGIbec+h7wIP4rBHbTzxAPl7WJWA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEzqM86DrdQVUyjkdlAdUZGayPZbPKwjBgkuBrP7fAfWAiAIDLNRhiVJIy1RCg23oPboIm1uj1DYW2gW7/6tEenK0Q=="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.0.5":{"name":"sentinel.js","version":"1.0.5","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.0.5","_shasum":"c2222a1e262d68479458e7f2cf8cc7fa03337667","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"c2222a1e262d68479458e7f2cf8cc7fa03337667","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.0.5.tgz","integrity":"sha512-BvvT4HIIdfEyZoX3oz3mEQ0HBxDqqBWxfG7Hfk2OyxcdZGzCrt4jvZxkClJ8kSyLxZbEn9IjR8QII9/mFGMRCA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHJdCMkzqGkgvgkFF1byOuBkm/3fjPdN6wHIhELohxFwIgAg8vwSGe7JFlu9NmmKC50Ow2hNy8KWyJAZtUEI1FLow="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.0.6":{"name":"sentinel.js","version":"1.0.6","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.0.6","_shasum":"f49a65532fa1cd32466899065aeb508751dfe773","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"f49a65532fa1cd32466899065aeb508751dfe773","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.0.6.tgz","integrity":"sha512-8ot8v3VVz7A5TzDsRXWNLmYi42oevorU3W6d1Xnql+48A29F7ACyN9T4UqsvQSp8o0gt4aK+mUkjylah5eoK4w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBvjPyeISsJLsKuxcvb30Mb/DmdRK5WOLG6K+ejGuuQzAiEA2xGKxVLvMqnDrFpLZWLnZSRaefDej85acL7SV5Dj3/Q="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.0.7":{"name":"sentinel.js","version":"1.0.7","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.0.7","_shasum":"65ada999ee7140a898530d327fc8687ac85d23cc","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"65ada999ee7140a898530d327fc8687ac85d23cc","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.0.7.tgz","integrity":"sha512-IPBJWLS5PX2XdsNF7Vx8RriIy/DvrWvVkDfoB9ADi+sEEKXPcZyHblTgNl9gHcDGgSlOUOB3cjU5hYPEbac28A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGwv8Q5A5pbz+nfi7raUHTC/EOkbia7jZZbA9Fm9ZdJwIhAO7BM3A3D1CYnHr4MOeVBWMuoaXwODoYaYnLGO+FOI7p"}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.0.8":{"name":"sentinel.js","version":"1.0.8","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.0.8","_shasum":"e77c3958f0a842f7274eb52cc3d5dbd53ab12ab3","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"e77c3958f0a842f7274eb52cc3d5dbd53ab12ab3","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.0.8.tgz","integrity":"sha512-UA5BFUG+ae98fWemCTYPtGAgqxKdk0p8nPKlwYRZgXVgq7KyLsnrLUU0PcuGBPgdRBmci2cOOYiXAMZ+ScOCHg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGnjwBIkRplk47RRZntCkKuAbZvIMd8m1ZoX3mVw3BqiAiEAupJx8RerAKtkp4FeGWOTPFrFvlKV4sQf6fU5LE121MM="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.0.9":{"name":"sentinel.js","version":"1.0.9","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.0.9","_shasum":"80b10b608fc1af83a51073030cfcee8691a47d7c","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"80b10b608fc1af83a51073030cfcee8691a47d7c","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.0.9.tgz","integrity":"sha512-/vYBU/PTZvFksl2eji4r8Rxx6JFYbqqtLuiP17k7WbQwcPWJ0ZzHCN9G8gNAYx79T4/gOzAwoORpVztWfI+cuQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqk0rQHEpEfcLZeBopqidjD9vbDZn52ystML5eJmGF0QIhAM/Ufb1IES9TnZuhubQgd3C/FoJyP8tRYxnzsUyYjU08"}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.1.0":{"name":"sentinel.js","version":"1.1.0","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.1.0","_shasum":"77af824730c18d1dd9cd538327f0e264a3d673df","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"77af824730c18d1dd9cd538327f0e264a3d673df","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.1.0.tgz","integrity":"sha512-lXi/tn0GvKkz6CpNwfsrpG4QonHoybJx0uNoPUq3mQg/daZR2liSoEyvNVOWwhUx7+XCiTmKhG/2aDnF9wVl5A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnmaeRvgJrB4if4jSv1VdtL5DRFLMsPbLTim+HTI+WVQIhAKdSHZMUkYRMLOXH2mkHAvaFXHz5IXi0X1LqIAqT4k1j"}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.1.1":{"name":"sentinel.js","version":"1.1.1","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.1.1","_shasum":"cc31f5a5c35f1a24d6c99122bc2caba26a484532","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"cc31f5a5c35f1a24d6c99122bc2caba26a484532","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.1.1.tgz","integrity":"sha512-/sg6pm9QnBD0T6yKTVU9+WxCtp0vJ62qTu2CJtjlfQYpbDh830Zo3WSAGRw6rOfSyjfzh1DLVCq0KZFoAZnavQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBkqTrNRcbYbjjnnLSHKLPoWoSBI+am10PvBE5AT0eG5AiEAs88+O6WXWgaruGg7v16HRMoJAIgQJZ4k9m8w2S09iso="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.1.2":{"name":"sentinel.js","version":"1.1.2","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.1.2","_shasum":"6f627d9fcd1407f9d94dbcae1227d1dd7edcef36","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"6f627d9fcd1407f9d94dbcae1227d1dd7edcef36","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.1.2.tgz","integrity":"sha512-CGFXuUiY34ekcjcL5WdJFSBiops3ihEijeZ9wiJ7jdXIGfLY1TVxE2w59jdL9H4+uu4CZsq+K/3e1DGLt22W8A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJSamhlOJTjJu8UVeUEaN47FKZSd+kYAHiIj2MhZOACwIhAL1RtvJWBJzcdO+n0Q16QD1c1AaPOYLkXRn0eq7948+7"}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.1.3":{"name":"sentinel.js","version":"1.1.3","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.1.3","_shasum":"12d454d2a8e9e06d268e38e6cec0324762ccd9e7","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"12d454d2a8e9e06d268e38e6cec0324762ccd9e7","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.1.3.tgz","integrity":"sha512-Mlh4vTQRkY152FOLbZ0mgBHa1QMPimnJlBlbxW36W8dCw7jklHXxc89k9fgugI2EJxqtAiWVLxNzujoSSV3XgQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDlr2IKo+3unRljJiMWR1MYIB6bXVAk+sFdiINQZLuENAiEA74BZkbSMeddm4RHYIioXJow9KxR+u/ul1R9cyAAvrj0="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.1.4":{"name":"sentinel.js","version":"1.1.4","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.1.4","_shasum":"cf3c48b76616fa3861d420332f53c2d6573dfad6","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"cf3c48b76616fa3861d420332f53c2d6573dfad6","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.1.4.tgz","integrity":"sha512-KA8Nv+RAbwdOfORttzpV488ZlRDGalEZnKehYWjm95+I5w6EUACvS6ZQXOg04t8IairJzOMOPCMcgq+Trh/zAw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDZZm5VEsjLqBQxinuYSTDlExxY/mI1Ftmwh7Y20AhN2gIgN0x1aTTtHHML4gFpCjJatR+Cg/NI+1ukzyt0PCZr/rM="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.1.5":{"name":"sentinel.js","version":"1.1.5","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.1.5","_shasum":"05cbb9e9198393f9b9b7942fb045a5c04a0a3b9d","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"05cbb9e9198393f9b9b7942fb045a5c04a0a3b9d","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.1.5.tgz","integrity":"sha512-GEx+xF1zyq2dwOBoWUnYMx01po917g5txzGzDIjc/8FXZuFsYl1rxVI985n3xJ8Y41cU9k/9qmcp8r7+liPTBA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGBan2CO1GA2o9FGHnpCCGjI72Sn4s65hNkIS1cXtAG9AiB1vqE3BkTpCg/S9rKyNgGACNPpSj4b+a93BuxTSsgRxA=="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.1.6":{"name":"sentinel.js","version":"1.1.6","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.1.6","_shasum":"f2664812993b6eecb1bf6cf190d4abbba9f2cc9d","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"f2664812993b6eecb1bf6cf190d4abbba9f2cc9d","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.1.6.tgz","integrity":"sha512-/m4ItrkXkMCTk28I1X1pZyu6aHMatKwrH8XFOzHPaRlsZ4X7kOlBeJDhrBjJpqripOkVnb/21hROebtCY3JBxQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHtC3vNPoPXJQKuZ7CkhrZ1hsBGbySU6uM1n31uLWwGBAiEAp0Xq4eMW2wMtzHNtqRQsoR2hyWYzwLNVIpo/sGnNrDo="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.1.7":{"name":"sentinel.js","version":"1.1.7","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.1.7","_shasum":"6f96055548ee6db7d587d1945800ffb9f02ea1f9","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"6f96055548ee6db7d587d1945800ffb9f02ea1f9","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.1.7.tgz","integrity":"sha512-huU4nZ9z6FCR99IJtsZlBQt4H0FRyl01teSMpBzOnhChqnjp0UC3S49VQKOrf+dAPhkaR3+C38t6k8ZBuYz5sA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDy+l8modkX0fuYuA0HFty8ziTtB5kPHLxQ++TZvUP/0wIhANEZKCXF11DrqIHxR7P51M1mHeyurS4EKJJySFkKg5iQ"}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.1.8":{"name":"sentinel.js","version":"1.1.8","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.1.8","_shasum":"e3625044d3ed45216c51cfcbe6ae946a9439e361","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"e3625044d3ed45216c51cfcbe6ae946a9439e361","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.1.8.tgz","integrity":"sha512-AhvekYXHn80c0qTmc/fV9fL43twqkH07vHXyWnOMUIQWsEpTXA5fbdmSzGAlQXMCZWxBUrpqtQpzhQVMyQ5c2w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAVUUPGEwRJ3/T8j67kXFt69o/Rtcbms+wzj7bTPCTNTAiBhPWfOFTrk93k8RuHTm6KTsq/snRyQskEpRI/6frn8yw=="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.1.9":{"name":"sentinel.js","version":"1.1.9","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.1.9","_shasum":"7a657c8280ae48cadac8be1769360e18f3edfb3b","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"7a657c8280ae48cadac8be1769360e18f3edfb3b","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.1.9.tgz","integrity":"sha512-1EPauDr3PdEw20ajocrQnqibs0a/eKorozG+Q/UDBldfaNrbwn0lwTnpWK+b8xWhCbAnfV7APRDloBP54uVdlQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB/7LEW8Gi15+++3mCTEj/i+CCDwmXc8IIXWhykZKH3TAiBgxysMO5ienVTT+gjVK+miIkpzjxYFW5kpD27/d33s0w=="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.2.0":{"name":"sentinel.js","version":"1.2.0","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.2.0","_shasum":"fb11024828765f838bd80fa32d3a8c7a97b585ea","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"fb11024828765f838bd80fa32d3a8c7a97b585ea","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.2.0.tgz","integrity":"sha512-tyuFbgI00QBjONHZj+FgtSNK/UK/uLbyYV1bVc6lpHwVP4trtpWs8xY0oU9VY+0hPhATUyNeDRDZnHEVZb24JQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBsXN+QindsDSgXGMb/WfVHQ/+Kix1NsJAVUvxUO3EplAiEAuz2UZnxd6ix8ICeq/mh+CzLafgafD7+XcRqUblzTDig="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.2.1":{"name":"sentinel.js","version":"1.2.1","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.2.1","_shasum":"cc2a08464ebdba7b7f44c6accb74520e21d54d81","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"cc2a08464ebdba7b7f44c6accb74520e21d54d81","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.2.1.tgz","integrity":"sha512-ee/0L804B7tOX5GXVvfEkndylb4HkFCp6wxYV2FJ3tLaZXQRm1ueWTe0GahSk4aZCdHSjY0rW3Sf8ni+yzIj1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClls1MfF1+ICzn9qb8f3FOAjnfXJBYTJzyvqpqsSe/GgIhAOu/B6301rNeVyswdGwuZPny82Zqg0CIlDfIrOxpWP3A"}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.2.2":{"name":"sentinel.js","version":"1.2.2","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.2.2","_shasum":"7715d94219816a8e1fac9e1e4ec7b64151af5160","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"7715d94219816a8e1fac9e1e4ec7b64151af5160","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.2.2.tgz","integrity":"sha512-JJe1GCHdN9AQalZA9vMK9FP7x+Az28MDxnEAxWCxrXDWYFhO+ceWRnLNyzCZPXFlqXeWaTqChS6F20nGheoJaQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSwh8CiedRU2G9Aui0CDRBummHKDs91bUtLzbFPVDefwIhAJTh9chtQqDKbQ6XDOx2+D7fSE77MUq632yDPBWv4SIb"}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.2.3":{"name":"sentinel.js","version":"1.2.3","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.2.3","_shasum":"34b2cd76c9863a12694b9d21219aece2c44c4c84","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"34b2cd76c9863a12694b9d21219aece2c44c4c84","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.2.3.tgz","integrity":"sha512-zPDx6tyS530peDNcbjTWeEJHY8Ts4yYP64AsRqvhSKDllUhyg9ri8ibWQU3EckTKhvpKhBD0ZWJmJ0ZO8CAz7g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/NTu6TvmMbmv1JD+8/fIpVLTPOhKm4OYZ+c1rH92Q+AIhAMbm0vT9UNfLZss5VFtgUIbfSZOB8YvxZeh8PRsQA1Q8"}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.2.4":{"name":"sentinel.js","version":"1.2.4","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.2.4","_shasum":"a0832fd5e1c1fb9fa7655dfb104c4956c9a052a1","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"a0832fd5e1c1fb9fa7655dfb104c4956c9a052a1","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.2.4.tgz","integrity":"sha512-1MypopDLDOQJSBwawk/Wuj7l9xlmUMzLED8um6ks8pdEXmi0RIxhWkzLGG4p0MuaJFy+xmmMjUElqk1Al/e3Fg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF6t4yChMX73U+Qg90GDFL+V2J1yySq7GjZtcqcVqorSAiEAsmQgeQWzbl+F1C7EeSoTx1ZTmZ8o4nEqBcQ04jG97bU="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.2.5":{"name":"sentinel.js","version":"1.2.5","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.2.5","_shasum":"adf33f8d5c79ced0dfee7e9a9beae1ebaf206c86","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"adf33f8d5c79ced0dfee7e9a9beae1ebaf206c86","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.2.5.tgz","integrity":"sha512-X739Hm1RQbVDqbFtoyYSZJfH2P8Nn9qdxrN9+xgq4mnMeIcH0mcRC778jeAeuT7kJpB1QbgTV2wSCBAzMvVR9A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHtTHx2UGAtW2iWOvEOPDiSt0XOeGPJCLKMRyq/EPfcAIhAOe8vruWSNeoDKiKP5RXmckHONGrdUDXmjxIONRmG8LN"}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.2.6":{"name":"sentinel.js","version":"1.2.6","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.2.6","_shasum":"edd2706f45a1108457ee7fbcd1ac7db5d16c2e98","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"edd2706f45a1108457ee7fbcd1ac7db5d16c2e98","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.2.6.tgz","integrity":"sha512-OX1FW0RId+qu5w/9Bf8TuCuN7jRPz9mcO2zAlDfyVw/RgaAJodTjhqjeX64K629NNJE5pnol7pdyroN0E7spsQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrQPXNfR+dYSjSkvr8YvyWKrQZHX3x07/7BEt/1lp7KwIgX1fXvNpCmFGOHaFwNmjiYPwLCocrm11yQ5EZ7uvVRJg="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.2.7":{"name":"sentinel.js","version":"1.2.7","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.2.7","_shasum":"c5b8acf26f8eea9d9f2a45b35a5f524dcabc736b","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"c5b8acf26f8eea9d9f2a45b35a5f524dcabc736b","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.2.7.tgz","integrity":"sha512-KgygoUNUYAs249hzPqqfWCBX0CsOWEiYMaWeLoGH4olRkDKcfDkAeXvPhV5B4+TyvcBsbwCsdnOUiX7vnG7hrw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHTQzmktltvS3lpBnD8ik5me13zETwB9bC0yYUF1vlFFAiEA0ikt5jfSCOj8ScW8ivw1dsj4WbS+fYX3cYEh+iuI7AY="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.2.8":{"name":"sentinel.js","version":"1.2.8","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.2.8","_shasum":"977f0a0a54ba3f46df075754f939f78e0751875a","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"977f0a0a54ba3f46df075754f939f78e0751875a","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.2.8.tgz","integrity":"sha512-jO9c3whQfpMow7fgnpfmXYluI98sObJx8R7ujJP/y7zRRNuPRQnVQ4doji5B/1PydaalXF+iLZbcFwxvhKL+8A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPJkh2AJszVNXd4cr+yUXpjVR99I6C+9arvy6JIQ8R7wIhAKtIWsecs9WNaoX/R1eJBqiVPUvF7Ieik/WcD1p1XAAD"}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]},"1.2.9":{"name":"sentinel.js","version":"1.2.9","description":"A dead simple Model-View Javascript framework with two way databinding.","main":"js/sentinel.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"keywords":["Framework","Databinding"],"dependencies":{"jquery":"latest"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","homepage":"https://bitbucket.org/sras/sentinel.js#readme","_id":"sentinel.js@1.2.9","_shasum":"2b3551b3d9a01cf2f0e31522a091a192efb60fa4","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"sras","email":"sandeepcr2@gmail.com"},"dist":{"shasum":"2b3551b3d9a01cf2f0e31522a091a192efb60fa4","tarball":"https://registry.npmjs.org/sentinel.js/-/sentinel.js-1.2.9.tgz","integrity":"sha512-loUQvDPvXx89Dh8L5D5nvkRbYjbMR76IM8B9kEh3y/RChN7FxsNqKcuOzs3Lipblcp0CNXJUaItq3UXKyn7MHQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDonyw/uEz3536peD6+ymz8+wifGK3gRwXQYut0KHHd0gIgH2nHZa7BCobJKZgn9LFH61zxA4IHDScpi2hy1DpxQaU="}]},"maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}]}},"readme":"##Sentinel.js - A Simple template and data binding Javascript library.\n\n##Introduction\n\nSentinel.js can take a JavaScript object or array and use it to expand\na fragment of html using the directives specified in the html tags. It also\nbinds the structure of the DOM and the value of its input elements (INPUT, TEXTAREA, SELECT)\nnodes to the object, so that when the attributes of the bound object changes,\nthose are reflected html (Not automatically for the timebeing). In the other direction,\nthe value on the object's bound properties will be updated on the change event of input type elements.\n\nIt uses jQuery for DOM manipulation.\n\n##Examples\n\n1. [Simple binding](#markdown-header-the-simplest-one)\n6. [Calculations in templates](#markdown-header-calculation-in-templates)\n2. [Iterate over array using **sn-repeat** directive](#markdown-header-iterate-over-an-array-using-sn-repeat-directive)\n2. [Accessing loop variables](#markdown-header-accessing-the-loop-index)\n3. [Using **sn-show** directive to hide/show elements](#markdown-header-accessing-the-loop-index)\n3. [Using **sn-computed-attribute** directive enable/disable attributes](#markdown-header-using-the-sn-computed-prefix-to-make-an-attribute-evaluated)\n4. [Capturing nodes for inserting later](#markdown-header-using-the-sn-computed-prefix-to-make-an-attribute-evaluated)\n5. [Building Recursive structures using the above feature](#markdown-header-building-recursive-structures-using-the-above-feature)\n5. [Attaching events](#markdown-header-attaching-events)\n\n\n###The simplest one\n\n    <script src=\"jquery.js\"></script>\n    <script src=\"sentinel.js\"></script>\n    <script>\n    $(function() {\n        user = {\"name\":\"Chris\"};\n        Sentinel.bind(user, 'user-details')\n        Sentinel.syncHtml();\n    });\n    </script>\n    <body  sn-enabled=\"true\">\n        <div>{|user-details.name|}</div>\n    </body>\n\n####Output will be something like\n    ...\n    ...\n    <body sn-enabled=\"true\">\n        <div><span>Chris</span></div>\n    </body>\n\n\n####Explanation\n\nThe **sn-enabled=\"true\"** attribute is used to mark html nodes(with \nits descendants) that Sentinel should handle.\n\nThis line,\n\n        Sentinel.bind(user, 'user-details')\n\nbinds the object in variable **user** to a name **user-details**. We can refer to the object using this name in our templates, as\nyou can see here,\n\n        <div>{|user-details.name|}</div>\n\nYou may have noticed that the value of the variables are wrapped in span elements when they are expanded.\nThis is so that Sentinel can update the value when the value of the bound property changes. To see this,\nchange the value of user.name to something else and call Sentinel.syncHtml() from firebug console. You will\nsee the value getting updated in the html. Only the **value** attribute of the element will be used for\nbinding and this updating is only triggered on the change event of the bound element. \n\n###Calculation in templates\n    \nIn your templates, you can write small segments of JavaScript by wrapping them in tildes(~). See an\nexample below where we calculate the percentage and display if the student has passed based on the marks.\n\n    <script>\n    $(function() {\n        user = {\"name\":\"chris\", \"marks\":40};\n        Sentinel.bind(user, 'user-details');\n        Sentinel.randomPrefix = '100';\n        Sentinel.syncHtml();\n    });\n    </script>\n    <body sn-enabled=\"true\">\n        <div>Name: {|user-details.name|}</div>\n        <div>Marks: {|user-details.marks|}</div>\n        <div>Percentage: ~({|user-details.marks|}/50)*100~</div>\n        <div>Passed: ~if( {|user-details.marks|} >35) \"Yes\";else \"No\"~</div>\n    </body>\n\n**NOTE: You will not be able to assign values to the bound properties using this feature,\nbecause each variable reference is replaced with a function call before it is evaluated. **\n\n###Declare a scope for an html element.\n\nIn the previous example, we used the user-details bound variable reference to access the\nindividual properties of an object. But we can achieve the same effect by declaring a scope\nfor a parent element. When we do that, the properties of that object can be accessed using syntax\n**this.property**. See the example below\n\n    <script>\n    $(function() {\n            user = {\"name\":\"chris\", \"marks\":40};\n            Sentinel.bind(user, 'user-details');\n            Sentinel.syncHtml();\n        });\n    </script>\n    <body sn-enabled=\"true\" sn-scope=\"user-details\">\n        <div>Name: {|this.name|}</div>\n        <div>Marks: {|this.marks|}</div>\n        <div>Percentage: ~({|this.marks|}/50)*100~</div>\n        <div>Passed: ~if( {|this.marks|} >35) \"Yes\";else \"No\"~</div>\n    </body>\n\nThe scoped variable will be available immediately in the tag that declares the scope,\nso that you can use it even in it's own attributes. When you use nested scopes, you\ncan access the parent scope using **parent** variable. If you want to access the\nparent's parent, you can do it using **parent-parent** variable and so on to any\nnumber of nesting levels.\n\nSee the example below,\n\n    $(function() {\n            kid = {\"name\":\"Juan\", \"age\": 25};\n            parent  = {\"name\":\"James\", \"age\":47, \"child\": kid};\n            grandparent = {\"name\":\"John\", \"age\":70, \"child\":parent};\n            Sentinel.bind(grandparent, 'user-details')\n            Sentinel.syncHtml();\n        });\n    </script>\n    <body sn-enabled=\"true\" sn-scope=\"user-details\">\n        <div>\n            Name: {|this.name|}\n        </div>\n        <div>\n            Senior: ~if( {|this.age|} >60) \"Yes\";else \"No\"~\n        </div>\n        <div style=\"padding-left:10px\" sn-scope=\"this.child\"> <!-- scope switched to user-details.child -->\n            <div>\n                Name: {|this.name|}\n            </div>\n            <div>\n                Senior: ~if( {|this.age|} >60) \"Yes\";else \"No\"~\n            </div>\n            <div>\n                Father: {|parent.name|} <!-- accessing outer scope one level up -->\n            </div>\n            <div style=\"padding-left:10px\" sn-scope=\"this.child\">  <!-- scope switched to user-details.child.child -->\n                <div>\n                    Name: {|this.name|}\n                </div>\n                <div>\n                    Senior: ~if( {|this.age|} >60) \"Yes\";else \"No\"~\n                </div>\n                <div>\n                    Grand Father: {|parent-parent.name|} <!-- accessing outer scope two levels up -->\n                </div>\n            </div>\n        </div>\n    </body>\n\n###Iterate over an array using sn-repeat directive\n\nWhen you have a **sn-repeat** attribute for an element as something like sn-repeat=\"bound-variable-reference\",\nthat element will be duplicated and added to the DOM for every item in the array pointed by the specified\nreference. For each iteration, the repeated item node will be evaluated in the context of the current element in the iteration,\nbefore adding it to the DOM.\n\nSee a simple example below.\n\n    <script>\n    $(function() {\n            colors = [\"red\",\"blue\",\"green\",\"violet\",\"yellow\",\"purple\"];\n            Sentinel.bind(colors, 'colors')\n            Sentinel.syncHtml();\n        });\n    </script>\n    <body sn-enabled=\"true\">\n    <div sn-repeat=\"colors\">{|this|}</div>\n    </body>\n\n####Output will be something similar to\n\n    ...\n    ...\n    <body sn-enabled=\"true\">\n        <div>red</div>\n        <div>blue</div>\n        <div>green</div>\n        <div>violet</div>\n        <div>yellow</div>\n        <div>purple</div>\n    </body>\n\n####Accessing the loop index\n\nYou can access the index of the current loop by using the special reference **{|loop-index-0|}**. For accessing \nindex of outer loops, you can use **{|loop-index-1|}**, **{|loop-index-2|}** and so on. See an example below,\n\n    <script>\n    $(function() {\n            colors = [\"red\",\"blue\",\"green\",\"violet\",\"yellow\",\"purple\"];\n            Sentinel.bind(colors, 'colors')\n            Sentinel.randomPrefix = 100;\n            Sentinel.syncHtml();\n        });\n    </script>\n    <body sn-enabled=\"true\">\n    <div sn-repeat=\"colors\">\n        <div sn-repeat=\"colors\">\n            <div sn-repeat=\"colors\">\n                {|loop-index-0|}, {|loop-index-1|}, {|loop-index-2|}\n            </div>\n        </div>\n    </div>\n    </body>\n\n### Using sn-show directive to hide/show elements\n\nThis directive will evaluate the specified expression as javascript and hides the element if the expression evaluates to\nfalse. For eg,\n\n    <li sn-show=\"{|this.mark|} > 0\">\n\n### Using the **sn-computed-** prefix to make an attribute evaluated\n\nWhen an attribute have the prefix **sn-computed-**, the given expression will be evaluated as javascript, and if the value\nis not false, then that value will be assigned to an attribute whose name is derived by removing the **sn-computed-** prefix\nin the original attribute.\n\n    <option sn-computed-selected=\"if ({|this|} == {|parent.color|}) 'selected';else false;\">{|this|}</option>\n\nHere the expression **if ({|this|} == {|parent.color|}) 'selected';else false;** is evaluated and if it evaluates to false,\nthe complete attribute is removed. Else the value will be assigned to the **selected** attribute.\n\n###Capturing nodes for inserting later\n\nThis used to capture a segment of html so that it can be inserted somewhere later. This is mostly useful\nfor creating recursive structures. You can capture an html node by specifying a **sn-capture-id** attribute.\nYou can insert a captured node by using the **sn-insert** attribute by specifying the id of the previously\ncaptured node as its value. See and example below.\n\n    <body>\n    <div sn-enabled=\"true\" sn-repeat=\"user-details\">\n        <div sn-capture-id=\"user-details-block\" style=\"padding-left:10px\"> <!-- this node will be captured -->\n            <div>{|this.name|}</div>\n            <div>{|this.age|}</div>\n            <div sn-repeat=\"this.children\" sn-insert=\"user-details-block\"></div> <!-- to insert here -->\n        </div>\n    </div>\n    </body>\n\nPlease note that, for recursive structures, as shown above,  you should use **sn-insert** along with **sn-repeat** or **sn-show** \nso that the nesting stops at some level.\n\n###Attaching events\n\nYou can attach event handlers, which are part of the scope, to elements using the **sn-event-** prefix. If you do this\n\n    <a sn-event-click=\"this.clickEventHandler\">Click</a>\n\nThe the handler will be bound to the event name that follows the **sn-event-* prefix, ('click' in the above example). Please note that you can only bind\nfunctions that are part of the scope object. When the event handler is called, it will be called in the context of the\nobject which it is a part of. See the following.\n\n    <script>\n    $(function() {\n    var a = {\n            \"name\":\"Jack\",\n            \"changeName\": function() {\n                this.name = \"Jill\";\n                Sentinel.syncHtml();\n            }\n        };\n    Sentinel.bind(a, 'scope');\n    Sentinel.syncHtml();\n    });\n    </script>\n    <div sn-enabled=\"true\" sn-scope=\"scope\">\n        Name : {|this.name|} <a href=\"#\" sn-event-click=\"this.changeName\">Change Name</a>\n    </div>   \n\nThe function in **changeName** property of the object uses **this** to change properties of the object it is a part of.\nSo unlike a normal event handler, this function will not have access to the DOM element, but only to the object that it is a property of.\nYou can pass any number of parameters to the function using attributes of the form **sn-parameter-0**, **sn-parameter-1** and so on.\n\n###Disclaimer\n\nThis is an expirimental JS framework. The strenghts and weaknesses of this approach are not fully know right now.\nBut this should work well for simple use cases. If you find that something is not working, you can take a look into the code, as I have\ntried to make it easily readable. If that fail's please add a bug report in the issue tracker. Please try to attach a sample code that shows\nthe issue.\n","maintainers":[{"name":"sras","email":"sandeepcr2@gmail.com"}],"time":{"modified":"2022-06-26T17:44:53.755Z","created":"2015-08-19T19:26:38.179Z","1.0.0":"2015-08-19T19:26:38.179Z","1.0.1":"2015-08-20T06:18:35.952Z","1.0.2":"2015-08-21T08:38:07.085Z","1.0.3":"2015-08-21T10:05:39.095Z","1.0.4":"2015-08-21T13:52:08.935Z","1.0.5":"2015-08-22T14:42:45.415Z","1.0.6":"2015-08-22T15:56:40.082Z","1.0.7":"2015-08-23T17:03:40.619Z","1.0.8":"2015-08-24T00:11:16.497Z","1.0.9":"2015-08-24T00:37:26.957Z","1.1.0":"2015-08-25T14:03:42.433Z","1.1.1":"2015-08-27T03:28:48.832Z","1.1.2":"2015-08-27T04:17:59.974Z","1.1.3":"2015-08-27T18:19:16.392Z","1.1.4":"2015-08-27T18:23:15.952Z","1.1.5":"2015-08-28T17:40:57.127Z","1.1.6":"2015-08-28T18:12:39.714Z","1.1.7":"2015-08-28T20:15:54.465Z","1.1.8":"2015-08-29T17:22:49.037Z","1.1.9":"2015-08-29T18:10:28.921Z","1.2.0":"2015-08-31T14:00:26.146Z","1.2.1":"2015-09-06T12:42:31.422Z","1.2.2":"2015-09-06T15:00:21.588Z","1.2.3":"2015-09-10T08:48:51.073Z","1.2.4":"2015-09-23T06:02:56.768Z","1.2.5":"2015-09-23T11:19:33.287Z","1.2.6":"2015-09-23T11:52:49.129Z","1.2.7":"2015-09-23T18:24:04.538Z","1.2.8":"2015-09-23T19:16:43.157Z","1.2.9":"2015-09-24T05:57:50.956Z"},"homepage":"https://bitbucket.org/sras/sentinel.js#readme","keywords":["Framework","Databinding"],"repository":{"type":"git","url":"git+https://bitbucket.org/sras/sentinel.js.git"},"author":{"name":"Sandeep.C.R","email":"sandeepcr2@gmail.com"},"license":"ISC","readmeFilename":"README.md"}