{"_id":"safe-obj","_rev":"38-f8d533aa123070256010ded64c91ad9d","name":"safe-obj","description":"Underscore helpers to make object accessors safe","dist-tags":{"latest":"1.0.2"},"versions":{"0.0.1":{"name":"safe-obj","description":"Underscore helpers to make object accessors safe","version":"0.0.1","author":{"name":"Andrew Nichols","email":"anichols@manta.com"},"repository":{"type":"git","url":"git://github.com/tandrewnichols/safe-obj.git"},"homepage":"https://github.com/tandrewnichols/safe-obj","bugs":{"url":"https://github.com/tandrewnichols/safe-obj/issues"},"license":"MIT","scripts":{"test":"mocha test","watch":"mocha test -w -R min --suppress-stack"},"dependencies":{},"devDependencies":{"coffee-script":"1.6.1","underscore":"1.5.2","mocha":"git://github.com/tandrewnichols/mocha.git#suppress-stack","mocha-given":"0.0.18","should":"3.1.3"},"keywords":["underscore","helpers","safety","autovivification"],"main":"./safe.js","engines":{"node":">=0.10.0"},"_id":"safe-obj@0.0.1","dist":{"shasum":"5b652a0ab415699b4b8b3856b886aa3b74787727","tarball":"https://registry.npmjs.org/safe-obj/-/safe-obj-0.0.1.tgz","integrity":"sha512-iuyVR8SakeBjB1MdfY8X2hX56NIjnS2/01UKT5HqarRo+3iSD8IATzHXXebEu3gyFd1N6vcS6nK/Lf2uMfyd5Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBRBbWSsU4Wxj+n8anj7lFvvh/WJcKuowmew7t5Iy9TFAiEAmylwaVQ9t1+X6xt7ksl6A9JEERVppxURncN02YxNku4="}]},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},"maintainers":[{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"}],"directories":{},"deprecated":"This package is no longer necessary or maintained. Please use lodash _.get or optional chaining for the same behavior."},"0.0.2":{"name":"safe-obj","description":"Underscore helpers to make object accessors safe","version":"0.0.2","author":{"name":"Andrew Nichols","email":"anichols@manta.com"},"repository":{"type":"git","url":"git://github.com/tandrewnichols/safe-obj.git"},"homepage":"https://github.com/tandrewnichols/safe-obj","bugs":{"url":"https://github.com/tandrewnichols/safe-obj/issues"},"license":"MIT","scripts":{"test":"mocha test","watch":"mocha test -w -R min --suppress-stack"},"dependencies":{},"devDependencies":{"coffee-script":"1.6.1","underscore":"1.5.2","mocha":"git://github.com/tandrewnichols/mocha.git#suppress-stack","mocha-given":"0.0.18","should":"3.1.3"},"keywords":["underscore","helpers","safety","autovivification"],"main":"./safe.js","engines":{"node":">=0.10.0"},"_id":"safe-obj@0.0.2","dist":{"shasum":"9b2f004c02194b4f938a1e9b298769710a9b0b26","tarball":"https://registry.npmjs.org/safe-obj/-/safe-obj-0.0.2.tgz","integrity":"sha512-zn0hso/di9+5bAoIEOSGOigTFSaUMm4xA8QhymwkLmdvgZX7tepL6JquTFwkoWO3xvyDZkTKsWvfY3WEih7vLA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHXV7SvF+41sSZuVDTpp/7PuSZ1kM7+QY/oWvnbbluV6AiBD6ZzMSIxKgPwDhIpU0zCxUJlVYilJBucW8OvPJazu2Q=="}]},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},"maintainers":[{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"}],"directories":{},"deprecated":"This package is no longer necessary or maintained. Please use lodash _.get or optional chaining for the same behavior."},"0.0.3":{"name":"safe-obj","description":"Underscore helpers to make object accessors safe","version":"0.0.3","author":{"name":"Andrew Nichols","email":"anichols@manta.com"},"repository":{"type":"git","url":"git://github.com/tandrewnichols/safe-obj.git"},"homepage":"https://github.com/tandrewnichols/safe-obj","bugs":{"url":"https://github.com/tandrewnichols/safe-obj/issues"},"license":"MIT","scripts":{"test":"mocha test","watch":"mocha test -w -R min --suppress-stack"},"dependencies":{},"devDependencies":{"coffee-script":"1.6.1","underscore":"1.5.2","mocha":"git://github.com/tandrewnichols/mocha.git#suppress-stack","mocha-given":"0.0.18","should":"3.1.3"},"keywords":["underscore","helpers","safety","autovivification"],"main":"./safe.js","engines":{"node":">=0.10.0"},"_id":"safe-obj@0.0.3","dist":{"shasum":"618060c953ec512b5a0a88fab62dd642eaa7e317","tarball":"https://registry.npmjs.org/safe-obj/-/safe-obj-0.0.3.tgz","integrity":"sha512-xOX4+1BZdqdhqzbVZy+DstPDrO1jj8sTN1usfiU7kbHfYczUrhXFgu4z8QiYmLRPAlJaLFzuPvo4qUlcDBJ56w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUdZKbO+h4vhYAQB+tAJSg+DiHycfx9osyJMjuNKs3PwIgWqqVvzVfxw3HYOPzsRnwUbF5zqVcvZAgRDlggz3n8O4="}]},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},"maintainers":[{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"}],"directories":{},"deprecated":"This package is no longer necessary or maintained. Please use lodash _.get or optional chaining for the same behavior."},"0.0.4":{"name":"safe-obj","description":"Underscore helpers to make object accessors safe","version":"0.0.4","author":{"name":"Andrew Nichols","email":"anichols@manta.com"},"repository":{"type":"git","url":"git://github.com/tandrewnichols/safe-obj.git"},"homepage":"https://github.com/tandrewnichols/safe-obj","bugs":{"url":"https://github.com/tandrewnichols/safe-obj/issues"},"license":"MIT","scripts":{"test":"mocha test","watch":"mocha test -w -R min --suppress-stack"},"dependencies":{},"devDependencies":{"coffee-script":"1.6.1","underscore":"1.5.2","mocha":"git://github.com/tandrewnichols/mocha.git#suppress-stack","mocha-given":"0.0.18","should":"3.1.3"},"keywords":["underscore","helpers","safety","autovivification"],"main":"./safe.js","engines":{"node":">=0.10.0"},"_id":"safe-obj@0.0.4","dist":{"shasum":"7dfcc6be69f00da0c662bf606d1db789a83a2b0f","tarball":"https://registry.npmjs.org/safe-obj/-/safe-obj-0.0.4.tgz","integrity":"sha512-GDvmqFcY3LduN+CPEpxqNBfsxQqdXX1VLjWKr/QufBmbJivLXKti2Sk1a3s7PxaQKuX9wOSRo/IZWQqZUQ//xQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHKf4I5mF8IPLyw1Qd6Gj3kZRBQ9Nmun3E9koFBrRdWAIhAPc0LzBPSIdKtPkSlPYDwaXTlx2LmT9dmmT5HqVdFfDa"}]},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},"maintainers":[{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"}],"directories":{},"deprecated":"This package is no longer necessary or maintained. Please use lodash _.get or optional chaining for the same behavior."},"0.0.5":{"name":"safe-obj","description":"Underscore helpers to make object accessors safe","version":"0.0.5","author":{"name":"Andrew Nichols","email":"anichols@manta.com"},"repository":{"type":"git","url":"git://github.com/tandrewnichols/safe-obj.git"},"homepage":"https://github.com/tandrewnichols/safe-obj","bugs":{"url":"https://github.com/tandrewnichols/safe-obj/issues"},"license":"MIT","scripts":{"test":"mocha test","watch":"mocha test -w -R min --suppress-stack"},"dependencies":{},"devDependencies":{"coffee-script":"1.6.1","underscore":"1.5.2","mocha":"git://github.com/tandrewnichols/mocha.git#suppress-stack","mocha-given":"0.0.18","should":"3.1.3"},"keywords":["underscore","helpers","safety","autovivification"],"main":"./safe.js","engines":{"node":">=0.10.0"},"_id":"safe-obj@0.0.5","dist":{"shasum":"74e09718c2b0d1127621c6a1bf761856f3556542","tarball":"https://registry.npmjs.org/safe-obj/-/safe-obj-0.0.5.tgz","integrity":"sha512-wfPPQn64Mn6ONUgpc6Pd86+xGhufJCBUeWjoHvac7vtI6YB6jHww/NFHPeX+0HAj6hupW1WaN9LBY6XN9Gs7Nw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWbR80nBefCckDbr4G/F2BurxWgrP2N0egiDhB7S7/VgIgUFw2BFA9QV7etB3D6e9Y+BqjDYBG5H0xkTy3CfXBQTA="}]},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},"maintainers":[{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"}],"directories":{},"deprecated":"This package is no longer necessary or maintained. Please use lodash _.get or optional chaining for the same behavior."},"0.0.6":{"name":"safe-obj","description":"Underscore helpers to make object accessors safe","version":"0.0.6","author":{"name":"Andrew Nichols","email":"anichols@manta.com"},"repository":{"type":"git","url":"git://github.com/tandrewnichols/safe-obj.git"},"homepage":"https://github.com/tandrewnichols/safe-obj","bugs":{"url":"https://github.com/tandrewnichols/safe-obj/issues"},"license":"MIT","scripts":{"test":"mocha test","watch":"mocha test -w -R min --suppress-stack"},"dependencies":{},"devDependencies":{"coffee-script":"1.6.1","underscore":"1.5.2","mocha":"git://github.com/tandrewnichols/mocha.git#suppress-stack","mocha-given":"0.0.18","should":"3.1.3"},"keywords":["underscore","helpers","safety","autovivification"],"main":"./safe.js","engines":{"node":">=0.10.0"},"_id":"safe-obj@0.0.6","dist":{"shasum":"db5fd7e1dc4a3676aec66de46da7fb4a8630c280","tarball":"https://registry.npmjs.org/safe-obj/-/safe-obj-0.0.6.tgz","integrity":"sha512-mYu33l3hTyDig7tl6BbvuW2PfVW+HX7+N4f4m9uIL57kE3UtK+eQ78HJIwXG0gvPm4z4OJ3WH0wsUgKbDa+VrA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVFhwGj3vzy2T3uLUvl75l9ltaVfOtwFE8hzaUDtWojgIhAKJUeOH4c4dOwXVk8GE7iRtsC4FR1SUIlNktUuVAuWAS"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},"maintainers":[{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"}],"directories":{},"deprecated":"This package is no longer necessary or maintained. Please use lodash _.get or optional chaining for the same behavior."},"0.0.7":{"name":"safe-obj","description":"Underscore helpers to make object accessors safe","version":"0.0.7","author":{"name":"Andrew Nichols","email":"anichols@manta.com"},"repository":{"type":"git","url":"git://github.com/tandrewnichols/safe-obj.git"},"homepage":"https://github.com/tandrewnichols/safe-obj","bugs":{"url":"https://github.com/tandrewnichols/safe-obj/issues"},"license":"MIT","scripts":{"test":"mocha test","watch":"mocha test -w -R min --suppress-stack"},"dependencies":{},"devDependencies":{"coffee-script":"1.6.1","underscore":"1.5.2","mocha":"git://github.com/tandrewnichols/mocha.git#suppress-stack","mocha-given":"0.0.18","should":"3.1.3"},"keywords":["underscore","helpers","safety","autovivification"],"main":"./safe.js","engines":{"node":">=0.10.0"},"_id":"safe-obj@0.0.7","dist":{"shasum":"d87725a3adde2752a60165917798c7f280901a1b","tarball":"https://registry.npmjs.org/safe-obj/-/safe-obj-0.0.7.tgz","integrity":"sha512-Gj8W9km8gRjNcIlBPVdEJPQQ/aQ+bX77IhyJCwGVZpndB1WS9uEfvT7lNA15CuBWXeGGzbr1jYhcfJU01IOyqQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFoKiTJsfGGPyFKDmH67Re2McoEOYb45Q4u+VKRPvJxiAiB/3omvxnr5/fkIGEYCyfNfiHobDHRZXPyBNX5x8i4Hyw=="}]},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},"maintainers":[{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"}],"directories":{},"deprecated":"This package is no longer necessary or maintained. Please use lodash _.get or optional chaining for the same behavior."},"0.0.8":{"name":"safe-obj","description":"Underscore helpers to make object accessors safe","version":"0.0.8","author":{"name":"mantacode","email":"code@manta.com","url":"www.manta.com"},"contributors":[{"name":"Andrew Nichols","email":"tandrewnichols@gmail.com"},{"name":"Rob Zakrzewski","email":"rzakrzewski@manta.com"}],"repository":{"type":"git","url":"git://github.com/tandrewnichols/safe-obj.git"},"homepage":"https://github.com/mantacode/safe-obj","bugs":{"url":"https://github.com/mantacode/safe-obj/issues"},"license":"MIT","scripts":{"test":"mocha test","watch":"mocha test -w -R min --suppress-stack"},"dependencies":{},"devDependencies":{"coffee-script":"~1.7.1","underscore":"~1.6.0","mocha":"git://github.com/tandrewnichols/mocha.git#suppress-stack","mocha-given":"~0.0.18","should":"~3.1.3"},"keywords":["underscore","helpers","safety","autovivification"],"main":"./safe.js","engines":{"node":">=0.8.0"},"_id":"safe-obj@0.0.8","_shasum":"96b456fc32f05fdc5a4ae0fc199d9ab3298219f2","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},"maintainers":[{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},{"name":"mantacode","email":"code@manta.com"}],"dist":{"shasum":"96b456fc32f05fdc5a4ae0fc199d9ab3298219f2","tarball":"https://registry.npmjs.org/safe-obj/-/safe-obj-0.0.8.tgz","integrity":"sha512-/ogFhfwV3YAvwbBcEw2z5Fi/bZ3oWOPG3n8mjzXvIzFjQbE+3aPJv/AFMQ7F3f+gO9U23E5u4BDW0v9Y8Ye2xg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9bl0xfvBoyEdsZyWXy8SNa79EJ1X+2AZ+sU9bFB4hSgIhAJUhjv5cvT5gCZW/eh0G/kG7gxBa5SXb4mPkXEr5t0q8"}]},"directories":{},"deprecated":"This package is no longer necessary or maintained. Please use lodash _.get or optional chaining for the same behavior."},"0.1.0":{"name":"safe-obj","description":"Underscore helpers to make object accessors safe","version":"0.1.0","author":{"name":"mantacode","email":"code@manta.com","url":"www.manta.com"},"contributors":[{"name":"Andrew Nichols","email":"tandrewnichols@gmail.com"},{"name":"Rob Zakrzewski","email":"rzakrzewski@manta.com"}],"repository":{"type":"git","url":"git://github.com/tandrewnichols/safe-obj.git"},"homepage":"https://github.com/mantacode/safe-obj","bugs":{"url":"https://github.com/mantacode/safe-obj/issues"},"license":"MIT","scripts":{"test":"mocha test","watch":"mocha test -w -R min --suppress-stack"},"dependencies":{},"devDependencies":{"coffee-script":"~1.7.1","underscore":"~1.6.0","mocha":"git://github.com/tandrewnichols/mocha.git#suppress-stack","mocha-given":"~0.0.18","indeed":"~1.0.1"},"keywords":["underscore","helpers","safety","autovivification"],"main":"./safe.js","engines":{"node":">=0.8.0"},"_id":"safe-obj@0.1.0","_shasum":"40e98af5f958c235fca2b52534e6645f0f9e0d8c","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},"maintainers":[{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},{"name":"mantacode","email":"code@manta.com"}],"dist":{"shasum":"40e98af5f958c235fca2b52534e6645f0f9e0d8c","tarball":"https://registry.npmjs.org/safe-obj/-/safe-obj-0.1.0.tgz","integrity":"sha512-uERHMw1zh8sz2TlmGt3yis0Sz5rtZMwtQgVaoKek7bAO0lezZJzWNpAvclYLI9T25ccoJpCL+d+kqfnl6Z7ezg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICXYPNsAoln6kKTSA16leiapft3pk+QZfxlwVZjomigPAiEApMbaWMDXplLKktDOQITwgYeQL/r+aPQMmJzaITEMnHc="}]},"directories":{},"deprecated":"This package is no longer necessary or maintained. Please use lodash _.get or optional chaining for the same behavior."},"0.1.1":{"name":"safe-obj","description":"Underscore helpers to make object accessors safe","version":"0.1.1","author":{"name":"mantacode","email":"code@manta.com","url":"www.manta.com"},"contributors":[{"name":"Andrew Nichols","email":"anichols@manta.com"},{"name":"Rob Zakrzewski","email":"rzakrzewski@manta.com"}],"repository":{"type":"git","url":"git://github.com/tandrewnichols/safe-obj.git"},"homepage":"https://github.com/mantacode/safe-obj","bugs":{"url":"https://github.com/mantacode/safe-obj/issues"},"license":"MIT","scripts":{"test":"mocha test","watch":"mocha test -w -R min --suppress-stack"},"dependencies":{},"devDependencies":{"coffee-script":"~1.7.1","underscore":"~1.6.0","mocha":"git://github.com/tandrewnichols/mocha.git#suppress-stack","mocha-given":"~0.0.18","indeed":"~1.0.1"},"keywords":["underscore","helpers","safety","autovivification"],"main":"./safe.js","engines":{"node":">=0.8.0"},"_id":"safe-obj@0.1.1","_shasum":"670f98801ab3d15dddac88cdd18752d0afa2e26d","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},"maintainers":[{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},{"name":"mantacode","email":"code@manta.com"}],"dist":{"shasum":"670f98801ab3d15dddac88cdd18752d0afa2e26d","tarball":"https://registry.npmjs.org/safe-obj/-/safe-obj-0.1.1.tgz","integrity":"sha512-eq3KRzovcaxdhw8WpJvdY9P0MUdmA+Z4NoFG/Na2ouOLZPEAifRbievnxKemf7r6y6EAAnYV3ZJcRjKIK7VnxA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAcx0We4h5YV5y0qLHxJYDSrxJ/COV+R55dc4X/iCaddAiEA6QSdVU3w0wOC5zwejnM911m51qka2fzJDI14KGhPh8c="}]},"directories":{},"deprecated":"This package is no longer necessary or maintained. Please use lodash _.get or optional chaining for the same behavior."},"0.1.2":{"name":"safe-obj","description":"Underscore helpers to make object accessors safe","version":"0.1.2","author":{"name":"mantacode","email":"code@manta.com","url":"www.manta.com"},"contributors":[{"name":"Andrew Nichols","email":"anichols@manta.com"},{"name":"Rob Zakrzewski","email":"rzakrzewski@manta.com"}],"repository":{"type":"git","url":"git://github.com/tandrewnichols/safe-obj.git"},"homepage":"https://github.com/mantacode/safe-obj","bugs":{"url":"https://github.com/mantacode/safe-obj/issues"},"license":"MIT","scripts":{"test":"mocha test","watch":"mocha test -w -R min --suppress-stack"},"dependencies":{},"devDependencies":{"coffee-script":"~1.7.1","underscore":"~1.6.0","mocha":"git://github.com/tandrewnichols/mocha.git#suppress-stack","mocha-given":"~0.0.18","indeed":"~1.0.1"},"keywords":["underscore","helpers","safety","autovivification"],"main":"./safe.js","engines":{"node":">=0.8.0"},"gitHead":"ad3f035af01fac2e99402b3641dbbea3473ad6fa","_id":"safe-obj@0.1.2","_shasum":"bd057d15e0a74b9397f64ab6e3ea9e2838bd875b","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},"maintainers":[{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},{"name":"mantacode","email":"code@manta.com"}],"dist":{"shasum":"bd057d15e0a74b9397f64ab6e3ea9e2838bd875b","tarball":"https://registry.npmjs.org/safe-obj/-/safe-obj-0.1.2.tgz","integrity":"sha512-eE2pFuCQKnzbo37/tkzRCRwJORjbeygtJJvd3+gEi/mFhVg0d34qGmcoDKfWM1mAFoqDhXIjy5yXcUqbqEl6Lg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHbWBMQAdHuzY8MD9qtrPB857q/PnXmRdQXeRmcZKRKkAiEAkRg+KDb3hNM+BkD4HlBIH4CUwt50SYJq68IR+cmuy6o="}]},"directories":{},"deprecated":"This package is no longer necessary or maintained. Please use lodash _.get or optional chaining for the same behavior."},"0.1.3":{"name":"safe-obj","description":"Underscore helpers to make object accessors safe","version":"0.1.3","author":{"name":"mantacode","email":"code@manta.com","url":"www.manta.com"},"contributors":[{"name":"Andrew Nichols","email":"anichols@manta.com"},{"name":"Rob Zakrzewski","email":"rzakrzewski@manta.com"}],"repository":{"type":"git","url":"git://github.com/tandrewnichols/safe-obj.git"},"homepage":"https://github.com/mantacode/safe-obj","bugs":{"url":"https://github.com/mantacode/safe-obj/issues"},"license":"MIT","scripts":{"test":"grunt","watch":"mocha test -w -R min --suppress-stack"},"dependencies":{},"devDependencies":{"coffee-script":"~1.7.1","grunt":"^0.4.5","grunt-contrib-jshint":"^0.10.0","grunt-mocha-cov":"^0.3.0","grunt-mocha-test":"^0.11.0","indeed":"~1.0.1","jshint-stylish":"^0.4.0","mocha":"git://github.com/tandrewnichols/mocha.git#suppress-stack","mocha-given":"git://github.com/tandrewnichols/mocha-given.git","task-master":"^1.0.4","underscore":"~1.6.0"},"keywords":["underscore","helpers","safety","autovivification"],"main":"./lib/index.js","engines":{"node":">=0.8.0"},"config":{"blanket":{"pattern":["safe-obj/lib"]}},"_id":"safe-obj@0.1.3","_shasum":"91cc7fc8db317f0e4851fd12e00ec0ef5e8bfa08","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},"maintainers":[{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},{"name":"mantacode","email":"code@manta.com"}],"dist":{"shasum":"91cc7fc8db317f0e4851fd12e00ec0ef5e8bfa08","tarball":"https://registry.npmjs.org/safe-obj/-/safe-obj-0.1.3.tgz","integrity":"sha512-Nd1vYJy0TMPDM4dURSh9MZExlqSrE0Lu4kpgc0t2iknKLl3hqb31iNKeWPvOkRRRzNWngK/HxlUSLjPguiwjTw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8cNGZXz4WpCGOsdQkhIWw4nvUT0PGPjHKpa0Ytg/RrQIgO+uVRHL6oK3L3wGObaF4RkmeffmyerBhd8dN434iIX8="}]},"directories":{},"deprecated":"This package is no longer necessary or maintained. Please use lodash _.get or optional chaining for the same behavior."},"0.1.4":{"name":"safe-obj","description":"Underscore helpers to make object accessors safe","version":"0.1.4","author":{"name":"mantacode","email":"code@manta.com","url":"www.manta.com"},"contributors":[{"name":"Andrew Nichols","email":"anichols@manta.com"},{"name":"Rob Zakrzewski","email":"rzakrzewski@manta.com"}],"repository":{"type":"git","url":"git://github.com/tandrewnichols/safe-obj.git"},"homepage":"https://github.com/mantacode/safe-obj","bugs":{"url":"https://github.com/mantacode/safe-obj/issues"},"license":"MIT","scripts":{"test":"grunt","watch":"mocha test -w -R min --suppress-stack"},"dependencies":{},"devDependencies":{"coffee-script":"~1.7.1","grunt":"^0.4.5","grunt-contrib-jshint":"^0.10.0","grunt-mocha-cov":"^0.3.0","grunt-mocha-test":"^0.11.0","indeed":"~1.0.1","jshint-stylish":"^0.4.0","mocha":"git://github.com/tandrewnichols/mocha.git#suppress-stack","mocha-given":"git://github.com/tandrewnichols/mocha-given.git","task-master":"^1.0.4","underscore":"~1.6.0"},"keywords":["underscore","helpers","safety","autovivification"],"main":"./lib/index.js","engines":{"node":">=0.8.0"},"config":{"blanket":{"pattern":["safe-obj/lib"]}},"_id":"safe-obj@0.1.4","_shasum":"73349383d1ff48dbd3f491f2105d38c87d2f0b0c","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},"maintainers":[{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},{"name":"mantacode","email":"code@manta.com"}],"dist":{"shasum":"73349383d1ff48dbd3f491f2105d38c87d2f0b0c","tarball":"https://registry.npmjs.org/safe-obj/-/safe-obj-0.1.4.tgz","integrity":"sha512-qYMeyok1e8pc2OIJBPT2dXxq+He8MQZd2GRQ9RjIDSgNtfP6EM7pN1M/JIJ6mYBEs7tzEcW5ZwF4s4lfX/jW3g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEp1yJpjDCBA7QQI/x6OP714fESKmezrm3xzAukeS2MyAiEArkQcNht+heCNNdCjUlEshBaseG0KqqdCeWFLdmRbb3o="}]},"directories":{},"deprecated":"This package is no longer necessary or maintained. Please use lodash _.get or optional chaining for the same behavior."},"1.0.0":{"name":"safe-obj","description":"Underscore helpers to make object accessors safe","version":"1.0.0","author":{"name":"mantacode","email":"code@manta.com","url":"www.manta.com"},"contributors":[{"name":"Andrew Nichols","email":"anichols@manta.com"},{"name":"Rob Zakrzewski","email":"rzakrzewski@manta.com"}],"repository":{"type":"git","url":"git://github.com/tandrewnichols/safe-obj.git"},"homepage":"https://github.com/mantacode/safe-obj","bugs":{"url":"https://github.com/mantacode/safe-obj/issues"},"license":"MIT","scripts":{"test":"grunt","prepublish":"grunt uglify:dist","publish":"if echo $USERNAME | grep -cq 'anichols'; then publisher run; fi"},"dependencies":{},"devDependencies":{"coffee-script":"~1.7.1","expect.js":"^0.3.1","grunt":"^0.4.5","grunt-contrib-clean":"^0.6.0","grunt-contrib-jshint":"^0.10.0","grunt-contrib-testem":"^0.5.16","grunt-contrib-uglify":"^0.6.0","grunt-mocha-cov":"^0.3.0","grunt-mocha-test":"^0.11.0","indeed":"~1.0.1","jshint-stylish":"^0.4.0","lodash":"^2.4.1","mocha":"git://github.com/tandrewnichols/mocha.git#suppress-stack","mocha-given":"git://github.com/tandrewnichols/mocha-given.git","task-master":"^1.0.4","underscore":"~1.6.0"},"keywords":["underscore","helpers","safety","autovivification"],"main":"./lib/index.js","engines":{"node":">=0.8.0"},"config":{"blanket":{"pattern":["safe-obj/lib"]}},"_id":"safe-obj@1.0.0","_shasum":"621f09349aff0c38108e4165024b0be8b5c3e510","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},"maintainers":[{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},{"name":"mantacode","email":"code@manta.com"}],"dist":{"shasum":"621f09349aff0c38108e4165024b0be8b5c3e510","tarball":"https://registry.npmjs.org/safe-obj/-/safe-obj-1.0.0.tgz","integrity":"sha512-TQqd7vWPPfXlekiANBYqSH6T1PztPbF8FTt7rlZRurrpE+N03IBvelPdjbI1zCHtQWiDOBTUFLybIrJItMbbiw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGcLpANfUnlhptwDd3zjHssSt7ZEdC5oN5ynXlUIwv2gIhAIt99qJuRumg/oK1MThYUwD18+FfJyQdZf6jpP5Y8Eyz"}]},"directories":{},"deprecated":"This package is no longer necessary or maintained. Please use lodash _.get or optional chaining for the same behavior."},"1.0.1":{"name":"safe-obj","description":"Underscore helpers to make object accessors safe","version":"1.0.1","author":{"name":"mantacode","email":"code@manta.com","url":"www.manta.com"},"contributors":[{"name":"Andrew Nichols","email":"anichols@manta.com"},{"name":"Rob Zakrzewski","email":"rzakrzewski@manta.com"}],"repository":{"type":"git","url":"git://github.com/tandrewnichols/safe-obj.git"},"homepage":"https://github.com/mantacode/safe-obj","bugs":{"url":"https://github.com/mantacode/safe-obj/issues"},"license":"MIT","scripts":{"test":"grunt","prepublish":"grunt uglify:dist","publish":"if echo $USERNAME | grep -cq 'anichols'; then publisher run; fi"},"dependencies":{},"devDependencies":{"coffee-script":"~1.7.1","expect.js":"^0.3.1","grunt":"^0.4.5","grunt-contrib-clean":"^0.6.0","grunt-contrib-jshint":"^0.10.0","grunt-contrib-testem":"^0.5.16","grunt-contrib-uglify":"^0.6.0","grunt-mocha-cov":"^0.3.0","grunt-mocha-test":"^0.11.0","grunt-travis-matrix":"0.0.4","indeed":"~1.0.1","jshint-stylish":"^0.4.0","lodash":"^2.4.1","mocha":"git://github.com/tandrewnichols/mocha.git#suppress-stack","mocha-given":"git://github.com/tandrewnichols/mocha-given.git","task-master":"^1.0.4","underscore":"~1.6.0"},"keywords":["underscore","helpers","safety","autovivification"],"main":"./lib/index.js","engines":{"node":">=0.8.0"},"config":{"blanket":{"pattern":["safe-obj/lib"]}},"_id":"safe-obj@1.0.1","_shasum":"1344b6a93c6046e9699f3129143c2707fb803574","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},"maintainers":[{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},{"name":"mantacode","email":"code@manta.com"}],"dist":{"shasum":"1344b6a93c6046e9699f3129143c2707fb803574","tarball":"https://registry.npmjs.org/safe-obj/-/safe-obj-1.0.1.tgz","integrity":"sha512-dJFLaH1qzuYOsRtcSR+82zpsJivx+bowao0Dn0CCFUQ+gapv8MAWzOPvLd5JTncJftCWsOpSnLcz98hAFDufNA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGrchra02M4NgkfQcfoIVi+2zuSxEhXROwP7EodJp2rrAiEAnmhLcVntzAexI2fkd5UXaNmu8z/47X/jHYShoZIwbKc="}]},"directories":{},"deprecated":"This package is no longer necessary or maintained. Please use lodash _.get or optional chaining for the same behavior."},"1.0.2":{"name":"safe-obj","description":"Underscore helpers to make object accessors safe","version":"1.0.2","author":{"name":"mantacode","email":"code@manta.com","url":"www.manta.com"},"contributors":[{"name":"Andrew Nichols","email":"anichols@manta.com"},{"name":"Rob Zakrzewski","email":"rzakrzewski@manta.com"}],"repository":{"type":"git","url":"git://github.com/tandrewnichols/safe-obj.git"},"homepage":"https://github.com/mantacode/safe-obj","bugs":{"url":"https://github.com/mantacode/safe-obj/issues"},"license":"MIT","scripts":{"test":"grunt","prepublish":"grunt prepublish","publish":"if echo $USERNAME | grep -cq 'anichols'; then publisher run; fi"},"dependencies":{},"devDependencies":{"coffee-script":"~1.7.1","expect.js":"^0.3.1","grunt":"^0.4.5","grunt-contrib-clean":"^0.6.0","grunt-contrib-copy":"^0.6.0","grunt-contrib-jshint":"^0.10.0","grunt-contrib-testem":"^0.5.16","grunt-contrib-uglify":"^0.6.0","grunt-mocha-cov":"^0.3.0","grunt-mocha-test":"^0.11.0","grunt-travis-matrix":"0.0.4","indeed":"~1.0.1","jshint-stylish":"^0.4.0","lodash":"^2.4.1","mocha":"git://github.com/tandrewnichols/mocha.git#suppress-stack","mocha-given":"git://github.com/tandrewnichols/mocha-given.git","task-master":"^1.0.4","underscore":"~1.6.0"},"keywords":["underscore","helpers","safety","autovivification"],"main":"./lib/index.js","engines":{"node":">=0.8.0"},"config":{"blanket":{"pattern":["safe-obj/lib"]}},"_id":"safe-obj@1.0.2","_shasum":"a8b2f017651c3d972a9931dc6fe9fce96f6465d2","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},"maintainers":[{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"},{"name":"mantacode","email":"code@manta.com"}],"dist":{"shasum":"a8b2f017651c3d972a9931dc6fe9fce96f6465d2","tarball":"https://registry.npmjs.org/safe-obj/-/safe-obj-1.0.2.tgz","integrity":"sha512-kloAwLAHyneADQFp57UxxqnGpveVay+ST/N8Vn6r4OraC63exfUcu5QCvZSWyxmHozjOscECYVpvsZslk5V+Jw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhmauwJM4rioIshvgAo7RpoMqR72j86/J23i4j71d0jwIhAO68vtAObE/CLD987p1lGg/ee5Hy2dM1+1wox8e544ee"}]},"directories":{},"deprecated":"This package is no longer necessary or maintained. Please use lodash _.get or optional chaining for the same behavior."}},"readme":"[![Build Status](https://travis-ci.org/mantacode/safe-obj.png)](https://travis-ci.org/mantacode/safe-obj) [![downloads](http://img.shields.io/npm/dm/safe-obj.svg)](https://npmjs.org/package/safe-obj) [![npm](http://img.shields.io/npm/v/safe-obj.svg)](https://npmjs.org/package/safe-obj) [![Test Coverage](https://codeclimate.com/github/mantacode/safe-obj/badges/coverage.svg)](https://codeclimate.com/github/mantacode/safe-obj) [![Code Climate](https://codeclimate.com/github/mantacode/safe-obj/badges/gpa.svg)](https://codeclimate.com/github/mantacode/safe-obj) [![dependencies](https://david-dm.org/mantacode/safe-obj.png)](https://david-dm.org/mantacode/safe-obj)\n\n[![NPM info](https://nodei.co/npm/safe-obj.png?downloads=true)](https://nodei.co/npm/safe-obj.png?downloads=true)\n\n# Safe-obj\n\nUnderscore helpers to make object accessors safe\n\nI came (partly) from a Perl background where you could say `$obj->{thing}->{another_thing}->{more_things}`, and it would not blow up even if $obj was totally empty. Similarly, you could say `$obj->{thing}->{foo} = 'bar'`, even if $obj had no property called 'thing'. I don't miss everything about Perl, but I do miss that. In javascript, you'd have to say:\n\n```javascript\nif (obj && obj.thing && obj.thing.another_thing && obj.thing.another_thing.more_things) {\n  // I want to die a little bit\n}\n```\n\nSo this module is basically auto-vivification for javascript.\n\n## Install\n\n`npm install safe-obj --save`\n\n## Usage\n\n### Server\n\nAs of v1.0.0, this module works with both lodash and underscore, though it requires using `_.safe(obj, path)` with lodash since `_(obj).safe(path)` triggers lodash's chaining.\n\n`safe-obj` exports an object that can be mixed into underscore/lodash like this:\n\n```javascript\n_.mixin(require('safe-obj'));\n```\n\nthat let's you access object properties with wild abandon.\n\n### Client\n\nAdditionally, as of v1.0.0, it works on the client side. If `window._` is defined (i.e. lodash or underscore has been loaded), `_.safe` will add an `_safe` property to it, which you can mix in with `_.mixin(_._safe)`.\n\nOn the client, just include the script after underscore or lodash:\n\n```html\n<script src=\"/underscore.js\"></script>\n<script src=\"path/to/safe-obj/dist/safe.js\"></script>\n```\n\nand then mix it in:\n\n```html\n<script>\n  (function() {\n    _.mixin(_._safe);\n  })();\n</script>\n```\n\n## API\n\n### Safe\n\nLet's you access object properties (and array indices too!) regardless of whether they exist. If, at any point, a property returns `undefined` (where calling another object accessor would blow up), `safe` immediately just returns `undefined` (or a default, if you provide one).\n\n```javascript\nvar obj = {}\n\n// returns undefined\nvar innerProp = _(obj).safe('foo.bar.baz.0.hello.world'); \n\n// returns [] - useful if you want to call array methods but don't want to check the type\nvar anotherProp = _(obj).safe('a.brave.new.world', []); \n```\n\n### Expand\n\nLet's you assign to any arbitrarily deep and non-existent property on an object. Any non-existent properties are expanded into objects.\n\n```javascript\nvar obj = {}\n\n_(obj).expand('foo.bar.baz', 'hello world');\n\n// obj now equals: {\n//   foo: {\n//     bar: {\n//       baz: 'hello world'\n//     }\n//   }\n// }\n```\n\nExpand is likely to be finnicky (at the moment) with expanding arrays. It's untested, and my guess is that it will create object properties with numbers. Something like\n\n```javascript\nproperty: {\n  0: {\n    // more stuff\n  }\n}\n```\n\nI'd like to make that work more as expected in a future release, but for now, don't expect it to work.\n\n### Ensure\n\nSets a path to a given value unless that path already has a value. Also allows an optional list of \"disallowed\" values.\n\n```javascript\nvar obj = {\n  foo: {\n    bar: 'baz'\n  }\n};\n\n// This will have no effect on obj since 'foo.bar' already has a value\n_(obj).ensure('foo.bar', 'a default value');\n\nobj = {\n  foo: {}\n};\n\n// This will set obj.foo equal to { bar: 'a default value' }\n_(obj).ensure('foo.bar', 'a default value');\n\nobj = {\n  foo: {\n    bar: 'nope'\n  }\n};\n\n// This says don't allow 'nope' as a value of foo.bar, thus it will use the default\n_(obj).ensure('foo.bar', [ 'nope' ], 'a default value');\n```\n\n### AllOf\n\nUses `safe` to return `true` if all the paths exist in the object or `false` if any is missing.\n\n```javascript\nvar obj = {\n  foo: {\n    bar: 'baz'\n  }\n};\n\n_(obj).allOf('foo.bar', 'hello.world'); // returns false\n\n// or\n// _(obj).allOf(['foo.bar', 'hello.world']);\n```\n\n### AnyOf\n\nLike `allOf` but returns `true` if any of the paths exist.\n\n```javascript\nvar obj = {\n  foo: {\n    bar: 'baz'\n  }\n};\n\n_(obj).anyOf('foo.bar', 'hello.world'); // returns true\n```\n\n### NoneOf\n\nLike `allOf` and `anyOf` but only returns true when none of the paths exist.\n\n```javascript\nvar obj = {\n  foo: {\n    bar: 'baz'\n  }\n};\n\n_(obj).noneOf('foo.bar', 'hello.world'); // returns false\n```\n","maintainers":[{"name":"mantacode","email":"code@manta.com"},{"name":"tandrewnichols","email":"tandrewnichols@gmail.com"}],"time":{"modified":"2022-06-26T15:19:49.701Z","created":"2014-03-04T02:03:00.426Z","0.0.1":"2014-03-04T02:03:00.426Z","0.0.2":"2014-03-04T02:35:42.598Z","0.0.3":"2014-03-05T02:24:11.996Z","0.0.4":"2014-03-05T02:43:36.715Z","0.0.5":"2014-03-08T01:28:55.939Z","0.0.6":"2014-03-17T03:11:50.345Z","0.0.7":"2014-03-21T17:16:18.251Z","0.0.8":"2014-07-03T19:21:47.875Z","0.1.0":"2014-07-03T19:36:18.278Z","0.1.1":"2014-07-03T19:40:59.892Z","0.1.2":"2014-08-12T11:51:58.882Z","0.1.3":"2014-08-25T03:58:46.629Z","0.1.4":"2014-08-25T04:02:37.705Z","1.0.0":"2014-09-19T20:50:56.256Z","1.0.1":"2014-09-20T02:29:03.548Z","1.0.2":"2014-09-29T03:03:13.406Z"},"homepage":"https://github.com/mantacode/safe-obj","keywords":["underscore","helpers","safety","autovivification"],"repository":{"type":"git","url":"git://github.com/tandrewnichols/safe-obj.git"},"author":{"name":"mantacode","email":"code@manta.com","url":"www.manta.com"},"bugs":{"url":"https://github.com/mantacode/safe-obj/issues"},"license":"MIT","readmeFilename":"README.md","users":{"sprjrx":true,"nromano":true},"contributors":[{"name":"Andrew Nichols","email":"anichols@manta.com"},{"name":"Rob Zakrzewski","email":"rzakrzewski@manta.com"}]}