{"_id":"@aofl/object-utils","_rev":"151-6f789b68e855e44f23cbac4c64315e6c","name":"@aofl/object-utils","dist-tags":{"next":"2.1.0-alpha.10","next-alpha":"3.0.0-alpha.12","beta":"3.5.0-beta.22","alpha":"4.0.0-alpha.45","latest":"3.14.1"},"versions":{"1.0.0":{"name":"@aofl/object-utils","version":"1.0.0","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"ISC","_id":"@aofl/object-utils@1.0.0","maintainers":[{"name":"ariankhosravi","email":"arian@arin.io"}],"dist":{"shasum":"5bd76561c1e697e17b173bc3ba76fe3eb0c9a1a5","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.0.0.tgz","integrity":"sha512-JjJg3lgYGv4IAArPlGoA1QQe/rzhfYbz8+p6wN7a250GQ4DSOCsa+UcAVyThK+zDUSG7MFOq6/gTeadeATOJkg==","signatures":[{"sig":"MEYCIQC45nJoP/5xkSb0PaiQIrVyyjPuEbGT90gunVjkwVdLwQIhAPrnfRE3Ufa+kgiAsEtFZn9ypnvEmjL3rFr57qQBRiUc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git@gitlab.aofl.com:CoreJS/aofl-os.git","type":"git"},"_npmVersion":"5.5.1","description":"","directories":{},"_nodeVersion":"8.9.0","_npmOperationalInternal":{"tmp":"tmp/object-utils-1.0.0.tgz_1516927782766_0.8782275642734021","host":"s3://npm-registry-packages"}},"1.0.0-beta.1":{"name":"@aofl/object-utils","version":"1.0.0-beta.1","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"ISC","_id":"@aofl/object-utils@1.0.0-beta.1","maintainers":[{"name":"sergolius","email":"sergolius@gmail.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"dist":{"shasum":"8544c97d79880165061be2516c45a86fd7943875","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.0.0-beta.1.tgz","integrity":"sha512-/5y+vcLOcKxg2eAcRT+vZ1Yru9ZBh2Dek+7KkWm6CMy+MU+/xhdtT1bRdEWOp4w59dcKt6f9YVJIla7dvrBuCw==","signatures":[{"sig":"MEQCICCTVc3UvR6DgMVMZsu4sHIUK8bcZzL0pUYFQrt4pgiKAiA6+Hkmu5Rc82vovJUjIfHrWonRgcMeDWlaa1UGHCIoCQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git@gitlab.aofl.com:CoreJS/aofl-os.git","type":"git"},"_npmVersion":"5.5.1","description":"","directories":{},"_nodeVersion":"8.9.0","_npmOperationalInternal":{"tmp":"tmp/object-utils-1.0.0-beta.1.tgz_1517447433915_0.7041730957571417","host":"s3://npm-registry-packages"}},"1.0.0-beta.2":{"name":"@aofl/object-utils","version":"1.0.0-beta.2","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"ISC","_id":"@aofl/object-utils@1.0.0-beta.2","maintainers":[{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"},{"name":"sergolius","email":"sergolius@gmail.com"}],"dist":{"shasum":"c7d2380bf0c87a499aa56ded9dc09e7a422795b2","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.0.0-beta.2.tgz","fileCount":2,"integrity":"sha512-4VPjA0iSEIMCCZYSkFxN3DWgIEh4qfBye4779LTnikjLeHMikDqFKrMyEHJmtVTmesT67dhwG1ksWmdOUqKkZg==","signatures":[{"sig":"MEUCIC72UA42Ct7ar20xheYeXcPNErmoxx6bdnB7hV7YOnh+AiEAgyKCJMPMsi0+HQ5lOIowZj/N/igzbD40ZR98jabgMiQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1153},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git@gitlab.aofl.com:CoreJS/aofl-os.git","type":"git"},"_npmVersion":"5.5.1","description":"","directories":{},"_nodeVersion":"8.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/object-utils_1.0.0-beta.2_1518465491876_0.9124363829043023","host":"s3://npm-registry-packages"}},"1.0.0-beta.20":{"name":"@aofl/object-utils","version":"1.0.0-beta.20","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"ISC","_id":"@aofl/object-utils@1.0.0-beta.20","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"dist":{"shasum":"09d0351f72c6db42878de233d05dd8664641212f","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.0.0-beta.20.tgz","fileCount":2,"integrity":"sha512-1RQuXqH/xpyvsFIINEXxrqsxp6rCr69uCsj2pfEZ7IOolNKg/JxsFGunlKgRZH2JGkhG9Nktblw4iUVkZfYbyw==","signatures":[{"sig":"MEUCIQCAzXb9d4DdxQZzAveTCKEhTHThjQs00fNb3bbl9spwlAIgZAa2DP2TkRW3cqMOSyE5XLaMdLpH2yzo+W2C+iEKOuI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1154,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbV8CBCRA9TVsSAnZWagAAUwwQAJd/mJKvH/iOpP4Kx6ud\n6U1lzrolB9InNH706+sSia59hD+zt3cS71BcGc3lKBD8TrWf9ksEVwryy08O\nuIUxY94O2OwL42xhxdGzcV7XDq/EWafiVzuS7ruQhEnxLY+HXnaZlQRA/P9k\nwyRynExQlReqpWDnZCYGo7/+V+FpgfHaUf7dBOa0SHYlWWqE1wH9sSqER7HI\nHdD8oKXhEqoi3skzWt5sjwZ/yuEO2txRN7MHt36VWmBsz/SakYPxLmQxGMP1\nASLhXNHb/Dgj9ZftaFFTchmXIlw8uaX+SWvQmG2Mvh0ATSK3DhejG/muiGmU\nPXj5PecQ53lqGtyOkf1C5ckmF573s9ZUd08Ae3mLRaEi2WAP2yMU75psGJB2\np10fXvA892l8AhRUOEmQnGCXWOeiEJMnGtCuBcGgWGweL2PBjUdL9mnv2tZX\nNCQ3nL+Ev4WNGqcHzTfnRe/I9VXF35T+YGPdoLJpETv4iAc5hNIO4NMlLoOh\nbkidpfmMsDvDDX3LyuotTPQvfBhsmOl23+pz3yJ9TO9gpdvTbjo/HY9a4Zjd\n63sBaMvRYmlrHyqSbDpnKPAyi9IyiKWysyUHEi7FuVd+Z/OnY7pJkllG99So\njSKfAwS5OLY2MkBoetXpAwuGMqkayvbmEdCq+8DBspChT0w3zC61KqW0yY5/\nvbmA\r\n=JaqA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"ERROR: No README data found!","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git@gitlab.aofl.com:CoreJS/aofl-os.git","type":"git"},"_npmVersion":"6.2.0","description":"","directories":{},"_nodeVersion":"8.11.3","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/object-utils_1.0.0-beta.20_1532477569239_0.2548683087826651","host":"s3://npm-registry-packages"}},"1.0.0-beta.21":{"name":"@aofl/object-utils","version":"1.0.0-beta.21","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@1.0.0-beta.21","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"dist":{"shasum":"351e9208c10a6a2fca9b6178c20cf78fa969ed02","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.0.0-beta.21.tgz","fileCount":2,"integrity":"sha512-rT+MEvGRw6O7X5oth/5DESiPOZs6gfnYZgzalvLr439fWwlKrRuAdC0FyzpbTNtBa9X62XvUZkGv5kKSyCkeyg==","signatures":[{"sig":"MEQCIBJNk0McWuMC4t0hEMktdZKw0Z1tmDlyPQPTVXn45ULMAiBcGZdCjDBR+YWjytnIFk2wn3Im96xiH2UEYYNGcrpg2w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1154,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbZqmqCRA9TVsSAnZWagAA58QP/2Ix60IR+zGtHw3TJfOP\n/Um6jAJ2VApCsn2LYl+H+GxjYxuHb3Dkpf9HnLRvDsfkHF/Af5A3B4HQk3wI\nnPnldV2KUdVEuKVprKmNUD62uYXr5gOlvhsa1wxjA4WdPNGkQ7h/Io9yCqJB\nDZ5vPvSSuonvm6Nj1kKtSC9fgyo1/pM9CdlQ/FSpXlF/3afQNl/ILa3C2lRK\nCGfC3g4sxGHIUgvP7ylA8STrK9MHvbtkzdy4Bjfm07+NxciQx+hs1V9bLA1X\n498yf4BDA8td/1a7hk9ERJMe8GDSrPWocAB+LZf1K5EhLZs7QWeevmgdjJhG\nGJT9cSGNAkIpnv+J4ps7m4bJwtDGyWXGJM/SQYePjhJnfUEMiTuBxBDLYdn2\nHhXw2kxtzQRAoKglVJqMC3sv7kTXE/woZCajwKqyeptCyHfrIKTne3nq6PIV\nRepljlR2k0CLpAyecXnPH1IdC4SYyvo5lH01zy5Yh91FoYLqDkq+GLl60te4\nG7Rtiqgck9uQ1tbD/grk5fBvEVvDeD4JC11K/2b5oh2A4WbQF1ogEfELO25y\nfPCl8BD7fqm3CzGIKjhtjm167RIeQaX1jI4iN/jW6/a8PjoONx9aGZs9E/Cc\ns2FOq0dUxaMqogUDuB1//lvLaZZmof3EKFdPtautSKoFiQnWfj2Eeue3mUlS\nUnYl\r\n=ILJh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"ERROR: No README data found!","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git@gitlab.aofl.com:CoreJS/aofl-os.git","type":"git"},"_npmVersion":"6.2.0","description":"","directories":{},"_nodeVersion":"8.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/object-utils_1.0.0-beta.21_1533454762081_0.6766891730935602","host":"s3://npm-registry-packages"}},"1.0.0-beta.22":{"name":"@aofl/object-utils","version":"1.0.0-beta.22","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@1.0.0-beta.22","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"dist":{"shasum":"db9d0c89f7a3762c7f4056be5f03b540c2c085a1","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.0.0-beta.22.tgz","fileCount":2,"integrity":"sha512-gy6jSyzbOwfVqgWDfbG9EzlCNEhz7986l7UBNsQp5dtbIayWLPv10ZRXreYRUdCOtZweb3pCPuAo3AqtBYUO9A==","signatures":[{"sig":"MEYCIQCEcd+1kV1huRZXONCrX8G93V3HTRaJTSivhW0wInA70AIhAOvFYZyeOoyi32nMFYDovTFhGxcft40vrc42rq+jVRz0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1154,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbbeZ9CRA9TVsSAnZWagAAkmEP/2+yvGG8wGeY1mgytta9\nTRKtQTNSTa17tVaZG0tDHbUs1LsG8dSNdfY4yP8j4Xh//OsFLEgBSYYhLY0k\nAZwY15am8LhcyHo6vV7oLWL2jKlgYP6fp/bK5FDxiNau7uJSCfcNNpQJU67P\nsi3df47pZpNiHxzAi/5fXwacmZgYxWyQ14uy4ww2dX/ksgUAoSuDnh/qb9Su\n0IpXP/DNELmMBIA0kARLjCK1ZPWpqwioEznjqCwu4w+41Un42hkna+akl8MQ\nE4EmqfQaEOIu0qZX7pgy7MGsrsZniN0ddWcUcDwhekc5MHcKzD9P9iWxqByH\n9zdA/+W1ojWD5ceCVfE03S3s7szthfjrWlL0EYSU/qsqrb/2ecE4eQIUQJmU\n9+i9gPALc0CirgBLLcYekXngj3SvsV8Bgmjk0Zwl7wNFMGvwkWfZMZ2QArYV\n/pCmNFidjvTkSqEg6RQ84zsLayokJAU5UXh+Y6DBDB+jjhEKHRe6aNO1aGv6\nAh50XKasXMy/9OGuEImlkU1JXNWRdQFMKyoxfmB5w292rb+g2yAR1bWP3V70\nMMC8e73LPnAC2aXOO7K+MMUC4zsh6Xt+QA4RUOuI7RrHZpmM0wYq0UcNire8\n8rUNrCdR+2ceqHfm9YHlq7r9bmBwYwvDukQDz6Ee/JA5vOtfs+ri2kG+5J+k\nSgA5\r\n=sL+I\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"ERROR: No README data found!","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git@gitlab.aofl.com:CoreJS/aofl-os.git","type":"git"},"_npmVersion":"6.2.0","description":"","directories":{},"_nodeVersion":"8.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/object-utils_1.0.0-beta.22_1533929084837_0.4420295404227155","host":"s3://npm-registry-packages"}},"1.0.0-beta.23":{"name":"@aofl/object-utils","version":"1.0.0-beta.23","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@1.0.0-beta.23","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"dist":{"shasum":"f5442058cbb71f2412be510dfd09ed92bf94b202","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.0.0-beta.23.tgz","fileCount":2,"integrity":"sha512-+uzRZwVl6Cbp0RYumpUoB3MdDd3EoC9en3PSmm3qaMHiLhhTOnsW5RNGAdkvQdcFGzI4td75FJY44Gro5AA6vw==","signatures":[{"sig":"MEYCIQDpZTkDUAMg+r3iQz4VEZjqW/MYHdpnNmcweD+lomlyuAIhAKLmvQnrxJa23VzEDYX5NxMi6Yztk/VeLuJh7Ft0l3tr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1154,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbde53CRA9TVsSAnZWagAAwJsP/0d48aOEZMb4X8FmiRWX\nNUvxE9m2Vejoj4tpEz+91/bOXjFaBM1ffFC/7Uh5wrsRA7gXxZppdVzjRTEJ\n4mi9ivOwYG9AQALh9GlYgkrLuKuWjjb8eGjgTqPeQ8umT2fuoHLMvSNx26i/\nvDXBPchT4dZcqWsnEXTnJdyb0Za12oXv22rQEN/TPQu7NeDr56LzERams6/9\ntBUtx+WQdS2C94JhLwf0rjeMSNrbCDl1c7v66qq1pGH0C3y/XxkvzxFaSGUv\nAKXyxF7ED4hKMXTqSlbRzk1EhGY2Tlc+aro8FVmqdb/I7e2OyRvvQkw7XezP\nN+vQOcpilJ2anVZaFBGaSXisrYpKM3+g6mK1K+P5hSZeuev9N1MUjy36RXVw\nkZN4Y751jX/Ny1YwI1N00tnH036Yxd9+ZysxMS+feY1S1zOHmXWyGjblUmyc\nC2HcOqbcGDkX5XbKu28w2NXU7rGKEcvpXnjTyiZRjif3sEZEORhCxOvs31it\nF27ZY7P6vFoabjry3R2aMC3k+wuQjLNvuYEirlkM4k97Al6VOVix+KRoW5NT\n4bVTq6tYQPUgq33I60AivlW9wh4q+4iSmKo6lFcrGK2QFnW2VHXHkLkR90nc\nHbUEcnjMlbb+ngIrWozAhQasto8c7EEDU8Be1IIv4sodozZM201Uz0J8Qmvt\nshxM\r\n=K/hb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"ERROR: No README data found!","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git@gitlab.aofl.com:CoreJS/aofl-os.git","type":"git"},"_npmVersion":"6.2.0","description":"","directories":{},"_nodeVersion":"8.11.3","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/object-utils_1.0.0-beta.23_1534455415406_0.21507988926619026","host":"s3://npm-registry-packages"}},"1.0.0-beta.24":{"name":"@aofl/object-utils","version":"1.0.0-beta.24","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@1.0.0-beta.24","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"dist":{"shasum":"bfed5effb07400d83e9eec07996eb88d6f2b5c14","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.0.0-beta.24.tgz","fileCount":2,"integrity":"sha512-a6W761RicE8Z45wF2Tb1Ytx5krgbYe/nL8ULZisN2D+ZGVkt2ZPtkZ9fMueEydRt0siA8ibt2mLBcE5nu/4k6w==","signatures":[{"sig":"MEUCIQC/kshThbVeqqS4mdkQ7JCWTiGFLnjnjivf0wW6X0M32wIgPdAWjgS/8Gc1ztl5O+MfqbUhIyl3AKbHtFvJCTVmx/Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1154,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfeRnCRA9TVsSAnZWagAAEaoP/AwS64LQNN7kIPU8hqht\ne8ZUWlPWRSoV/GjRLL6BhCiWP3njp/6NtD8ceZe2GyHJmRDF/M46LSu+3tAw\n3hTtcmhWBUpi5GN5mcgzIvhsRJOyeQmtApVcGz2Av2upqiNGDxeO+yo9GQ33\nF/LFa09hfAiEFZcCI6XhxQMVCoUrPH5rnkk2JOLinMpLBxsrAH+l9aLgtV+V\ncDdT280RltuWX7RNKz/N+LoJc5wRIWpDsYFLDYQ8aZ6ruhdLPlKUceoDNmNe\nKzSe/SuH1oumy4cDunfQuNw1h5C6T+z4s5HaV7pKRCCfYyFfGzVLBmT1PVar\nR/MS9nGwe99scfhVWqUqrRC8VGbuvKn92b31OuGXoEgyjUHelIYIyprNlbOj\nhKCxNLGfgPUBsR+rcNMXoSNMESUTrIkLH+2ECCceJOln4+jDPqUNmJ8TAG6k\nN+25qmGmzj536A2RNjf5mPBRJQa6CAlZtfbdRIz49vmKOOWnA1wjTFdnKmJl\nVwbyjKe4xZi+9hrTZ02Ph0yTyiCypsMv+4xb7vbQrhb73HHzaOtbT1k80YTQ\nSJ5ZtGCwNrja5pGNRy0u8dZ0xG2tfmJUXcreS8kHyxMfaurdkMhKV4CZ89eN\nxpsg9SlAqirgGtRJk2IpmgS343yTHSfrdZvaB92VRDrzk6jKQ8PqHnMuNtkO\n61OZ\r\n=9f6c\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"ERROR: No README data found!","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git@gitlab.aofl.com:CoreJS/aofl-os.git","type":"git"},"_npmVersion":"6.4.0","description":"","directories":{},"_nodeVersion":"8.11.3","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/object-utils_1.0.0-beta.24_1534977127137_0.5257912006935421","host":"s3://npm-registry-packages"}},"1.0.0-beta.25":{"name":"@aofl/object-utils","version":"1.0.0-beta.25","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@1.0.0-beta.25","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"dist":{"shasum":"d8b05c831b49c872a33f399c3d1cb64ef61a64a3","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.0.0-beta.25.tgz","fileCount":2,"integrity":"sha512-fkQnRGH4adWoLugrvatFvIEPDZavdvUqoIna5crrnIrdsk+c9Gtmj09ak7oAnqswwdqGdzLPBWF8XAj2e1CpbA==","signatures":[{"sig":"MEYCIQCRCO2G/9OoYOEneumfgax0iE6haYk3r1SfwQmaR7pBiAIhAJ97usZ7zoutq/FWOub3WszLRXBUrMfgdmIOoSpn31+m","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1154,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfwrECRA9TVsSAnZWagAAwZUQAJk2pZfXSur5Jvg9iIzM\nJ6snUFDo6mGRk3Q+zlDmYRvoUnZUcItYfcLLvA/JfquHcqRtdXuwVTjqCz5F\nIRvgsBGw/bUzv9zivc8ThPVB/nArd/zlc/6F8GVZ1ssTy+haIjlgqK4R8+O2\n2n8nnOlPvk1WLap7iVEsi0Vks2gxpo8ODC2b6pSiCnRknt1BJDxjLvJhnJPB\niucLhcwjcW4UXDEM7EOxJ5YS8bzDYE0uWTUEkPNDb4Q8JXcaACqUASEUFezc\nY8vJAgEAHvfY7mdcEqlk+5trar4k9zuQKKnMzwzlz0FxsMqs6obmgs8oXBca\nArDA1PddVICKndcFiu8XR7qtRYhYhxs2xzc8K+d2BuusaT5zHc/ALBU6NmWB\neu6OixcxjNIZurkQHRZsyHbnO2WsSq030aF4aLxzWM3ugQsVJuFppGKzACfi\nJx7A1+SD4jWmPMDG5q2M6o65NJu6xQScK76+QXmoJtBKGZsBnXykAj43SnAM\n/5ZFaelGK2PyMGQ/qoZjJVhNE17UdvMafi3CM7GwoT8G7G9mHGBOGq2gaysi\n6tOcLZCmzB7WwowflHIKAwE6+mXD3eCqVwwqgGUPc2oLucUzwMrfitVcrzde\nl5qNFNawoi9uwBEBYunNx5qp7PMAG8L0mPiF/vJU1WtWuay2Oqvy5g6Gop1n\nC8M4\r\n=pTTa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"ERROR: No README data found!","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git@gitlab.aofl.com:CoreJS/aofl-os.git","type":"git"},"_npmVersion":"6.4.0","description":"","directories":{},"_nodeVersion":"8.11.3","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/object-utils_1.0.0-beta.25_1535052483795_0.7332284461076182","host":"s3://npm-registry-packages"}},"1.0.0-beta.26":{"name":"@aofl/object-utils","version":"1.0.0-beta.26","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@1.0.0-beta.26","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"50642dec4144990b6f62a8743f1dc8370d753a30","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.0.0-beta.26.tgz","fileCount":2,"integrity":"sha512-27pAydBrbQxUA23silzaJolqkGt8+ya1z/exhPqkeYnFrNhsqHg14pk6+BkNuGX6YTewLmTdT4OiYJMyRtUHrQ==","signatures":[{"sig":"MEQCIGlhgRiyoaVL0eMqqTEO/nXibQTHg4WHKtorNrkNrweGAiA8B2ZdZ9QVc0LKOr4/8GkvQ+2hIMI5p13tx0vXF3+ANg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1153,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbhED6CRA9TVsSAnZWagAAhkwQAJzGQp1O+9cBwslBy1jz\nAWV6mmy4EutxCX7D25gMtXlTLgSW8kcG+op/OLoccjTE/VCd5KmdiD/hrTl5\nol/8VhWSKQxYI4GfYYqErqKTadQSelRSWWqqBzVDamXesG9N7wq+Sv5SjuUb\nUCfBFh51VXY6XiaSfa9IsbXhFt7zGK/dh/gB+DXWAibi265y77piViwN7gAl\nX3sAEPclmd2zy+teIoKQWfMTid3+uE27zB9vWcxVd2YfSae1kRwbzr159tYl\nlmQYVRJI02Tgy/nOoib/SeVSBg25Ii9vaXSJnEP2SFdJMdBnjjbcJx1UugdV\ntiqtM3VfF/o2nns4Lx5gon8tw3b25weNuV9U3sKh/YuCloBuV8KM5QDEGjc9\nMaHQ3zKu9VwcatGKQYtYAndhMnXJlifRLoEmxKsRWDcsHZ9Ls85lp1MWdweK\nOu1q3vGm6Vi4GWKstnLREPqj3wroKD5sG2LwBtfXe5jNZbLJYCLLSs1EfrK1\nIqEEoMZWAnpw8RFQ5FNKa6ytaBrX5rPKkWyYSitDBbQhk6sx8LrlT6nAEHsG\n254hvhojgTjaEgit3ieP0UWz9seviR5vwd/c+3ckSI9n/RS/ETEtkmL+LdDk\nASvqnxsl3CbCA2uLaGH4DNX11jw74l7c3TQj/deSH539uj1ZpSwVsWAw9r8f\nuNjq\r\n=dMiv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"ERROR: No README data found!","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.0","description":"","directories":{},"_nodeVersion":"8.11.3","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/object-utils_1.0.0-beta.26_1535394042214_0.6968749178467009","host":"s3://npm-registry-packages"}},"1.0.0-beta.27":{"name":"@aofl/object-utils","version":"1.0.0-beta.27","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@1.0.0-beta.27","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"6d1f8da0af4e13dce9b8dc5cdba0f94e8b94bbd1","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.0.0-beta.27.tgz","fileCount":97,"integrity":"sha512-2YQF38JuZvSxEIwEgeItgCmMajeQ7buzHI12jxe+SQnFtCSFhIB0kzp9GiMt6erYiy3JfMWhF5eImKua0ePfyw==","signatures":[{"sig":"MEYCIQCVsG0y2VwzOjL3JheeffF/wRHVPzdqfp1zP0mH5kEslQIhAJoLN5KqDagwfsx6lXrErD0pjBtoX3es9ITpepUNE4aj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":413810,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbluh/CRA9TVsSAnZWagAA3hYP/im6v7HsDCnxx7qyZ/sV\n6G5M7m+5l3NSp8DQWZBl6oSJBWnVZ16DOQNALTb1cr8YBUDSNWRWtIl9uot/\nX7+uSxECGpajw61PQI6Jl3kbjuo1liXye4uvDW649INhEKBLkIx/81AkVwOn\nPid2cd1Lqlnq7z/tAzs9IdB8F4VhL3sHcuPIEkeHMe98JHuG+tUAV03FMSWM\nnDst1cDKqi8qvgDgWe2S+QRtNnNEx2ZHvflqKQ4YcWPLpOzEQItnndjnWSab\nkPFI/4Zw+mLSdp5xTMSqnZ/oWzs01v2Iz6giIBjhlDfAxgYG30Q/u8WjxrEW\nCBoePzu9LAHSLTvbhNndZDaTfLXl71S+8+iGetduC4JTPv7FbBccK2TIDen9\nI5zbThY303NiOtCOwAmcAh5G992UCTdGSIUkH1OD2fPW+pduJDEsTmHuB4c3\nGHci8efCwvfaqYpTbCnkcCiqS2UlMEaIzxB2dRxEiW+JA6kwbYcmbiCIV6Fc\ntRkS80rh8hkuDGbiU//3h716UXSgN96NyVem3IrldnSlWWPDVezholwjFCmC\nI0NmAaudafVLdHfU3DA4x2JDN4lV/NrTX8mAMZdU0w6Hy4Xgw2oNpbqkTnwZ\nGcjpjy0Loym0NKHbuUFv53iI/RTljz3webdyhPlx+RjS1m2IQQDSTT0TV7qZ\nsp3/\r\n=z50d\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.0","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.","directories":{},"_nodeVersion":"8.11.3","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/object-utils_1.0.0-beta.27_1536616575043_0.5706457844693962","host":"s3://npm-registry-packages"}},"1.0.0-beta.28":{"name":"@aofl/object-utils","version":"1.0.0-beta.28","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@1.0.0-beta.28","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"336fc37d5c9c07c52ea0a48b7a74ddd8563bd085","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.0.0-beta.28.tgz","fileCount":97,"integrity":"sha512-c5CKKhOVzSRr7grIdj+hgNkJiW1VoDs5TKKusbCe6C9gfBBGycBPbgAhsajGKD0TZp65bFyUsiYPHIqinUb+Zw==","signatures":[{"sig":"MEQCIC1ciMaYfxAGJHnS8TkS0QaJXi9f3NAPVj9obIy3yrYNAiAswVZnStZvCZyAKP0xji35eXB/i2gjXsGfG5uU8YYHlQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":413749,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbrXYOCRA9TVsSAnZWagAAsCUP/3236IiiKorc7AoYnrJH\nLvUuOL4Wu6QD7A7V2EeweaxxHFsm6iGygfvMZCSkjbGMC5cRytzOQudtl2/u\nmd9xEk2eFX9AJlSdKRku2Q42+cTXgV5QAaKOOabMicILeNKgFAHF66YffdAo\n+MC00dzzKnoVfLKvpPkm+DceG+xTx4aC0NELTy3bvFqDQ+WWTEAd/AridOvr\n8tEAE8Q4MnBF94hSj0+/e8YPgjt7vbpck7p5GunsHLzs/77myGf5PrWobxIl\nD4Z4WHqWyanM9QIvncHBE48FryFGb8g9wsn8R6UQnvT7yqnr7FBXrVWFe5OQ\nl5RKX4k9B9J+KvJAqVG7RWuWkaoTcIr9OvVQcGD+B//Hwc2olIntA7Trus7A\nWIx2+y+qL9TcRI1ZVEg2ZocNz7nU/jJSG4WtcXMLSL8eefcoYDyRytddB4/C\nwjBKvnl3siIaW/By6X+9qxJjMybmTM7qnuGVTcTwizhKc1uNdWhnnjr3pEu5\nb5NYAMqsTcnNuZ6SgUpNQ9o4fSYQNW98ZbYZakhThJ2xLPKnjQGAMDKTXr44\n8XBbeGK6Syfz3GacwEyKeKT/fExTH3544DtD6L48T4SBzhvt1qDBsqQWAKbV\nm3+UVQS6cHG2/hS2M9Of13sdxvLoM6WPC1DoN5Ft/TQEVuW81ZzjK7HkkyUj\nk4T9\r\n=ceY0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.","directories":{},"_nodeVersion":"8.12.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/object-utils_1.0.0-beta.28_1538094605443_0.7116368801350692","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@aofl/object-utils","version":"1.0.1","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@1.0.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"9149c75472f311b260b6488d1fa12db92020de90","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.0.1.tgz","fileCount":97,"integrity":"sha512-Qk0xUxX4kmFVdJcqfyelBnf6SEOeBLX8MwL8XKREMa2O73HCbLneT2w6vBBiqU5eqyd4cmeRUT75U/wzYA1naQ==","signatures":[{"sig":"MEUCIQCtjbe+Dkuj3nIz8+1w1TG1pOKwiRbi4+KyJdz3gE2oKAIgDyOIdNCUAgeDjODdcZ40sVFERM2pWT785IJom74p7bs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":413735,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbsASNCRA9TVsSAnZWagAATYgP/ArXN55Iiwl2H3e6Wsx1\nyCqtD6+Ynh5z1JdvPg2ktw3etEnpoDebjGPdDtQHzRrx1OGuKqycPfRlAs5P\nQczqW/DJ4bgJPkEdq71/j/He0S/kKvHb/4Aktt9tjKTSsBa3JETZZ+kXRFx8\nip9Kwktou6DiymunE/BxlTlKD7Gl4lnNO6cV4JZNkdAFMhKyr2LWng1Uzwvk\nW9+HSgvOCO1UcUXgj0yh8alI/ox/QeJPl270zDWKG9oIZVkRWu13iKpJEJU1\nXLU3c2af7fxe5WFlYaN+mQtWw9jsa/2/BIJ4edQv/N5YkYbNU1ZuAOT70Qpn\nxoRnFmKU+OmgjLpOsdEF1dRg6Lz9SdAOK0a60AYrciigau0VS6TIeUmXosdK\ne5Z69khZY6mc32uEcts5A2dfPUWkGO37Lqa/UVaO+lMhn5tDsd8i+iWQvbo2\n5MpbVgkQznwbAlJpZhfcb3KEHEYRQ5W+UfrbzJeagL9RKrOXsQgCILMdit/B\n1it44V0FWVdw9pntGN3MPzePmF0iBEYeWt/sdCdrwximTR1TSAAZemDrxZWj\n1xh/bRiOe4jkf3Wk/woemMJqzw4X/huqIRJ8MkncYNaEbVHK39cO+wGy4b1c\nV51MLGWZJbCbG3CjwreOI1n1g/GAeldKPfJaUsUvQmVajUYi1gUTQ/u+8ljO\n6Cd0\r\n=3PYa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.","directories":{},"_nodeVersion":"8.12.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/object-utils_1.0.1_1538262156994_0.8969112043767551","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@aofl/object-utils","version":"1.1.0","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@1.1.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"1d1ca6a29281428b584583553b08d858405c1e03","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.1.0.tgz","fileCount":7,"integrity":"sha512-k+LmQYi8pG5kD1so/gOkGAHGxZ9Fo9/QANXkqkg44l5NKa5q8S1b4LbwI2wOX8Y0yi0usgE45mwC5nDfY4sm6A==","signatures":[{"sig":"MEUCIGFy+NCacJ0lxI5OAX6/91cW2UNqPGJfoNK7Ht23uCWyAiEA4dmgogwXq+EgozEbOLoWp/eIipkTMYae8fVhhKUMvXw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7266,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbx7eBCRA9TVsSAnZWagAAOfUP/R2CXJhoADjCYOhCsINQ\nnQZpUO2Zr2P3Y/KLvVN1MMiyDUQi0cQIYRZNH0eDdWXWUTYBLmHJW3wrdi3E\nH5iXP4+S3UJc+q4lv2Wiky3jVahTmz5tG2R1l5OwtZDon+A1CE+1tc05ccFC\nnIcfIeFS4CBqMWJ0JN0kQ5/Hf/m+mspZZLy4WdQpZG5HrsbUqT44yD0QEkwN\nXy263GGX4aBW63k+oBLwfP/GyPj3edqi/XYfwiXPu2BDIygHqtmZrfN12WXr\nU/wz3jZ3VHxvscOpnAPw8F6OgpfF5ZTl6SKaVmNlQ9USIwZehYQVpL7l+3mf\nQmWE3Xzj7uGAHzJp8KYpfjVecRE2TmAs7bGd9JrFQnLcPHF04eeEVMk10WnX\nG3OhPW6M8DiID2UANDvV12ueD1cn+BV75yy03yAOLG85Qh2eM9h0IgT5Pixe\nOO2iLqAtpgOqUHBGWFMW5oc4wM5ZFSQjA1HqBdl7PHs+WGT4h9Imj+F15QB9\nwim5z08oSPJrsqQvZ9ODWC6h//GUd3y04fDyf1nW1EgJqgcxeHhg3w8YfESg\nlgiB8jr/JDI71kOgRuu2Wt2v5mL6NM0fLmLZWbDXTDZQJQdOEf3fQ89zfzO/\nRfikfYqs4gAqHOYbc+j0oludrUbx+JUsFObcJF7WI0662SX+KkDxoL5n9EtZ\nHKCc\r\n=+ztp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.","directories":{},"_nodeVersion":"8.12.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/object-utils_1.1.0_1539815296605_0.7549065509023181","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@aofl/object-utils","version":"1.1.1","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@1.1.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"7eb28e744975ad82605cb0d099f97891df1b1c40","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.1.1.tgz","fileCount":7,"integrity":"sha512-7TSdL1ikeXwqsiHVPV7Nbz0gBbFXg934ey8fdZ2FNzUZh6PNdLpAv6riUP9/mZo0fGFAvCm0flKjk4zfs1kGNQ==","signatures":[{"sig":"MEQCIF4Wd9vpUvUhLAnpgrM8WaG6B55qnKtiGK0ncQplN13yAiB2yJUzvGi7LlZRzERLVuJs7F6PuNhqQ8TTLzdJfUTCvA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7272,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb12DxCRA9TVsSAnZWagAAQDAP/2zvOLZtq0HEw9NEe1PY\nOF2NEltYevAEwcqPGwJF4k6OzwKrqAET5h4ltjfPYQBRQRe9gHGi2c0OsO46\ntfE2gUjI8scjyLrAh1OnTHEtx8PWD69g9/TZe6nPBXVrvqG8sRZlEyr6nOTi\n7OW2PsCSb7TtMduF7ht+o25QJ9B1svDPMoD2bl1X2KYBdWscMvm5t6UMT9V+\ngyMnwXpIwYEU6MY3/aNtrL+cpXCr9jsrN6JE1X598ntHNFMFRmIE2rEUX8WX\n3eb39GPs9XkoXzynHFFBi7pHcxK4YNJ3UnXraNLu8GD8tcN5naBjZIMhy5wg\ns9YiVGv/oGYcjM0B193ueZ9mkecWF+QOLZuRG1vT8Edu7mbj8gWRQ4yh7P7u\nl6KwBNnvPoV+0csoe4S7hVV1x3YfOd5yJqBc/Wq/I60+VK3z7NSivhEsD1lN\n/tTxByq+/yKKi4kA8ewErB33NC4j85KYRzjIDEOO2xikwM7O7YlG0hJJrzdo\nr8vWmeYtSP3eMdvrdvmlgyMzPLKW2ULl+1erTrbbIYjWkbk0E6vUIqVc3nqd\nn+d0oO8JcW5QGhv3P5hp0mXKRNIRpF3giZHE1dHKcQ9BB+zmqbdgxrBmvcoC\n85bEiE9mM85OUv8tOlLjiB66eQL8d0+okWxpyWhBryHQG1xyz6F2ezqnzbMY\nNUsV\r\n=YY2T\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.","directories":{},"_nodeVersion":"8.12.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/object-utils_1.1.1_1540841713129_0.5211634743683768","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"@aofl/object-utils","version":"1.1.2","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@1.1.2","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"767dabc24d402492a98c94af1f97147e42cec7f2","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.1.2.tgz","fileCount":7,"integrity":"sha512-cBigYQghqhVu2+2bHJvZXYTw3MPe2sLVjNAVIIq6rG8aPtY8dTW3pztU0h4697ph6Pjm/SUoYL5k8S39SvwjSw==","signatures":[{"sig":"MEUCIQDxg4lbm3wmLniJvBMTYWwWhhoc1L0O1pG4Ql7jzWvaZwIgXFmlbq5ZzabHRDWFZsINM56+0aR+600C/o+M4phI6Zk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7272,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb12D6CRA9TVsSAnZWagAA6LMP/31S+MukbgaWRWFgxn3R\nAa0Crq53fyuK6u6gOZyuqo2HBgkIYu5ZXHioRabjaXjAjcB4joFhX65wGtFB\nKYBneUBWAWSEhO/RhZbCrGYlceBYK8n5/oazobjwEF4X7rYDFzIxLu1iF5BV\nIFMW9Nfo6nsRGkJb13zbrfeSWey+SDpm4TmS47knkrdaoJyPlpHlToUhWYt8\ncKGWxueAT9Irnq/lT3VwMsl6LUOwXr+Hk8XZPCZQ+0QvB7EMlklOTk45VQ9y\nX+HG6Ya5XxPZOBfaAEOmD9Mi/4yrijMNmrctQ64d37otVTLmnH2SRTAuWXwy\nNiB5bd7qizSJqJwXc/O77nfidOEltGxKAHr3lBcXnTqt0EppKifc8guW2xLk\nXykGQfltl5KnFNq/2xPL2PneiwTPFQJsiZN46B9858TKsIYQWuUvzZNiolYO\nt4KIRJI+kdOrpDc6H7VvTzYUbyOJY9JRO58ZeupX7Swwi+3Gw39EWCqKy26d\nFjXzMgHbw4lgaEdJHPhtBJ7usZjYdGjURRRdqHHohhWUSU46M68SVQv6E93j\nYgpEUIBKxYCLNH0S9YJChvK0jEfWfuD1W5YmUrF7Hz/SoyemdGqcpnSoU7ln\nOrM0TWJUU2nMa94kb7OrW0LR5cCEvaVE3xgwamgzNvU8XGpe6UYCASWwfuqw\nURSZ\r\n=jdLG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.","directories":{},"_nodeVersion":"8.12.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/object-utils_1.1.2_1540841722258_0.4578924807311826","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@aofl/object-utils","version":"1.2.0","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@1.2.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"d0453977854165e1034952a95b50cf10281310cd","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.2.0.tgz","fileCount":7,"integrity":"sha512-EYIZN/U4zlVztQFe3fKMK43/EXWhkZRFsUXC2ha2KCI96XGA9P0jbZaOkIj2vMJcE0LwPYctSBd8hIA0zvRuvg==","signatures":[{"sig":"MEYCIQCk2MCE6AtyLZ4sMDaiHcwVb29cXIIk5VdAJzd9m6Jd5QIhAMI22IwWlUHn4pL0bM/PyP1LORECM2AAavaMS0IaCh+t","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7272,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb4f3nCRA9TVsSAnZWagAA6MUP/ignAdxcfALVXMkiihAy\nclMuEqhHtn+qZYn0+roS21KVh4axgXFzvTpbRJypsro14A3LmNINXnqxSMoh\nFnUrVGBwblW9LAp7F2iEVklPrC2yD1ftzwTgfNHL+H2Z1rc5OFKlW93kHle9\nASCAmHaXN0wOFLqxTPSl1GxM7LDEnViwCR9PqDXi6dT1c9f0luMoPO+9XTva\nlKAM4/pnNld2CNFr13vqq71IA8kuziHyaDr0VMbOI9kgduiFeqcSVA/YNt1W\nUiEHBefTC+jSVYnrhcPM6fLrqWg+KZ1SVegZ5Vp6nhO8EpYN3vPi6p6jio1J\n2ki3w3RALvdhbBLk5gqBAPdYPiC9ItZMgq7waTxQdZ9nL6FS6ugIciqRH3/S\neJl3kVOuwUXufGRVbO4K56g/wIUq/4EW7DeemStzm8pWBediyCTE/Dc6NQjZ\nreveT3A9y8Gud+lbBVej2yVw16AsaA+stixeJL4jW6vNWV8PIulvFLDR0Oh1\nf0NIjk+QhhAOy5Y0iyVpK8rDNO+6MrReJV3VF9LENkHebZW+4GZS1kRa9GAi\noQZgeVYqoY9O9AOnmcInLRa+4CLeVswPmTUQwuiIv83K13w8tj0fhNXxH/vL\n4FmA4/oz4a0bH6IJJsbEjc3GTU7Fi3JPYdn3xMd1GE4wpd3MRVKGPTmZ4ML3\ny/nq\r\n=7sif\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.","directories":{},"_nodeVersion":"8.12.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/object-utils_1.2.0_1541537255145_0.33835706241999963","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"@aofl/object-utils","version":"1.2.1","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@1.2.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"b46a43d5fda2f9141ee482af3d0d08f347f0a8e6","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.2.1.tgz","fileCount":7,"integrity":"sha512-G0sPCMmDiPnhTRhxkGL1BvMzRRCFwZF4+6VfyPMkgZKA8qIUcKOMhXIz7I4/16FeHHRoxtAjIJkxPGbSJvaySA==","signatures":[{"sig":"MEUCIHcWkHG5lQG4IKgcUSokkcAYuoagsAedx8UmTwwKLELQAiEAvwQ8tFV6BnSNJOxNA8MDmcVVK9bKIW2TxHOKsCTuweA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7608,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8dTaCRA9TVsSAnZWagAA+wkQAKBm9lXIjgmxQ81OLE5y\nXzhHRgiGEO+2r+aYV+Kylcp2xDLbkaSQs9PsbQ6MYYfl5yeuQNsk/LFI1tcb\nhfo87Fv7/7YJlRjjJzsSwa1AKIS/7irOdmFStaRrtW4lsoYluNn/edQ7/BL0\nH6NVVdU2eF9V3SFC2+h1c15qIvYLytQSf5sd/gCVRND6qTBsTVBFq0iywI1r\nHCbJpOepT2CBQ9sN2j6PNWXFcBIRg/SNhWwZTGtMTx9Ku2CMV8SsrU7diGK5\njvZY2fyfVeDUgAX8rbEk2BCGGSRvzNWqU03sJLnFmyKtecJG44nJ/+ZIIQ6F\nSDQVkeKTVXFjKPpGSNsTgFw1vNWQhgot8m3JPRAfJD8Mz1u1STeFp1bmhiRb\n5NjiKsqD6ZrVh7CGjedv54kMSNAbD6m/UWkx9b8qWJ33NjDuvPc8+IuwYtGw\nGivQNAvjrbnJQy97VbKjurNChef5eyGX9xG5z3+M0aNVu8v2REJe0x980Akm\nVNRQtAKWNyHe8Up/Cs3WALEO3MvaHN97l42gXuDXjSxQSFleYcbmPmn/WUHO\nEBIDuQHog2SPZnbbEyMq0jsrkfwbQEH5Bsa7619Rt/i+psgAfdNVFpj4aRiV\ndrKRdpTtump/Gwrwd0SWE4Ldpu/iI1evnxafkDRRlJY1DbHcEClPUXBdPsVP\nuBet\r\n=+mn9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/object-utils_1.2.1_1542575321529_0.034786479694592476","host":"s3://npm-registry-packages"}},"1.2.3":{"name":"@aofl/object-utils","version":"1.2.3","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@1.2.3","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"917e763b8e58733d29806180e60a7e0e941c3caf","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.2.3.tgz","fileCount":7,"integrity":"sha512-mX49Qj1E6+4n58uDb1z/ZG41BvzQ+ezcOpu81EkopEjrDl6JHY4QHEns5YpoS5dLOvxQyBQMFQHVeTqcsipEag==","signatures":[{"sig":"MEQCIEAMMmVIZux62NgPNUrgfi8Wd+O5uA2RFvafTL60cl+HAiAH9o/Sg5DKsRCJyAZFYDjpnEI7eFTAf1JvQubIwQKX9g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7608,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb9KMTCRA9TVsSAnZWagAA8xQP/j7/H7eLDUVJoEYT/fSC\n80s4PdW3Rpy69EilGZvvJznc7+Wlnns7rWg1peQ6i5Y6dY49hPYagg5inIzx\na6XLRGGyhwQUSs+sDzWr8jScGs1BkMB/2jvotRXQFagn/0vHkcsUTVORPLic\n+vFS90PVeYi2UycG8JcC67sxIia3Aylhp9IPw1ya/oxLAJEmRGI7EhD5J3hk\nyoTRvZFs8Tk/EYKMS23SYWSnWYLcttFm3HuCv5rqNGw+pomGcJGW1s7aaxzD\nHeXkwXT4t402m52G3mcCRqQOxJa/V/jjbZ45RCXvkwGdjTnMXrwN0LR0iqQe\nMJw4to0hcxmFx+ikJ38eIQmkFPX395HMPSWuRE2onIuLdiGhQXZS0lH38Lhb\nPQL3jKzGbQqebiSiJARwS6YqM2TkwXj7ZRUPDHkNv9pIsZF7VRsvcAp4RDgz\njr4V2vSqW4qzZVbE35AzPhsl9JElXUrg3xYODSpm56GNmY8CDPtYSf/JxYyQ\n0fRFz5VwjBC9F3beH2qqi81+diBj/KP5oFiPxq8orvvIBi2eoNnVHABAbPhd\nLTUthSGkwaw41lRECVvyIIgejdVGHa+cEmKVlDb1B/2W0N6KodBWjTJ45IF4\nphDBI8SgrQWa6esqpOt3HxpEfHJ4I7E5O1/VkdFU2EKpTU5SO+Dn5AeOa2qX\nS2RR\r\n=qpnJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/object-utils_1.2.3_1542759187146_0.5633930039969219","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@aofl/object-utils","version":"1.3.0","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@1.3.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"c190f70294b2ab4a3bbf04299132bccd729998dd","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.3.0.tgz","fileCount":7,"integrity":"sha512-rlJHdi5w0ycrr6aCuG7wCVlzIMPNd/A6Cn3SKu5g7qCYG53PlPGzoCliSNYejUHMePXH1bhAHRb6opkiVXkXoQ==","signatures":[{"sig":"MEUCIQDrsUt8p2jvRAsev42kdJDxZwQKkRFtI0/h0G2lGJj9MQIgQGOwiYfL3QmmuWIw2WmB0UvPO0VMQEwJX4shm1OFhic=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7608,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcCYyvCRA9TVsSAnZWagAApB0P/26Vsiqee5fR4TYJY/i+\nIB3lNySAYkd45BTgRsetunPw+KwY9sffpKPg5d/rTw544KDW3JTgy+XhY683\nlsoA2OYZfADRqfDwTQLBvdJhYqAjK7HUrojfYOEJGOc0DDuNN4u/4LvgMHI7\n5FfmGpdsjm8FstQ+ea3/Ib0AxckR/3eaSpOkI5VKFL0kxF8gB8NHxud7eBwE\na4x2/u/gJcMYFUysp50XNWceOSXx6vgNGzpZlkW1lsB9fkeOHOePz4sENXt6\nn659Xvt6woELm1TfZOJoKkNc4Y9XmwxHRWt4ZmjvzzzPC5kEAbICHrP34gGK\nE4+oN1BAQra+/Av5IcVFnQaHKDrbITj2Ib7YCJZ4razK/rO6G1OKHc52QDTJ\nrl00gHH4dXQZjdbTtpYRfImPXBdivI1Bqnp+iKkIHxehQb2oaUFyLFoX1d7Q\n9uqSop9bSOIfuY7mW2WPXwMPhrZxsecy37MCIC5s6w3pRwjg4qeMNQiRJeyn\naRNQDwGWyz2YzGp2Ttd1At/KCkNR660zmCotfIM4GkUSdg2venRA4t5aMT4Y\nVQ3uyRAFFcMrbS+wGKaKDCNTReGPq5Jv7xS8v6ylv1FNBjj+uD3B9PjDullM\nsSFQqXgrbsx/V5+J9qSZ3fCbye8ZJlbuhBRtPs5CbsE31Uj1Gw6mbWdPs9yq\nPILE\r\n=HaHS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/object-utils_1.3.0_1544129710542_0.3298208424158009","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"@aofl/object-utils","version":"1.4.0","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@1.4.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"daedb65ea6bcd4a1b351b331cdd949bf21bad2ea","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.4.0.tgz","fileCount":7,"integrity":"sha512-CQzUo3icHHtDnSrHePP0vzr9vwDOrQe9Jw8m35koKFiZKspZYSfAy6SeyKzr202fqrotQpv51dy49upHi9bBRA==","signatures":[{"sig":"MEYCIQDRLI8jYjOQ0MjHEwa8nc7/OaH381Uagcz2CVndWbbx9wIhANQhMhNaEdJeV74N19G6BZf/5uCbWtY+3OCtFgdpHSwA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7608,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcJYz1CRA9TVsSAnZWagAAMcsP/in2zh/hWUUNBsT1XSqn\n/Shy56i5xFnrUGPpy0+8JilbymnGFx0s/XOSqNaKRoiAt9KcJt0D1vUs81w0\nazfgfwcjaApGDvbRxzC9n5nBaAJ9dYAu5HEwIoFyV1aNY6vKIS0EDa/VufPe\noEq7X+G5BCPgvE1eAbHoMCGBRRq8150DIDJ+4aj5jr9+YO0WryT+vn+lKmRZ\nXTZ7JqKTdwbJEK0jNjkuR4G3diJFrhCyGjREjGC9FpuXNMSMbSH/RtFmOq+c\nsbInX0d5a/qahUYPjpOe8VrvgGOIljqlOIdII0Z3wPBrpXC0j0ez3/+9smzs\nM6VZslusY8HGn0MUHaRMP0eBVGeNsvIYLBgzrKUWrigc5UbFLpU4nFRKGBiz\neohrXNu1Peiku8fs7hLG4MrTNQjPmXhZIU7GXiY1wX4QMBrAe174RY8fWSgl\nVAQfqNf9F46fAzDgI4UygK7KdEu1C9wrnBqW+3utfmhpk66op8pGljtFrf31\naavQbOBVo+jRclbQSY9GR1sH0yIQY9p6HxNLXOsOGc4VctpjpJBmk5kMrfIJ\njj2SxoAOkXgIuofkGmE2BudeU1xlNiCR6rN0tcKkxZt6EdV/AoiDH+RKaQLu\njIYKC8AfcguFsPkA8hic3mM8J3dagpqfsEJfSqAOnXhAQ0lataIDC/qso2/E\nc4/h\r\n=GQyz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/object-utils_1.4.0_1545964789137_0.4892553399588808","host":"s3://npm-registry-packages"}},"1.4.1":{"name":"@aofl/object-utils","version":"1.4.1","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":"Arian Khosravi <arian.khosravi@aofl.com>","license":"MIT","_id":"@aofl/object-utils@1.4.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"contributors":["Daniel Belisle <daniel.belisle@aofl.com>","Micah Blu <micah.blu@aofl.com>"],"dist":{"shasum":"31cb1b595341b2bee180796ff2d756b3a0b3d1e9","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-1.4.1.tgz","fileCount":8,"integrity":"sha512-4HE0wWVr2B0ILhbjBMHf9afPv3U0auniJEfmulJ+dELwfGeXBAdB7blMiotIoOrTb6xmQN5qjQg3vvyIV6rVJQ==","signatures":[{"sig":"MEQCIBQey4jNcu0Z6m1nKrWMhtcciEEiO2X9qib3swH8hPS3AiBAEkcCrHvXeISnRuRfAzxBAQV4jivBJFZPeOI2tEWUxQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8746,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcM5toCRA9TVsSAnZWagAA2BEP/38vuMq5jWFoKY8U+TJF\n/Ih8r3Cwmw1+EfmPEESAwImf2LepvoL3urILLoNVzQkK4isTrCMlYuHMbuJc\nFcEB4AbRMBZWFwCX197CkrGzzGHp9PtGpszqKhXNjO7vb5nI2kIHNdD7kE8V\nORAqh+sZxHiItcgBiZtS8wu2nL9JXbb7iyV1pB8i4j+TRNKDCZ9EdsNxHtan\n8IBxsdUyHToOATSEWWy6cMxc0iKgos9UpYVcOAq5JRfNkygnJiJ+QZGyD6lA\n1WWkKswp0fNA/vTIwhc1aYKKnqSYasISgRbYMWfE3nHXp+sf02Vr+5/OahKc\nNcynxlfmXLEQpXECJk2f4AcKkA4aQtQBfJ6jhptPjCMoXjerD2TE24cPOBqD\naCD3atgTQWyHmCXjuoXlwOWQf7ScUa8EWsViQEbm9CBFX9ZSHxjLAWOiC2VG\n0GDaifkEXq0WhZQgSM5cVHaPAVWW/Sv1yVXMwm9bDiJlRQz9oDJRZ8FSqOHp\n6o+jKdWo+ebH+2RRT3TPvHF4HpJQTLQNbcHnP0El6zXetGh9Jcf/dyjIjbUc\nBULKEd38z0IVEmxkR97W3lbd0rjTFirs51znjHQ2/mBkI20IEuBo4kzfkIcG\nURgvgFdt3jHzM3Dar+RCvCTT+Bw3IMnAb4YQMm1qbepnSSZVVLFxp3o9kbkV\n7kEC\r\n=okLC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"60297b316858cd061ea1c221a7e04406b910ef38","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git@github.com:AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.8.0/node@v10.13.0+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/object-utils_1.4.1_1546885992319_0.09118056750837145","host":"s3://npm-registry-packages"}},"2.0.0-alpha.5":{"name":"@aofl/object-utils","version":"2.0.0-alpha.5","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@2.0.0-alpha.5","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"df2f89306034fe1fcceeb6d4e6aa207510d3e5ed","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-2.0.0-alpha.5.tgz","fileCount":8,"integrity":"sha512-Xs28K1SeZN4ilw2ZjCgKp8eacpe8cjjA4zzObTIJBLVqF51F4wNlJeU6ZO0TIKi9rfwcLKCjT58UHEhmvd+blg==","signatures":[{"sig":"MEQCIHkdpINGzmCRTkE+c4cyOlXi8o/8AyaiVhGGGL4Q43uuAiAiGM2KEEEOa1CJoEYgkunxp62N/Fa+Z75OjV4MSYKfAQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8753,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdciICRA9TVsSAnZWagAAXZYP/0xNzlNNbnexVnF0Y3uD\n/bO5HYfRcFLo8DC0v4WiBAKcZrNT0apTLYL9TJqdplATnxuZtKVDwg7x+W/E\nIoFGZkVXYwu6wHSMo3X8ziv2TtAMFjZXQk7RQm7yAC18zf2zPNDlNo5TaDPP\nKkot7Wts3bEt/Fc70l/J+qLWG/bN4rNqPIyU3KHvybNiW9AytlmESkvTBRjj\nf/qEssImLIzQk83N8hj5dP0c5kTMn0SbBZ4uaPPLOdD5HNzppFINfdd7DWKl\n4vopZn6px+avqIBHjmsZ2Lezu64qgcGWs2Yn2KmQUqBFgsMniluMKz/Y2+KU\nU2smKdl7fYclZ24BgR6Hzd9MqM8E7U0zOMLoSfffknq42CePVECODtMjOE+a\nFJtOYAXXYc2YnBnSynYKtBHl7mlEmUpTLRzFWs7oVtvR005S1WyOUgEdPZps\nqMGx+BAdjGJlpo1F2AilHKQYovKWfk+nLwVET8IZcKywrHPFBKi29W37z0WP\nzbP/J0+1qe1WdiQ7r/vjEtBfK/rMxNtq+jSfhzeSapl+m0J2Uk/eZJWn1xEs\nuDwAsKBct6kxHudJYufchxhYgI+kDZJPAgUqcIlfVdWj7n7wro9Y/hqEINnV\nueKf8jZLsjslS4eMY38YB9Vz0NhpaphRkTVLv4p+XyKGqEQg7QqJLjc2Umg9\ncZdp\r\n=t7Wx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","gitHead":"00d91514e0c953e8cd998150ed5705b87db20b39","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.10.7/node@v10.13.0+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.13.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/object-utils_2.0.0-alpha.5_1551222919923_0.24275063415439835","host":"s3://npm-registry-packages"}},"2.0.0-alpha.16":{"name":"@aofl/object-utils","version":"2.0.0-alpha.16","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@2.0.0-alpha.16","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"aa9ac5e3be1fa17105b0e0ea4b5736b35c773ab3","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-2.0.0-alpha.16.tgz","fileCount":8,"integrity":"sha512-UI2YO538W9f+HziT0xkWtfMlf6IXeROhvDBJeOnfAdUIv87LGriC08YCHLjzJc872P8eYbsfG2UyPDUPb86W/Q==","signatures":[{"sig":"MEUCIHmuX1kwyLI6x3xTHg/xIdhPMfKhn6Zl7dfgU026Tg67AiEA/sBI41UljZCIH81gYJHaQgeJ22RiRZpWSVHu/dX5F9U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8762,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwhEnCRA9TVsSAnZWagAA27AP/1zJl/GbxN7vAahC/FpL\nlgcuWoknKfewPg8dBCcqUALjAQD+yYkYBQVORrF+osBoAKrsYNGxHChMB7yS\nrn2QWlPbcoqixgjyl6xIeOGXZ2ceAcQs/YZAeOtgJ4TJX/mGCn1qPZvLX4FS\n10tEdE01N2CjUVJG2lCRGE3790/gYpTmgND91Q9hBQPEjQWpia7SWJvn8fGZ\nxpOaZbtyd3/bYIRqeFqTfKUJCpmI0IM34i3sRDrxaXQJd0wsylKp2y4RgjLl\nO9gRDr+k40qwXyY/7zpzWc/GJGkiCdo8PRY2noSEi18hnw5r1bkP/IRrSWkh\nM/7j3LOiDmvmVN2VQ5C5FG1MhQNzj0dXDAfseBMX+yLbimI6DgTCOt0PPhtT\nEV6UbSkeyy3iqQ3UXsRiE59+JxZDNNM2aZGRM+PFRdmhDVT8jY0wd5qWdBoJ\nhZ8xf+WkLQG0vbaS/WJGJH42Z+j7CmIqn5kHyY2twF3oZ166z7Jh2Wra4+YP\n5iP5t8PT1JrPvRLOWtK4kLWimvFhQSFkxMiwssWY1Noh64AJU228og4mztxE\nYcshKrPTuAkVaXbonoe4EBrPZgVcBGWBbHOZgv2S/7/g7sJd+qKSYdFcB88b\nPvcT2SJ/xL+Vk0ncNzyzbFAsEfdnyO0UyAnoF3XoiQcRg//b288OxLjnabhB\n9Z+q\r\n=+OVM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","gitHead":"0b6aa717a40d408713b5b981754243de8a8aeb55","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.10.7/node@v10.13.0+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.13.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/object-utils_2.0.0-alpha.16_1556222247097_0.4168179232701643","host":"s3://npm-registry-packages"}},"2.0.0-alpha.17":{"name":"@aofl/object-utils","version":"2.0.0-alpha.17","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@2.0.0-alpha.17","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"69afa6a4b549b34a7e0d363d68a0d59466ccaca8","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-2.0.0-alpha.17.tgz","fileCount":8,"integrity":"sha512-2HUpheACZCw5uz2AYSlVzFZQk4vOt9zMvpdzOLLh3N1DZCL4PvGgDtUaKZ3qF/i6MANy3Q2gOr73L/k1xEB5Mg==","signatures":[{"sig":"MEUCIH0rp+6quiAUcE41cNPl60Ocvstk17J8wfeCqCsHEYtTAiEA5oecBiBLEh3K4CEE+CKdFNb2AGryt16mdeRqyXSFA8M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8762,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcw0+GCRA9TVsSAnZWagAAnukP/Rwa5D6yinlMZHx3qhZC\nOuL/mhlV4GgMT+FOZ/AascgF8dP+cqaYwERNG5PtYbQf6B9vqkCjaVvlY2sW\n4dK0lp8VreTL57wx64QuyLQwA4NHfT9sPNWBNk8fp2DeZXY6k2U/iiFmpP3z\nQBmMYj7hH4ZHsnqF1E8BULEOEhBkTAGkftnrCs/MUBV6peeRHHdDPk7lhNvN\nq7xChhtw4Pcp4xlX7aTisICr9JKWvoEzHDIZoLD4tyxYaRVe1Ql1hXdnWcnx\nAFm6eMnjlph2kYAEyo45cMynN0q9IdE+F9CsN6K7CT3jG0+hvtqFIyqDsBNg\nx+ksf7gAv9il4Bbqc3qRTtXit28tbDLrRxuZc3AObhrAYi9OQboJC5E5MfiO\ndS7gV2+FX+5RFL6iTklE7P5/TYR1nak4saRUeBZzrLSx9tCxX22R4AIFq9g2\nhx6X0LVZULMMIx69plsNNBgl8jQW+xDjIqTMY35X7oNbj/lvRWyvlICa2GxE\nu6V1YIsxBGKkmeZ+uF2XtLeOSk31nSDUy2EiDlxn+fS9og/HcQwo3kEeQx4F\nmTkiJHCzv35q+oXTWFoufp50oKm4UH8jsqeqnTICRI1sRH2ky7K2cggFWUyF\nWi3sMcBilJb25Yp6IuZqcwnYU10JU06SVoilRpzNx2/vha3XIN23s4Gq4QOT\nVxR6\r\n=9+gJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","gitHead":"6a396437dcb380ba2269ac50a5b3b88e54f99027","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.10.7/node@v10.13.0+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.13.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/object-utils_2.0.0-alpha.17_1556303750249_0.8222801525694663","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@aofl/object-utils","version":"2.0.0","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@2.0.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"a9668c18d37f3f1ce6883263f37ab13e3b1ee0d9","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-2.0.0.tgz","fileCount":8,"integrity":"sha512-MZpFuQ7CyS36uJ/6BmYpsw6O/isPQJIunLvbrLGwF7Iz5olfV9bFwiFGvIQpktLNeZbrUVOI6f58KJKmunSRwg==","signatures":[{"sig":"MEUCIQDVxqMKmF9cNAkel5igVhIqWLtJxNPbQ5aNAxwLkBSSDwIgLEg2wDaoy451RI8M/thVOyzX9XcFBeEvL1CRy3lhilM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8753,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyKKfCRA9TVsSAnZWagAAT2wQAJAts39bohpVPil0TwEM\nRjMd4Ym7VDADX7Ld3y0jwYH3QN4kh6nzemtav+621kbC6qJ5qSjz3zgJJNsL\nIs4FEYMUhIuwS2Q6A2AFB7t4A4vxuAk1f0Q2al6tIk7AZePTRdRwvJ1N7mFK\n0pXZ+XFdRW27v/AqDk9XaKPL2qlh/4frYumHl4+XsHw2sh9ScZMit0b5SnWR\nCSTD29vSPW3bSx/0KhrXuErX4zU03Y9imM/5r1ySioEzxJhh17znYlV/r5lR\n2IIu5JQwvmnIymXjxE6/diKfHhahkJWr4Vwsm6A7X0A0LVT2Kq3Y4AWZT28o\nNIR5doB7aKBB8HEWSLNWPQGM7wRqnxKSn5l1G8zQZR4a2WklacizLQlp5pBP\nfgCEGFiMB1bcH0B8tEDMJp8AnugX5m1MerPqBaGsf9iIWYSKR+4dQpQOsjqH\nY2qjYsVJzEZnvXzePct3SAiMunrkMZsQ+xWmCJjLpTvJJOEoKjXPcjYY5syh\nX7MVxSYBNT3icaBUhdnW4s5raACzo7BTsx44eFKuzgU4WMK3+S6Jf0uS10iH\noEAq9p5nCX4ehE4n3XEf+yihArLJGDT0D5nucVNIFU0ivAS2GBbaiP8WhBJb\nT3UEb68VXxNg5DkuRic9MfH/oPlI9D2zXdt2a+/zgrB9lbfdnft0Au0Z6SzX\noG1D\r\n=Y6wz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"91b9b3074f7031a51ce7afa9b542ff5dcfd64997","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.10.7/node@v10.13.0+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/object-utils_2.0.0_1556652702930_0.6896309766029804","host":"s3://npm-registry-packages"}},"2.1.0-alpha.10":{"name":"@aofl/object-utils","version":"2.1.0-alpha.10","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@2.1.0-alpha.10","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"fb7ce742dddda51cb78fbbfdc6cb68ef3c95c25e","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-2.1.0-alpha.10.tgz","fileCount":13,"integrity":"sha512-ygqZZQOJt+LxFu567k0i038VGQmePyABhHkj4jWUDarnZAgHSFoVPuHP+ckMcXjxAt4QPsmn3piaQiPcUWWQ5A==","signatures":[{"sig":"MEUCIGawlRDbbQF8DE19QKsVWa1HEfk1Os+ZkItwD2erIhu7AiEAs/mEsHYvzwTE6LE9Iik4z8KX9YNxzTqtOUgsgXprJ2g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10936,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdW0y2CRA9TVsSAnZWagAAG9QQAIkna65tZbqZBDlHagHI\nLWhHSKxUSJ1JsH9lp1hZJrlfdaVQkFVL0eM+GS+x891oQcqY3+EL/y3ILGtR\nB5/RnW3KUKvWNfm2OF5W0RD/g9U6EeQdyDsB0+PM+k7RkckfTFtyNjvX6IXk\nG02XLIOCUdH1irD2ueSKvj2D0MRExwWe9dOtiGB9hETUHO2qMslQszW9rQL6\nj1X59dbUfcOkcffxZ1sT+M+XpARlTm4jS5kqhWDYDzIfv/ymmkq+8Z4KqXeV\n+yPbFrtKA0b8nm9R4rT3oX22WK8SkJ1oBf8kLxKVLPOCd0jJ+GYo+MctRjCO\nVeTQSsRbj0M2pUREMK/25RAb/H8GpdPpzSOOLT/uaGqDn5RPMngdyWNikVZQ\nFOwDPNlL2Idswe15kSN37KLNRKmx15Vt39nsiYEIoIX4K2EIl0ucC8pM5JbX\nZ6Dqg7ogP4d24msQVGq4sejMK0EalgKPtaZVP66duvtHx7+XMe7Pt78ev+GN\nSgGWqrNm0B0WkIP11MsQLEcIjV8KSAS8vNJR9SAM7zvSsSwJWC6tp2fiSzE7\nalM2h62fh1ByDbE3DKdypi6S+qLZ6n9mEPfCsS83MsilIC1uMF3oWcej0KUi\nNErCeHRiPwMfh1Z/flkse9gIcS71F8bGXpHzLmFi/Z/co+bNR4TQyzkGG8Gt\n3Nu0\r\n=CiHX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","gitHead":"338f4323924751e2aa0541a472b0f39524c94b64","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.10.7/node@v12.8.1+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.8.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/object-utils_2.1.0-alpha.10_1566264501853_0.09692576934178598","host":"s3://npm-registry-packages"}},"3.0.0-0":{"name":"@aofl/object-utils","version":"3.0.0-0","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"2aacf807d8a0ada72d425b58f14d03a349bb94cd","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-0.tgz","fileCount":13,"integrity":"sha512-2hwOgEwuyfT7nILWkeauNB5Zrm7QUIgF9akPxaUsFM74OB96Arl+v39I7fO4Ljj/EhBlOnqgDusyQXZSrT7vBA==","signatures":[{"sig":"MEUCIQDMPPS4ubqXtfq5k8Fkjm+J5NyFBeN+89BPUj9pRWiZKQIgfho5fCrXCcqbtEx/x7DO1FQlXaMnUUVUJcaXQaX+/Jg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10929,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdgG1xCRA9TVsSAnZWagAAn78P/1XRHGb2nuw75XXZqmLI\nOMZdWgIy39tCUu8FX0OCnSifzpg3BEeJqx2DQ3DR3kosRH9oEgwy2njI6mu4\nIn4erWeC5NkDWLfMXkxof+AFX+kN27P75/l84pDWLcrigrge5nXPs/V856aT\nOBPU5nEqrgaAaD8NyrYk0HvyKUcjnRjGgyu3pAG2U91PdznQnPi7Xb1dGEnj\n8RVSO8VfmYZnECuHTe385D7ja1ZtAY0SlEtiwytkkgy+QzDkwgqgkqNA0M94\nPpxaxklWvLnK72GgFdB3MeMyItO70GT/BIeHEAjUsS7YpijGyGNvVJVcP23v\nCclzGtu7kiXroUGI1tpPNpftohTSBFzeijfDwPQuH3waWSJm5CYVe7tIQ3Iz\npwQAFaV6fHTgD4k6wVlzAh4BKnUYrrnsk0h2C3eg1fy8l0PQ6BadnyOh8CiZ\nx/Y8jq5hX2qtZJhe/Wma8Gs8PDTn9cBHIawSBOUO9ZUxx4nWwjlQdGo3Dljk\ntlthIy0aKQZcLsOnYdwmfPLMkZvdbHFV+vtyNPur2tDMbCmiHxNk8kwDP5P9\n42ROj0ikFR1+BHC0H9B7YxEoETl9YA0Jjb6etFpwcf3j9bFhr3rPZdJq1P06\nqaK420DXUySgeX6QcfjTKF8BOVNmkDoTacF3ox7SQmH1kTyo0L4jr1H4c6UZ\n6L7n\r\n=JoGc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","gitHead":"68ed707a605f1a3cb02ab70ff9ed8a188867028c","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.15.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.15.3","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-0_1568697713006_0.2655647936903429","host":"s3://npm-registry-packages"}},"3.0.0-alpha.0":{"name":"@aofl/object-utils","version":"3.0.0-alpha.0","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-alpha.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"280ebe5946386297e3cadab07b4b345b13e168e4","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-alpha.0.tgz","fileCount":13,"integrity":"sha512-scklfNEZHaUkMV0LRT/Xlsu0ZGO+As1vqB8KO+i/m7grp6ILsomB3ONgiglddqgTyN781h8hD+LDyuWb4op+0Q==","signatures":[{"sig":"MEYCIQCZhGoyFAABTHd4XEMMAiFsvdxFJTKmW3EMnoICbMeCtwIhAP+esuI3qXXsSXMrhvijPjSO3fyWVrt6aDUgU/RIgdTP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10935,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdgG3qCRA9TVsSAnZWagAANFwQAIN32mu9PTf64RM0FBvn\n/y6s5wCwn0td3dMOYV66F15O8L3raatqbZarAa6LWhrO0apjzBQsm2h6k7kG\nLALjfuMPvz/f0NYcBILoR8iB0I4u2gTnvlG6FCooAjc5UvggunkP0mgfLUXC\nd7P/w0umNTOIk0En3UJ/8Xd4bT053F9LhS2Blv9zSMSXp0S8sNSU8B2+4s+v\n70Zo2JMXgG/tytIMtWJpiPaU00frGb0ghygxgvoasmfdLoSv8UZfpY+kBScD\nBjHIAn6vyfQUoBpcwSaXqYwKP7d3LPeEfo15pI7ECqwLraUFY2JVnf+jMOzI\n6X1TzuMnxyhgCHqAU0uE6iMkoGaR7Cns/GOUcRnyzf/2cDziAVfoim35AB87\nV/uZqdksIRCc9DrXv0ZCkmeNec/JKQHbZO6XqaX1fp126ln3VzWAHsV0Qw08\nLl2nwKDOy9WeT8GqYFnMjsNPTfzI/7w+gp2fx3tzGP3pXFpytJ0rGJulj1cz\nGrM/B7Z9sUsRDYAHf8Zx4oxeWdptfzv3jmLGZv19RDBaz+ExDpHXQ8fHvdrD\nARl0uJArUGNRrwqQ8f7RJ9hF4QVQxNa8bN9DITn0+UWQ1/vU63RsTR4wmSV4\nVCbF3XUXBYSwZE9x1SvqjIfqF0MaYQBLlG2OlJ3JrNZxR9mYK90m7RPQsQA9\nF19H\r\n=k42T\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","gitHead":"c6c4d16f33cbd321585e3e7c86b1aaaeeccd3627","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.15.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.15.3","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-alpha.0_1568697834060_0.8464792228578397","host":"s3://npm-registry-packages"}},"3.0.0-alpha.5":{"name":"@aofl/object-utils","version":"3.0.0-alpha.5","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-alpha.5","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"f0e67d1f3c8c38f5c53cadb86dab27a4cedfbc85","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-alpha.5.tgz","fileCount":13,"integrity":"sha512-yG6gn1eAHr5uiVzDU3WTk+nXlEvoKUQLcW3i/+CtUWM4tsPknc3s/MB0NX6quDc3TkFccCOQUFaeq2MrDWhTgQ==","signatures":[{"sig":"MEUCIGmt5xR/AwhjK/oXcJ5TSearbJk9vnHmkdUxd2ywwuWOAiEAwGPcfj32+sCtWUqQtWM6Ko/ptp4QDw0TRz3MT7MmWWE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10935,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhHKCCRA9TVsSAnZWagAA8lsP/iPDhiPKnl/LYM/7QP0U\nqjrACon/Rg6uGQtz2sXwSX/4IprJJyIWovT9Tlj5o2eXLAMQLva15h0aZGO4\nTvf5+ncqW96hpcOCDjMZGV5F2H5dZTP1vauGOVeijeujYHyLGunYMS1uXC4C\n8i+Nm/0dM5xI1+gxvJTpUQbmlM4/ypOF5F0M/1Mun7qO3XRQ29eDcc6Nz0Wg\nkxq2JEyRw9ohSkepbDhKc6KepWN3BwBBzFgjhYK6fcpKRrhtD9k8yqNu6IzQ\n7pZ5BMc0paMMAE3IPSdoNdz182t1o0xe15mP+NJ5c44VjGA6E3OUEw7fXH2y\n6B2Aotd9BSKNcJaa4qDCrWnknKVnG+41MCZrvXyOrwKMGyxxACX8fSC4tOWl\nyR8roKr5FlOm88k3nqpS3eNb7JWdH4r+FLMcaCWMeUQpY6p+POQUpZ1Nvr4v\nIPqEPKTeDXMZxIhCFP7m7ejmjIPKxGZkr50EYzterVZMhCOIHf1tq1R+p7X6\nGwyN7ZDpfsQL4OIYNpShpJ5qMd3X7ZgosKlUKeAQ4zcsAEQi1kZOAAjW/maB\nc9n7iu3m8PNHdlNW/0vV489A+KGW0da+4Ko7PL/kjhtx4cQqGiRaGZsHPOOy\nXFkJC+sFZr+tYSsWsdhVGjY+ha/OvE0wa2ApoiT3Qmq/os6SGTBkCYL0gmgZ\nCBv3\r\n=Q1Xm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","gitHead":"09f43882b317744481f4b6845b1cfae0461775d6","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-alpha.5_1568961153670_0.6063655931055292","host":"s3://npm-registry-packages"}},"3.0.0-alpha.11":{"name":"@aofl/object-utils","version":"3.0.0-alpha.11","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-alpha.11","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"84a4d3c62ffda7b83d26e3b9520c80e99e9414be","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-alpha.11.tgz","fileCount":13,"integrity":"sha512-Y6SMazO/5xrsGimgheyRCQDVpXC77PCLK69lunkeI+mob2MTpaNPP1DgmTnXT/mJA4EaV9Jj6KVjMq0sMaUlYQ==","signatures":[{"sig":"MEUCIQD6WOxl2OyLE3xKmqRbDUWOLP0rT83zrKj1fDS8wwqfsQIgeG5L2B6CEp69f/ORQtzeT593GwhmFIxCH9ZWdTtmgFI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10936,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdjbDwCRA9TVsSAnZWagAARFoP/3/mRIblPybhXtECOAgO\nN9ypF6eP3BZpkUltuJ1B4XPaSmev6kICyyHkWTsQyfZyDLyz4znKOLIy6UI4\n5Mi8ujCcU0qTUauwEELoh3ufBpELkteXV0+ueRKJUzWf4M5zaYXvnH4cunHM\nRJu3vYozD2GDNvwpIWNbUNcYurJiix2b+5JRNIzYKmxgQChx3upxfbS77YCS\nwRkQFPztzUCFVdcR4TIll+IJYsJI6evXV9nTq4Y5bZSfzsMohDrbXBDZ8kWH\nZE/t4tBY50ZY5sD8zxYD/7y8/X7uXLkwm6tjp2jh/XJR0L+BzQLTu/uovoJY\nkrTMBnA0Hnes3wbP764EwoDfuEV6ksxeMlbxAMnpmMoF1x9Gj83pwZyTNtc2\ntN5OM58/1vtCw9vhGUP7xhiVxSc3JE5Hn87O6boY/Nt0dUHcgPikMwOLD9Xn\nVIoSplHh7tinyCB8xA2kIKIOnc5g5Ij4s3/arV6zKvieYNRjLfGnZKEQ9UWX\nycmKz8k7b+EcIoXmxvyaSsbxEeQ7ir8K+XhqwQGOLKypLbBoiiPBQiDIoihx\na2lKJqIAKcFyh3V4HPT79FfrQ0aRTXIJsAWQhQb0H9WE0mRN91ibB60cGTdc\nuaXYTbhqZDCdmMQ3ls53F8ShI9ymcc7G1nOWdiKjWejBtokSddzoA9YGbJYq\n6ksl\r\n=FyIn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","gitHead":"ecdfe7e68c95cd3ce9eca2c86626275d1d4559fe","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-alpha.11_1569566959812_0.4118409512217658","host":"s3://npm-registry-packages"}},"3.0.0-beta.1":{"name":"@aofl/object-utils","version":"3.0.0-beta.1","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"f42ec18874cb31b3064f25e509c5233adb44b03e","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.1.tgz","fileCount":12,"integrity":"sha512-QQCoF0MdamawDevPe7/wwDfH48kUf7m79xPlwviNbwT/AK5X5lVPKKkKC4Y3BFvBv8xFE+CAiDffp9zg4W3diQ==","signatures":[{"sig":"MEUCIQC3YWFDXkeFa0xD1gEAuhV/41zpjDuBp/jzO7vrl8pqPwIgYvNzidZ/bJjWXlBHAL53/1hUAgudwPwuznPGT5U5wlo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11444,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdmag7CRA9TVsSAnZWagAAuroP/3Vhfd/U2Flu3b2TXvz2\nO1qyxiNIHVWGtdxz98+G110CpzuxaUcSfISqWnxZ2qmxiAyN9n199BPJlet2\nvEoWmO0WVH7DjTK4t4ciWmmr+CjYSDwB755PVWeYDlkHVA3bWUtFWu5vfBT0\nw34vS3u3eVuY9fEAkNDHW4HkLf+TG7wRG5Y9zgCcPUJ+x3Ohl+IKbGqGrWQ8\nkAv88YVB1ptpTyhWdRj41gnFirVnyE8vKxrx1AAvDgZYAo5FVvFG/5UgUqW9\ndZCTOJRGg74IQ/ridJ73XraXbCoFFsdodw/wZJgveSAQC/zmBtS3Fj210a9x\n59ZRo2vgN5dc2uFkMr7BdzC0ElnEeTDnm6Kd4CCRCpXtqCc4RX6Ople7pvXI\n5QKSkJCPeDzdrKnH5dn9ZoIroY3La92Pl7CUtUDoA0M+2451qx7vZ2clLTQ9\nUYQCyZn3Of2SmIuNAvDJFQo0C8QM2z8zL7TPY6pYF61NMLoFsthSO9OYqzxO\nqIohkIchRUpokCkav0jhVcLComQSOqWRQMReG7Cse6b4BqM7Sv7C60TnLPiS\nzyhZLrq0Z5mjpB+TwTAMNmPfw4xgxolSE8eCUMMxCV1g8fW7SJER4c5rmdqv\nTM03DVAIgGcGVo0She4tj9QWV3lC3KPktDFdXUt8OBZV+duRL33T/dSkZz1O\nf0WI\r\n=VvHg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.11.3","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.1_1570351162577_0.054957570465443695","host":"s3://npm-registry-packages"}},"3.0.0-beta.6":{"name":"@aofl/object-utils","version":"3.0.0-beta.6","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.6","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"640fa8075e7c0eb3f0f1cb35ff7629669e5b13e7","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.6.tgz","fileCount":16,"integrity":"sha512-tpmKD0kqJOvPT5KUhR09j6DS2pXUg9X6i1s6WXRdzdJ1A+Y0TF9PUXjnfTJtilJQr1OY7fwFEImZ0Y+i1e25Hw==","signatures":[{"sig":"MEUCIQD6WZcnETEXR9MY62mUTsldAksYy5pxOxapLN6oZDQ6YQIgONOcsEjTNhFmdmCreq4zguFWeeslOd0lXnUSuKsDdiA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23664,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnBVpCRA9TVsSAnZWagAAsegQAJ1BRkZu9cKSWGETlN4g\n9OHozjYntL4KOqHWgumMDBNNQZL2G37IqvgZMIUGl+w14yzDRB/BNBSAdwsW\n3SE+ZstwcL5GbUP4tPNQZyHMtabP+fdOMLQRLRQnYLzhplyE0bCeLqueDS3s\nBThkuZbvTT3QyyQEUVn6y49wHC2b74l5YGT5wQCV8COPZfLOSgS5wuRrT0AI\nU8/lA+vPPgJXs9BEpP436WlC8vZH5UCrZhRmX2p0eC9HG8s30vFe+XVOtraY\nLjHHJh8VCqPv+jBNWINSoLF56uMjMWBLtGd7jC8XY+02YAPPtR+YAvhYIRZH\n8xBO/sIo7HavAn0TwpPxBA1ZfwrKo5WS2kP1kwGwQs6Yq+nG3jqGandfbMfN\nfgGrOkCV5RdcRQSeXxC0KpT3D5CLWSBh7OeCQpviyEK3hI+/fy4kQ+tidwZr\nSfIP8r+WExTyKmfygUr9HhXqbHwSLWd8iksDhtgO3BsdWXTkiYNNtwpK8kpg\nyMHfI3Dh3/uIFpHMdqhdHoB1cUj+wwO6IZ4o7rVh9Lri5PBFeOOrm+vx/N0p\n3gCgwDTvgY7WGOLyVlLPXfc2/J6qhwUOPdUZYtbLp80Pz8R06xOxWvtaPKPg\nYn+cg+R1tse/u4OYaT6hmXL9ldQnxsUGx+b1j7nUSfV9T40sVwuRwDKl1PQF\n77j6\r\n=Eyc6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","gitHead":"23e8e9dd00e515c9305baf320436e43f51d7edd3","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@aofl/cli":"^3.0.0-beta.6","cross-env":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.6_1570510184474_0.9889962025839301","host":"s3://npm-registry-packages"}},"3.0.0-beta.8":{"name":"@aofl/object-utils","version":"3.0.0-beta.8","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.8","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"259149255befde4a764c1327f0c60d169f91275f","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.8.tgz","fileCount":16,"integrity":"sha512-eVZ1eKwI7f9tdboojqK4jttifMl62Jnj06yZG9TvwRAIpeCuTZyWvZvKIEp+52w2WWeHvJk5tbAEmmN0YDKxuQ==","signatures":[{"sig":"MEUCIQCPLmG5Cq/GPlPaXYzrMjFJ6QMEWwBw9sT5FQg35tmASQIgU1gGwIv4WgDCM3hV0D3Bfe6ydsVcgHJv1bGVoY2w5zQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24576,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnCMiCRA9TVsSAnZWagAApNoQAJwe70N5B39UXmahef0+\nhCrM7xuoSP55UB0vG0TNpnsHM1/3kt9OPM9GbzW/nAImL8e8aJjRgKv6kgq6\nxoTszYxlFb0naFDlsdon72S+alNHDEmxtdw2Oulh+9icjiE31qv/bsI/5rDn\nW7cLKRZUV58UDkZ1I58H45KIwRlZMZ3ux8sTLFw6GiQMOb/Eiya+EdPzfdax\n8IlLNa7S8o//03A6FvLtRZf70Byhin/pjiAmHgb7fZD9Fv6C5gTJbvuYLUsi\ngU0hA3aOh8oELvqhpYGjfqFCWSm26K+VrvCRDDU02B9oeNJfvuHMQSKJBcW+\n0rWaxa+y5XADCZNqgBXozZaSCeX39yWA4sZ4SxGz2uADOpftCw+1UvJiPYyG\ncn9Wmv/G6JHcNVrCnFkfYAgse9dsUUUKORR/fNIbhuNkLvh4vbHC2RoVXOyF\nrJdBcouQl+DjLLuoWEo6av8FoFv554IbsARaohgLu/fYHN/KOaXAIJDy6AJw\niLrWai1FBeuMnFb+WCta360rqYdZZDz14jhqszCSlcCNzL7Qw/isO6gXvg7S\nx6z6bx5B+az5ilvfmeW4yZtyT0eidY3JgNNIZiVQhehN/PV9YHLKY75B0iQK\nu9vzp9G++Akf6G+WPIhL7oNC+l9JsRVB5TKT56/dVOHSwZmvLgKCakFk93qr\nUH7x\r\n=JzTb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","gitHead":"31f766f3cf621147bfa1530b863757cb08e5fc10","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@aofl/cli":"^3.0.0-beta.6","cross-env":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.8_1570513697695_0.7086879564160435","host":"s3://npm-registry-packages"}},"3.0.0-beta.9":{"name":"@aofl/object-utils","version":"3.0.0-beta.9","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.9","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"fec64ef3e7d5eeedf770aef7a1f9286fbdf466f4","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.9.tgz","fileCount":16,"integrity":"sha512-JdFv1BAls0P6HuuYyUpUoOXkXQYHaXE/smQDfH0VahyCEEggrn6eZFHM9MUa+PEnjy3a7MLX7C+JZUNqa10URQ==","signatures":[{"sig":"MEQCIFs5Ub2+P2tLLo4i3zEEMOewSDoWec1Pvle4Xug8546rAiAmAqaRvrSid9DPfydoOlqy2Q053524i+vsGUt0N4LYnQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23665,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnCiiCRA9TVsSAnZWagAAOJ4P/0yc/+4zIk8bafioyZQ+\n+ao44kEqevoFoO2sXw1aThJ4WDNy9IJH5cs2B+vS4qShAES/FkF4bXUw3Qx+\nQK+enGjV+wklC9J9Rj1Opz33P529GwZMmRUXHq1jPHH70sAYBUh0xdgbswvC\n34wmTHbnwylQdEFoJdqlxqhdwat6nHXgyiXkSNiYMakuTQ4MAKcXD3iYiRN5\nSN6OMJG4vadQT4LfQsJhGxQ0FT7T8wkWdIEFjt28p/fA5dIv2JZC17PPUOqn\n/tmhzupG8I2jWvLm8S2a7ZiQuZ6u4ODf4yN3CZYvuLM0Q+taVa8Ut30yGjxW\nMH1s5QrkzmbDnYKWUosY2E4t0m5ymqNu34AUnof0EcS5VS03YouMYBSa8bEf\n+pPVl0YxqAFSHpKTb0IXW7b0OHduMAUdkpBLmP1UgqKZMHDrI4aXFYJcDUvZ\nBUyGtMXaXIq5UreqZUVy6EdE3OzeOTlisUxDNZb640huURuLKwfUPhjbp8dU\n55jTW94eXaURhx1c9+HNNAQcX6d3AjXCKju21bb+u43wNqSlsoOU5XAiiblo\nAxQ+MQzz3QqPn76ffyS+0jHVr5r/SrEYdwZgmnDcl0/IlFlHXfGlbnhmO26K\nXFD94VH00S4upds4CbFFTLix5sgYy8M/h3nxo3XNPhm+MgpURsiQgAdbAAKX\nQW8J\r\n=9U/b\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","gitHead":"e9e6bf24a51611b9b997dc99e770d43466ba063d","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@aofl/cli":"^3.0.0-beta.6","cross-env":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.9_1570515105497_0.3843323831871732","host":"s3://npm-registry-packages"}},"3.0.0-beta.11":{"name":"@aofl/object-utils","version":"3.0.0-beta.11","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.11","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"628971d65ded8df795940592a60f030b02c147b3","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.11.tgz","fileCount":18,"integrity":"sha512-OLDmUwSLYZfA0gxC9zC+R1wjlS9aDlKU6kZIeRqgc0wCT4Ai4tQ3sW8smdVP6REogkTp5cv26MAJklBFzh5K6Q==","signatures":[{"sig":"MEUCIQD+xMr6mlPCo1GHKm2x9I4ejWFOQvNLue1VK4NbtgoohgIgO2N+b81GhJNijEdOrS7ChFLHaNWW6xIh1Tq1sk+BwwI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27179,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnFofCRA9TVsSAnZWagAA0qUP/31fiYbu8kHLz6z3FHxy\ncnu42LKNaW5gQgGLqaia8jpW7uvaK6idbY2TUYMF/MOKZqILhOUE136CICnM\nxPN2fAGp5ITexZAi7GNUsVZu50vz8S7dyB/q+F12jKnL8fxkZucCc4tDi6Wn\nlxvdntwSAWQFcgx9Zyl+grvVNm+JQrNTdVRpbdPCYND5rPiJqiB7DbVUnDK1\nX7RqYpqMK4GmyhcrSIAK9USh9phes9ZPx/XRKwJWuEMQ5S1KHYUMN/zOhLB7\nbJNKeYlYiGaEcVBonZdG14u0Ciy2/tjtRpt9RYFb19r+5JaDACxRsflRHSsQ\n/zu8Q2MZRWNbdW2YAwJTRdpVTMW8ihV5PHbSoHrfZ4iA5c+1szS/LHHoU8o6\njAbPMyUabx2p2e/YF9KQqvY8ogMtzAsKfMN+k8H2GuGstR01PNrGG1jcqcbK\nmohPunGKROFuo2VTEdbNgznKJnM9BD7CkkM9zM8RBLwlMPiszhssfK97K8GO\nmvhlDz+3QlB/YdrztBCe4ap9hLB2gceMWvqzIUAOWnf+XV4qhe0egkURbmHm\nirjiBtrkkcvB0iOZW0eXsWXqnRT12jqins15woUqzTKdKZCgwcVuEeSYZvYE\nUvev0LIBhIE0xRA4jG/l5j9RAUz5krlOdlKKjtTNMnyzXZXVGUFUs6mF13Lw\nIYn/\r\n=TUI2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","gitHead":"ad7cdc30523ea031f8d1bf5c62440f80f75a7308","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.10","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.11_1570527775204_0.11016342009107083","host":"s3://npm-registry-packages"}},"3.0.0-beta.12":{"name":"@aofl/object-utils","version":"3.0.0-beta.12","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.12","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"06d2a52b0cf1a9f53570e5622df78a4048be7f11","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.12.tgz","fileCount":18,"integrity":"sha512-bDsclTNFqvmxil2JsutLX+iI25PcVIqk/vWpfNSgfVcFKF4AEX/DriHq5wQVqR9ZG3dWKIAixm79HMxllVhYUQ==","signatures":[{"sig":"MEUCIQC5fhqquoXo3NgsCktGA6WMLX+1CWVONMZ0VVUiPf3C1AIgWYL4XoPUhibf+gl3laqV95QWmlXUG7emp4TBuHGJRtE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27397,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnFytCRA9TVsSAnZWagAAovwP/2Q72LdUZbA6I/gZ1GZt\nI0j0nhP1GYV4xDqeK23TBp6lnqOSIwH5pozlzLkBmcnCru56TTsU7MZydZ+J\nTr8vT0wuKA7PWwrBwzBCCmDs8P4TjsCWZWooXA2659JFWvMh59FSG7psWxQP\nJgqIPUuiTatpNiLhnKnyLskCoHWgw85ITotYFJPxieHhmBoHbF32LTutT33Z\nILndBRMSUA7DwZDVPrizG2H0WguxB6mFRxO8RjuusdqC77A9nyDueXvaw/V0\n+ipF6b/qUHeTFuFRnfaJtzLx88upHUQbsZh4n8M2UzgdMHbhXNwXGvmEx3JH\nXzHEuDc+M2+O8NCOkgRfPMKZpTg+Im7KglIQCBqShwbsKpXKgTkoMh0WC9j8\nPHtPbhMde0JHQaSECA2CdrobGDdrE7oK6RpzCvi2R7qE+YuqArxbyauybn2q\nGZQAwmYWD3OSo+HgbmyiNIYF6B0OQNNsbxmojl2xYZMrVRSUr77xeAIVPyjZ\nMCueN2TwN6Tp+OoNMbAEWEOPTFZwO8jj4FeNq15nRMGgjEip6ZjD9U7OmgZ3\n9mL3bTQfHMGFPYzbGS90Ni64zRXSNTvqt3OhP0alh8AfAYVuMrVvixx3vG1z\nfL0Fn+iKoHOhYSC34fnpLY3usUjelmDDI69NfTYNbPSZnxVBfatiJVahvYmd\nqmOK\r\n=5LDZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","gitHead":"7fefe74af1885e7b807b6ed3522d9ae661e52645","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.10","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.12_1570528428636_0.8108599119615478","host":"s3://npm-registry-packages"}},"3.0.0-beta.13":{"name":"@aofl/object-utils","version":"3.0.0-beta.13","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.13","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"b83f48b393be7ae5d7a1a90b77a07ae945674f7f","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.13.tgz","fileCount":18,"integrity":"sha512-XrmAqEhrKK5PHuVJ6tI3tABfjBd/V9cF/ipo5ocfGcurlVCeX8bvSjt18ULuZB87EV1aWZQU+kLcO0XZRir2xw==","signatures":[{"sig":"MEUCIQDfVpmfekBXXawbb680u45QnvdzG4o13PKR2httN1LaUQIge8nI3iAqzxGWlb9Q1BT8YbPp41fLXgQC7BU+E1DuL1Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27421,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnV5pCRA9TVsSAnZWagAAq3oP/i4bDjvZpCBtfqrTtkH/\nddnIJqZKngOlL1t3eGZOssRi2YNfbwAZ29NZL5FscVtNUR3kKsYg8bx3f+nL\nCU1DqBc4IdV0Yeu6CbhGVPyKqur+lb9hRnOvB+JtmTm6MqBfBKSf6DjOLJxh\np9vj112Td/PQm/FKtCjNLpv/S34aMWW7u6PM9bs9YS8ZkVwI3r3wOCZR860o\nqPYJffHEHPMlOEYOOlma76Rdli4+wgLX6Wx+bfLxfJJOdcQKu1H55+l6I9zM\nVexGYRrAN2fsZ7iZec8Nptw1Ub90KPpd5xdsNkYLKFSjf9AWJOuMIrFlepJR\nWZuZFzSVMIpmro5wo/x6PHlBzwwdfgcZslhkW5oC25WebeI5/T9MqYpNukQM\nlN1NLTzO8e5r5x9dP9dqUxVLIOEau/HqoiueAfkbwXYTwES+FPmkK2puzPNz\nsyDN6bZnvM6Ts9wHMREYdKuPVcs6MQFJrk2qEeBmw89bZ1SjpO3QJELVaUgx\nRk0wbK7EGArz1EN2AD5uCsX0SAHgtDamU5uOB2CT+mTJ/NljEMibclz3QhEE\nK5s9zGAyLQ6GcDkMOsygsRdNZdy/4IlTqfFQJJe8MK4rK/cuWFVw9PWu67r/\ns14M15hdTYK6kbL7P7zag0kDLAUuaLdI+A+DVZ7oJt0uel1n7NTxkt95dGlO\n6LDK\r\n=ufyz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","gitHead":"aa2e52c46ae9451fde097de4734398430f2127a7","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.13","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.13_1570594408054_0.881404765305636","host":"s3://npm-registry-packages"}},"3.0.0-beta.14":{"name":"@aofl/object-utils","version":"3.0.0-beta.14","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.14","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"855c4805e68c6b2f88eade145fd19845b370d7b5","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.14.tgz","fileCount":18,"integrity":"sha512-pQRJ2plL/L5q7OxKosj7CcUijgMqrGaStHYiLnaJYvsPwzkLqipeVaXiuKFnabF9sKRlPUBJCg/9sc4vmWztEQ==","signatures":[{"sig":"MEQCIDBElcW6B2oGB5AEX6QXQLwbqUYhLUEXE0hSZXIBhw1UAiBwudaHRVk36yDXkMJi+wWFq9m+ijmn6kcQhzULLVaP7g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27446,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnWMFCRA9TVsSAnZWagAAGZgP/RaoNQ/so8jrOxCJfYoK\nCcITg5jMdz3enMGYXWX93R6D5DvFcob/oZm8XbvRXULO+1shVNbd1hl6fYO/\nwo+SY/oZ6H2qxZ1JdmZmnwt7yfFbqTTgiP2BLTpH7cbwJkwgrz4plsVRAeNd\nNgxAOxepMbI2qj4jBWLXKTg+Nx/6MPjHfg+KqnNEIWu9AITx6F7+9PIVp8Uv\nCul9JIUeLzwD84ezZNLkELcK3ZKgseSv/s1gEmF9pdgNPCThqc1lN9ZpEf4B\n6ZSGgwORKUlLM3E9c+IQRQLVnrKtvY5246O3Bc8bOHwNVQOjHvkdqertMgH5\nqXXs7o9bFhdKpuADhTbIpyAT6S25saUnTmVVXlQt4ztjKHfjch0c0Fmf4boW\nOmhLnvMLBU0jtZqh8u7vSMVpqVucUzKuf5TApIK3iGC2Cqfsq50vbUz+I1mA\nFwpLtFiyPxM/GbBTN8DzT/T1ZYw9qj2e/P+mREfcFMe+sCRcNQJt+zlVDBjs\nyseQ3ALika8FpwFMVj5K6KmynecCRbslg1LiDdEfyPCQ5Xlootlyx638lZOU\nBN8bGiT5dk8jx05dbYvhTAVKwsUOzKUjTRYvx9HU0h0MXEAl3ZZYUT/dQ3O0\nMmj+n+ku4wvHOr305PrCN8vSZTDpqTcxkzaA8jDbE1Z1qizkPdLhLGu4dsnw\nH1l8\r\n=x0UL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"80c0c882f3af67f4584dc8d38de8a62ca5632c94","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.14","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.14_1570595589352_0.5391314246450831","host":"s3://npm-registry-packages"}},"3.0.0-beta.15":{"name":"@aofl/object-utils","version":"3.0.0-beta.15","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.15","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"26e797b6d786b152001a5c46ab1346ba151eb3ba","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.15.tgz","fileCount":18,"integrity":"sha512-kQ8BYYU2lMPulHRg+lu5TCOJqBsI60T6Z4K2NpBrvScaVsUKjGGSNuhzSJVU7AQiX8f66AcYVj+D5ieFBAMcpg==","signatures":[{"sig":"MEYCIQDCPtSYsRZh/EF5Z8VMZ4ZnIQ9+N/6VRi8XsgvRL6JUFgIhAOH5k2U6F8FVw0G5p9HkinvaitHW4ted+y8cBzW01V1o","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27446,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnWcoCRA9TVsSAnZWagAAUGgP/A7DTH2pmD8LHt/4yvM9\nH9up81MaPQWsQorQdai9/TU7BX9bk6Y2R8Q0BDshhoB5U8yQBtdCdu3Z9GZS\n2LTwZ/weK7yEfIresj1uyIR4Xau14xBU2FSmH87EFGiwZktosoJFJRCPt8ri\ntwQBmlBKmHDvgEjszBqoCjNIAW+pkgwRUtIXljWfcXmR/XAgV4ASciJ9bOyp\nz3junrHZZ1TgBFk1w2SMifDAi5zYHVjkjuRymgtuy3LFFOMsH9w/vfAkaNs1\nTGT1oI4BhuyQwR5ulyapcXHS2ubdIWUVF0I3DPDUcwh9mal3MVOe6xOgK5ec\nTwYl+3h14Y6vSjm7FIaYqTvC3jbtrVO9XQ4R+lqnBFuK7In4KvTe0zCVnuOb\nNFFdtmjvLUZkdrXOANa6cysbnMNupCnHaF+w013YRL1N7OnOU15gk1aba5bJ\nIXR6hg8Tm1qFRKLIsdYifIqE3jXT3r5QzEl2EN217p/m3DhYABvweEIqEX/d\nE0Z8oGm+uAIrZZlJ3AOxjH8F6nUifjKpnsg68sTUWrJedYcvH6Ww4fgRB9PF\nym2KJZ4IaE/Y6qlp8syq1c9nAUZ6qX61jiiUmUYV9WqvgD5puRzkfntKDav5\nJd2UcyD4aQizPfNAKqdA7B3dqLnA8uuy+t5tljug2uX1ozHJ6QFm97ray+Nb\n9FkV\r\n=vJT4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"0fab45fd3f4a1789a3683dbaece87d579e9de597","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.15","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.15_1570596647443_0.8880472270874578","host":"s3://npm-registry-packages"}},"3.0.0-beta.16":{"name":"@aofl/object-utils","version":"3.0.0-beta.16","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.16","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"035d56fa5394930b38be6da200c29c8fb2228a1b","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.16.tgz","fileCount":19,"integrity":"sha512-CtufD9hJsO2V3PasuLc3Zw/u8qi3GX3ncY9Y6tF652xt95MJv5ZsqVnrTIWsJkXb1cc+htc4rUvaqLDjPRNMFQ==","signatures":[{"sig":"MEUCIHLZsX/8UnGlAQ2O3Ifq+MtC3VGf0k3sCwIwNwUeaZYuAiEAi9MF64V0pPh9thCOkU30USH9Z8IqvusYGk12fWRn1oo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27487,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnWq+CRA9TVsSAnZWagAAucEQAICQU6+vNgJevjCshvr3\nTbgywSpTzp5xb5Gn/NRTS10gDKeLmTXjWpfoUQ/XFWaOmY+xR0W/HkQLwA7i\n/W3v2pqvPi7kV0/j4ixmeldYiz5dYodVRCcf5jYMxKtpC6jhADscTIN1h4BC\nf5em2/2yPaoUAhgkMmXQlYfJx8sXGVsi6UGO/Tj44sQ1yG/650qHBNX77OPn\ndB6X/1B/H0dHzEWbJeuoKPaqoxfq1aXwT0bqwQib+xEvRBgC+AaTBx1J2+xJ\na97BL5HpegaaWsF1lXeW+j3TQSp79Gl6J25/9l4gOPof44u3F9pFgDTWVKdA\njLpNtNGZ6jJqEoLhIzY+hr06oeP1sknu8KwKfF/qFiGauE5EtCDFgBoNHyyy\nz1mL8lmLuoVgvinnNl71vfrubFy8yqpfueQ8Q0ir0QH1H0c5cLlVvyC9lo5Z\nCbGkSGNZhVCys9N0NfA4ym7qJHLDc1OCwNOubN1w8VqR5V/Fh9xnQ+utflAH\nuw9ixDp13BykBquPznfdeMUjf9DxPQFZYRZTqUaLccGaJYd4OMb6DdC35tVk\n/JYIPqvU3tw6Ju6p80ebSlnehufq3onOJhYWQ75HVS85LgAmM8v+tvuF44oM\nl/e/h7N2XZmvOa2adBIRPw5677vm+v7+hReMHlLj8lCm3+BPAqC2OViL0xjj\nMeY7\r\n=ek3Y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"32c2f889b64c30fba2458f8704f7c135b47c5b95","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.15","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.16_1570597565844_0.21418915986374154","host":"s3://npm-registry-packages"}},"3.0.0-beta.17":{"name":"@aofl/object-utils","version":"3.0.0-beta.17","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.17","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"ef66c572a01867645f73d019787af616c6c13b45","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.17.tgz","fileCount":19,"integrity":"sha512-KsT6LYKUGkFzvop0JAyi+MfNjLUgUwyhfmefIpqOQjc0eXkvhpXrZoCXx+aiqF2r7dzg+/XXzXOvXJxhRP3cKQ==","signatures":[{"sig":"MEUCIErWFvaMMJzycYQptB6d3mjG11c2LKhuIlXARdhUF8MwAiEA++GOq6Sj2s0xegRVXp/NN+0edKbAuoYG9O4Vc/niK50=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24963,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnW8wCRA9TVsSAnZWagAAOPAP/3i/anF+YpRxFgZVHEc/\ngZxG5tDEHZbSVM8/MCgsHxmH2fNUuMjtjFZ5UEjqZAgqa/1hCPSHwQ3UuXUn\nCJgPUKVWSa+ftr0xSlhkf52fyOFLuldKaO+q2CCImtrthHAS2GZp9r5p9OBN\n53u3YiExGc6Nxb0Ul4vIOvaK8Zd6GPBnJ5B7Vr1P6kLOhwtAcX8aPx43x61K\nDkDM8eYmfGkfjRIajCqtggs/nf2VeKAvPoIfxIDec8wDTtsnw8zAuyR9BWCt\nU1RQbiyXAnN4XlqD8ZwFfca2NBfd4UX5ruehK00w5ApQbz3T8UzfnOEnG7Qt\n1vSk7a/R7YW77Zvf3rDoH3QEA0w8D/30J5iAi/OcuecfHp2tK0xHW67wvG0d\n8ARlm1MEy+hAG1XdK8373fIWnXx0OLSPCmSH9G7iW0NqwMl4AU4Q4YYP5LBg\nTLI1d+L5ZEqV/X84oWuemgBVJIophttGmle7oAP1Mb4pcqu5Y1ZwiSylNSkH\nEkxL3FBmA3ukjDFNgLYdHrUODv/uHc27Wy3+jdnwmjxFGreXDdlXMph8hZNM\nArHLZdJyCw1qS4BLAocrOeSR9/V01Ef4EIaluH3HTsGwNucfyTSLufxx+/uX\nhk1uF9x2tLphe2sYnR9C6oRp37u8eQRJA9RbTJ9YUNXE3jBm43RkoGYjF8k2\ndDPO\r\n=gQA4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"1a9a0010d531b8a6ab7287dee07687c312379976","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.15","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.17_1570598704258_0.4892548772069094","host":"s3://npm-registry-packages"}},"3.0.0-beta.22":{"name":"@aofl/object-utils","version":"3.0.0-beta.22","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.22","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"38aef5d8ba3191d5750c46b114c240a7fd9d8812","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.22.tgz","fileCount":18,"integrity":"sha512-0jAtgyPSjfg34U3wvKaKN3Ze+HoOp0HkLUDL9ifWwDpQWV0pYIkwqhyqxPJKm22E+iyRMXt+VXb5wUxdOmAWsQ==","signatures":[{"sig":"MEUCIBI9PpoDqRCFBoMwqUEDTChl9Li7p9HXuSDV7hdsXdtvAiEA17+9SkK+aX3Rb87osfD5as2xvyJFDVELsHJmML3qSg4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21937,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoAfWCRA9TVsSAnZWagAAn5cP+gOQh4H02yfu/zhmQGS3\nG/8E917Xr7U+a9U4Klkx3u3i7cgHtkqDT6pTV3LO3q43WuNbdDwLjV/efTzd\niho7xQALwMBKiMwBcgo0okSz205rp9D2Me5bwQ/pqRxxlhRR2pVCs+dmTqPw\nCW9CvqE9NmPCFXW6divL31/q41qgMxqwIrQvOjRId4R+dQVmtEL2ziUnmxXn\nq+1wDHJ09uWhIiovFTepzaz0JbunvHT+i/aj5BvnMpwOb8EOQ2dwqyfqYtkx\nVw5/Xvy2t7crIIkwpKm3lrG1xcxP9M3pEwicBz/3OXfdwBH9IddTDmAfjoFF\nxAd39AkRNnU8NrgkTj5Q0xG6R0DBu3ygZ0XERqpkYglc35c8jQ/sjTXoX1b9\nKe2EbtbkVp3OOeVsemRrrMwEWO0ueVNHK22LCYtcuK1YREv0POKM1syMZ6op\nMzwSoQiqEflKQQG4dVKCQzJtxWSnMpcYhrqAE0uMhZH3p0MGJvAkqhyt1z3k\nB16X9YfEKmdmkkMlaSyBnKbxKFaPjWxIobJORoOrFWq1eSzYKen0hHIDpcj3\nDgjU1TKKmK/F6Wzx60Tc7tbxzGTwqUZLpGCUXGkVJTrw+zyCDukd3lQWo77n\nTbIU4lhw1lhbgjNvio6647L7m0LSWQKvNf70x502b/HKAVehgcijDiO9cqqH\n2cUx\r\n=ja9x\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"6009b3c38f31f159b65265ddbc3653c0087909be","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.15","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.22_1570768853953_0.18383575856894163","host":"s3://npm-registry-packages"}},"3.0.0-beta.23":{"name":"@aofl/object-utils","version":"3.0.0-beta.23","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.23","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"807b602e7df817869961f2f8baa59e3144d7a44d","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.23.tgz","fileCount":18,"integrity":"sha512-mxGRN0b8iLdlOo3WrloiVssnKw7LrvjQq3T/Sy2gGbpqevVxYov9yziTIwRpxiU21xFH/l2If51Q9pDtXOF2Og==","signatures":[{"sig":"MEUCIQDj6h8m5kQaiE1U0A5w0Z6T4x1mmLlLRQAFHn67mI6rGgIgW19rEdd1NNQKOdgqkaZChaw9Ws8weApDDetHmvo1h+0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21937,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoBWxCRA9TVsSAnZWagAA3VsP/3M1PTFYAl/Q2pNLrLBE\nel4p+C/83bBJlAMJv9VLmFQI5oYlC+otN2snnwJEnPc+Jn+BzTysALriVpT/\nb4BqJLAIC434ZnbfrZ6wQ2QQwcKA0P43Ifhcja47xkAE08Q0VgBw+PXqpsqj\n7rOa51TzhLtcJamVsS83pvVLOOPiThlk8JHmUQ653ifYFksHzbRF+c6Xbz79\nig/yMV+kKTTANswiymcOA0zRf0H17ZNk7rOr+AofVIuGsYLBveLGUUzEoMQk\noY+lcRwgrQewCIjvqHIQvdRwwrZqQbkQNW/1oG2i2gtFtRs7K6kFAc5BtH0y\nR32PgGFYinMsgEQ16muydUchbBNFgtcbTXvF/483NN9PUta+pBVE15FJSHXn\nmsupb3sLopZ2zNlftPudhAm+HUv5CQvWemjC0imPqRoSnb5YX4OW4nh2VP/G\nP8FBaAkZdZRSFZwJeRO9uwf6EIe0XIIpzn2kMmna9qfd3dyu4TPNg56TQLRz\nsFJMinph7Qj/YfiXnf71m6EVnm2Tw4CwJ2zA/ATahVuERnXd7GuKTk4UtRDM\n9z6VuJ0xPDpgB2qXIBkQn/NVF5L11XmxyMkkP2l7Lwau5EVoEw8SwcFGMJ79\nFfHi5hV6dYAnUwn5ySR1sUXPQ18PbVqS5eRUzKAgM+pZgxcQ9f5T5nUud6hg\npOn6\r\n=Lnq2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"35327a525c0190a3c1ee36be061e25eeab73ed33","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.23","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.23_1570772400627_0.7711037667916671","host":"s3://npm-registry-packages"}},"3.0.0-beta.24":{"name":"@aofl/object-utils","version":"3.0.0-beta.24","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.24","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"2387b0d64ab1cfee9ac951e1ad8e3d4890494f1a","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.24.tgz","fileCount":18,"integrity":"sha512-Y3iwf16Gk1NzTSHvnJPpCuRNYdbrddrZWuNS9eAHNdBUDb7kagSvuFD4uELCJrgUcirpSIAl36u0xzTXIXDCmg==","signatures":[{"sig":"MEYCIQDRnOTi9lHRs19202uxaAXnV59yOy0Q3PufwTFpKDFd5gIhANUkfxsGXZXZfb3qpKeGK3ZjVFVBbNExSpOcF85a47ln","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21937,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoCKKCRA9TVsSAnZWagAAxxoQAJNJEjqVUY3H74XJi4ZY\nW+6U2EwMD5orKtCTLKD7gPbC6gFFOP0yBp3kLuuIOtgRtSYaWMM4D9O1wALJ\ngyXJVkOl8wmC4/jNyjEraI+U6lUVdwb2sRE42c2z+84sAhUxsRYzaOrv8NlS\nfkrLTTzSe8sa0r8t9B03TE4/jSxEqHobZffaMXD7WdxFrdZ0iZiWapAHzXwY\nUIfkZ5gbPCLf8tI78oJPiS59X5h0kAgU6uFJDJ494Yymv6o97GDATl6p8Kog\nihulO/PEf2O5e8PICp0ftaU+ZEodP1rAXiFOI5Ms427T2uGJIRwOGk/Afvt+\nwgToDKe/KkZ+1HDs2dzSZIqWvtuecBljOt2KfFgPbNFPCtcYdWT2EU/tmHqS\nxaAZFrQJykkm/Sf4BPDZlho9aljA8IBD71pdmALlmGqvlCu0KaQLJdfCn0qw\n4wgj5u1OV+m6ANcNtTPXePi1k4wBPO50JZvfgRWeGNDuoyNtRY3JdEOeJxwv\njFdVlSBIYlERVKgmThvCiIlO6LguHONQCZFKWU0t2AuOBvKkH+cdWICVPjYL\n1LvQdIbRJGTHeBhN1cBBMz0/h859KUBdPdgdwMiV/VEDD831ctfPJFLo+6cF\nMUIZOx1jcgZkwyuR5szZXZ2fr34a3UurOAkdzb5Yp/GDivpYrEmrhcSwL+by\nm1m1\r\n=ZA7U\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"be81016959caf66748582258c92f8c73471a9f67","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.24","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.24_1570775689595_0.8766615387647636","host":"s3://npm-registry-packages"}},"3.0.0-beta.25":{"name":"@aofl/object-utils","version":"3.0.0-beta.25","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.25","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"177d25e1bce47ab8d5cfc02eb3f6991db3ee4abb","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.25.tgz","fileCount":18,"integrity":"sha512-v7+qzC6CI5cvj+zHJvGsv11ccqRu8AwNN2Ank2r83A9QZxwn7v2XJhf0r4ZyW5FAydCYb51QgjVwEaq+PjErDQ==","signatures":[{"sig":"MEYCIQD5ICJSgcwgU8dwpKG+zH3olVhPUHtTfikIQRgUvVuVdwIhAK3KdAjmjN5Q+yMBOESJW71Ayc5Gc/Fy3+O/WCbSwJ4I","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21937,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoDCcCRA9TVsSAnZWagAA/0sQAJ5MNcx0fvxVUl9EdR+/\neI9osO+Bk7rPLkDcmN6H2X+czDeEiq12QdAcjzlWzwmKjLFcKqxRI0IEcocm\nhnjObGA+6nwNA3wvena2wslgyxN63haMyDLmrtoVW5LJvhR3+yy5zGvigldv\npfD0Foh+HSWMR7EsUMgu5pBpowGPHtLXM2tNUilKItmx5X/xFv+GogOelmk1\ncZLTozIzOvxDPEfxGoFygJgQDvZl+NFPlQhPEAIACYV4dk0fUUUzlI+hE4hG\n/UMEDnnKdk6ZCYrw4vTFY41ExqDxV8jkeBCQwJZNUmQ/DH7024sgJVLNQ456\n2+wdMxhw6nakgomPVbiqazJiaMcRkio+YPoY7zSn98O0MKzMfyoXXBxwSqhy\nH8Ym6jOzHLqtWC9CikM96k8JRGtTZWZU7OfIIUenAKSmoN7wGtjIe1ruPaPj\nXSTqxe7u6tvfvsIEQD9ZR7K5D/HnETfht2V8WpVcZDMw7/r0WVNIkUX8Nxyq\n1MCz8aR62ImJ9xOND4I2DN+dRYi3oWpW/fyiI9bKV7rjjCWxQPX3SAveWUXX\nQgQJEyZPVBD5POalb0Uc6GaRL0Ck2lXUX1bbzP13tg9hhzaa1gHwZBmLLUi1\nlkdj6unZVn62XHO5cinR9RQRRxeGJfQwudkzNcH313j+VLY/1ZN1Wq3Pds17\nmb1y\r\n=9e/D\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"658a5f60a694ddcc2ddc62e8db80688cc6b71c68","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.25","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.25_1570779291989_0.7475918778156412","host":"s3://npm-registry-packages"}},"3.0.0-beta.26":{"name":"@aofl/object-utils","version":"3.0.0-beta.26","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.26","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"164fc3b259a1f96bc49819bd712dc3a91bb1716d","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.26.tgz","fileCount":18,"integrity":"sha512-1tRsNTqLQHQ7a919tu/BIOEi9POOeEJZSjMK1+FvnHdMOvfkFfn8XKb55967OXIuqdjcwd7l0ssQ7GHH/euxgQ==","signatures":[{"sig":"MEUCIQCfy2R0Qn7CNRWELqXqk7rOzoZlUxfosPAI6zrXVr3fGgIgO2zDOGuxynJ3gcJLIbq7ZScUB0hoWkOBEhNqcKpZyp8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21937,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoDP5CRA9TVsSAnZWagAAVsYP+wSoPJ83X3JvmvePfaXx\nhiqQNfI6DJYbIEx85RiTQzMa+OSGQ0wdka6CnciMAIAYB8CKk5pb5FmLuGrO\nyexe5T/phukWWYa5Hpr4L25f2nbPgV0yweApwJbDvUHaTyPBkrjevEv1Uvau\n1TunaIENRSau/vU/LA69Lj27rej8fwBVEUV/EWVcO2f4Z6a8wMaOVjXQlPfB\n8Uvtu0kVNGNsilpCLeNS2q9CymOFIcLo3GhVSVZfOAhTcW8//y/vJh9eKQa5\ny6j7+jZ5jUb5nGpMyvitvNgP0oOwJwPbVptaRpjpDHjtbJHgqVGcg8pfokEB\nutXMSIEDM5opo++1zTP+TFRMrq6wXfBPRzwM9WxWKw6WUMaTLPL7q21Mpi0C\nyzTTIyDhXsHryn13rQQ9MlQVRdVwQhQIbpCvofFZogeLmvmSwz0sYCQNHNE9\nKnqsfxBpzmzT8HyMfGTc+p5NuSYFBkkqhwYRxIquAzIL3WDGOaSZ28ENp/bd\nVzQA/9TSHsHXzjvEX5EeU5bsw/6ycaeBhe97nstMe7jF8HwVRVYzqe3IpZ15\npSCq9XJmCWsCGhCjrvUl8lhDVo8CInc9Ur5eW9gapmL5XW7b1FZlw/mfXQcp\ntnQS3pNchnyWieGP3Ut6pcE1FpcQHwKRrk9tdB+FYMo1NqopIRM3w+IWAgBG\n/n6+\r\n=EB8P\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"12fa62b6d27f95d1517f1ec4707c284b865a7081","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.26","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.26_1570780153325_0.1498997644839175","host":"s3://npm-registry-packages"}},"3.0.0-beta.27":{"name":"@aofl/object-utils","version":"3.0.0-beta.27","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.27","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"2a160e11a1d44350f851818a5b45503ef91e737c","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.27.tgz","fileCount":18,"integrity":"sha512-LyPZgXlvE6ruFCUUnaNeCScVjrLMF3eGhME9yZEdkwlESHvcjKH2J4TOOd9Bp5WtGK5pNqd8guy8aWlzjx5j3g==","signatures":[{"sig":"MEUCID2/FEBIEsrq2Ideck3qHmsqd/Nufe0ulsjRLa5PJEU5AiEA49X37cpVlJbSwxBFp00mULQUjVElsXmNv5TuohsN7oY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21937,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoDUeCRA9TVsSAnZWagAAPusP/A+W2PpJCc0oVZmFGHM9\nZFMvpet1mxMa6zONCZgQrxCj2qXC5x/3yfhYJGSxVfyC8HRrMG1yX+vGr24i\n9Z/nVTn2IC2HqRbfRt8eIp7VQrDRiv203g2XoW7x5qQrGZNLmF+t9ewQJoXC\nv/QZc26F7yBUbIwK/8Hg7i491dou+WiPplEj11M7QYwf6mQvvF+/xhnW/13+\nezEV0v/+Db7AAb9WKGdoo41lWUTO2CUNdHhYFMqha2xj5rf70t0SrQYWutYt\n6CDc7G36Q9gay8P4rQr2uUaBtkN3y45qkms3S2Mdwr6BR0RCWT2A1IeATMD5\naonYoXHb7KsRVry7NHgkAxDwoAB9d+lQVCsLy91Jh/he7jPS3Icas7M0bS3I\n7uocPu5a8gIIR9rdiW2cktMwKYUWohQqSnF3Qfw7GVj5IPfr2Nur0MJ0b7jm\nug24kOgnZlbB+N0ZIBDPcDAevz0B3KjB0PfM8DKX4jWZePGc3N3+MhObZcBn\n3bVQhYs7DeiDs3XxxX3lifz6y04nwyiZzwiDXi/oiNoVVjr8hWw/XUmdfuAF\nIaNZ0IxdC7fS4kBXgrElRB5EHyGwhHGljG6zMDu6Rtx6un/W64FelL8s6GG3\nrxUOng152Zupe/fFaWT7thn8Px1zHgzglRlPT6+8J8+wWf11leikli/Mf8Jt\nOktu\r\n=OIQM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"de2f0be87aaadfa43212214d4f491d68930b2495","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.27","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.27_1570780445468_0.5432270804463502","host":"s3://npm-registry-packages"}},"3.0.0-beta.28":{"name":"@aofl/object-utils","version":"3.0.0-beta.28","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.28","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"bcd593a37de4083a41cc0eeb44722249deef997e","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.28.tgz","fileCount":18,"integrity":"sha512-6mTouusQPjPhpqYPi/xc1T6ZMj+DsND+CdKddnGFHqyI5FrL1ND9FyT7myjtSYHZGgrlCz28w/UUEiD6WAa7kw==","signatures":[{"sig":"MEUCIQCGJRZrLsZ4Vwo7AmNf/3QhRAE5XN3bngS3C+PYo/APMwIgX7K0NgBNBMgjxan33alCtozy/6O0VQXU9ZzmGd05EGE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21937,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoDbFCRA9TVsSAnZWagAAyZYP/jQRqrX0Y8L601LDEGP8\ncjAY+bNSI0fnvfTjMULjyVGIJ/syGne6a6BtX+Ed+VxFzRkW2fKK1XIQ/gjK\n2dYQPM+QU6DOXwwBPRT5eZps8z9J61LANd79eoZMcBQ6o030PknrL/TSNhMy\n9JgoHFCEIsWKKmKuyHf6hbAtGeDF38cgRK+33Gqu3/ZapgRraaqFg20yMumg\nKqyQvADDoQ1YM1oCZYui4kPOuZlbeB8tT/sonbWG4y1cibASjYwja/J8fEgw\nx+1NXe6Lhn40aCEnyNWpA4W7a5LJ12ij7cCgLU9r8hEkqf9v7BCndTfDCGJr\nKsKFMvUfFQ+VDJytcZsdalFW9jqTvIyAYMMkEODoQoMdPitVWm+A+zh0B1hf\nEMZ/l8FDVsOm0OwJ819MeMLMOmicf6nOnWCoCNXRnPzbQfRlrIZy6l2dYfsF\nIjyaRPBypJURASPBvo960q4ZGCQSIjhEAXFV+6YKpayXV3Yw/KwpJJ+Yk3Ki\nJWpY35yWyvmNy+41ESk2pMqVSrCE8Vv29yH/vjhLeMSUeEYavac/2oV3j/TE\ns3M70ZojCcGFTdsJq+hw7IunL4xaUFpybfu+Kt6gZWiLOqrleMo3u2Y/9IhQ\nDlcut3Iz15szrsFCacvcouxGQ7MRv+tXWVtWxAZoFu/KQsmxhT1tjghKvILI\nKqvz\r\n=UPiX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"dbd14b0bd931ea76999d514d051dcd0a3ef6a8c0","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.28","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.28_1570780868856_0.27533398002343556","host":"s3://npm-registry-packages"}},"3.0.0-beta.30":{"name":"@aofl/object-utils","version":"3.0.0-beta.30","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.30","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"2727f23a56cad7dcc082a88298589a75fd76e495","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.30.tgz","fileCount":18,"integrity":"sha512-+8v5l8RshkNmF+PAPfZQeNcKV3ETni1Uu4/qDwm7cqo5CyOuQiS39ZyuuRpOnTcQCUWxgwDnwssyvqJ8uilWPg==","signatures":[{"sig":"MEQCIGzbhCWdiYzKBLOftA97zKl//0tLnhM9tXfaL6a6O0SIAiA5gOa+JiZQCt3BT3YKv1Xl057HF9+l5XT0zEiWDTQPnA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21759,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoQkpCRA9TVsSAnZWagAAtAwQAKULX920YHMc7QRIWaVE\npaXRj4Q6qip5ulTKwRXGi0cjlMqBHWVq6ABsQKIvJAtwXdDVWrIGr6pR0mnj\nnfsZmLaXmeYavYPok+OfQ9c/t7qDyRnjP/X0cZ0fPRP4D4FaGyUq/a2tC3rp\nE31jcHF5pTT1iBOmKsOJyhRR2yGtbt3cqM9cwrTtmySPVolbQZ9ql7ZtbqMd\npHl4oa9i55NIsNwYloShaxRlY+JwDG6k5TrMrBRjpVZE8gZVGxl/B6ROY0P+\nSQeXs9t0LzRW1DjD58nD3tG508eCyWWb2Lg6HzeU9a0uoobEtXloHbyBmBgm\n9orMlOKeUhwYd9argsCam3H9I9eapb1WySGdh6GEe4r1ZnN4WvO83ZGJx5ET\ng6EGUjb54/OmhtpIJPLVjJkX5ewLDUaN40hMk++JWYrRna+IPRHJo16iKfyq\noEO9ee40aQf8z2pGziDHn8YV13PXqmoQqnu/BqN9jrVgbs+H1CrzfOAaixZ8\nEPs2ebFSKDiEjssg//YAid1YLfsK56s5Uz3Y9NoLLFhkzGuGjQwx6EiZBNsY\nN5h3waxWiQVjakz0xvSGhi9CcLi1PH79dOtKzj33bkDhcbOnYOSHOYYe2Emw\nzMrR8/TvdTmqj8mRM+ZtFa5EFiOy2+2BpiYhxBEDRmdZ9+t/KrgWuf2cb5Yw\nJ4Ca\r\n=R0wK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"7bb6b9b6e2c1d77cf7e65680aeb6a4c60e0300f4","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.17.0/node@v10.16.0+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.30","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.30_1570834728593_0.4490001786869109","host":"s3://npm-registry-packages"}},"3.0.0-beta.32":{"name":"@aofl/object-utils","version":"3.0.0-beta.32","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.32","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"7edd29b4e516c1b8900b0e3c0ed397a12950f3a2","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.32.tgz","fileCount":21,"integrity":"sha512-4fjMou4oTulQNhRm+R5b8F1r+vbV5UUowiFZLFBHafdoC78JMemE9z/KpA7gROtJwHqHaUhql5g25DL7/6DjAA==","signatures":[{"sig":"MEQCIGR5aMVQJmGppz/ZX+IUQoOOS5EidK+TMBFnc57BEsEWAiBC/8c82KSfExF50pUvB4V3qMQEfGPEAqzzgnIRutr+cA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24492,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdo8pOCRA9TVsSAnZWagAA8OIP/1QKB076Yukx58XrU5xr\nKaZvHA+e1euN2HmKAPwuq3S/NO/tw3aVcXYk8wMYxYfO1QXaqJ34Zs1EMJEb\nthm9X8FzRs42zhLt6xyDs3lVnb26ylnyK0c2Ex48LkWfVW1ZBHnWdSXIuQB9\nYaiRxuknCL902S3bBDUmIGkiSt54aAAs7UfbTJmvQNG41yj0o10F2hlnRJPK\nkFDr0yvC9mE59YX8B+Mr8JQ4rgiVME03/0iW57uisGyY1ndYjdzOr/sDOLvD\nlRqxx7yoHESk65ukCjCerMp3eIDH+Gk3AzgiGnqAyWKjF/+/fpcUIqCPJqcv\ne77JhzYT1pFE7dYn7OCLtvIOXzT/dO+K2NO11mZ5KabWYs5ZBkgfS1yODamI\n3roxwDf6JdyNHUiYCtqkQOHAG7nDS9/LXSmleRAGw6mUXlgQy5tYJ2Xdc9vv\nwCAtkwdcwHc6+XefxiiMkbHuGBsBADpINV8QOwC9YL20n0MPyhXRhUrJd6YO\nTe8l1pX4fY7GlWW5emGiQ3mZbvDKjGQHpsn0jNXs1FNLbQ2OxHnZIWf8f3dS\nVRmiIbbYoW8NIP2mYLUBeUx9dl5pra7WbpEcz3fONrY/rTL6FjY+iR8wvu/j\nVxfBYIy0m5+ARoF0sbMrNZYaU9D4b9M9daYHRl3dpRqeruYbiFd98WfRK1T6\nctSS\r\n=5ESR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.11.3","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.32","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.32_1571015245465_0.5087068063019351","host":"s3://npm-registry-packages"}},"3.0.0-beta.34":{"name":"@aofl/object-utils","version":"3.0.0-beta.34","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.34","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"34d1d7deea43ac551c587cea3cca3b39b01dbbc5","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.34.tgz","fileCount":22,"integrity":"sha512-2/2PukNBjrp/ZIJxqUBc0+nYzd2sk71mbVblib2Bbw9RfMUoyk1+HqfFb0BEmCpTtuYhIFJD5A7AA9AtRpfN8A==","signatures":[{"sig":"MEUCIBFy96E0a9KP0Os4rCMYkdfx4aoMzo2xd5/ktCrhKaIFAiEAnGJDSA5quMUEvmSB6fYQebBMvm/hZ6bKMaQNEbnGEPk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25616,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdpCWgCRA9TVsSAnZWagAAXEMP/0w1DC21Yhv8qJMNJAuZ\ndriyfmosZz/+K4ZO7ewcGztai6H16P/Fsy5KV+ergs8LiZZykctCYsaXvykf\nRjDPyGTc7QnlNuqydPQvasjY1BSaLZabDqdcwErBzDNod0/8EhTp8JNKtoAC\nzfWj/+fld91cHPd36buezXhSStbhkpC18T9n2ijvLExbW9msbnlOtTeB+yWH\nd76aBRmNmnHBatjveqAnIqKG6xvkYqyiRo1gLunh93taxNRzE/sR8+EACnaq\njs1fgbrc29ja4euNlMqo0a8SUjti8boPx+pMrC1Sto9UIseisZP2wrZxdBVY\nPkXbVbEJous/Chzh284Ua+H8IMeJgBEsQSAGbmOMqfGZUmgbHrifSzDFwOXg\nd5/H8yrc3h7tYLxzxgGtOTlyV3Lhi5CVepwo/1vSFkrkqldAIdxNU2GKV7+1\npM9kcVgpzQB29XksDolhxfeMPDzTZsRFmJ9PAv0fZGigNdQX/dRweKpWiIrx\nWR0ADkolGxo93+VpEiq9Awv1CMoZBrLdP4Y6X2rvSlQAgZuo2WIxq2JPGFIM\n4x7DdrhQ8XNvBesc94Pl3wFERvnd9epFpTsj4Sd92+w6ScldFeA9wQJIEwUe\nHNMWp1bH8U+S9UMeft2Gj/PivfZr+s2RLLKjgofvgYOvdaMd2n4bsT+R/sFv\nvODt\r\n=/maE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"4cb990815f59483bc2ba6051e55cb593245567e2","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.17.0/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.32","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.34_1571038624137_0.1442995583595592","host":"s3://npm-registry-packages"}},"3.0.0-beta.35":{"name":"@aofl/object-utils","version":"3.0.0-beta.35","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.35","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"16a5a755e1c5a9915590436552e6f4fccc1e4292","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.35.tgz","fileCount":22,"integrity":"sha512-AZ2Y33g2Yk+Sn5vtlIHfybIRj8YwoGs/ouk52ImvegNS14bhyTowJSB4U1PjcVFkuvqKdq6Dhwk7TA44f0DIcQ==","signatures":[{"sig":"MEUCIQCFnDGs8akFx552BTUvP4uHgCVvmU1Umfy2TBE6ZpGGtwIgIA2Am9xvkH5XRlV1AooeZMxmULM1Uxzplq50iek56Ns=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25485,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdqWLFCRA9TVsSAnZWagAAjSUP/2p6Bg695NTYEnGJXpbt\nA4mKBCoV9eavOjEINak+T1+cDeHmY6PezR1yMHPlnmtFEgAIN6P4yTJGmw4D\nAYwEhFnmShTgTxBWLlPrCsU1gTDzpUcha0WWj2O0pGXv12//haezdsspz/c7\nFrjt/gXwRZWU8StxbmPpu8dPgktuxKT/9q95b4BixI5qGDIhv/U2xIDC5q23\nwILsyousB5W3sxMxxzIZXNLYrYlzN3nrkECRmCnnsvxkDJgBpfkcOncYUBx8\n9LaQgHChcbMHbmP7E3VoK68z7xjTmCIZitRzI31yjhapxYLutVdtzQOvtj4N\ndOJEcm46FmLkSCwC928HoylhSjNk0zePPM1fWpO55jf7iOtVXv/MVVQYzi62\ntUBhIrOFxdCqPVHMFRpuqqrXChk+06PnWzVVHvDkhdVyXE5qHoC1nBRF8EiW\nPNmKXDayLiNKX7gM0/aOsHJW8iT4VIzgcRxKZMWAULnPXJrSa3P1XwRIIPpq\nIbW4VuSCWq+2DLGzLiKwQPinvIMx+zHJwJmdWARGbIbnbfcPhgbTPBA5vb2w\nlOJza4z23mFbpxlyr/ZLeeZi/9UC33aLY3rcOcMSauwtAnYep6zU/EvD9Mee\n2jXIGyt/n3PpjBPH7p4SJKwPXiznGSU76SnzLlVzhc2AVvIhRgiCWkPU2FLT\nUuC2\r\n=YDh2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"6506e91bedeb6cd9a30c22f437603e14e02a3ca3","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.1/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.35","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.35_1571381956728_0.7450259014581826","host":"s3://npm-registry-packages"}},"3.0.0-beta.36":{"name":"@aofl/object-utils","version":"3.0.0-beta.36","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.36","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"a6d7f671f13cb532d3e5c602f6b16596eda73ac6","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.36.tgz","fileCount":22,"integrity":"sha512-1cs0t/K5GWrB/BuzPifE84OdjGnVm0g4777l+M7bP84TE82GQ6yj2/QsBWErnOFBxPtqJQ+czYJSAMT9gP/iKw==","signatures":[{"sig":"MEUCIDedFDIJZcVgVtN4fBwtqTixL8x4dxJfe4jXnKv53Br8AiEAgWB3S0zkcnFf7aRiQCVhBcXtKoQB17lic0WViCm4sSo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25485,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdqulmCRA9TVsSAnZWagAAULgP+wbOBk7c1bVFLrQBfzoG\nx1j6e8eMcwDCrRFyjoAqitESSuFrQMc5IBhzFXj6DkMDE4jYf2esva6auIQT\nkg42pdojgmtjLgRkA5TuydGEwtQPlr+Xu5+aa10GrNzjQOVvMN4ZGZENu/TT\nFqorVS51wv77ykdhEesNgcqOKo7DYukshRDR4ThQGJMGjQfnsgcNpjydO9qk\noEiiw68Ot4mkSDS58B8uinYp7Na4TgxBL8uONLuLYkdYSpbGNoiQ98Qm9gj/\npGwJYNBjjdhfU93Z7FBBw57EiLPV2A0KotKiv9YF9ovPl42dNb74Ns1Cc/pf\nN/0czzwZ+F4yAe7Z7tweWW3diGE+e0rJtUCfSPSQUvPUlV1OZEyxmEyY90I+\nTKr+aGsJwAU6MNaKu4cMH16i+TdXFUj3x4eSXB4OrQAZ/y9UnM83ufOpdKay\nA9j6VrO5XFcUNMCule+UR2sDr9xmhZ6z4Fe12rTj0iKlRA/xRC7PcODmYszY\nvLyCKLZfKi2LgaFptLg7lb0slRiNT4sXqWRWHGLuuycGnEgpS8a7eprmVALB\noJZp9ej5XIa3MfAJe4wKGzBBqcYD9CKz+1OPjXb3dTEaBflCLYolzSgTfj5X\naoOLXvt/pNsUVM8qYdA0OU/juwRTelKhTBbkczs/XFy6YamanIzRVV5gd06o\n28Y9\r\n=OPfr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"9eae9fc87437b61f0019ffedccbc3df7c8e02a78","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.1/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.36","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.36_1571481957570_0.458342925827083","host":"s3://npm-registry-packages"}},"3.0.0-beta.37":{"name":"@aofl/object-utils","version":"3.0.0-beta.37","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.37","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"a45e29f92236ab025482925711f6a43c164a5178","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.37.tgz","fileCount":22,"integrity":"sha512-yzL3ZT7F+MIyXwVox/6qQ2zFBvsyJLsSOmO+v1XsFwRfYYUzRH9pgERFDG2zg4QorIV2NsyOIJFhMhgVrwutEw==","signatures":[{"sig":"MEUCIQDYM+uLi1BSIpqonI7ANkRsc7+xvi03+Qxah29dQXRUMQIgQHOCP3twDdlkayzAfewVPN2p3OS3qHF2VfUgVu2Hqw8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25485,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdsT/CCRA9TVsSAnZWagAATTMP/3JapSRE1qL4Rb02B7RO\n+IAA33R9/xQquONMWTkPPBWB37mddzGO4OXbhVL5BL3Ps6QLZdYz3rPyYet5\nt0k9mT+vW3f8I5Y3tWjJ29wOBGIMauPMp9NGD6DnMuODlZo1XLk0TMhdoaMj\n4spIK2LPnRaVpKDTML2F/WE5VAuHZau+H24/Let66depaKYq6xIciuofZ0r6\nwej3G9bYg7fljAcPZu43Cbp2s+b71G33qyoQdgkZ2NUdAwR58ASAs42VLUix\n0fsnIDy/rceu3cWdstZXJK5jDBkgPFZxPGInZh3VnCmVoMHYjd+JK+fuHkP3\nwXiUAT2P9uzQbArrUHEMRcQTW2ofNWEUSrW3jTJwHeUzfNXYytgUz+J9h+LM\nDsW1oHMyxNkqZGxLLr6YPhEc4ATwkw4oIiSDBg/Awvwwz+3cgCEyCeBevWmN\nOFqEAiQX04oFTMcabT/8JjGl5Sz5SAQ1hLTRamgrxcbDiZS7M3nO/zRK1uda\nAzLD9RdAupkkI4BpFagavQMZ4LSqerNc8I65nEa/C5gFMpEoE1Q7Ihr4Z/kW\n6waVlPl9J7u59SRlWhBiwua7SyLUUyKIAvhrSVlasxBXyBrZHYeDHvr2eIqS\nJkr5XierMfknFUvJgSHhx0fQ4Zt95reKJvof2exjyuUcLZJbQbM2dwbw7tZu\ngKHo\r\n=XEzA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"90abdfa3f72b91bd0c98e09afbd59c21621fe846","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.17.0/node@v10.16.0+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.37","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.37_1571897282098_0.6226608082245668","host":"s3://npm-registry-packages"}},"3.0.0-beta.38":{"name":"@aofl/object-utils","version":"3.0.0-beta.38","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.38","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"6bd5f6fdb8a26b3a42755f05a70811b481098cc0","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.38.tgz","fileCount":22,"integrity":"sha512-+PRduwN0IEpvwhh2CXtn4u3NTQKcnSj8md9AkDacM8rHOyusu4FuPf33hQsIkYhEeF0lyNUAGBonRNolCEx5Lg==","signatures":[{"sig":"MEUCICuXO8mhwlKCbIjp6W0nIrTN4zuBevEX5lcuvQh/so4KAiEA3FIj7vvZBPceQr0/1KZ17RA+KM943iejMQHnIQuQS2M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25485,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJduhQsCRA9TVsSAnZWagAAw5wP/3KxOvsnB0C4szW7YTKM\n+1Fgdfc4/yGM47w8QHajauv2wBX28QyAzNvN2+HdlbNH2osMobTMlk5y5Auy\n4JeU20BRrFW2Tbq6WXGUX6zKrl8yKFCrApRPNB0Ei4jtu1ucItg+9avmHDSw\n86PHeFrOxfBYkFnqugzFhBw5rqDpC+2Dit8QOg29hNMqilpBUodkBQ4W4GLb\nzhSWxTCtslky7+UlqYAuwhikv+J8HxDip0LaIE/JoTbrPim07/G4Vek/05SY\nfcntw4hT/0FU1oUBQupSWwGddowtP1dzQMCAPRvLu9m5gw+XOdt+OBF+r9sG\nXXiJtIIzhTPHOt0fskk3IUcEDrKLex4RT3IxY6ZuNJEtCOzyKMB1NYx+Id2q\no5pDMx3KNKNgmkC2Yks9i3q2Zd5LpOlIuBgKqtP1V8rIbYAE7mRBwr2wIyUa\nE7xsNgiGowV3i6IsTcOgN5ezBGzrOKZJd65IHIcIag0gEepO/M08O1/7uXW6\n6LnHEvRm4Kv7ommv/0I6cDxa0F3OVCz3fuJNBa1/uznFnpouoYfQ0cVYUOEy\n3eblWeqQvMJAVPblfDj62XGo2vq44xhMGDtH3hzugBg1D61o0jfO9D5EATEF\nUpU3WOWDChRP8ANBSyvURYXahaOErtGUB07EABhFtNkfAUmzzbKM0yHE7A3/\nbc+E\r\n=yp+5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"9fff03a99453d439b551d48a69e5d642b9957854","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.17.0/node@v10.16.0+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.38","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.38_1572475947732_0.5974204750811698","host":"s3://npm-registry-packages"}},"3.0.0-beta.39":{"name":"@aofl/object-utils","version":"3.0.0-beta.39","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.39","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"e8c1f79dd7b9d587d11cbc5c05303ad44f1ff73a","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.39.tgz","fileCount":22,"integrity":"sha512-FweUr2eADe3Zccxo1Ud46RZQ876y44PZGMyrKeOFlmRIf7oSjv5RxFmaIVJsY/lmNBsvMJYYQ8Vbai+Oulx8qQ==","signatures":[{"sig":"MEUCIQD5/76QLIUv5kE7MazvfR/Q2KvO/6UYhYEvKA1mkfQjPgIgXzOAfzmyAxHHClqzTTzuEk+UppNnDLOdjgW0AzXVW24=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25842,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdujP0CRA9TVsSAnZWagAA0nkQAIVq+ZKcVHJ7WmKSC93d\na65U4VVpaxJW1bu1aJ+i+qN5wtc62q3YuEC6U2HqwADxLJ/Esxn0c1i7P2eC\nUZMc3PR4qvVdDUXl3+2xZZoMyjKsTxVbWkbyoEnuHtXra9nvfOpjSMzIKpUY\nk/HbZ/nfSsmlD62N/mbD6VG6mOSAaEVsJ1l2+t+XXSDZ2Ud+hZIVq5zI/5vv\nlyJZmI7YAJOxIdGxSvHpx8MHDz0jMMJadkX1u1cNAG3mbWUTHut/AYCfFBr8\nUfcHv7K4h3u8xk/vlvCrfzZ3bFC4hUO25zD+wpg6Rx5ebMOpTXFON+hbzKDM\n5KqN0ICHAJ3MKdGBmCDnJuxoJDMgIOQmpuXDsD3FNAL+8ohPGO5Gg+emNNDd\nyXp9PkLfPT5IhpPKGKqY8czD9xoZ+mkO4a6+iuzgngSjn9cABR6E0OVWycD0\nrFrPBzoOzdXTJ0gx6tzrbr534mhpsicYK5k2Cutv4vFaPg6gGe2u7hvCCoLF\nHFozjst0HU2h+Oy3dQJnPkGbJdkvh0n0Map5eCKKWyA8HfeJS2pZNyx0EMbm\nA8kQy6w+GX5M1lHrUsh1YcriXEBtCF9ew6TWmXN4uihlbmkr9cF3JvLyF3Ts\nmnPe6hIxS3daUoHWSOo6GJa/gQOGGksGlV1rhK1+vZWj7pockfQ/Ml9vvufM\n3VSU\r\n=Jrsg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"34d49dff4ba970447c184bbe8809a533b1146a27","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.17.0/node@v10.16.0+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.38","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.39_1572484083566_0.2191941518525744","host":"s3://npm-registry-packages"}},"3.0.0-alpha.12":{"name":"@aofl/object-utils","version":"3.0.0-alpha.12","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-alpha.12","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"b47e78eb069e494f2857aaa2268a05311440a0f3","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-alpha.12.tgz","fileCount":13,"integrity":"sha512-+RbmiPQouUmEdMpdktQyB8BpmSdQvEWcB60rqVNc8cErePj3eIYv1MNNX03tenfVaJF4DGdlXzPHDi+XVF2rmQ==","signatures":[{"sig":"MEQCICiowjqq/VJs7WPYJVmd0T3Laltg+MTu3EP8Rxcyy2z5AiBAw11czaZbpsQyoYmah5kK+WLX9H2r+Yk9K5wmfEJPmA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10936,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdvNfICRA9TVsSAnZWagAAFHMP/02E2PqsG69h5wD+PJaX\nsTEScdwG6brob/DGf7Aa7PrG3XG+UJoW2Ax24fouojdXwMOduYUHZ98snr3f\nlHVueGKjR5R50SG+79gQhSRSaQKxP0XPMwT3YQfXoOBl8k7kbL5PgwRUgbSs\nHG3M+GdqXFw9Z1f9XviCFjXybfE20aNZyOKjF/jPCEDQMLPfEByKMRFWsuZN\nCzr2pLvLeMlcqyLkPv+U8Xs9UUN0HcIHLjh3ZIlOy4q364fJFYT+176rqB5/\nmEIVNBWehm+cAY33xhZMuSSuRpXkJryHQ/UFZ/fBZ4t5I9/kPVlc7MHrJA7Z\nqYlNIW7DL2hJVNdXNn8ZFkLoIwmmxgd4M2GyJ+FqhQwbf6ojP/N5vwiTvSrU\npBmj4anP2cS/QpkOB3UPUL+xuZ/1JHlf98dFyb3swtgVFyFfwd0xhwgKuhNT\nLjOB+ynpuxF2Q4A90fj64lhGw0MUhXy3rVNRTLBj1iZ+hGUe0ZQIuewvF57E\nl5fnr8RGuvlHVxrS+JIiPucjAzzpAjDp5P4M+DHIcNpbJ5OvBXwhZ+b/L7qG\ng1H02YngMt1t1yrk5ozgsInhQkLLGMUKJB8YoJLcsbjmOaZEHadeuyln+FXy\nV4E4ADWzOQJvnI9xjhJXI9IKYKDwA8pN4IsVsC1pdyEslnxpCx6bIBqFpv7V\nK7IG\r\n=h0OL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","gitHead":"e76c3cfc8d75ca087492088254c9ef0e4010c0c9","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.3/node@v10.16.0+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-alpha.12_1572657096039_0.19086613060478053","host":"s3://npm-registry-packages"}},"3.0.0-beta.40":{"name":"@aofl/object-utils","version":"3.0.0-beta.40","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.40","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"c2041b562cfa3c1aec0b93e9710b29e33a9f8714","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.40.tgz","fileCount":22,"integrity":"sha512-z0mIXXmvlF91Wls57GRQzwMG4rLQS2R6oI1P47BAA1uUyLv49J1d2aRjU8x2NOHQt3+hw4yiKU6Mnc1+nGhMBQ==","signatures":[{"sig":"MEQCIAV87P7t/pF6yqIEKHpFfzoaTxGqyr/m61xFT272fQlJAiB2+1e+d2nJXd+k0yC2fc0TuAFsiaUWTQZgAMd6D5ijVg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26037,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyeE7CRA9TVsSAnZWagAAEEwP/38lOoqisi5atrhaZeGz\nJxdEV4xrs2ScbanLndNM+zWC9jTbNl042ZzkVJNOqJiO1VkJ/mh2vMTf/Unz\n4gzozTKt9vbeJu7wPUE2C/dVbgan4OxuYvjd8EKOiX8P22j3XC2jHep/NMn0\nrUTrhFHPeG0D8f3CKPLbhltq6z7XAzAMPEX50Xrd1qM98hstirf7L/RFQItg\ncSQvEKnMuu0uLcqi8m6wlz+v42dOAschJncMfo/lZlv9JZaNI3kID+7kkb8i\n043gXIFMuN3xxGSRxqnzcILkWXm8gW1kguiuNfj0YSuTabaLfsU0WZQBoT0B\n5HkPNh6eGaAkkgiDQPI90CRRYjmHQFMvrBRuqO4CnuvWmrBkMrbl3AJK2ClL\nfKRyZ9nTMd2bKkasgzplEvRQke7eKOAw2CdCyhKM973b0WAA59kcosa5q/8z\n+ERWFUDYeUlp13MN3gQkPPmu3KvxIrqiKmEZ/GFYLoasfD1Zsx0tEX/Evj79\nU2Unzsmnq+PuBancroX96Jve9UGtcE9cRoTsolvI3EsJ2gRGgRgHRD3Jhyia\nZ2fElimNa2k5qTaFVIuKJLlTJJnV5AtyYMzPLhVl1J38arEpQoQjBBAIqTY3\nbSb1QGCSAv7CjgFm5Tl/DnG37tb54A5CkhWVgxKJ8GwzH10rsu8gUkEX+h36\nqpO2\r\n=dBMv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"0bfdc05f0d4406219d0b432a55fe53ab1726f4c0","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.3/node@v10.16.0+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.40","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.40_1573511483184_0.8617060583123557","host":"s3://npm-registry-packages"}},"3.0.0-beta.41":{"name":"@aofl/object-utils","version":"3.0.0-beta.41","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.41","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"f6b9f6f1662949332c6481fd8015b3bba87e2bb2","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.41.tgz","fileCount":22,"integrity":"sha512-zdT0NNW5Vs4YUgmqcgAsqoQ7AKjS8hjtabOjYhGEy3f+JhgvUL5qBGg+xkWtMhWO9X8tS3oGG484F7ECgBrP7A==","signatures":[{"sig":"MEYCIQDiu8i68x5Y7KyUB690ml1m671PmgiRVvTnJBF0neGmWAIhAMIYVbZGGEAqRAZv/p8Uj7BU9u7e/O2jb3T/CxDBA1jw","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26108,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyjtPCRA9TVsSAnZWagAAO3AP/RKa1Ar9vVYWldsMBNNT\nNvTQYOW1/Wdm/R0UQPYBzKNS3FwpZgOi7o/SPkL177j2nide2H/u4u+x5mjG\naBFmENIANgxovIlkE/m2AO1rS1yzbSIoOhhlC/sxQFKyKhejmH2WWC1uwGYN\n31re8oOJ07dlnYlGT/ifKutWVy4pfvFUe5xaMF1x7/OkvPTWp4GJJRY7/NY7\nBs+6h3KLs2b3x+197ftaKY0Zzo1K6mFlL/eHk8/rHMGlNLn/PFaHqBuzoTgE\nE7TrP4HAhlJ9qasa82RHT7E2QFDTvzNv3SfPBQUS+xUtLU2fJXAuZa+oO3o+\nNwUG97NFrv5bP/W7b7T8s8RwKB9HVtu337I/4gTi/TXwatGVrd23lhRvhXPV\np0IweQIXiQIjiUWOP0dNWAXLXH1rPevneVqqxdjwKInU6gDqrp7ac34SBETW\nJ7DUtjQaQoynCu0QVdyeQLEUNOt61u0kHHgQup3HX/rS5FsCMtvrtd2Sm8mM\nZgFnXarsD0XbOkU0gKQS5nvS2vXCV48TzMyKjupV0gldxzFhaHOgOW68x+3r\nuU9Q9sEYWcb6cv7GrRfZKE1zn/uANq7/CgPRuYE3gSTNAkDOHr5E7whFkOZx\n8+DiPR/NoKjSCirYy+DEC0q8t3RspHTg6rfs1ISimmetDLQJkJ6Pw0bOc6dT\nH2XS\r\n=erOY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"212bc663acbda22a9679fadb2aa64484e35dc068","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.4/node@v10.16.0+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.41","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.41_1573534542599_0.1894231954237664","host":"s3://npm-registry-packages"}},"3.0.0-beta.42":{"name":"@aofl/object-utils","version":"3.0.0-beta.42","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.42","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"4877d4c3ad9348d651ae7ba0300f0e722f472a76","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.42.tgz","fileCount":22,"integrity":"sha512-Ryv/cMlXgsV54rzpT10BWgUIUQfeJGRW+2pDNE3v0kLel9wx2yLgGbQOINFP134PrEI583cur5DB1MR7XIBXrg==","signatures":[{"sig":"MEQCIEIQrZ64EOnJBVhDWFy63eLycZS5aOfyMmvCs++NQ3hNAiB8LdrC+5UsY9t8LIXjsgi1GkmSg3hz/kC6YOeoQ7EG2Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26108,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdykjtCRA9TVsSAnZWagAA5dMQAI2I4zaqTzgW/JTa2diT\nkpFIxBOhNlBNh8muopcpbY2TT1TaaoIcz9eQ94kl2Qq49nfAKsyWxF6iuiGc\nDsu5IqVHclfmtofgHBPAL9IRWJBqpvrwR1PAvI2oCCfwN7SLxsaiFGZmL1hK\nvkdBMXGkSbWAKzYM3DlXLfb35qRXgoXapOW1/wqagU+kaMyy4CJFIi2SzhbI\n7DuJxZRd4eCDJqMmna6EmElcMZiD8ydyb5bV1z/fURgbxgAy3xHTUu7UaBgT\nX7DAelvphulWQSNVBdE2uIux182sYHOfOgFRdUujha3DYSHoahFMcKZJKut9\nVTGgHK6mxQRIQpU/a51i9erXpyEuAbqS/iGggiegCGdm8HjUCzBRGXPFBKHY\nSoDh+T0S8r/i5OVSTTa/+7St0gkdu48belv2Pg5BMpJzpuQ7zpJKx3ePn7kW\n7ziIoXMd6zWaYziXKj+TrkBbEt9OMSl63dZu3hOD5TW6eMc/C1okovT6EkGY\nZ0+L9ybWSl5xZxHH+LL21dnihbB+hCY+V1/4Vj1RMR+uEVKvLwYKfGuUu4KQ\nSmckYaEUciM+Galjvbesd6DVmd8e4p4NN/TkezUF099uSzxbLtRzgcGwzkU9\nhsZ6RJboSTSdqfKaB3yR9EKng6XRIMHjcevlOVaTwHkuM9BFGlG3Ku2xUU2c\nfMt8\r\n=7br7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"699b13b7bf651fa15a25ee2873b72d9fa1ef14a1","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.4/node@v10.16.0+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.42","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.42_1573538029588_0.13322413474131167","host":"s3://npm-registry-packages"}},"3.0.0-beta.46":{"name":"@aofl/object-utils","version":"3.0.0-beta.46","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.46","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"ac2df97a114571888545dabceae7f046bed98ed5","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.46.tgz","fileCount":22,"integrity":"sha512-+uuWP3JjR9heRS2nk8MOGOwzm0/eA6QIgs4/b8QHrEXsga1QSdwhhmWleXUdC6zjxrk5/IaotcAuhPBn/rMSGA==","signatures":[{"sig":"MEYCIQChSwJrlbFOYugJj7yI56Zf0YWVe38I9Vvdmb10Ikde0wIhAO6G8euXViM4So+D2lQ5e5qg8t71v1J6fecdBygbHc+/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26141,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzc3/CRA9TVsSAnZWagAA1xUP/0Z66nbkT7OmDj5IWuKr\nkkSAATUsZE/TZr6b71VRqI/wwUudP8l9zSwyxW55eNfL5xn679U4C8swK+SV\nFFr1Yi6/2z4ElWfdC57jwmLjZRL/H3NvIXdMbJkB+ieNpKbwb7bwbXj18V7O\nUv8k8OdOaR/ecj/RG4q9MN3F33MDkphjhC45VOvkbcCT506WJOBTX4bFnhDt\nel39W5VwO1tUAbvCvcJ7u6kkOZzURxZSf9+34Lvh+AGiR2vmiBgadNtS3AGV\nKgK2OWhN9Qr/S0SkmPYX+5SQ7YrnlZhQErsAjzL86HOUXTORRQR+ijDc9X/Q\nelBWwtJaFf/MEyPUD/RWu1ExDE2zD6b9pszSqUovpPYEV6zAleRUnN9kC3eb\nSppqMb+/fW9e4oOWkNGeGW4cfQvb6xcaCOin903n+S4b8er6OxvvWWSMn0fO\ntPw0k5CGYLCwJgRRwZbWwkzlXe4cN3s6fFNRAeILlrx6XRw3NeOFPZ69z0rv\nZIG1zlk0jWLk086z+c7TYOBJ8d2gfH3v8q5JO93UiXK+JfmybyhvvtL1Ufaz\ng5OWqPv4J0wXB7CQEJUmrFQurLihjeNyRvOuOgF7k6LjN1WXztq4E+vqYjPA\nYVihZTy+np6I9l9+oE9/3IIgXzoAKuwwbIFH34E6Mi/Z0uL0PPO4wYF/DcHI\nqMxR\r\n=+kX2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"4d18597a6b3e63324cc8b2f401d986dff832a62f","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.4/node@v10.16.0+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.46","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.46_1573768703173_0.24258782810472024","host":"s3://npm-registry-packages"}},"3.0.0-beta.48":{"name":"@aofl/object-utils","version":"3.0.0-beta.48","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.48","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"5161955c7dc714e3d33cd59fb8b532af8e7a6914","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.48.tgz","fileCount":22,"integrity":"sha512-rjQX5IWP/mMiBHbbExUyQwDmsTSbH9Pf/6IaNHe6yVCoiUiS7ZfVVDj2TgKeXszb73J2TCs311VszTahBTa//A==","signatures":[{"sig":"MEUCICxBbXGowiW6cUpUyd8TR0KKNUqmhVJzcGHveHUGaWYQAiEA59eFZu+r8QdFneTDyYkhNRcksWrykeRwupNSNEncgOE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26181,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0IflCRA9TVsSAnZWagAA/kQP/iasAT7MnTFvdXhj/b/4\nCNGiS7y3Mi3fy05KTOcRyrw4KWzqAC6xKOXEvxps22syvDUE+jrB5Ulz1kJo\nT71nneEeR6nhQ/HQDLtzJo05VTxLiTXdFmzIYDW2t4IXjY6ZQ2ib4RCMArWG\ns18SoTCsRKVO4AOVeNSEry3GlpMpt5y5zfCnbD2TYYK/gAwbcIJl1Zxz6/Ji\n9sQH31d2FrKOVA0qEu2C9C+8S/b6cg9sYesa0m+/PoaUg1N3L2N0Qmbw83nI\nLjPfGFwdnRuAeU+xLO7t5E06sPBR0YNPCoScqa7m45jqb7Emwtya8Mw8JZCW\nPMo483dVtBCTaGBGWi6fdcbw//9azFEEJgt1Kxtwwz9e8SHpNySEBwxihoMV\nWBFvdcWTL7hX0x3ytrLONIEhasHu3i2BMzjwoVXF+7DA7hRo3A28tHBFIig3\nOxB7aK7bVgLe7XqXN029+jP1NWvvQTup6h9FkSE+QUZvpdUGEyTOB1GqSFre\nYekfGBqJGIkQtye2XfFUiHlJS/kgzcuzj1KEBxdsDaNWszad9WsqlYN5Em4a\niJDhzBsbmUWEP8rdaBq32fKkTWf8kAGffAg5Zfe7VRAmc2S1bW6J9VS3MF+0\nqMzbsVzKJWeGJBJby1TOhmD9FkPzUAv5qzpLyOko6vs4HbLDzAbb54Wa9x0m\nooGp\r\n=E1hd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"d77a51a21b591d1ac0032de47395878116e8566a","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.48","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.48_1573947365243_0.8631772800363471","host":"s3://npm-registry-packages"}},"3.0.0-beta.49":{"name":"@aofl/object-utils","version":"3.0.0-beta.49","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0-beta.49","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"5280ff7a38d361799b20986854298b9fd2cf74a5","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0-beta.49.tgz","fileCount":22,"integrity":"sha512-dxMfhlkCVAIsdz3taB1TXt2ct/oltVa7e7xp6MQxbc5734jCsR3a3v0GnlGFxmvHmHGo5zoBztYfXKMQQsJpZw==","signatures":[{"sig":"MEUCIQCBmprivoFYAqZmdIC3h18u5PyQvV+GAojTcaLUlsE3PQIgUkr9Oo17LpCzD6jC2cPPseaFE93/RExqlHL5pSBHaWo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26106,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0MCXCRA9TVsSAnZWagAAxegP/3XJ5V1nsqvpHBPWoZIT\n8vYfdnMLU0xLcMbtXurap2/PFoRdLA/1KQEWHz4kqqRVQuleappNzReQFEmv\nZy+0NnY8gPJbhv3StiTDMuIoDQZhu1226l73cmMadOUMriE+VBg4gfEMWuVX\nlI4B11+/yNk1JIXmdfc5Wdfxqb8p+ApuRxMBhY7YfSxelugsmkMKyIWkHxZg\npDZjuIyiSAQsCFP42MN9z5aNZWAWe75Opoo8inWtH4cfJE2yx8H+6dqEgQbd\ntlMfZtxte5TxId2rsSl6MOsUKlU9u/Sqwke5j2UbhWiqmN2m9DdhlqPMUoGM\n0xdJBq/LrRsXUUqc04CQCTdlfJZupxI9z3SK6O5q8BdJ/zotYQRZdtDpf+fg\nifjer21t2Ei+UVgZCClRPd/K1aBwjDQIDc6vqdi/qwOcCoWnWH0kMjsN5pq9\ngSMpDtq5ZC9tVnJOnJVV2v1c6NNyiYNMO5/MMmXja9UXnXmKf/W0hJTv+f2A\nPmfYtTp9z06iYkAC5x8hiKtpTRkZxP9QIu8R/c9ScIAeWv8vwUn2M/C+Vd/R\nd2wBC77YPPb9cPVKEiTuBa4A18aNYvekfRwPOPBQWhomC0jFv84y2L+k4KXS\nVoFmIGbvdXToJbsik7+HuJV36Se9pyYpylChjJjH0XMPMN2AR+ZiKR3Qb2g2\ncZ+U\r\n=wx+H\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"a2642ff8dd100adac8db3d609f63e2bc6a2247f5","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.49","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0-beta.49_1573961879399_0.9961427473709896","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@aofl/object-utils","version":"3.0.0","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.0.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"49052829a6f8f6bf8bd7757c5fd55702303a00ba","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.0.0.tgz","fileCount":22,"integrity":"sha512-J+zeSQDI9PyZgiuoRQZJ5pz6eFox/I0fwyr2nshu5DWL17XCSunoC+ww02EkCH1fG9MW7rAECB5hEZhUGOXS8Q==","signatures":[{"sig":"MEUCIGQb74m/OonhCb1liIfrQxRslMyhU+Y8EeBH68Waq76vAiEA4hMUEOEZngsaXi3JuzdgdV0dFbJU1nRbzFKUXyGt8PQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26090,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0PFkCRA9TVsSAnZWagAAlA0P/imyAvg7Pf1wczXgZDta\nF6Ng/N7a+IU6pUAr4or8Nxj0oqTV865Xm37+Mb4MWyna6dRWWB7cNghkWiDu\n4FqsBEwdJpiBAD2ueHA0Pdi2cpSp0SlPzbuTDTZGzKrxoX9LOh8C760FAce+\n/lvEhUf+9eXs/EhCYwzkaWPMzi1CL5MuoKX/EuGcAmRuT8Crku7rJbIEZ3/l\n3GP75nwq+MJysvJUOPHsouB87CTkKxrVJsu2bUR647tl0jxRbYwIvysDYzpo\ndpHGBTnkEX8mpDqoera+SjRkrEWOaHv+mJ6jpm3l51LK6Pw013auEGXxbYCK\nywI+kF64UHyqksJDtjg+87wMx29DBq/FRYteKy9tdBGXcgEqf9/6d/2ea8mK\nKv+xdyZRjz6weSqXPY0SE5w6BVL4/0ejwCseApiYunq511YBfMcK8jl09Ftx\ncQysVtJbHxh134P+aJpgwCb2TyVsomxKfxqpS6Rr/NDY3l/lw9RNVlOPusup\n+5xyhlchI0uvjg/Wuh15UPLmyM8ahaKJ05RVeOQXy1+15IVITKnqtEwZ6e8T\nDsyHr7pSghs5Mx/VD56KaWnu/qkwkEnNefilLT2ScLyfQfbCe+6RCIl85EnT\nZOKQTFERq8O1A2gAMx3kD4B3ZMMLEhBi3NDaBYzNmk/HY2lTpzJ1a+LJCAOe\nGQnO\r\n=gO86\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","gitHead":"bd783440a25a2c579fbb506b92d90bf4fb7e0289","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.4/node@v10.16.3+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.0.0_1573974371752_0.2004877632947668","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"@aofl/object-utils","version":"3.1.0","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.1.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"c3b03fa11c1bcefaa26a6dfd20619cc6dae4c9a3","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.1.0.tgz","fileCount":22,"integrity":"sha512-uP8hJBbKbk/0th0VASMc0Ia03SMFvJwVF0p+GSpHEnSezGkCI7o8ICUSIbXcC2qzgn+te5WkwfUD28d5vovg6w==","signatures":[{"sig":"MEQCIELVOGWc5SD8/Pcvc8C/BMrIpguq8nQnr55IBFF0CobTAiArlMwW4Hus3WbuR6PcKlY00KCupni0tkTbAvGm6HSgZA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26058,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd11XZCRA9TVsSAnZWagAAjS8P/30XjSFkHWqxeEAGlMis\n0Qce/vYQYJflRf+6edmfmzWVVZj70+3AgCIDwLx8K+ioiIDf61xZcPdpPcNF\n7uO5LFomyaidNOedPvRua2Mf4vmNXuw8Os336EZ31UXdm3hv6Wx35shV4IZy\n1uT17TUYOoWZZQGlQyYSHtYcwX2gBnUPbGx0pq8yefYQFHDtlJY/BVmE/oB3\n4pXY6u65wo8boc+U1yHkkapR1azLOx/iFSj7F9gh1JFzbWztf0+oK2pyAvVq\nWWprpLPTWdmY7Caf4UwnxKHrc65reUzpiIYWe9WJIqH5fA3Re6FrVnVy9CFE\nPBSGxFbxWMd1xZ+mKqmmRgra3VLKNMIpHSwnkBt4IqWTGyZPn6iZOGvU0qZY\nH8gGjsExyMdYJXVQWxzhv/aqYlQvunOReTOavsCCwfZ7xX4KhDqatWhI1NUB\nUUC0FrHFnfrkWimbZSvJsbnjZjOfugNuGJydd8776jolzFUkPYCo+AZQw8+H\nK+ySy2tzvWcGhMKBvSCN8ETb2W+PPduddTjfMYh45MTAYVPI6qFT+JabjyEM\nf0E5TAWhyb7TZtvR3roOdkIUnGZDQQ+xXs6ZUSgR29NVJw+Nry3o+rzMjbbP\nxBEhj9hleeLVP242gFNNkZkUr4AyFkQSd2bqqTbpAFECjA/dVdiquxCNFnYq\n0X9s\r\n=FfIN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","gitHead":"cb7c610ce117e6fe41168dcb3e2758d12900b277","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.4/node@v10.16.0+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.1.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.1.0_1574393304526_0.3265917119317401","host":"s3://npm-registry-packages"}},"3.2.0":{"name":"@aofl/object-utils","version":"3.2.0","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.2.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"a7c6abe6bf315379015c59b0ee90557b4ed8d740","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.2.0.tgz","fileCount":22,"integrity":"sha512-GX/EY/GzKEUPGi2W/Dm7+Uaxai/6jaDtSIMaNFGgspXdBvG6X2VBPzxYwh2jWgShGO9BKYarJNIJ70wA8N5suA==","signatures":[{"sig":"MEYCIQDqIEvgP13xUNKXiHij3ICD0WaeLzpVwLwvb2+SMjG92QIhAP04nx6FlH3HX4PRJ6VeCEyuPQGZYuoPgPPEveuNamu9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26058,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2jKkCRA9TVsSAnZWagAA/YMQAILEFkgwWqbUi3ummNpl\nku7KF21CiNmXafqMHr1BQ2BvAZOSszGdlBM8nYnLWUeY2XbIae+M/Knl6Gbv\nsJ5a0CB/nWaHXdyJLtZLOWrD3NJOf5ewxm9WUabjxER/CqsP+inc0bvYTGst\nGWSbFLs+mFdS0G6DsFKsDYU6LmqDqBiziYcjA1yZp8SljG2ThPIuT3Zisq7G\nm2gi9v5c8rpYFgsQJ394GbGe/RXQJjQr8rJ+ukv1+SHKRK3k8ZdeBdb68igL\nBE7Bf9+iqWkByWjv51aVUCnXY3/Rf3PhdW46VRCZNbRzWSDJXobeYR73qxED\nxzX4fBRcS5HuTGS+cCyP7pf4lwOmyWfmqS2QaaEkBCx67zTipfCuTm8ylzIt\n67nGfAWPvB01YuVJCo3uBjy3O2M2WUM0GeP0g963x97Y9A/2jNldrhUT+pGh\nLP9X6kD67qdlOx3Nd6Zqjy5hYhyU25+/R0mHGBRQlSZo1q/LOpbbEvtc8q3r\n5WBQuemiTkK3dYGdfm2S6KGO5fkQtoHaEicYWC3mhU/cqVSbaadMC6DGlZ8r\nIei/4vLXGfxoAiROe+q5h9SFHjiCvbZvH2L/PKxqT8vp4X5LDxf8APh2P2lK\njCTx8VgztE6uPjC5cMEcvCw0wyl+ME66JFyT+mOLy9TuQOIt+nEQzulSqlQx\n/2eS\r\n=bxRI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","gitHead":"8275111725390a8f797467a12e045c905a78623b","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.4/node@v10.16.0+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.2.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.2.0_1574580899800_0.4912409928341721","host":"s3://npm-registry-packages"}},"3.2.1":{"name":"@aofl/object-utils","version":"3.2.1","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.2.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"691e07b142c7606b92133a3922e4d4b8b2ad47aa","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.2.1.tgz","fileCount":22,"integrity":"sha512-wT+rZwWCzu/ceWqjsyoMXMRMSFEb0Tz+pfpzb1XzDCoy91kRIwT4EigEZUXv+IUpxTKpxedr93Qc/zeo9wPdDw==","signatures":[{"sig":"MEUCIQC+c8fa6kyhpUfhEMwDdUQfLICLrAEaw8bcXyrnGPDLfQIgD/jx5VmlEXUWE+51CLSEPBbEE0Lej+QqV0AasFRXCTY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26058,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2jlrCRA9TVsSAnZWagAACpsP/iXbZm4aA6Pl6/mZyQD/\nMCwHQ/jEGjx4DjPungqWCkkVs4FpvdgtuPx1ZYQPMZPk2HbHm+ck+ufAlIgZ\n5O+Qxy55hpO20WX6r51o0a+OcqU4fXJARvlUrNcj/zDyQZm8XL9MBDN0wVuU\nfUgU1Wbjq4XlYseGgb8MnxPi+umbBHqnxMWYSSGlaIEJYgYE14ZuR0Git+VI\nMlUPLodOpFz0az/dwTynhy6cfPehWK//z0kLuKNy7gGWL1icp1B8zoPM8vAS\ne8kw97hlpsHxmJNcpLNUjBuPst6qFlm7h3BOHZ+y3Da08dZyfOiHYD5LYFB7\nm7lXC2t964ZholKWD5HDe7NsKfJxrOHGA+RGlXC4kPSK970qQeUwfsWv2h2Q\nCH3UqzwUlnik1kAed6sriefDg5iB8qMa2az3v1opdM2Ed4Zt1QyFLs4lSa6Y\ny2lctRxrHG1IuXTZxERDmvEy+9s+k6E1UYXbpvCgo+eJTk5aOcBlewYhUjcz\nQDNl9LIAAV8va0Ftb2f6NFFtpU1ZIX3G8w4S6PtnDm3ojZKgAxKD4S3xNkSY\na+RaM7HxerT553ed9EH6iVxJFq8meXWmlnRQmaE3iF7788ciQKsbf00E2jMN\nvX2nE8PdObSV4b/wc0UPl4Q6W8NL0fGTdE8L/sfghKpEXJWAIR6cEmORzj2e\nWPb0\r\n=cxo5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","gitHead":"a3a91753b98e4423d9fa5bc05d8cc8f8754fd040","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.4/node@v10.16.0+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.2.1","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.2.1_1574582635059_0.5095058744471122","host":"s3://npm-registry-packages"}},"3.2.2-alpha.2":{"name":"@aofl/object-utils","version":"3.2.2-alpha.2","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.2.2-alpha.2","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"f060327494ef62875abc274692346269f8744265","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.2.2-alpha.2.tgz","fileCount":21,"integrity":"sha512-UmpYOcFyQ0mehLiezO1eYKHZGpbplyBNnEB7cSXINNOega+Sc3EzZNP7N3hE8qfoJk2+RxLZcnK65dgbZ5KhJQ==","signatures":[{"sig":"MEYCIQDqNU3HhqayuUNP3c8gem43UhyoKQ7/2+90zKuhqhLhXAIhAJx1/F3qoT6UQmy+8wB8A4ILo+dSYqXFNOeCpxdbA/C4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeHiQpCRA9TVsSAnZWagAAp8sP/3KqRChat+PIehKSXl5R\n4xJ8m2s2n6IhBuxNQLIYH4fWeLw//OR7ovGNgNmreJRTkYZTMq8OY+4J1UB4\nSkZc7UCTVN9b1f+bh3IJ8R3izYkADqPmRx9PKiq+GSVUYqR11YYtn/YOFwD4\nfc9WPMtazkFlPZ9mXsCFSdbYgtCojOZ4jFruVYGm2mW5a2VtSmyPUFcNMOZB\nx5/yAba2tgIHOEbD24i5yuCFnx3jLpYulfc81sOkZtTYWbjBsnIK6t8sB6Kd\njVYr21vREINN8TokP35R3c4rVGx3It/WdUVqL7xjnqY6zGkG3Gk8AI+J8IjT\nvSkSzYKl/Mhhfq2ut9N1yT9ZEhH9iZqHbnys0uXOAZdPI1wLVTytzlwBVH+T\ngD4QpX416viem/M+wxrPkzlLP24HmHrhK0C/ngR0z1pL72KlVMU/GJeYpiC9\n6h3RPNMQy9T+r1e44HVDao7qLiu6zPn3pdqVsIMeJFGzOVc/70VjB5TFJ/9W\nqYoXYAYIc97DUu0du7T26AqCDSAgbXmYqq3wOIbxDu7k0f52NwErZOYb7n8d\n+xTIKxCrl1qiNhCLXhVB5ciEhp8hovxR/FfEJylKbZOOHfJ+3OSWqPrwXCTn\n2XME6Xebo9pJe2SnZ6Rv4paxbzm0HhbZ2NBZno9ovGfTOx/Whl/NXOUyHmRS\nKuHH\r\n=J/kS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.2.2-alpha.2","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.2.2-alpha.2_1579033641324_0.6305968427889301","host":"s3://npm-registry-packages"}},"3.2.2-alpha.3":{"name":"@aofl/object-utils","version":"3.2.2-alpha.3","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.2.2-alpha.3","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"e01ada2437f8bcb313796503c27b4bbaaf10b718","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.2.2-alpha.3.tgz","fileCount":21,"integrity":"sha512-6dr1GdOxmptsPGhWqp7NipznKaQi44ZlTY1L1G3Z8VFxOH/KpHjTsaHbflElUHXMPpYcIIdHnXxLvqqaZGbTJw==","signatures":[{"sig":"MEYCIQCd72y0hkNgGQNHdcGFNriUCFR1mUWvs/DcSRo6a8MOPwIhAN+HEg5OML0wlDKTnuC1rnfLg2/xpk/q9zrYzkJwSNrg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeHi7NCRA9TVsSAnZWagAAwFYQAIaYseVEEljojppvGWEJ\nyp9p3v1+HAIehdylylmd+qqYcG7r4l/dSfTB8d65MixZOmVKswHd5vaoQLK0\nWkfa8jQwlyOrlBMkZdTQsHcLUlNLVwov2nja7QaXlOPc5kt/A/kEg8B/GKr5\nj4SbDAr/4lIJ0T7v0VZ18EQSMgP6tB7BdIbnwG4igHGWOGzEg6Hxt2o923Du\naCAf2/c/h8CIWKtbDGXU8lITVY92u++Un3hfp51cHgozLXEnviJt29bxU9Jm\nYk9EhUO7TZOz4Tz60msIV/bNS6I5uQpDJcAaizAaubV/aZrGq1fR8gm66Dob\nHiB7zzbDl3QthdmXXBs+YhbpfTM/WmyOWwuDN0pTEsXbinPstBlc6hXhdRgn\nD5JFte/MnPC+zR5240fKPFDUQD3Asr0navE3QaIWmyApxq2sAsuM9FfwLcCq\np/GnIY2KGXQpIhnp1afRR4SksYGLLWHaKI7CWaRqQ3/o5wj1QKe+8c5ICT7h\nQ/8yeD1oL6PE785hSIgyrgYHHT2JvsPYrOfxszG/l9faOw0mEOZn3rGF9kU5\nWgLtyEfsjcS5trTIc7sgF9Q79wAKUHzqG55MaULa01kZopS2SvCZlqJkjPTE\nPQ1NfhxjYx/7To27uljoOibV9P2/DqrjU0GO80pbGUzuh3F4SlnsPa7MUeN0\nE99i\r\n=5nY1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.2.2-alpha.3","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.2.2-alpha.3_1579036365494_0.1760530812427492","host":"s3://npm-registry-packages"}},"3.3.0":{"name":"@aofl/object-utils","version":"3.3.0","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.3.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"58db494a08be55d5df4c07e83a2802c10b1ce32d","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.3.0.tgz","fileCount":21,"integrity":"sha512-svt1DHl2uMUaEsokFDVEqRR19itm8p+ScrIBUGb3ruCfiNR8FwGjo+3e2CvNLIvUXnfMfZN5PNBfstSuWa5P4g==","signatures":[{"sig":"MEYCIQCckQ9JudzLwnrppnEqfgkTTtv0wnkUSdq5lSRZdKcFVAIhAMCvTLyfnBODmXk1/6WyXKKg+K1rw0lJeR9rru+twqd9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24507,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKNs4CRA9TVsSAnZWagAA9UYP/01ezuM2GdHjyiR01A+R\n8McMzVuoap3+c4M4RHM21UwfOqPmDatbxpIGYACOXB/TNP3GeGSwdM1V4pDB\nRuue0kIPfk2iadtdJDHDCoUseqMsJV/+3hh3mueexptzB+h/WT6vyiq6hZGh\nHxZLpTYf2/SZUhFqJy3tet7TxZY36Z7He3neHfvDQ3R5soGfLklg2h+sJn0A\n/7zTg/9mB7jdv7XLe5K8UjxuZZKCdupPY9PuimBjoxmKntOHcZkSwUSwRitS\nwDwAUW2cRZAGvzgULJkDNR+zg/0+uadClOASJuPAL1gHSb6u5XJpIcprxPMQ\ndCscZ3jv1qTOMRxG7cWq1c2KCJiDoRDYuApIpZcmeR5ZaLESSdhPrEvgKvYs\nKRdRgNLXfL3cBFEXiAAOt94ePkR3mK+ckpKifKVM8/5qYt45JmZpgCNRL80Z\n7mvgZXk4eSrqiS8RKNCSISARX37E+ysqavpO3jZqzUa13ZpDhFnDMd+D9yBO\niR2Odr3SjCYS2yumWpMwnq+NA27IhFvghufmhUrUMwN1gFoZXA1pqKOJPW/Y\npjR/Wkj+iqF/grvYsssYZslYxHQf1b6d5Mh38ZLzjqMnPyuFuliucl7bOY7h\nXlYKW+qluf/JnJFCEWgNjK7VSuFhPKpmFPW0C0ZmAlMIA8mm6qu9a++Giyky\nAkwR\r\n=4PYz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.3.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.3.0_1579735864458_0.5657655148239742","host":"s3://npm-registry-packages"}},"3.5.0-beta.1":{"name":"@aofl/object-utils","version":"3.5.0-beta.1","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"4dd87e85ca2dc0d188a3e989024fa93d6b58d7d4","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.1.tgz","fileCount":13,"integrity":"sha512-85fvt5P+uiKyA8851NSZvXr8fIutXXCZOqjq0/JFhqDTfXe946xsoBVXo9f01RNJV8nGNizQgFV8Zq9gVSyWQg==","signatures":[{"sig":"MEYCIQC0sFiZqYJsB1CsivFTzpnwUZOGWz3/D/gUgf8JxZ6uegIhAOxnJ+G5Jt++qNPdxyjk5m2ZfD3k//bxtaq2A6D/3xPV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUbihCRA9TVsSAnZWagAAqeMQAKSFtLCLneVwBj+C/SUd\nnJo7oX5N9ndVKcO0GPyxL88XOuy8/J20qxPrB3mMQ8LyVxdUFbBFT4lzLdXG\n2SI4AiTuCRACnoU3u4HGoU4IBLKWvC4F76v879M9u8HJ0CqZ9dG04nFRRPZD\nxqw0SVblrLsaOOKDpkkXx+JqNG2CxXtKFdbPZV10qaAUgbysyGLemR/JDQtr\nYyVCi7RqIS8bWqVk4sfNOsjXN9ubzcuQGuqPkfu1+TgOwDp08WShna2ejTAZ\nO6sQcpr+OsDxtWcb8djKhiMEXKQt+O5XZMZ7EP2QoxSFe/9vWWhgos2ukvjo\n9uArYKs2RdqDWq+NFx+n0qoMK3jd5asOPgD4HaDnwUhPs5psCIDXb9AfphqJ\ndzOyxwo5NCmTG1i8rLjSOb0fr71rQ852MJlxAbIZtFeYEx9zZdkq0bc+2Utf\nl7iN/aVqoZKbEBztaa2J6TssfI0nWTw9ofUp281VgPnBX8Qa4H0fiyPogg1P\n8r39iAFfU28kpd7YKH9UjClPRjYYh/caS296jTqPnkWBHFId+cVvP82y9wjc\nijZfDo+5k29aLI4XiCyJE1yqdpk1yeDsDpisLwNL/550xoMuOsUkOuAc/WHX\nWhydfKxWNQUSTPcrDoHn0yToB2mH2Z76aPgD6icZkP8XmjKXRhgmG8ioopDu\nGCLd\r\n=PZPC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.1","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.1_1582413984503_0.24602517532446444","host":"s3://npm-registry-packages"}},"3.5.0-beta.2":{"name":"@aofl/object-utils","version":"3.5.0-beta.2","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.2","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"03741214e5e63ca9f9591fd4701a968852cfa7f8","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.2.tgz","fileCount":13,"integrity":"sha512-HnCB9KFXsf4aT8NKASu6pzYK1DHBdit6TkKAI56RpBEnfQpR6Sjt9GUHchtfvdvxrxfbuBn7zAVRhYVC6NZ3XQ==","signatures":[{"sig":"MEUCIQCmC45V7VzF0POpQ15kCPSd/yFhH/RAkRi3gfJN3XVAfgIgVn9NyWStYrLxUrauQ44bJ3DcIOunn43SmItlKzE+IvQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUb69CRA9TVsSAnZWagAAn8MP/Ro2BqbVtwoqGf6eleJ7\nwG9S1PvZbJHNdJ2O5mIpuyTanJpoEO6oyiYUqXZBxMdohlk7jl4uBBqlOevH\ncJbE3LwvpY0Smjhr5J21tXgiTjxsDUrYMIllGulFBbKXhcMtrfbld8/HDQPh\n8mNaRmwB+wCQmP8RXW4OQPnMahyzszLZ/s6hUbjKQhXX96wCHFLtNpuM8qaw\nLPYoTLn4hlyBGc/t20dArjdCnv87JCZOUnpKYDnfs/qJHZ0WPSX5kMVmAYOJ\nO1VMOvfWawaDkamcvrvNIn1/7ebENGP9Re7KpIMoKj+yixG0DoRn8hp+iJgK\nYpdYxBgiQvQDz3p0ua2A6481aZ19/8oljffazLse+ZfstLLYf6Gx2n0KpIaT\nY7XViGEzij8jCsjGfGD8aINU8Dnitr7PvNePd64vi2a6i0aBJzVBnoyTiLkJ\nyZluzxVh0Qc4OKKSKP4+ylGmBiA+VTgLVL2x6ow7bqpBeYS0A18zU1SzKvjb\n5Hoo0hnu8VB5NG7Jm0dX72g8Z5dFd5redgzMxnz/8iz1r4ztvUBGL+NlB2pp\nmSmsu2LNlBlf3m1urNoekBNmLl7VmsDs3HovD6ATBnUag+KSyQQWSA9+I6v9\n/egH/BjB/wvwnvWXb/SdYJOQSd13a5bmFT2wDLrX07FYa911LrACefTOuZ7c\nIEGk\r\n=EG6F\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.2","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.2_1582415548762_0.4006335681422766","host":"s3://npm-registry-packages"}},"3.5.0-beta.3":{"name":"@aofl/object-utils","version":"3.5.0-beta.3","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.3","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"623357de3909da078dc4777f03d35c436807a290","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.3.tgz","fileCount":13,"integrity":"sha512-MkWiWdBi44J9h3O7T8IaqZyA41UC68kIaPNKWsqETJ+/lFG89w17taGoJsDhEjAAWqjlV5KUrQtQHkduVUA0Jg==","signatures":[{"sig":"MEQCIFh9GY9VCeJ8+pJqsMcz/lcK6uPeIyi/kxrt7h5vufnuAiAqg+F7K51JKBlwg34U/SkECJEzjSu5+BZDMv48LAODYw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUcIuCRA9TVsSAnZWagAAopgP/R7EQDyKFGbpSWB7M1Hy\nRrjje6jTfWVTbyJ0ow5zOzkVcO5+znnSS0mcnAaP63MNxTDhIQktlWGe/uXR\n0M2df8/xngSIIrN5WYB7aoirKBTryyg7SLE71LYdVsgZCVR7OZCBH3y6inzO\nWEUmjI0xCu3vLkwC1+ji2hCR8CYFJiBsLxJEJs9AMEzwuJjPeFdZ4Qd4vp4H\nYs+Tm0PZPsoVANax5rWgrmkt9O+Xt1DSgIpFpaY9rm3rHsRAAU26Z5SK9/cC\nhYgGzS4k76pmn/vPwnnhfcJ3CXOQpo3bxKtZ3vL0qspciGxqJRqS5IiMDBPj\nuqURiLw36IBdkqBAZrill8Ie8cWMaYNqqredcG3monZHUULTy+lHfrqqWkUH\ng2Umdxm7R90YFt/+lk/pzZo/F0l14MMuKMu2TxnlwRkN+SsqBLs5t9JkEzjv\nEJw8uqT8z+D69YqbUXQxZ7gFnksHR73tA/xAgOl+5CUKothrLVyM252KZflm\nSeNPeLAhKW6nLK3dUwZYjojKSROlJqnnWmkXbDB/HfUaigy3xQkPm8JyiRMI\nSqjC6R1KgsjxcEniKZHmoz+Pvl/ssMRmht0vwIBjeLGDNA7y4zN0M3yxQgwA\n+Q22d+KgAwkxiMaBvKfGN+yQueENkYa873K9H3S4Gaiit9HT8NrBXBe8brTp\nTQIK\r\n=m/by\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.3","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.3_1582416430471_0.9227271581573726","host":"s3://npm-registry-packages"}},"3.5.0-beta.4":{"name":"@aofl/object-utils","version":"3.5.0-beta.4","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.4","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"aa91e396faf61fefa45c5fc2ff4a01b57203f190","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.4.tgz","fileCount":13,"integrity":"sha512-6QkMhSiHayPacS9bLuVnRh+4wNAwPFyGhCB4BO82txiSWvVTggEduGlg8oloC8OBKPojW+8c06cQobxHVCx6Sg==","signatures":[{"sig":"MEYCIQCfgCLKimduW3Eds/TV+QGyCB9vQN0dzVuDMwm7AEq1gAIhAJqZtqlUeW3Mrqco2GWLycztEN38r03rLmbzBsL69DgC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUdv6CRA9TVsSAnZWagAA4hgP/RzQgtv8CVQHLw9scx9Q\nVD+T3EL4RypxKuDqcjzLk3VyDhHUUf2wVSd46KdUpr0ZHnpg/fK0yPudkznL\ny34SKJFfBM+OWhFzdzB5pZCRFZniO5fHkC7CRz9129ODSQqa6EUj01qMcoQJ\ncKX1LKaH+SkYdk/FooN0OCb8oWotRPW7XgILl1afB0XsR0/BxO1aOZYMaisc\nGIKShk8oxrGgIQGCgs7HvOgtuDGbj3CnH7zAuUbD5qZsuw8iR4+qU9VEeVsR\nHrvAdX5Ic6T6oFnPyXHUoEgwTxd/3jM3XyZKS9GqBqTA+ZxhtPi0P8WGIY41\nb5wJCRJ6cQgsiIhUYhUJqohwOem79RfoAM9m7zr4WVFq20iClSqX5dnQTTO0\nOfIdRidGFcVXPIsKpQ6qFTGv9nfl96r6fYTA+3HY/Dt2y/O3itq7fjWtZeUF\nhdwpSo3llEvZ4CwKl/f7SvuX6hLXeEVsBjy3dSGhqumnX//BF1ux4NspBxhC\nX67ufe8QdgtbEsTf9IHTTzqL72zvAFYtHKD+bWlUpnoR1F+Krezili+LSdMQ\nOIf0ZQtZ+Tefs1Lq1SWRsCYBywHgBaDwLwCXFcZiAInpjRKrww3SyveaCiHI\nJLBbSYUiEEdJkS4q3ltlA4BX+6Tyqg8AElmFBTIPLhlpd9OEylIyia8AnT7l\nMpHr\r\n=JZL5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.4","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.4_1582423033885_0.2341280626989133","host":"s3://npm-registry-packages"}},"3.5.0-beta.5":{"name":"@aofl/object-utils","version":"3.5.0-beta.5","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.5","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"840876edbdfe68536ebe0777a84c909b36828bb2","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.5.tgz","fileCount":13,"integrity":"sha512-tEVY6gi9BfCOJgX9eW49iZjJZyLsNZRxveVesWWgIw3A+IMcnRjJFu82Hut7fGQfq0+NwVlUjYnH14lfMGRPpQ==","signatures":[{"sig":"MEYCIQCels974/0ISVA/EC0JcDfrQ5B1ptyNkSkUcWHRj465ZwIhAKc8+lFZXQO/Z5ceIpaD7zfDRMklnu3U/Eg6kyIO8B/q","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUe0DCRA9TVsSAnZWagAAT2kP/012tUsH13prMhSOTG1Z\nMmTGFG1vbR6pGQBBPwPPGX3XwHuT/nkF5OfQkAkKgC4XzFistEV5nafDmo8U\nARDCpxVYJRpdSomU2vKSw3EGDImLJZyK8kqLYrpiMCnlVmGJKkqHVqcJxK3F\n1nOSGUfQ+0YjBdHHJIpoD9V4x/2fMuOT7NbjBLovceKfA1Ej971tGxiqJVf7\nM0ZxqyN/to54dMI6JS0L7o0TCg0/QIhriX/NR6Y1E1vozo8lfGSu3+RYDSRp\nd/y8ELNxpvAvFuZQ0JLuf4K8pyJtOjlX3uRnSNCTKUsu2csUhI/6Zxhh+vte\noZj6or++cKaJanCPLm1wD6OteLI1dLeyT9qzi8nwD0D8V+jG8d9x0roQDBQ4\nGiTUAGDScmzgGHDI4VvMhUImG4QPX/U9TWlu1sS0qFYMp+mUh/TE7Bx8snib\n+amP5dVX5hwEQMrjQrbdqQF6Dop7lPcefp3OvnCq1PBLpLR0Ah6oRyBjkeYl\njZB3AJZenLXgDsIz1t/jPw2B7Vm1Vmx2FtKUZ+h8R+Ax2NAiCi5p/YCozQin\nC+UMr44Vr9feMYGRqZkUttXh6tkklkrJnDZW5vsjl+ufaWIPnE9YX7mGt+Mr\ncixTJYkfq3v3fvLlxfXMgxLxi53kZj0QdAzwgifitTBIPUXUV9I3wT8Zwptj\n+VBc\r\n=qwwZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.5","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.5_1582427394978_0.30510192574287953","host":"s3://npm-registry-packages"}},"3.5.0-beta.6":{"name":"@aofl/object-utils","version":"3.5.0-beta.6","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.6","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"379f21bd43a7a2e9135c04ad236cc8c450fe1d2b","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.6.tgz","fileCount":13,"integrity":"sha512-8nBH/yU0KDySAIpNq2R/wrlk2Be9af4kpMC0kLm+kzbeJpGBV6TiAXBJUXAd7w7WVd6o+xwf4xkndvtzkZyNFA==","signatures":[{"sig":"MEQCIFyAwVcHmug9uhnGTVw2wA6vUWcRHohvmd6gdm8KFQF2AiABj25CcXBt09F320W9LKA0YaoC9HQA/3hf2hnNwnmUJg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUe7PCRA9TVsSAnZWagAAkEIQAIUsVy0HxHsmm6CYF6hR\nqcmuJ/GBQdFKMKOdOrn4El8cqlDC/LjSrH5vYInhBH7hgyq+inMKJTJYHuSH\nr4UL+xxPhc+YpaIEy4gBiCpO1pwBsGrSgTAZYPe3lsxAV5zD6Yi/7UyZa1sF\n5UmqnEdWIZXW9jH30SiMYQEK933rjm/Wrwh/Gb5HUgCWu3tIutDYbiDh3TFx\npzu636tm9RFQxYaR4116L9TLuY90mRLDXX21xXBfJPLZ0h71nTeVXCtk9IrH\nonBlkftNoB6lLYW9A4FralO+ivaY2OPmRRoJPnlA/BpZN8LkNvgejxEUlxHH\nHf0UOj6Eko0wTWMuazuYD4n88Z+V4ip3beb2JB90pvDQnfPs+IgXl7sPvggm\nvYWcLNr9RXGR2wROjWoJNkVZpRquH5cYXU4gyNPf1XmysiEOIKuESBEHr1Np\nP30IxFIQUdaLyBjzfxOrHaEhwHOll+CUgsbUZTetIB6cM709X7bRZgbsYOXz\nFvMWivh7W9zANUU1GwKwTc+T/rfiOPBt0ESNBhtIU4bJFYycQeSFbbxdXg9s\nYyLEf8g60DWkTy6uQ0QegeAWBk6SlzR+sEVFlOMNTdRYgicqh6nmpQmJHOxY\nCl652HEqhe2bSMjSGufVvpYwukwoPdpxJVeIfGrwnrdYWaZJkmoBmrJ89/yZ\nW82e\r\n=hXA3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.6","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.6_1582427854803_0.16434792968488865","host":"s3://npm-registry-packages"}},"3.5.0-beta.7":{"name":"@aofl/object-utils","version":"3.5.0-beta.7","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.7","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"fe1bcb7245500be7b456b2d6f91547ca1d4ed972","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.7.tgz","fileCount":13,"integrity":"sha512-Ox4OMJAs/YVfmPqSEFu3+hmmD/TcdDuN/R5qGphcBZO3pO1DIHwligCk0tpUl5ekPtnudcobwXXn+SVf7ihalQ==","signatures":[{"sig":"MEQCIGzBJA+zHVCEu9NTRGvoFnYRcHXbQeNdbL694jnFJf/RAiB0wLZM6BqylcoYRIGIWmypZgwG3HApuy3G4Xc4EZA2Ng==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUggPCRA9TVsSAnZWagAAYGUP+wdvwgQJLOopN/OFRy4w\ndhl+yAfSVE9itZmtYpdCBo2Z1uxqKO5epDB6miCuR+DBuaXunxrBo61eyTNO\napuF/1cORfuOMs60APPlQMtGwMCT+ErAOr9cVuDk6GtBBOxOUopUBU2xbdiB\nBPE4Jwv4F87Pc1R95l4cLYoXWhfUIXweIacnEFnxBUQY8t+68HMhPM0V/O8L\nYl5dDKC9DkeYXnlzHPY3W1qo5jBmAmVbuNDyvl7YstMC2JnrA6t6w3SITkhy\nz9Vldkd+TWH2Uhq76EUVsAH+9ODdKrfxTu/fHqmfmhNsv298Rb385omVtnqf\n2cVvAluzPhaZX8ADuQZNH8R2HIaz7m3+OVDmtnX+pM8iplas/SQ0anCC5W9q\n1BwFePA8Ise5C6nQQ5SoaOYJyAuHe2Ldw/o1l4ZXVd4/toV4y2cvd5BOy4AQ\nk2ozfp8J4EjXp0JgWw00eVv1UJjnlor96sSff+D/lIF9UsqwDhTdnVQJIBJV\ns7qZpTez3vE/CkYiUi/+ZQVdqdmuNJrn+/XPOsatU+3Za3o6Q+3/iLomnHcI\n3bwTKGTUByLYl43U891FsE7V80IgeU05rz8Tn9N6YuemiM0cDgUOrQsmpDc4\nt5S0suYWU4BgyVY8GpBItivoX7RuliLcfoPkDmbNB0d7vHaAl4uTqw3at3sv\nwcuV\r\n=LRb+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.7","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.7_1582434318968_0.6785284128473599","host":"s3://npm-registry-packages"}},"3.5.0-beta.8":{"name":"@aofl/object-utils","version":"3.5.0-beta.8","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.8","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"5dda645a649af3e5276d63fd692f8abcec4f6acd","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.8.tgz","fileCount":13,"integrity":"sha512-e3xSeM7+a+d1OuVfmFhhYCWBLmsFRlHh86I/MICRjChUDuYkgMZZ5IOUgCFpSp+eoKlu0L6GZygohOyT7wIVkw==","signatures":[{"sig":"MEUCIQCwTZFyk2gDQgYF6QuASAfEozoFyhJDnGp/X8gQR/YerQIgLvMIOQvB9tWy2X9gy/U5UCmN45dz28gPOO8egN1pSjU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUgjRCRA9TVsSAnZWagAAwFkP/jHrgvMEfwzVY9Sf1uvr\nxp4KAFwGD4sJlHdgi7nr2l5n1VgjFK3kiIRIHdUoE0tud2b2KM0FEpEDwxfc\nIIqu2mNZiPMPcM5vXJxuJPstOaaRYr+SoDNAs5euSJBpd8/IzzcvQycyYnts\nJEQy48+e8XAdn4sbTlzaoazFVRac+2JnoNcRDQgmsG94zz7iEd8DmdFy5kZX\nDDOEjzRH5wCL9zYV2Sh63DlddLaUMR8rWV87MJwRHcoeZMlz4DcZkDGbt4uC\nWJtgPZTD6ZJ9wlPTCtABNEMIzOFN66xJBM8+7j27NBd6coaxkIMVCiosU3BY\nfqvW2/lWRQr17HUZfJ9m+QNFH7zxRl+86r8tAQIdUa13nMsNO2HkqPH5hfk6\nXrPYHZJwDDI3RIVd2f05zbOA670x/Q0mp3L6+7TFfdqHMbsZH0cgtfnLlnh6\nPlFsJqRxVkCWohcAf0GclCgIhF/GPk0ViYP7Q2D5GHYAzp75oKVoBL4IAMtD\nQco3wOdTMdv6RrZtCH99ypJ98hkR46Z0ytG5HxqTMo4x6o0QoPsKVzg6+u8C\nU6uEiYS1MwrLUKYDYa+kzcFb3iE8D9HWbIB6giy2wPvUehAAIavuvQOtlvl3\nU/0EzS4bjtGdHfVi9jlmOXrfZ4jUVajPqY7sw8viev8zM1RIf6hMwnKzdDdy\nohot\r\n=8GpP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.8","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.8_1582434513460_0.10784424784992797","host":"s3://npm-registry-packages"}},"3.5.0-beta.9":{"name":"@aofl/object-utils","version":"3.5.0-beta.9","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.9","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"ca135a1fc4bd76433f86105e5ae6d44bf58b787f","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.9.tgz","fileCount":13,"integrity":"sha512-/SoUMsF7Pt9tyG7mKFSxrNUknfbredO6J+L1byQFjo5ewZ8ddprFu0mGuIjRtvbmhcijBHLdzGndyLUuuMGigg==","signatures":[{"sig":"MEQCIBGEMHrVIzjPHb+l2pi/leMfmzXqQ42BjH3n0sbq5lC3AiBYjDjJickvOruNy3DGsf6JhflW6BN/UCgyl88Gdr9wXw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19727,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUg6ICRA9TVsSAnZWagAAhgcP/iwsmSI0D8r981Mkrw2n\nGZK0HqmQi6BrqlO8ScWkbQneBms8cFRe3608UjnUSR/n89WYOt/G9Rg4FI2Y\n6YRjeQU1BG+hr7c2s252J3Fkq6rtudww9vFUwruBAeubnFW4ch4Os0aQwj2q\n9k7ALmpIKIA+eOsY4MHzhVedkeSClwkdA2lmVvZ37/IC+pCuzZhMP/ihuPiI\nCV51SwxYBJXic2ZNLhq5KmmbZy09yvoiuTKWGtT+OIBa4elhB8zCut5A23/H\nSm/ANYO4iTqXqTU22xnI+SfwFWIp37NpNPcqT6torVlaNaFUXJRn2nFsuuQ/\nDXuNhEc6LquQ2PyMs82XEAopcQ6kxjM2TxDxrVwpKamhzT2Hvc0tLC+5ACnK\n33yoM5jW/M15tZqeLtM4Z9j2Gx2az1frPg+mwweKmIp8vGJ56pDodDSdw9PU\n9t9cN3P+92Sv3DCNDEYBF5yZbeCel06I0r5P23gXmmuxfyFZKEKx8SQ9xV/W\nEOUooot5af07HoPpKxVl94DAda8LHhO8rkDaI1f3Dh8JNM2XNMdQFJ2MvCMH\nzcc7+bEMk63S3C/a/N0RQMChB7TBP5WsIfiR7DdYu2eoO+Hc73/q1TSgHbJO\ncx3A/+kB1uCe+Tor2tt/ua0IrRGBzPw+bwvbpY+kixaaWoADNBSXBXFglA5D\nEhnu\r\n=Mjig\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.9","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.9_1582435976376_0.41805383112024397","host":"s3://npm-registry-packages"}},"3.5.0-beta.10":{"name":"@aofl/object-utils","version":"3.5.0-beta.10","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.10","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"f6abd28d2a06f56b97ddef85e703915c7bc982d2","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.10.tgz","fileCount":13,"integrity":"sha512-bGc4qVl1CsDfqMZCGUNlq4zReDKJhcr6KAn/WMJL6F5qAHPzkGQNkPfqzKUjiRg5FyJ1WFJ9NYUqysUUCOUh/g==","signatures":[{"sig":"MEQCIH6RlQ0A9poV2VUwv9JIflbwhk3uhOElBDE4Yyiik7opAiAgIAmfnbM3bO49Dx14HeNRfZkN6ThBs2rFvxy+aDtFEg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUhKZCRA9TVsSAnZWagAAPTUQAJNLEs8s+CkU+n+C468g\nE9SsyKMl+asWzGYBHX3zQ5e3lJ5IHYKFqqPj3QiJI/mfi54jp8AX+j5vrfb6\nCP6ASKsu018dxU8WJAr/UTdowBiRuxSzBraVp2My45TuVZNS6Wi/+Qd2dgKH\nLYJBSgaa+ofj5OOL0VKh/yJp8enopnbr8JoK+B3vAqA72R5EuBUmeI37oAfz\ngHbzlYTD0SL7zOyAu7twIziX7zI7HcmbUfW8NwAi2W9tFEfEOuixaXDFTne0\nxdqKMA2uFagHs/rEho6nJLAD1nRNqWKuq05wWe6GB+ij8l7EVm883IfvZ3sC\nOu3giViHLMKbhEOAtBAkg7CIB28DuDrfMs7CnF4j5bOkOPKbE4gvUCu01oxj\nFBCot/hYEXS0+7G+/bMguatrk7znaNzZ1rU4DfqY3IZIJ08ivr3rn//z+4u7\ny1PSGdgAJs8Zj+tbrXUeCfvS6YakbhyS0fevEfKqY3dsXcDBoPqgDM3xoUyI\nX9IpCqNX4EQ30hpF+kOTDPGE6fmYJa2p7bFTZNsQy+GWlEAB7gQpr5ZuAAXe\nmdgEm5ThQwW3IxCaSj5b/6/lvxeGcNBHiBaa9Uknr6+kAxUyfru/qWK8+FEe\n+NqLxww6v9+Ga6OvBZKCvQUNwqhibHQgtCROP3rLdxC/wmV6UBt/AdKVk5bJ\nf0lO\r\n=8LBo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.10","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.10_1582437016707_0.9365789818374302","host":"s3://npm-registry-packages"}},"3.5.0-beta.11":{"name":"@aofl/object-utils","version":"3.5.0-beta.11","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.11","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"af7526ff0bf584c572522fad648f22ec11053252","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.11.tgz","fileCount":13,"integrity":"sha512-q4hrCDPniQGInrDztjVSSQEf/U/Z/PgssmR265Qio6LRK6m0/zDYSyuVpd9+ga4vIORSloza7poznCbCIYfaFw==","signatures":[{"sig":"MEQCIFkz3JNDOElHm4LVMQ4XIl0S1Aai8HZhxBC2s6Z/pwOdAiAVpppjpPppZsR1zoRxliKWVZUSEWQa1Zn/cZxX9vlNMQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUiugCRA9TVsSAnZWagAAxIgP/0WxVIOrJgQq4bOHr4bt\neNVk47D1eVe+P1sIYTpowXZPRVeVfxgnRDFFTAnWuD4K3l+KbHr4gd0fPIKT\nGiABAxUm0tHYPG5qvjrtN6ue5YhsMeKOoon5FZp5mmbsrKxm0URq7UYQLAGf\nAGTfd5iirhRxQdWwD8Wblb7uI97YjIitdNBgks+wMZ4UH3NG7BNqRtV0afnQ\nb0+tvpPIsjXoaU3lKZKdas0qXjomFnc8lKMduAEpdCD5YmMwiypmUsM/CXjV\nRRc2V027YpYpbC2AzHS9hikK7y8J38dx7SDhX3oKvtqvNPYDC0JYvgxIZ72M\n0/Rc564AyTWDBxKVMsiC3KfFll5j/dFwCsB80fsKaay/co8s4tPI219CBi43\nO6VnFqI4suDyTBusPuVMMUjUosACJLfHXtPqx3rVNlAV6riGqdALgnTwEAG5\nCNqZiWbK3OmF8xgHUEDJErcsydmUXfu0xzLSwp3bc6/RB9tiJGMu3485d84d\nFI8ngIB1u7VJGTDxU0sIAtncOg8oUZsCGB/+t8pZvgFMzqR5xMMA0xgifNTQ\nDwkfZucczLARbXvXOE95AeYSFTwbQRYsogJ20khWGNGf+galMrd4Ms9KK0zS\nefReFfCkzeQZet98loMtm58B4+OUQ3Qj83QMwzAhRWeZSj9M2KuuBmAr3b5k\n+RGq\r\n=fMhG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.11","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.11_1582443424069_0.5162041200001457","host":"s3://npm-registry-packages"}},"3.5.0-beta.12":{"name":"@aofl/object-utils","version":"3.5.0-beta.12","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.12","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"dfa9fa8a2b8902952ae94313133bf5b80326d288","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.12.tgz","fileCount":13,"integrity":"sha512-tCu9OwNOuaPJBsc/H9qASjHJ2C+9mJXhm1U9bi24aiE2nBOIdeRbgANI9LGoL89AkeKlTF5moeciNEjZDliBFA==","signatures":[{"sig":"MEUCIQCcRP43zEe9WIIeA8xsLrWAXrSLYulnLqtzqI/15uFZHgIgQgbcx80eMmniD9qf8Qcdz+l2h/0H7r4m3GXnRsULznI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUj8MCRA9TVsSAnZWagAApYMQAJ7FFrqdfp08+U3BwARI\nZBiYmOrIlhw5WgxjIoaLEYz1QdTxz3JFYi7Ln7RDmGETKcJSfu4F99LIKoQL\njiU3mk7odNPV16REaeuagpDmBmzcN2LTHjWcfZIKv2GoLsFmFD+R4jA8kk8H\nV+VCJJ3jHMlZzmOAhY+09xbzLhdb0pERSciil9s0Xizh7qLI88oam54h+Oqm\nHVoqNN9uNFb9n56znzGANvOCZLCqFTz+N84tyR0Qbcd6nHi3cZAu5Pw79uRq\nQQIvqey23DCBlN148LuR/MwCgShu12XBJfJhEN0R7/7WHVLSglKYvZ/C7ds/\nebcdYLJHSE3C0ZT5+pVDEyE0fdlsucS2j9G2Y/X5XavrW89WQrTdfklNxzI3\nsN5SXTNHnF7/6a6wY8G5DjAxtu8oGkaJCdTXAlxHlILnD190nMoY8oXy0Pv/\na6nBTD3imJLkMDluArSWldbWdYQm6dCYdgs6asxtR4Yb8yaCs9WscSDUwD4d\nW22b9Fm1o5cKwbIcSeo9pk5jHluRKr73OYo1BqRAzV1LAD6ZAfAtMwhjtnsy\na8wFqm9h+dznSMsB7/4GNWAdTzxnQYne0/Xj2BL1mcT2z9NS2TNnx2lEaXPs\nukKwPbhCwe4Zmoe8CKgN8gSDAFGPT2XxFu9pOztoocsYj18gwuYepA9Tndne\naH57\r\n=H4gU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.12","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.12_1582448396314_0.5104939631159526","host":"s3://npm-registry-packages"}},"3.5.0-beta.13":{"name":"@aofl/object-utils","version":"3.5.0-beta.13","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.13","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"f12776249256e0bd69b0e127028ede3ba1b77e31","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.13.tgz","fileCount":13,"integrity":"sha512-jgnEQWADHUK8AJTdJ1pagKKFqnBTWB2AoU0W8fEqAuZTNhCmUY6Ht6MyqkM4tQ92vsWdlz4H/bDbpId0r4Xutg==","signatures":[{"sig":"MEUCIHoc8P/34Pwi3FqmJnhVEJtg8KSkPGO0VpMJjYYrgTbTAiEAnqmwq0tfNC1ZteH/9ILu8IWTj3K9aRA+2VD/GO+46bo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUj+GCRA9TVsSAnZWagAAQMQP/ArLTOR2/pNJ89SKEA4u\nauRG7CpvZfyM0bWfGkgnSgVugK5W+IYCBze+4AHvKeiz6K2pmxoFvhDuH3mz\nfrobYN6u2lL95gQ0UJ9mxnxlhNIFyOjAIkAWzTD87IzY651hA9gG9dMNkD5D\noyM9ILHnoPvL4hfwDQujik+N0xTv+GSczeEyx9KKnlRh6LnnDFHvCLa4ytsg\niEeslGRtRGRJcFIfkcmBOqYL9WGxRS4kuT1xoA+vY8kWH/Pc+LMmS1ARPKnj\nF3HSoHwOZqSrdtfL2VDx+JN9DbjVJVi8ZAagd4W8z7DMxSfz1ylKPGI98KOn\nYWkDFl2gHuzkYLWVZZQPGZTjBckcuJGapW9XSWN5RsQwIXgJXENQBv9Q4eTk\nt7+kNTKdB9ZGc/VkR8lsZS4WQaxcz+bDEitsOtjdZG6TGWJ4yoGf9ofrQ0Ey\nkfGpPW/8odXysfBX2kW3XRUJv340+QtjWE7URfstwLLqOqlFNvaMQRdN9HTP\nUoHptKP+mSiPs+SqNUwGfEmJCBBFs7jMkosID/ubZ9Et+0YMKOXI+RMOEY36\njmbD82+RJf8AsBUE9mPtaWtY6ZNpjPwYadhNIphqPHqxGvoSY5LxB58Ig7JF\nAhISliKR6r7rJ+nf+ArNA36WmBNX3+wh62B9GLUUuwKVYoZVcwX819gWINug\nJVGF\r\n=pHka\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.13","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.13_1582448518526_0.9854789296638804","host":"s3://npm-registry-packages"}},"3.5.0-beta.14":{"name":"@aofl/object-utils","version":"3.5.0-beta.14","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.14","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"9b2ba7fd7d9ed3b320be3f1dd3215158656f7828","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.14.tgz","fileCount":13,"integrity":"sha512-61qxIjHZZFHHOmlladpWqBAnkeqiSEuV1K6pJ7tVFb4TuPMIdL0DEjOA9DqCZ+xzpGoCsyU36MtNrKpWqoI0GQ==","signatures":[{"sig":"MEYCIQCqm9yXQ9F2rvAr2Z6qeQcZ1MCc4BrcaWs2hySmERqapwIhAIRv8gRqZmAQpipeOokpTJVQQqGP3CM7n8DUh1UdlDaL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUk0gCRA9TVsSAnZWagAAT4sP/0DEXul8eA+kXLZf+iyC\nr8WDfmsuqsqK8yahaMQeIJhxCnA/yY/OzOo/z4rudxbz6q5vNHs6dfwk0yTR\nFZLFXL6/waXQzgugmkaMJU/RZIZmNEYUKwimtNmcvcHBIejTNqSeJ6/UTrgk\nml31K6uZt5T3kUaG/cwc9jjW1BEHMnkjQDp0LkbxMSwzTer/irJ42dvVkqaO\nWYEfDjzZeqBc2QrBNdTo6o5QKmKVkngHxtkWCPE3BfbOT4kmBib6IwFEA2Ha\n1bWXi+mSNCQCqmClbMJHKtVJmzCKe9Y5Ixz+xKtI0+wtmilYG1IbBViGcVsy\ncSe2Bv0Iyb9t++GZadxJYNCq0IKUATMoBZrYALkfWgNkgHJIf3YWg1C7ghXx\nmQpU3A/BG1sBRAR74KLaBCSXOJK08yGIEZUtDw3jBg6JKCEFGCOkNDZ32Ht5\n/3BI9qBmZi/IE4xt1QjvlcmHYY+7JBg2FMQQVn/F5uq5EsUXMj3qTcnnSrWA\negcDT04j/FI7PLtOi0a0F6ES0H783A1cspL2VQutjggopuqXSIeFtwag65+G\nGaxWm5Y5fhW9LzesroUJHH00hJnvE2AnBWh3Q1r2X1+Qv0pjByQ58vs9sqah\nRVVRQWzUI+0BE/olFfkUywNMPqxIk3oaSrkAinKNRhI9RMw2Uo7uSAuGtEaI\ntuxJ\r\n=zY/t\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.14","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.14_1582452000381_0.06712587307421902","host":"s3://npm-registry-packages"}},"3.5.0-beta.15":{"name":"@aofl/object-utils","version":"3.5.0-beta.15","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.15","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"f6abc7bed6a98b3f5f4d4c0bf9c519d747388c61","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.15.tgz","fileCount":13,"integrity":"sha512-gx6h1W14ZQl0WkqZhw2jNR6NGFiWi6WQyrK7H7Gjc4h0eQIMgSfn6GZiCFGNmVTIdin09aGSdJ8S6Qj/kygPjA==","signatures":[{"sig":"MEYCIQDfYgYGUf7oShjIkdNJoWh5w+ZgEW0pU1ycyphJdUAicwIhAMN7hI/FdKZjrNCBI08MBEI2/gVThfp1KcZvnowIlyAr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUmavCRA9TVsSAnZWagAANZQP/3WrtgQq/XLNV6v1rVyi\nU9RueDIMPlKx155RpofHJAQCtRfs2+QAgizgZt86vnkZHMXe7gBFX/ULMcc4\nwUUmP86ytoxektztvGbz7odSsUgj/ffKV4iCsBarqoWbzDCRPhaeUcVkrEoC\nbWggVzHwpQ2U0PbbmgnS6XooSNNQq8VoWwVJ+hVNKlYKcGlkrhiPm2k03euG\nMNxDLviiV7RJF0uz78RxY+nZySANYRnmFzk8UUTaZyNzQhDJrH9Ka6lK8CVI\nq79U4EL1gbTloM8WLoFalWRNXRS2AlY8ZZVxgbNxaP5tnA6/gA+f3tYFCP7r\nOesg3jDbXwAm9emajucMzamLmeMSTRkXveL0oTFa+f/qyXBqv/WNNjxX2XZ0\nA9Uya30Si1sLiU+k1wN0ztuHZU7eAToy81CiYLQzOy24I5EAW0WXT8bZbEIM\nlqOEaql9YVXpYBbc8CdreajGFWIbIMMFWWZRk9NzZqbqLADoun5+KOLNklMA\nc8p8FiVQiHsTl2qZQIsvYuYnA6l2wSehS5Lwn9tTlKxbUHF4ruAN2cpcBbkm\nuCi3QAPbI7nBAzKGhZWKSO4Ilco53YvsAirtvC624pkNT1yB8Si4jpN56YEV\nBhqEGvgGPyDevehBYDhFQ6D/fs57BDaEjfms6dMuX7ZgkqOFrXUO3gRvVZ/0\ntpvK\r\n=+2I8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.15","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.15_1582458543476_0.17090413535512572","host":"s3://npm-registry-packages"}},"3.5.0-beta.16":{"name":"@aofl/object-utils","version":"3.5.0-beta.16","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.16","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"1a84af0ca55864737de1a7d821b4a9513f01d11c","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.16.tgz","fileCount":13,"integrity":"sha512-RhmEsiUqqKypQY6oG4O1nF5TriM+b0mXD3V6wWnog3otI2cPg0hgPnPX4v+vXRULKzwcTU1IFUkxpZmAyTeC8Q==","signatures":[{"sig":"MEYCIQCO9BLzpIRBJynd4L3Zjc2R+uXyFMYNSSlNIxpLmYHQWgIhAJYfYmruIC2a8U0cSvYzVMtPNir3YUyafSxQMP3evtY9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUmjiCRA9TVsSAnZWagAA3esP/0VKPlvyH+zrOVfUkeUo\nstt2FO5BRVD63PFInfByOFSTPgKWLMci0yTMxehbdYHSFIM+Yowx3Ti43cnF\nSagKqXXfnNsSRDVYFukWNBmx+j3pugR1v3ZCVvHqtvlhN837g2sWx90skqjq\nQOq8Z3X9aVPFsr7ld+xsDf6QY8XL2i2kbei+3zFir22/59+kuWTYYRwDw/cL\nRDfFOWXCVnLigljd+VSr/4GtnzY+4eZVAgU2Rpa1Oi3U3R/lGbKy7wkamCj5\nHY4Kf3yMVYe/UX/SWfzueDWuXbfgDDM4LTx6lNHRkffi/wJhh9EBpSPHHX5c\nebPUAJXk1C9wl0fHq03z0gU3rayyRlNu7LW8fsIR9NdGpQNC/2NrZRKcBIu5\npt2P9EhGoOFM1BokbAq1CgB5F4OJSmF6nOjQXslO6N9OxwKS109u9+QYChke\nxG44vInYWWZB0DbwYF5HZracN/1w4gY0IicRE0q8NjkBBZv+fGinmqvCKwUp\nOQyMDU16HcdK8cQUN75++ckXL0kOEViLoOUCWXq3Pke0kNL9iY5REqKQKjQc\nBtkizlHyJaEFM1Dk3EbyZEGstZ7kHP9qz6QExCuEuHj+SPit5nTDIUtiL04m\nOUuOyBz5I+V72lQ3m1m6txZ1rng2mkrYBpBG4/FnkDtZXiGZPiAr/2fJGSeD\n/Bc8\r\n=RpWC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.16","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.16_1582459105776_0.059940265013291416","host":"s3://npm-registry-packages"}},"3.5.0-beta.17":{"name":"@aofl/object-utils","version":"3.5.0-beta.17","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.17","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"f2ab56195e8189714d9fc8e287c32dfd21f167c8","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.17.tgz","fileCount":13,"integrity":"sha512-sZodeYuGas8uA3qDyU5N+P+71Z9bHAQBS+XoU10AGOegE+swaVZRaXAbMtamw5oMPpL+lt8av0hfvj9xeb+t4A==","signatures":[{"sig":"MEYCIQCP63zaM4MKkTnzMBdGfwNS4es+zgALz3AisD0n1ZYCegIhANJeRtqdLNpWC+qqBNWTIpVa7EoUzqAxCKynJwTCpWvU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUmyaCRA9TVsSAnZWagAATE0P/1uvfIuA7Kb4nEZc/xwV\nlrlIZanY3mDjJJjcW/znP92jFzvevq44rt6wG3B1ILkk+uQ+s1nLoaF/I0nV\nLRAFBe7299BOCnGaHy3m20rL9mp7TLOn8FBs0NnXLuRxKj9TB1RSgktzV1F/\no2wq/JVUJLpDOywVFWBMoIWhDTgWI/si8MYBrl0Wu50TZ0EZAYYnfGcuEhRK\nQuq+/UEQEXUW4ahBxNXchbr+o88D1anMPV+j6CmeEGISjc4uwYNYg31IwQ49\nWsjAWoyKIoBxbztNndmFTqkkTYnrrYgAKZPUisVOHUOBIS+ZpROTyCIasXV2\nYw0BrXtGqkvny1KknabirB6Pfe6gAiuq7LgOTosBWFkRBCFUVjWu7BkjFFJi\nFzLLnLpaVTPsntt9KaiuK2/2hUvPt5Y+/Eb6WqGDD1pFJKUvqVC30xE2BgXv\nCZ+Lzc5YHR40Tw/VfvIfVBvCgIM91omy6K8f+1HXEKlpWVf5fA443VtzEMDa\nLvadYtLJG4N3tcV3Zbwc0MdRfovVcTfofro/Y0++6mAstUK79upt5PIDXeRS\nr71nTo+8QSsi7hZoQxvr50xWXsNXLSNqBgkl8JFYQ/TopoEU5zZZsXhuKqan\nAwyM2HcUVG+qClSBwfV6R9Of/xlRLVKnkrszxnuNHQnyiWPJW6m+SrQzuxaW\naYNF\r\n=iaTi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.17","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.17_1582460058175_0.8284171344482563","host":"s3://npm-registry-packages"}},"3.5.0-beta.18":{"name":"@aofl/object-utils","version":"3.5.0-beta.18","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.18","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"9b6f2b2bfb589e2f8a9da693120057524a68aea4","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.18.tgz","fileCount":13,"integrity":"sha512-n8cnxaBemCxkEB6lKJK/DK2N3bEnciNg4eENxgwO03yV37O20GUpXafw+zb5oRvmloVtX8JdTKAF1x7Cxx9QXA==","signatures":[{"sig":"MEUCIQDSFwP8vfdlq3k+Hnj4yRmVDr1gHLua2DA5cWd+5Qi5AgIgPN/lbWAKD/qoRKg/8FphMNJEU+4lRXjYWbyFmcdepYY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVJubCRA9TVsSAnZWagAAHTAQAI+tx7DqIRGGUdaK0RrY\nTzTeyWlfTe0g9yW2eRbd9LdcSORWwWp49clbROWiqimLOhQPpLjG6SDlqaI7\n1Tn1H2myomtFBkT7mN+pwgTb3Vk+Tv9wynt8dHXtAvORsuILhgw5O3cuM3J5\nwXN43BidnAWNohNbmWItQdtXQadD3EEtQhs862feXHB2K5DtCSvuAWL4CsOl\nRxJpiR/YU6hbmEqvGlpkPI/zIwVEXf7xZqbz3mVIqzKnKxsRll05RM0exoXb\n6JfNkexZzTkCWQojLGM3JNY8Q6mvUFiSE2vdDl+YK7l/57BOiBCY2ar824yO\nNJdOB7efFpN1zFQ6nzItssnmlVcT8RDRsw67+OfrmPhqgfCb9iDufxHRiMCv\noQdGpS4l9SPpakJVZ++30wNtrDjLWanxFcAFLT5ozXZ82dGWSBQcbUin3NDn\nDMvT5JBI4ffo4Sg8kggWB9EX5aJUgamOVR/oKuSqCvT8kzdhyvAlyrgHDssg\n8lRzj+zaX/P86UxeuwccutjOC2kZJKXeSwsAayyTUjCFz2YBK/E8IJHcHAmg\nW88j/Z1FUdhAeKgb5kkYjuGIyKMl6ujVtATb2vZ0nC58PEmIHDlDbHFRwYwF\nVCMAuUhTrn8evbZbpfTjIrn52FUlvBtJl0BfaWq1Mj3vYvFoC1VT2L/Mjinn\n4YFb\r\n=cpjt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.18","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.18_1582603163367_0.7992192153735285","host":"s3://npm-registry-packages"}},"3.5.0-beta.19":{"name":"@aofl/object-utils","version":"3.5.0-beta.19","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.19","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"b01c3f31fcc2fa434a7171b802613efb14c19ec2","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.19.tgz","fileCount":13,"integrity":"sha512-VpBK4e6oQPMzN3BPgnJRodvxAiAEk0k2yIZtNC6z2bCF/di5duPWzdqpItnPJwJ5pNd3cYjDikWtfn1dpDO7zw==","signatures":[{"sig":"MEUCIQDHnBkidDPbYmdZ9sjUvuw3RsbNNbRRQ9L+vPNw48fPCwIgJyCBzEaQ3yBCdgTHpoRLt1FTTnAUV3XELNNXY7U050c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVbRLCRA9TVsSAnZWagAAtSMP/0iFcsipPPSX8urlOoJk\n7G9rCsk0WBmYkiyNK9xtzj1bPJHFfmf4bCj6EjzlcTcZpmEY7WWRs0cfw7w5\n6xWzK8gNvUcFddXCg9gQLx4TCyvdJiw8qMjleyIc7xDv/YIUDSAoDRuPbaaL\nXXECLC93UDliz7IOIQpMnGyZ8kPSVV70dapNRLunbGSeRZ6OdcONbdI34H3M\nKu1rhsvCuMcT+8xm4npgBzDcTcNXbVu1AJvytbykegkfJmfM2215lHcpMWMr\nvfO/RCxXa6sZFJoGxc4lHDfN0oB1PtbxYSRIeAsuZ/wSceXc9Ud8/DayF4jq\nd6Yg+EGueFQ95iaRhhRKJBVuTPI/b0ygycUqhk6rffEd8TQRtZYGvHCE5kpO\n1FdbkNgvqQnHiCns861+Jp6F34Qcr66WTd1uEPiJQCSTVC2XK7lQsK7QPREB\n58+mjn1HWX4qrSlZDCtiGTl5UM48urCOqzfmMjbjMU0okQ8XDed8aJHpxVJP\nVUQ5x0ULvux9OixbpUrEIPJzbHvUGFHVCroy92dnWtwG0VX5MLaNQDEj6TYG\n8le8VtJV2AyA3KaS39/JsjajMdB3wihpXA4kaPW/k9z8ShNw8jl+yfvMso97\naoR7kIt7giDefL/F7MTRG5JoChX2KscrHGLWfa11GyyuCZU17M8eteKrq6U6\nAEwf\r\n=V4r0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.19","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.19_1582675018755_0.8357873500276898","host":"s3://npm-registry-packages"}},"3.5.0-beta.20":{"name":"@aofl/object-utils","version":"3.5.0-beta.20","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.20","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"7f33c7f91ad4b80a748a6b68b021d06cdf21cc28","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.20.tgz","fileCount":13,"integrity":"sha512-LOGAlKfYS7X88YG/wLVIlo9ki167J51nB7rrCvK8fl1OPdOms4mO5Zgk5nA01u++bbJhyH9plOwjAaQaB5moZg==","signatures":[{"sig":"MEYCIQDIbMRuB2RiBoVAepqptkTLjMqC4qAaEZ7umjYBoWUTdwIhAPvZlvGALZZEwGsUe0iOaVeqgUsSFGyQ5GYRdhBJQURO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXZU2CRA9TVsSAnZWagAAGb4QAJZKJ6cjmQCJIWvGz1Se\nEjWSqS97m2++ZlZz7vCS01X6KJPCsrZk2sl2kKwQyfNBn9vtAVcKmhKfiOu6\nJcar3zu3rV1poz1A+pGJsJJOY+fIvrQNMYrvyFKPVMK4XpbSHQBaUcTDPrG+\n5+eNz+VMNABeCp3C76zSfqLy21eKeO5Qseqp19WisLW0szbp9N6q0sUIEfWv\niPHNVXFmcp9vS/FvoXa7DpOJ430fEzNfx5n+B8icTg0uErc1dIT1gDdVx2Vr\n+WdgsszJ1X8lThNz4aHzBYh4BY6KC2512dFJEjbawe+AO/hccRJG37f01DXy\nsFsjezBOBDlksx5S1lw0g38dgKHDJWt5OcxAE1ClblShja4frAuK39KOOO4x\n+JSEAXKd+oJgPZyMJTPYSm3loNRn3b/8JM2oZJGyMGAAZign7WaYvTnVYLPu\n1vd+eylQTjeBxk3MVghZBYyxDjws/Wd8/FDGqd3T5NTWHgomVn5p0oz3w3KC\n0RI31Ri3DFtkCLKaTcAIPgWLAZBT7xmqQava51Cxxx+ECa2dlAp+xSibL5fH\nI6iMWeT2EdeZcgbR5n5T5jD+DJO0J2WLDQaL9ho+lHy0wTjsOnTSdBLMS4Md\nTNHmxXeRaqh6XCFtA3uwedXKcTNVwtVKy6FqFWySDpfwo+4smvo0CWmB9UkW\nxEql\r\n=PrX6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.20","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.20_1583191350215_0.13268246876936018","host":"s3://npm-registry-packages"}},"3.5.0-beta.21":{"name":"@aofl/object-utils","version":"3.5.0-beta.21","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.21","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"125ed653a25f4f75aa93d841efa30c42a5b34386","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.21.tgz","fileCount":13,"integrity":"sha512-ejjYen8TAKfX61XwpQ4Eedt+0rQKadphvfAbwYAm62aPLgIGeaG91cwYJEmE5zpmyYQPOz2Ww3enKrJm2xr2Yw==","signatures":[{"sig":"MEUCIFHnU2ta1xAlbjJ9sWVTUartkjmyJaVeGI6fLSSZJf4nAiEAsuZZkPiFzm38UT5Vw5ep4xhdNDSZwaMMAh/L262zCsA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXZY+CRA9TVsSAnZWagAAfeIP/AxmSL4axrVuuzXh6S8m\nyw/IG4r3QnTQMNXORnio2efMF/ZlDxYSnAUubHtmY7ZB4F5G0txt3W9rDlf7\nYuNSuqQ+q/eCNu7TFlC3ya2jNYGw2VERx8p4Yy9/6QTvRcxlR3AFrXCfLk6V\nqzL8ggNMw5+FHbP6WHDdd7EcRch+x8LTNvm9QTdrEVqftYX6j8UmWdr+EPSD\nU/MpLbK31e75CqJ52iBdzvvS1ANhuAYmL5PKC3oyXXND90tJeX5V1AwuzzTR\nZwek4Cto6/b8pDXsZ3Xx5o8W0xsrUPAz/oPfoO9sHp5r/UzFaeWavzCMukdY\nmsWEARIn7ynX8cWFGXEnIzP4mOGSFmN5j/fGdoONiqssgBA/dWkEhgTNq2J0\n6Vrj/FbqM2Bd5wxS5QBGSW8UeKJ0Ayby6kE4ftLIA0YKitLpN4MdFPCBPlAr\nzhro4k3XeimcQGn8Wy6a9yElbv6g1enG0eOW0okQ0h6uvcd+XRkHoxTUk3PD\nCP0nG13qJDCMMZpvjaJ1B38F9+JbKNO+kTxQTY49DGMXjespMCiDdaxoLLtJ\n5l+OqQkXk3nNIBimYRlpawxKZen3wTVax6ztT3b1pMt+4riJjSbkigk6MtNt\nfVntooIuQjfbMETbP6sUMyecohaz7ByV66xgwyGYUkx3mCdKuW5aj/ki90i5\nKe3Q\r\n=Vczb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.21","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.21_1583191613727_0.596587078562663","host":"s3://npm-registry-packages"}},"3.5.0-beta.22":{"name":"@aofl/object-utils","version":"3.5.0-beta.22","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0-beta.22","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"7610ede8f079546d75a2e987e9424829403e3898","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0-beta.22.tgz","fileCount":13,"integrity":"sha512-uKLEjfF9HltI7jXagOgkGNQ3q3LVQbyCPzq3oq6OugY3jhtN6OctyKRB+E6TJD6qnNNtqrlt4kd4Q0Diy9vQIg==","signatures":[{"sig":"MEQCIB3C5b8hTBAPSb3aX+SxlYm9NjBRUBgzRussvCy+dDhBAiAWKHoMXiehYU9O7xR2ku+c9BMF0eqjSPU9O6dKwJzn/A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXZnPCRA9TVsSAnZWagAAQEcP/3OzDUIY5fiyLjt07M4H\n6qu9tw0fKri/oyrW+0oPMHthHOV+hZlEnTnr1BQ4+3zwB6FS/+KKLET0wNl6\npjzAC0QUhu/J5b19HyixvYnX5SaxZ2KJZE1dg+e+VjoR0AwoCCuTzGLxCDu3\nO0Jf1OnFvxzgYQIQx4WFngG1i3Zv8VpYoiW3sOSwDiNDcKAvF/KaVDSHDV/T\nVq3kJrMZhTbBcvDEaVmFSOuPAirmv3cyIkzJY2W927ngrZHUlSMx5xi5vfX3\n9GTkfZo1dPBxJpQQZjfiOZisR1My9YWwL2w+6OpZsPLZjG2n3ASqMoRcKVMl\nBew/nDABkaL3st9qGl8JP/sQLz9q/+lzHnvx2k3YpR0/02AMFHivVdedatoL\nQq/2WyX70jbQHe/yiN7a/305G1BNHMB5nKavqF4RoIANXbnRPOnC2MfVwJR2\nlTfP+pdp30iU1QeJYGuaT2CsZcYgTIs6CyHqjyjHUg9vXrNTc/wRuFRkJ86G\nTgsbxmizZD24pu+mOnklcNwHdqGzlsTnCJvPuUjflF8+wMqFsI1oj9MoNaT/\nblkTHzYCq9ARpiuOajMM7i7ZN8XKJ7T2Tm3p2De055I7qH4I6RvH6Nu2gkRT\nrRyE0Wss/zj9wo5ZdWs+qpNJderThK5kVEJKfivOsyIoBYWZPu3qT4sxdh8J\niFR2\r\n=cSuG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.22","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0-beta.22_1583192527208_0.7628350587603665","host":"s3://npm-registry-packages"}},"3.5.0":{"name":"@aofl/object-utils","version":"3.5.0","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.5.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"506337c7c493bcf5e71795482f46debae121b313","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.5.0.tgz","fileCount":13,"integrity":"sha512-a4n/CyNBPfV+3NAlBXdbVqUN/HUHBruD//Je8zYXhIi0tQndN0LEranmX9zH+5W9PBfbClK87arAfDci7laLQg==","signatures":[{"sig":"MEUCIQC04jNWWluPljEU4IKTNU8cEulUkLzd2Tb2nHq6YxIaogIgXVZF/gwDHKB2uc3KMZuDs3qC3t5wqKhLeTLeDDTvI8c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29507,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXZ6tCRA9TVsSAnZWagAAl98QAJLNVRB7EtrmM5iKt86a\nnvzz/vsqzCK9QQ4nw4H8iihVt91UwR8MBBtpH07YMxN37zMFZQcg+RyTmvW7\nuPLuqYBVH3NKXPgIolyFWMk8gKW012TaRcgxHnGGXn9OGDZKBGx40zn8/Cmn\n9KhanK/q57DKzwTxBYAzvurjI8eEBysrlbhRrvA4Pu6ANTghM+Clg+LdFm/I\nHXzq31YyzScy/ydxIJ7LGGIJh5CgbSY3MGUVJOQAWuo8SwVLctQoYlzdQgEI\nJ/Do1VZgqnN1DrmhIuyP+vmY53BhiXEKgxHYRANpijNoEISuxRxw4JWuhUKN\nKi/4AWGMTaNBSxiZWVKIimZmukrlK4fBrun8c8siHPMQkAFIqOhEDDm7TZNe\nUbAi0a6DXTEx7npApX6rtV7wJjhY+FD6qEq/cMaMl2oHJIEUXtwAqMRXvN+S\nSrDY4o7Ss/vexr1KTnIdBV9XmAZpyPqo8rNBdnpxU4NXSV5R1c/fPLlMCv4c\nX6PB6z10/9SWZcEIzao3UifSffCerWdJniiWVI5l50CrZdM6tZI1o671RUzV\n4Pd05pDUE20KyDNlruXRSDVHGAdYVh0rXrt+m/nWWJE/LK36f92Zc65MmeWM\nNX80CVMd/Y9C1Zz4BQ6xji/vPJ9e/PLspKNZXz1apR+2bKQ+vNu+Z/FWa5ob\nTwzv\r\n=1ORG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.5.0_1583193773219_0.053431608816830733","host":"s3://npm-registry-packages"}},"3.6.1":{"name":"@aofl/object-utils","version":"3.6.1","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.6.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"af6e9d7de0496893919528d5deffed2599712d28","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.6.1.tgz","fileCount":13,"integrity":"sha512-0o9UtdpywH49/0Ve0yk9LgGDj+fh+lPepownVxnLeiJzg6mxmbPjnXlX0aLmpvDLIKJLtry7rCxliemPakxQiQ==","signatures":[{"sig":"MEUCIEdwhIcz9ZeNtgGVOjLLeI9YyRqIlkeyfbQAG8efMgR0AiEAsA8s7hncXpZrc0jcbiYfz7Qt1Gzj02NZatQXjGd6xKs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28968,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZ9+gCRA9TVsSAnZWagAAQ8wP/RryXts3COlu0hZXEKWd\nIBgxC68GXdVY08adogo+XZ28dXpjROIb6Cog5nnZbGWifn+wwDqzLJCHh6CI\nbdFTgevOiIKofLwGU59OyfZxH8W5ZDiLkg/foUeAl7iCts4mvJpR+4Ol8Wje\nCoHTeJMNXoguk+TkFikFDl3NpXJmEg+TLC82N1PYD+IpapXT3YirYG1rcE5H\n2NKx/tmS+l8S53xQLEK+3bB05/SFuStJc4lvNcF5EYG0gBZl6LRzfIg8RIzq\n/Hh5AAg3SNry8dd0yV5AOBMFGJ7gKmqei9XKQReXkQR6dIO4MgeS3wC21d9f\nx/UpTyCysDHwIRnLWzSTabXy6eKSm2VPQOJ6I3BTUQgou0MkmtaQwdWo0M7T\nMrGI/CB+7uZFdVVNVa4UZFaIAk85un3wj6/Z46c6Bkm0XeYrfSmSSoFfHvIW\nBERBxBcJ0XF1brqTp29gsXOs7n9ZaPFKaSdpwMvE1nSmWrX4L3hVh+bASmGQ\nin6nQtDtD20+XN6p3M57xPjN6RtLkpfkHgsij0ynGvOSob2W+jMPRqr6CI6Q\nSYe5/RELtAgRxj78U8AQ05/jpvGgKr47GiE/iRtxScs9F45uZG+6RSI+YQ+b\n6jC4ck+CamP4DadvjtOjIHr6dH5M1Wb9y9SwJSbITs9n1VDY/q0eHcH8TaAs\n9HiJ\r\n=pre/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.6.1","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.6.1_1583865760493_0.8032206139800739","host":"s3://npm-registry-packages"}},"3.8.0":{"name":"@aofl/object-utils","version":"3.8.0","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.8.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"8cfdabda449f08297ff12e39cc70a6759db5ed02","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.8.0.tgz","fileCount":13,"integrity":"sha512-KA7N7ivqFrD9EsT5gY31N6dE6xYSddBCS8UPnACXWh7F2DozuWsk2/pICYPUgrr4DA1uxqStIwG5T560/dtFnQ==","signatures":[{"sig":"MEYCIQCusocz+wzqehZV3lX78juuEwlgXesB3dYQIjFeO/6a2AIhAIrjuzeurw8W40tZsVJ2VZm1sKR9Bgzv7HFAWbn4kAO/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28968,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuva0CRA9TVsSAnZWagAAoMYQAJbdLglK8TWhDBLGgGaT\nfEA786u9nzGdkbBtMLZn1yGtuwNr19942qOHFkADpXG5wm7u8qr98gWjJ8HX\nKO7tyyI5pIksT2yd+ozEKhP884XYp/JPnHWrBgnh12wP3+XFXu+vHqtIlDbj\nhuOavTVcaD6LJxyV3Q9z9XHGxgev57KS17DIuVHFkMWU6roJ/3+E9e6D9wq0\n1+ZvF6f8cK/JCLhPwtUvCDSMvJyqu3U0Y5eWJljE7kVfgU+LxE8ATWPnBuvB\n7bim/KQQcT/UP17JHPk64NvZa25BsydxEIgirspPwWAEcidaceOV7UQb/H+3\nWmuRjKiwXTXVJMkdhphsnfyRXbUlPavIHYBKY92wwjRrNeJJKiAbsPocGh/y\nfTeBLuqjBX8nD2TuXBB/1LbKdH/75e+h7eVFqfw1kFia7/NFA/VWkwURXg4R\nLUllFnmWb1/YLQdtxj1mwCzhPA3EzrbbJN1Cef9awZLDw0LShAMKI/ZIekBP\npZ1T+tjlpLnOmXtp/rzvCMyIqvCB9sELGPRRxAISIx3pCfX3TxpaHg2aI2oJ\nPAgoeqx12HOb7GsSCvvoiq+w7/Vy3K5dH4o4+/MoKTAI1ntf1TGSHZimLD/b\nBBD7BRzvY4AsS2BkDXrjMLzmwog252lV2H01uM5v1ZO+FQspGO76XXhe5Vv/\noqKH\r\n=hQFD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.5","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.8.0","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.8.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.8.0_1589311156500_0.2182973694697996","host":"s3://npm-registry-packages"}},"3.9.0-alpha.0":{"name":"@aofl/object-utils","version":"3.9.0-alpha.0","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.9.0-alpha.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"c8a54777713049ba264123628f67b7bcbe204db6","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.9.0-alpha.0.tgz","fileCount":13,"integrity":"sha512-PVLHyXGdAUeJY3C69rrJ+OGEidIVcVrSRoONo3kOR5Dcx5NoQRBaFinTuyODEtbYS5YJwpqglPfWqJCwY3nAlg==","signatures":[{"sig":"MEYCIQDBllBK3rYXtuTJuaGhpYKyLx40tRtNG+NxYskGviltRgIhAONT/sGPftZ9GyNscqod9K8Jg4VvEvIlq5i2rh5AKTid","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28984,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuvkkCRA9TVsSAnZWagAAg4cQAJ1JYodw46wobN+onZqx\n81KzUJ5zwiTKjHKuPbKO3CoqAZ6u5x9wrefWAfvE/mN9O6g/dYqZPyIW0HFD\nASJuAcg0VGAc2Ij2DsC4TWkAY0QysTvf9rqQWNGvTRQWPobUETc5tvlmtoZS\nR7JCxKZPVHp+9VzmRFQfJvrLQXc3z/cNHbTA8pJAXck2eHrLC+1ar2p8JnDz\niDwTL7sVCAXnwOjmgvBwKbsjQ5/y+aXrAz5Pi1ndIEIfNodzZddNt2KX3jey\n+3U/Ru2xBIUaEvfWIHiBd9gYlHA+AywebAkstXEiKtwgp8j7jI9IbfLsgitX\nkPvVsGWEY4EIDNNHA+skHq3UB5OxzINpbvYBuJmZbgZ4PD0orDPhsg37krye\ndwWWIIJ9zoTZMiXy2CnHLEB+wqgPZM1SWijlRUvR+pp002/Z5DtCugYr/eNy\nIPtr5pPqWsCU+qLHRkT+1JFu/4fFSTRezYRMrdyhpgLZUKOZBZCCxIsDJ00d\ncYC2/XFHJvLbcc7xrJKWhPfbDKez5WC6lk8DNsT5tA6gNxyJ8n4c8HRmFKze\neUo/OEEVDQ4b3ZA7oHs+YtEUNF9YxOWasfN/6I2QHQ0iJs/UR1k5SESKRkKA\nLT6HlN6aDi5g0r2D5QrTN6jphbe6MHy0alT8NAiKD4Oga5AU/8ZV1N1FM5qL\nbUNB\r\n=yWJk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.5","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.8.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.9.0-alpha.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.9.0-alpha.0_1589311779958_0.3973512451838328","host":"s3://npm-registry-packages"}},"3.8.1":{"name":"@aofl/object-utils","version":"3.8.1","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.8.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"70fe5cca23129db4f085a699923499dc209dfb09","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.8.1.tgz","fileCount":13,"integrity":"sha512-rwI1Jza4fjfSUu4pG4R3F+4OhduLapIxO5PB/W5hiSwAn2+Y5LIevXQ3g0xP2VsxijEB3os5XqfRMAD6HfLCZg==","signatures":[{"sig":"MEUCIGRX59glbGdRIhWfyOaf4oIJK9vnArjjky/hq4ySKgOJAiEAhL1DMzuKT9NQ1UgMvB0m0qMxsnkr5ZhfnDVAY+GvbRA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28968,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuvuvCRA9TVsSAnZWagAAXwUP+QDSMmm8e5M+k9EwUoyp\nxQy/SSIPUGCCgWFxEvUeLS0AMx+FeY/SqFTaQ+35/h+Iew3s7gQUYtlMEUUF\nd/kp55BHvZ09EnD0x0XuUnmvIT+4l90Zx8oXQR8EoGa98t8kyqzxB3xU5VzR\nl6ak2zQFvCIVEh66cUFY3pGv5IDLuPD4J7Z71a7CsORbWYSi62dCLBCeLzNx\ndgY9GWwRrLODXmgovjqws+OyaWOTyGutp9MHn5o4/RdqgVq9tzfyekYEEYR3\nyq7kw/ijuAKWp0uvEXZXzdh46lKRuWUSHo1iXxOxNVwQh9qFnlTTx9pZWd3g\nJ3i4XP6PVzVGLPAAUPby9Y3KPQ87C2KiT653vTDucjw1LEbcV3ltuRXzQEi0\n/uEBPIZNaS/s0MbEQKJwSQ6+Elk+D2YsggCMscAOE+C1qtTZP1UVJhHAMeTw\nsDjwlFDOndiE7x59hF3DI2B95tukPntqueEUUPq5hCd2RgdJQpFcpLyqwzhQ\nuI17og3va+Z9trXycsb/5R+ldxYWezf7HAmOBOBXs8egaz0BhXy8yJ8LACb5\nMdGbTgv2Th/ZOPJClqCXf6Vh/fMJkOUP5JqG1qMScowbVoo1CpbZPxMwUcn6\nC3LuDq/O1V8VdS6ng+q/s6tJ9eP62u6KTzgxgTvXvCj+ic8pvNnRqRhd30w9\nh9Ky\r\n=4Tl3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.5","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.8.0","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.8.1","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.8.1_1589312431326_0.6409361054629612","host":"s3://npm-registry-packages"}},"3.9.0":{"name":"@aofl/object-utils","version":"3.9.0","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.9.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"670c69afd94b47e4ef6b3266a57ba1281fe81689","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.9.0.tgz","fileCount":13,"integrity":"sha512-R4kJnxLV8b3xTm/mrJM5dOtoxN83HMAIv+E7i68344zqlao8nG1sslF3CnM6LRHqxlncoZbOff/rmuNiV6ZA5Q==","signatures":[{"sig":"MEUCIA3Ty90LBldm/gZGC9l1TlyVWT6iL3xceFxIH1Z5BKlgAiEApaohmuyrYy7wrYwURk/Bpi728cr8WoCKtA1zWL2H4iQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28968,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevtgeCRA9TVsSAnZWagAAI1MP/2gfWRtwkPTmx4AB5UsX\nHI0j117JeI3Cfgb+TToBOWUfx+v2pV644l4+gsTQX2Z9ALqtCMZTDGcVWXkO\nCO3MIbEToJjlhlanJLEDfJRp0yB8b3hftTfobikmUaROsYCW9rFcToB5jQ5D\nkylaAD6ClHbIOm37AplE2EkWlaPP97wX6rfsma2jcqeXpSnvMNfj6akFwTmG\nVGwhf44dGGoygFn6C87k00mvU5gn5GAwJSNZo5HmRKr+L/so2iLxiYpn0U5Q\nQXLBE+u5STtZwAtjl/+OmQqqaTNZJLbPBa775/8HOuaN1atMO8/aMPM47w/u\nL9e8JeebQOjRauc8uHKySid4rnx36Nnn7wyL4B2fGVSOpBDBo9qWWcAF7A/J\nc/+6MgLwSDSrDKryUSAmrySlaCrA++snabeMl5vyizVNBoPTReLSrJW1ck6m\npKIykzaCaBrnQVggzp4Dt2SewGTlC490W8nzMHc8t/WQ0LOYNl41nMRCfKAq\nfj6bm6vnZums7y+NTwyXrwcqCecvk6TkvGjgt62n6IUNqQtnjMtpfsEdYt3u\npn1jRprbFOaXcXVRNWarNamPFVlTMcWWQ6NzhN0sYKvaNrjK0ZhSn+j/81Qx\nBFYqYTiBT5njB3FOT6LYdVhVDOU8hCqDrJGA3x3XmiyUxouE/0KJXWqNpjfd\nvPbx\r\n=aYKC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.5","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.8.0","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.9.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.9.0_1589565470342_0.5085637377928707","host":"s3://npm-registry-packages"}},"3.10.0":{"name":"@aofl/object-utils","version":"3.10.0","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.10.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"b69cacce6c8053a8da725331da03934d473b8260","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.10.0.tgz","fileCount":13,"integrity":"sha512-lMosccYQ9PPhzLfsrzNDBX5KHOZd5EA25TFN48+A4M9LuUFRS/uWOh8otbRURvcBH4eiGwaie0Fng9EX2ApJCA==","signatures":[{"sig":"MEQCIDQD//mH9cJTfFzqo2pbp+ZOuobZhDD4T/Ynef+neZakAiA12BaDKScLonQi0kK6f5zTXgP2WspeN3wqDBRJHrVbfQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28970,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevwZkCRA9TVsSAnZWagAAThIP+wSQ6sTRlKfFlL7Uc7k+\nJBCEQb9FdsxXQX37cALW2NY+UpJVkb5e0I72LGFEyx33+BcOocLewwet9aqZ\nT7vS57NM+b4YJzV1MEilpPdGBCDFyniClxbHelmReDL/SOWmUzh1YA8L59AW\n9ZZNV8rffDNF+L8CprWNOEknL5H+szSS+MfjXNftABDdJEuvkosouW3Hs7/E\nMeHUFXmXqpFzvPn8lMUAxB+Nv7lkE2Og/g0oRuTY7eoJ2DBsUZBZnCf5Wm9t\nP70uHxWD24A/FSW5bkgnp3Dxv821vvVD+CsPkG3842L3P11+F+Fu7j7dthcX\nqAXkSls/Ee0TQS7PJOwyyT6haRVmVe58uCpjRO7VZZjrqHQqi99o3zNZ4wxd\n+8arj87RPlulZM5zjBici5H/cMULJBC/0V6PadbNcuxGBOj9rymNdO1wC3Xh\nHNU+axhXhFUrXttPMs3kYkcrbi0Odmelgyny7Ga5yjkkxeP1u+axnIaCV2b4\nIhtopOdzqpiqxAe1l16VIzJ078MWFxnSNHHMggXeR4YX/WLXQWNR1Q8mFRih\nsxNLUZM3TC2GsT2xA036VOVzkQeK9ZkXYJ/wtapiPdSEuB9t4JAsgnalV2cc\nx7a82ANlKdqwC4mZMquoL00dqeJMtFV+ZwTH85h2LeeAWxjcuDGv7qsCOcvl\n5CNK\r\n=FpIS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.5","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.8.0","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.10.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.10.0_1589577315640_0.5985528163821492","host":"s3://npm-registry-packages"}},"3.12.0":{"name":"@aofl/object-utils","version":"3.12.0","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.12.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"6925455a1fb70a0504292a31e12240897f73f2d7","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.12.0.tgz","fileCount":13,"integrity":"sha512-w22VY8/PmeCWHkV4K5T18MR4WVsYGRi6JYOMrsfqiKktjREhErpJtw6vStUZ9ACxPyDIlVV/E+qyDIP0XR14rA==","signatures":[{"sig":"MEYCIQDvJKxliVPjEk7KJhLBGIbZWzW4fpmSNw+ag5Y0Kb40AgIhAJibkYZLEYG+ElfJMzl47GBZTjoSxTcDiMgHk6qJkbh/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28970,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgB3LaCRA9TVsSAnZWagAAh+MP/2iLDlTHky6wluIVEyjJ\nGpu5BMoOdUQSxdxuKI1RWOmElpwyxWjvxA4OWNEdb4rhBrRgwfI9ZiOpwWi5\nCF1MEWdXNhPSBwhInZBCHSjFjt5gLvD2tRgUHukhS/uTzpR69P+s/pBESmNm\nmLjIBTZ9CafXwRt7vYApXKS2+JTTGERanQvRqILTySjxG+YEoeyAC0fXzJMq\n1gcrS7zfG6q0i1jaxHvw6ZssXCWExrf7LG6vlxyUlKyVlNGkVtbILeGD70Xx\nbPlyJWTxG+Lzd+hZ1wx2VPqCbjmDQxwOUrPZdsf3yWFTRyXSaJiYSCpkx02t\njU4IbdTtoMWAJE//aGCPcBk8fKU5BK9sZKPC9ukJNLyP37yXqvUN3ffe7/wV\nJCdIfKO0+t8hfxvUQ0fFvx66OVZhqQzyVlpHWKeXSlMv7DGeZb3onKCzXmf8\ngTztFK9eLsJEL8899P1DWYuIoiHdn5qSw9+kmO4FZ1AffW9yjgopdErdZxzr\n32VgwGaESPiiVDLDFv8zcIXrmdKbk0Jb8u+CXyaenERR/smKozRdaGg10wYA\nucv3mg/IknGQl/F/4bUd7orjmTKNeOI9kI8+Q6/pMveaAbTzZZRV5qibjXHf\nS06nNieVmQI8kfVpoMpEbXXwpfFCSPE2gvk6R17nNum18UzFfCUP4AASZqnv\nRymh\r\n=tp6+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.4","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.16.3","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.12.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.12.0_1611100890316_0.19527447060778358","host":"s3://npm-registry-packages"}},"3.12.1":{"name":"@aofl/object-utils","version":"3.12.1","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.12.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"cad845584061607b7f5564ef6db7ae6847e599a9","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.12.1.tgz","fileCount":13,"integrity":"sha512-UeSrJTMwUlckt2nDll0CI2YpD2c1EK6OLZ4MeZV6ZXiQzWJaDeLK5mt7fblMicY+hfGpaIhEnWaiDMkXEFWa4A==","signatures":[{"sig":"MEUCIC2dAUSpRdzSzpMWct6HYHw6XVTA7wbdrL+2kXOIlPQFAiEAhKBEK4b/KxtZ/Hx/JwAn8Rfo1jdYkheJWIf3XlItknE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28970,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgB3VoCRA9TVsSAnZWagAAvb8QAJqDHab4/aY5Ij8SxAHr\nXh0/2xvhvFhHq3iG6OVVQV/uLnYubQFL1OXBOkXJP7U+ICoFWQ0T3ySzt0X5\n6Yj5/8nw7hW5+FgB3qd4cx4acAHAyyRU56fJqFka4Yx58uBcWFVx+UGmnhb2\nSXjb1zUGX9wKqVwuFlhQpKUg+TPTbMX5mgqN9ektLKKF1JmrmYcnf9DU82G6\nHWTiksutpiAuGPANw6vUT6KbEdp3a/FGEtxON65zGw9YjZ5vnjwudZcxTPtO\nZFg+yhkVIS6KIOYM6N10m8jP97v1uQQUVeopRcUBmpelZMovviIbtzkVvDUe\ngoy6BBTaI50X71XWmFpR88lt6PCBseDs3nB+SAExL5I9OT4LspR+HgYR4Fv/\nNcD30xfhS1sWA2//52qok8yJ7M/8KnNcMGeI2rW2ex9YOQD3te1oc+XcISNv\nsk7oRDZFal0EkBZ3+iGhF/nff2t9TguuAJsp7gqHXDr+vkxQvwKiF5V8dSVg\n2dpcduLgaQzHhJno2ISOvMCAXP7/mzJ679jDgZtLiV0GhlDsETHaaHi/uKIR\nQ3KF0JZTwZ54xYA8nZ99tAQTq9REeOuSRNJ+dTNjJU243PlmclZm45SJQxY7\niqtY3GvjHP1ZJP3Lp9PgrQedrHR1BK1WQ/QFtQEpfBMR174KzlTDb+0YtRAE\ne4Py\r\n=T9eY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.4","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.16.3","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.12.1","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.12.1_1611101544515_0.9082865415577812","host":"s3://npm-registry-packages"}},"4.0.0-alpha.9":{"name":"@aofl/object-utils","version":"4.0.0-alpha.9","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.9","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"28a29134e84f22be5e14920985170cc0f9ad94a1","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.9.tgz","fileCount":13,"integrity":"sha512-hcV/r7MHpnS5+ts1sFaf31qfPwOBZ5AFkf4151J27nMkZh5XGB49KiT51rY0xHpY2Gk/mweiz+k3ivCvNTIgEA==","signatures":[{"sig":"MEUCIQCQ8tAA+q44bm41dMa65Z+aEcUM5MicSZbiT4npHKyCWQIgJhvkVXBo8qTtq8Xa9b5CIyfra2tRynlQ4BIuTC71ud0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26457,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGgDKCRA9TVsSAnZWagAA9G8P/iEJGzIzL1tIxVkBIKgD\n9ixl3elerJ3j/b9FYozh1eefxpQmN+2XAUqq+01qydnIM4HlOU2Xuzi0cMXJ\n9F8JlmYVqg3z8/Vdqqd3DeKcGVYq3g6fC6ieqjmGj+FrerD8Y6e73tF3+GWS\nUhCpD2Wz1o+EGTtgAWeAOsRpcudeY4o2c3nIK8Ioanf5SwrkQB48WN9dOj5j\noMmHPUB89rn4CAz6ge+xL5hHS5e7yPhCR0hyeLQyzFGrt2tGi3EiLyJJzTAb\nfLacHe0KJo83verdJXcUdukIjgHix7QUZVSwfTNGZR809Hgf8DGoP3MWxFsd\nNh8O2l0pGTvn3MH+7zhL3OzJyJBDP3N1oRS3FncUhQmTjDmjeGD+oq/a0ApP\nnsQEQulQIYuMASF+0jHQdLI8S+hNgfczpsdKH56FYNI4t1eWtUfJMDbZZMbS\nBYxsbIsuqrNkPu6X2JIcunCmkonLYw7M4N9GVAhDngY0pwdVEjRm8dpoFOSn\nOzhrtO9CCYbT5fL34JCj9EzR0cKHR30LIb3NO6PxlqKt2ecmFqhIueFcx2dr\n+pEsUIKosV09JH4llxzChp7/UDn92ayod5dlTKVSHYvIGTf+Xo62+zdhsuHn\nYTCrubMAgcufYYM5bSzKWcOwG70GHNdmczVbDg5EGSFiS2u8pNU9AY1wwns1\nYg3w\r\n=o7L7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx @aofl/cli build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx @aofl/cli build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.5.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.15.4","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.9","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.9_1612316873748_0.6303077138584339","host":"s3://npm-registry-packages"}},"4.0.0-alpha.10":{"name":"@aofl/object-utils","version":"4.0.0-alpha.10","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.10","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"37ef1c431d01c4ec110771473506b79fd7f960c8","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.10.tgz","fileCount":13,"integrity":"sha512-vhhx0ZGEzPr4byeNBxrr0wqbejDPImXE+H1rpQ8JQJqQ7FlsWcSjBEz0urrnX/ENpzkgawUIdxnJJ+SQL4Jewg==","signatures":[{"sig":"MEQCIAhFXFuVvHGc6nTLCNBb9H05VHKfu7R6lfO3k+q/TutgAiBeziJGpMF7UBeUMAMME1pD1DgepoX41X/NGkXpMJCQYw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26459,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGgKvCRA9TVsSAnZWagAALXoP/28o7UaGVIL9iFf5Plsh\nrioTnIe2kUmq+hKFKh1j7LOyp6f2yYXdZs0K+SVZdRu6CT1wytvDZsMGswT8\nxTMWUG50aKtCKRidcfFfW41jaBxOo792eyZO5dCnYa4cpcd5aLoBJoJCTiGq\nRleSdVw/Cs1CMscdMdz344pMfwb5oK6Yvz8YeAkCUHXJT/MFDY4Y2LpkSa+t\nzSgzz8svO7XiN3Fha+xXxZzsrVFu15g/dgU15vUrJppvsZ539FcnHEbZy+LM\nFiTjoStmIw0JoiodssJQJEhcCf5XEcleoBRgPgs758TQlnUI1MX0OlTx9QzR\n9bS8Z4wlEQCtiNrxS4r9HroET41cyE4bpQvhoeXOKzhc5ya55MP9zWn0PS1A\nEVPCUqYSId9QdKTZujtLX5h+L50xfSFFzDT8nAFRpS8s8q0PUOU5OodYzO0F\n5n/hxp/9hh1PdfkTCl2iL2T1HcMaPR2W7EVE6F+0lqgQsa7wDfi8o/oYdtK/\ntufYDEXa3UKWKJh83K+mKU/2U1FxLffD2kREQCj4CptV1g3iIqhOpxaSYXgK\nPyaNVsaLVy4TVhZLGX+6iMI6fIEulzm7GtF9BuRkiRqc9+TVbXn57YY3cR9K\nQhc1unIGGwOUXWl89DBtuVUiYcKirfzHGo4/5dpHARAh9u9sA6DsRfTwPuFg\nnaBa\r\n=LjeL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx @aofl/cli build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx @aofl/cli build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.5.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.15.4","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.10","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.10_1612317359525_0.5121707148626311","host":"s3://npm-registry-packages"}},"4.0.0-alpha.11":{"name":"@aofl/object-utils","version":"4.0.0-alpha.11","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.11","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"787da4c40ccd198ab2f3ceb9889bfbeffffa4a4b","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.11.tgz","fileCount":13,"integrity":"sha512-ONRNVEEn/+Tlt00jNJFhhyn57sEacg8W0JAwLrEMfO/stSLVaHZuHAdFsLvYk1SsqFFH4k55W3gfXDS4e9snlg==","signatures":[{"sig":"MEYCIQC/P3iqeh5K4fSNiMekuhryApNi7n3VNy8k5wZbe7qmPgIhAMXos5ZnPwmIKa9s5KnkneZrS6J1/jEEip1lcwatdchN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26459,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGglGCRA9TVsSAnZWagAA7PMQAIjlRnDjel8JXh0f0TZD\nh9BERfvMW6sQhkIkhCwwHELmgbiddCsY+pzHzkTSw17jvMNokLFsHYNfrvh8\nlY8+3xVZOH1AZX8LdeefFxQzZAtnt4JozslDUA94DtgN2UCuPu3ixJw1U4uP\nVL7wsXg3Qhp7IPi5HQFzUcPmubAmClmctqWhVIFgkhC4H9vtO4Pofwtnt2rQ\nTZ+6wgZFFYyycGLJmF/7pF9LZWtP9DfxWJKXBvIX3LsBIwEtR7mQK1fJ+q65\nuqtWarcDD6q06jNOBsn4bEUrhxEJyVvIrmlb+4NXNcs3lb/9vCcoUkXMsf2k\nqat/oaaVfizzrEPGkJY31sLb0cM9jPie0MBdFlt/+b+zYbBXCRIxzKutrcmg\nViRefX60p7XiObB1Wf4654GHvxq/ycG9LCyaPBdArC9nQeFwdMf9zzYdf5iH\nTNlwDZU+Y0DV2NsXiQ9w4WzkG03NuMDOsv0f15YfPv6DLzr1QPmtQok8NL81\nF/w3u4l9ujgEdd/tFpaIlt+cUHGcDmNlHr342gLNbSZM9UyTWaNbjbx+cmpR\n5oaoudjPiLrYWtSGQm51r12Vk1oYGyY0ShPQvvKMi0+VhB+j03MQ3EvilKfO\nRx00iP/pvC6NIMUR3zKPK6nqeX+FOeJZmkLBzRsIcQ49CKFW2SZxh1hyTHM4\nboxC\r\n=QHOw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx @aofl/cli build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx @aofl/cli build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.5.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.15.4","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.11","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.11_1612319046231_0.21799414147206075","host":"s3://npm-registry-packages"}},"3.13.0":{"name":"@aofl/object-utils","version":"3.13.0","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.13.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"0e76fba4995788582c58d9497112bdce2184a2ba","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.13.0.tgz","fileCount":13,"integrity":"sha512-xka23ock70nmagv/Ffb/6etgviGv0hfU+cRqCxLfY7Oe2WfDBnJRaskKYINBoKfGw24x7TqUnCvlOiY1sm/RQw==","signatures":[{"sig":"MEQCIAX9xEoNyWT6u9TBkq36LXH31M2AAAnupkwmjCEyPppBAiBLL1aLwuCrdfMN84Iw+z00xmOEGFIP5LPwxzaI6pP+bQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28055,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgODYaCRA9TVsSAnZWagAAwwgQAJIF9nv/jHbm7NYwsmfA\nBTsOqc49OxW606Rvtl5/fMiLxTwiaSCdpXh/ctGDAvpzdPD4bF6yb29b61rn\nFwwMDr5087gqSXjEBlug8qIVCxk2tqOnw+y7upkov5whoyATcagmh0NEQM5z\ngovSRCQ4gKnsYWoWy7E6y56l5qYYqBv/EP7XQFGhuXqjm8hw9AUOIAIJDFAu\nZAew97Qaj7DmmulxdzUudoV8Z7U7oiLOYfVdOVhD0p1zKPg+56L6+bnlAiVI\nIt1dr8bRFFoC/vi+rJjTKeYPEmhwjM3q2S1UCYqmdw7XqXZYVobUtihjtn4h\nnwjetTNH/hBHlkSltErhazqRONbUSBSzmmvTY7T6sFusLuVVmURGREPrwCQC\nH4L8vY9iqa6gudccuyfdd3e8uFhDIMseBGabaSoSYBP7dx7ZbcR2BXJCq9Te\nEcQw2l/fzv7R6GHo84xYZNIA+/DtGJLFlk9vJAIDp+tse443brW7z7ifpFfy\nU20O9MvwZ2FNiEVAhydWVrTcn73k3pv5rjCcEaNZ4+9ppjwceBOSmbRBlnvM\n+wzHb/Px7deODVyHEteHvX1ekP2WmBNzJ664HF460/eN6WNTGE45+Jy6sXPo\nlZ5UXSQF1UBPFrkeNMC9Zhf0hWTpI2qAaBIRGnPgIn+POpLYsPvjbY+2mTji\nLQ+q\r\n=6ptC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.11","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.20.1","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.13.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.13.0_1614296602361_0.01683713264679554","host":"s3://npm-registry-packages"}},"3.13.1":{"name":"@aofl/object-utils","version":"3.13.1","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.13.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"40be641de7f49a14f8ff459cc4b47f292c1a6f72","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.13.1.tgz","fileCount":13,"integrity":"sha512-Nc1hYOc9sZhBDgnHEUHl9Hdp95YtJcvOce3hYPwp6bDRL/dDQnd0eO9808Qza8yHTaRrng43JMXLs9Acqo7dNg==","signatures":[{"sig":"MEUCIQDuy9m2rwLH0XtD1qyUXN5TAuWkj2odFWqFLMosHLQdLgIgP0o0E/NyLjrNeUdYGCkqJ4vuNQrNXGUnnR7lOd4ORwc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28055,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh11qpCRA9TVsSAnZWagAAYKIP/0RVK+c9fhH+EAwjznmt\nr7YB+J2xCaRLKLG5vSQS9QaYQzxDxm4D3aqBfyTOyHhOxS24vGelP+bE7Yfd\nd2yxJmAM7/J/sgCeGV8b1G8WB0s6wONZiJiwhYEH45+9rs1/gPSWeG3t1iJ8\nA8m5UGI7c4wBvpAgu3/UaFeNgr5kBjtoDzzwEhgh8COWcshpumxtNA+t0Gn9\nTEsTEoQPgWl0AA5113q4/pdEM+lfyQT6qQxIrUf2dY/i4bK0sBrWQytyhXiv\ngnPhyk3nBGX1vn4sMyJ6hLULK7GI27EmoLL59TvAMBXPwpOMnN1PVb/4kwVY\nrgWuCvKCPVCeuDlRtkOOhIhfTwPFwHMQ8R6JnSo+oIjskg6hjDZtp+CX813A\n+DYwB1GWgBG2WtvHzV9jiCzGDrlQfhyCHAMqf10nE/w7pCxVjCVRlHlWU5Lh\n/mPxOjZpqP1RfLNKP5mj5rV2IfiFoEUBR3qA1oKmbgeeKfDpg4E2nc9FSJTR\nRLgsqDtS3Pt2nE2c5CVx4M4xiT0rxjlu8SDIjSU9iG5xORPix2oPcOSJ1gnL\nooZNC7T1YKC8H9y0B5YxRoE9ekAMOxwKi0QUx2ij0G7XKAGpIyMCHzh/dpvA\nhpjy4qa/V3TYqwk7UpUCLfhJrn2CkrUBdaUlFwcVVc1oLzK+ks3h2O5zdEw4\nXjQX\r\n=nmVg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.11","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.20.1","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.13.1","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.13.1_1623800917985_0.36308827603055094","host":"s3://npm-registry-packages"}},"4.0.0-alpha.13":{"name":"@aofl/object-utils","version":"4.0.0-alpha.13","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.13","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"9214ed5b74ac8d261bc0e9a4f07b9967c31014c7","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.13.tgz","fileCount":13,"integrity":"sha512-6tYMTmIdeermbjEOmTOtEVRcFHPINBFGzr2rxWgWu1eRwt3yiVPzvWex6n7C8CyTclUZWxSuu0BjRvXHYCybDA==","signatures":[{"sig":"MEYCIQDQjemxxavaVHjwliYdg1hy0RoFUVlHaBu3HI8VAX7BHgIhANvPuyBWGTGivLfqpqncEkWTc/qJ4PPkHXbqUjq16Uny","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25274},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.15","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.13","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.13_1632439922153_0.5339290749040673","host":"s3://npm-registry-packages"}},"4.0.0-alpha.15":{"name":"@aofl/object-utils","version":"4.0.0-alpha.15","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.15","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"0350e20f146653e4e34aa5a16a31cfcd4b987a1f","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.15.tgz","fileCount":13,"integrity":"sha512-ttNYkNiwKjZqn7ktYVw+HDQ4n8rSewxQSYvb5anOHlzgzcq5K3upqaaiG8ref1A0oqnVudGtRdqYPTcCKfLFdQ==","signatures":[{"sig":"MEUCIQCHigaeUAl6ffe2imsxoLutLPaigOUI00iPeKZYLaNR8gIgPqDZ0zTXgCyPCqr6F3HDR1TtPA6WstChBIFScIOr0II=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24927},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"7b448cf64b30502883b3422662a9480ea25f2d60","scripts":{},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.15","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.15_1633539831360_0.6652590529024685","host":"s3://npm-registry-packages"}},"4.0.0-alpha.16":{"name":"@aofl/object-utils","version":"4.0.0-alpha.16","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.16","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"d9a7dfb930a446ab221a25e2b354a442f4aba640","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.16.tgz","fileCount":13,"integrity":"sha512-r74L1848pfq0a6MjxKNy5pQTab+D3QV/ENnca9fsIvi+MezW5wY7BUR6YhzyPFcH9PfQk5HgGhPaaYXLjCahoQ==","signatures":[{"sig":"MEUCIQDzXI6Pbyn6eHy+TWFoXH4BbKWse45lgsPy0g9hqoMB5QIgMkZxQZR3lFh5x83CiR+16rIKafQKsUqeClJPRZXDtxY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24924},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"7b448cf64b30502883b3422662a9480ea25f2d60","scripts":{},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.16","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.16_1633539906262_0.45329448755805135","host":"s3://npm-registry-packages"}},"4.0.0-alpha.17":{"name":"@aofl/object-utils","version":"4.0.0-alpha.17","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.17","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"ab437d38f92a89864deed8f896f3e28e6e70b60b","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.17.tgz","fileCount":13,"integrity":"sha512-rOsEuFA8N7qzWPkgdjo0rg4YQEQdEi7iq1E52Q0YLYQCnDgzGl/M42Hkts6u62sEzqhO+ibKw0PFdSK/qZy3OQ==","signatures":[{"sig":"MEQCIAK0NMedQdMWibbMmVvTkR6UFuX/1w5s/8sX4TzIe3KJAiApj895Oz/U12g1il+K8FW0rAA4hIy6E4sgt+eli8JVoA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24924},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"c7b3ad6feb17eaf3721a5528e86a31ddfb350ef3","scripts":{},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.17","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.17_1633546048550_0.8856377423394488","host":"s3://npm-registry-packages"}},"4.0.0-alpha.18":{"name":"@aofl/object-utils","version":"4.0.0-alpha.18","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.18","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"57a013f42d44a96e6876ce5e8ea04771f7912ffa","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.18.tgz","fileCount":13,"integrity":"sha512-Wlc9oZR/y18YZZngQvfpNCI08l4LfD4lpwUUdSMXrfNS4V/nybssFqrwegfvZqa9CfSnN78LqX61f9j9ZM9Cbg==","signatures":[{"sig":"MEYCIQDeCBQHtLxYmrjuyjc0beTPeFhNx5PbX6muZoAwu9imhQIhAP6w4c0CINNYg40h41r2iyZ/1cZm0XEhqiM7vZ3SL0c2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24924},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"3971875a8be8fc1e4ed7f6c737cc9aa1653e049b","scripts":{},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.18","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.18_1633563631457_0.839991275594419","host":"s3://npm-registry-packages"}},"4.0.0-alpha.19":{"name":"@aofl/object-utils","version":"4.0.0-alpha.19","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.19","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"1b1b97e6cd640453314653c4ab466ca26e8036f4","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.19.tgz","fileCount":13,"integrity":"sha512-unI8sxk6SRlv9jyH3s8e9n0ihWFe50mOjcluwI2QXsMEOLR9wU4NLtl6cXTLvciMRLrcmt6rKoRWYTLZS82zxQ==","signatures":[{"sig":"MEYCIQDiI1U9dv4yxEblp0NqqNAQcUu205cCSOUFv5Ae3/oCAwIhAKgKENOZDmaE4NWqU+XcWb456yXOYplYvQOn0rQeFYEX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24924},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"79369e766cd4fe78098059b93d1cbd7bb5dd8830","scripts":{},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.19","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.19_1633564047207_0.8561157079505393","host":"s3://npm-registry-packages"}},"4.0.0-alpha.20":{"name":"@aofl/object-utils","version":"4.0.0-alpha.20","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.20","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"27c1a7d214d0eb989ec1697d0bac3e5b41be4b72","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.20.tgz","fileCount":13,"integrity":"sha512-VlBOPrz0ICkfTfpKKO7quagaHGGLZMq2Vv/2R77xuipQiBapP2CPHzzc+fQDB3Q99S8EhYb6w4Tb+InVtT7+Kg==","signatures":[{"sig":"MEUCIQDocNf402JqQZYPPweWxZpRURB2PRf9ZYb5xY7wayja/gIgbUQRsdbsosp1FZL6vlqzJ7XLZq+IbGElVuRDcdUJWRY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24924},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"398f195bda4d61023d6d7889598f5688c276f1bf","scripts":{},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.20","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.20_1633564494783_0.3292884410989838","host":"s3://npm-registry-packages"}},"4.0.0-alpha.21":{"name":"@aofl/object-utils","version":"4.0.0-alpha.21","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.21","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"92cfe20765fded3cbcd749e54cb11a3014095de7","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.21.tgz","fileCount":13,"integrity":"sha512-LyXE/NvML0N9WN3d7ExIYVoNcl+uT+ng22dDvzY+GpoxlU6fzlVlqvdJo0f8VrclVNjGBrOIH9WcOWm1JCbyNQ==","signatures":[{"sig":"MEUCIQCrIOPjfiz2KX5LSNiV+qhZJC8O/n9IGwXaH4u0qtGLDwIgWmvGn1W59vYqMT7DbaR7lSdXzNAC7r0FOCQqwmqG/Mc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24924},"main":"index.js","module":"index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","browser":"dist/index.js","gitHead":"398f195bda4d61023d6d7889598f5688c276f1bf","scripts":{},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.21","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.21_1633712758392_0.4091751965707786","host":"s3://npm-registry-packages"}},"4.0.0-alpha.22":{"name":"@aofl/object-utils","version":"4.0.0-alpha.22","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.22","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"1a0a902dab275213c3875c59779ef010a4e50223","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.22.tgz","fileCount":30,"integrity":"sha512-w9rkzw2n0nS6S6sl4n+LxtajdMUC7L3e+xI64FQQouFmzAR+WdwTutdmDSECE2PnivwqpOHnYIuFidZ7EK9PFg==","signatures":[{"sig":"MEUCIQDdM4g5bZORxp/j35Tjm/ZFMcsAyj3vsl04a0bauN5XBAIgfNioBowg/pL6KKXFZiK7Mb7oNHJzKsyu27+6A7OiSyo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"289b7f60d1cd721d68cff783afc623c3f51cc2cf","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.22_1633984762572_0.49262110730110886","host":"s3://npm-registry-packages"}},"4.0.0-alpha.23":{"name":"@aofl/object-utils","version":"4.0.0-alpha.23","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.23","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"67489f30a1439f29b7bff13a73ed1b600a9e05e2","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.23.tgz","fileCount":30,"integrity":"sha512-+rK1N2ccK7plfqyq8MAuLY9WKiNb1TL/cPdH5qVrkWx5HlnUOtYSr7A+ibplkJSpwCyclb6szQNgpsyPLnFc0g==","signatures":[{"sig":"MEUCIQDy/R3lGVR9FwF8MZM2FNqdaw4SFeQ9Ef4nKC1/GbVp8QIgfoYJHmp6CLDcAqLmtkWyKnspYr8OrAFzT0nz+uFk66k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"a2829d023883e5cc51126ee549f70629ceae8e8d","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.23_1633986440090_0.7541187835646883","host":"s3://npm-registry-packages"}},"4.0.0-alpha.24":{"name":"@aofl/object-utils","version":"4.0.0-alpha.24","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.24","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"3b2cc81da334fab18fcbcf23cc7ad764a80d8e80","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.24.tgz","fileCount":30,"integrity":"sha512-VYMBOQnGQlpoOUk+LWRlcjFYAB1Jf2tAngQ3cxZey1Ekp31spoepoDzgH8G44GO+uRwjYH/1eYGDI6QXGiI6Fw==","signatures":[{"sig":"MEQCIGxzjfZPkyzvD449E2+q3lEX6tGzwl37SD+YOSg0Qe7rAiAdmHQ1BD9IjnFxk5JqMpJKPHNeKl5FqPj+wTALVa46kg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"a2829d023883e5cc51126ee549f70629ceae8e8d","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.24_1633988811960_0.4290539672828064","host":"s3://npm-registry-packages"}},"4.0.0-alpha.25":{"name":"@aofl/object-utils","version":"4.0.0-alpha.25","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.25","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"b7e016994f901aeb5c833f0c8d2a9a4dce6028a1","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.25.tgz","fileCount":30,"integrity":"sha512-ty9MFDf8cThHpGGZUJ0EJi27mUR1MSiC0NZhWdOtzPZavZh7PlDCCy27HKeByMUk97HgcjAJeEoehm88kGRhYQ==","signatures":[{"sig":"MEUCIQDj1xzZDp11N5o7GBahEfNpeXyoAjxo68jvWSiwMioSmQIgU/aHFaSTPW7cwJYozVATYqpw1wAwl5MomLKYjmQf5QM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"8e4d611be609be11acccb9135091aadd10134e8a","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.25_1634001638552_0.1286950050077149","host":"s3://npm-registry-packages"}},"4.0.0-alpha.26":{"name":"@aofl/object-utils","version":"4.0.0-alpha.26","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.26","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"e1a3a2998250552a8a11d079ae479a17f3d57219","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.26.tgz","fileCount":30,"integrity":"sha512-dVpmyM/BfKndUykx2stA3YHz/Y0OyfQohn+ZQOq7A0t7Z4Tr0juZO2f9g+Zh5p8aHvEFDt5ti0OCZ6zkXeGrsQ==","signatures":[{"sig":"MEQCIBHno/Tsx9Xx6/iYvFewA1mqY4epeiCFrWSSl5WdlNnpAiAOKzxo9Zuu6qPdIqHKWk6212xUXuHFHmdcfqDRlydv2g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"bdd06521b3653befa1b4c07318cc120a700672b2","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.26_1634002467896_0.32985932058598566","host":"s3://npm-registry-packages"}},"4.0.0-alpha.27":{"name":"@aofl/object-utils","version":"4.0.0-alpha.27","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.27","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"9824e398cc7c02764091b92ee341a2d60d81aabf","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.27.tgz","fileCount":30,"integrity":"sha512-AMGJw+PS7FblFoSLc1NJGFHL6HMuvBYprq8gEGZCGTmx0KNxZ7AVPZZ9FzLrJes/FoYnv13iUgHD7whDI4nshQ==","signatures":[{"sig":"MEUCIBV+bUQpknP976Bx/2EWDDZ2mGEIb6tCZMTowl4RgmQFAiEAnC7fTE4RBkJ/7K56kTXkDu2Bq+Ny53GrWDPZwfW64jk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"bc755f21b39459dc3a8b57ab25075a22313bc107","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.27_1634151988725_0.26673072131064957","host":"s3://npm-registry-packages"}},"4.0.0-alpha.28":{"name":"@aofl/object-utils","version":"4.0.0-alpha.28","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.28","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"c985e3032c9b9f6001c824a621a0751e59a6c294","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.28.tgz","fileCount":30,"integrity":"sha512-+ir79z881vMwGgPL+5zVRS93ussi5Tt4LgH1a5AQpHj0ElTb+LwINO0hWan4zF/F1wheDYj3JmXsuidqaEQyTg==","signatures":[{"sig":"MEQCIH1t/NLfL+f03c4RLgWcg3XOBS867xs4oS30nYgY5AP7AiBhbGlxrkoHM27L9EK1MP8rjNhHvfGFQEHJWVgt2sbFKQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"7dceb248f691c3214f73ba1d048f26b2653bcac1","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.28_1634163499858_0.6984187550063425","host":"s3://npm-registry-packages"}},"4.0.0-alpha.29":{"name":"@aofl/object-utils","version":"4.0.0-alpha.29","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.29","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"9d136dfcecf47ebca7ae198be55ea40f3b7c7579","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.29.tgz","fileCount":30,"integrity":"sha512-81h3zNtpGz0O9V4gF3DPihorD9WDU/WrTa6m1NzD5XtnhS1TphVekFxmxhSvPp0E0vWS0BNV5iLsQwNrgB2ZRQ==","signatures":[{"sig":"MEYCIQCtEUlISia7jXa7RyOp7ZmrW8wOAAq2+kYaXy+Xg0NVQQIhANa3twxAqGuK9+EvAe9rKIOIC+qTRG42GV7ou1XC2cxM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.11","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.20.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.29_1634319352142_0.6242192251998957","host":"s3://npm-registry-packages"}},"4.0.0-alpha.30":{"name":"@aofl/object-utils","version":"4.0.0-alpha.30","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.30","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"ce078e94a73ed35955ff7d727f9bbe2e452e5333","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.30.tgz","fileCount":30,"integrity":"sha512-66lLN04OZ4cSp9x7MCrNQP1Huvixh2AeMu60/fx06hNAlU3oPQM0nhJtRLq9N6bWgShPZTWLFjkgcDSiBq2plA==","signatures":[{"sig":"MEYCIQDUJ7U1FepcLn42Kq004zMOnXtXOgCPN+//WFORflWZUgIhAOeVSCeS9x3wfMEZgLcp55WEGgljaWmEP//VS3Pd6lTV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"13ed83fe4429533b22fd669328dd6c8829dffec0","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.30_1634323858894_0.18430737621886206","host":"s3://npm-registry-packages"}},"4.0.0-alpha.31":{"name":"@aofl/object-utils","version":"4.0.0-alpha.31","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.31","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"7962deee3f3b16623dd40910555bd9bf57776ebb","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.31.tgz","fileCount":30,"integrity":"sha512-xFAq/Ss388rUFhCJzfnflIZOfViyNu+LXY7Cb7OxGuqTtzIFCnh92zmNPtHffqxP8pgVXtYafGDkjuN0/+xgCA==","signatures":[{"sig":"MEUCIQDpSeTTqW+CHpDR5xgaJIXKkJXgiA3wqoHBlkCcKXqO+AIgTm+Ths9paO7hnjgIbhLhHUTB1+jDwml6FGMSFkW3weE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"5bc1713dfbc60e5029713b6ad88a4a9fd46d3413","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.31_1634324121097_0.29685979199854184","host":"s3://npm-registry-packages"}},"4.0.0-alpha.32":{"name":"@aofl/object-utils","version":"4.0.0-alpha.32","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.32","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"ab461dfd5bf2db6250156269d071664e2b2d8dae","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.32.tgz","fileCount":30,"integrity":"sha512-7Q5tmPGM9+pdWipnYvprxLrnH61ZbAcr54f7Qx+9ZiSF/wbMHSjOeSqzPYgRFdrMoafSCLF2QCiDNE2Jz0VabA==","signatures":[{"sig":"MEQCIEcKM6UsH/iYIMaGuoncm1ogra+fXzXoDqzOeSrlByokAiAYgFmgisa8CNBwZ7CSFcMkmyeUtRddy8IB8HpOuUFynA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"77786a7e5219aff408e59d051e8380ca1a63021d","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.32_1634326783083_0.5971906136435721","host":"s3://npm-registry-packages"}},"4.0.0-alpha.33":{"name":"@aofl/object-utils","version":"4.0.0-alpha.33","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.33","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"bbb44f03cf2d89700e2e21867705d80396999c40","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.33.tgz","fileCount":30,"integrity":"sha512-S6IvMHu/JgUdYLw/VcNnhJzeCuQk7BhodGodksY0dB27oH7liYb5eP3leD86mX82PSI0EfKDDluEZcY/Vl+8nQ==","signatures":[{"sig":"MEYCIQCkrV+mFAAy/zOIfRYehz3ReKAhI4UdZbJGy3zVfHSYBAIhAJbuWyTgu/WKV3nhoy3g36wktdSF1e5HzvYjSvyfJcdU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"41b432602965620ce989f21e02748f53f69f7ea5","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.33_1634326983865_0.7041103752195117","host":"s3://npm-registry-packages"}},"4.0.0-alpha.34":{"name":"@aofl/object-utils","version":"4.0.0-alpha.34","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.34","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"0292b2a359131e01fef4cc1dc45d961d1d192d63","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.34.tgz","fileCount":30,"integrity":"sha512-AG14xdwtWRU60+d2yLXN1aaPKd4wO63oKGo41REG87Bqy3hMOJxRwM3anhgmvwoEC2ByzV8/ReaJtpbgVTYRvQ==","signatures":[{"sig":"MEYCIQDC5tnyeG1N9ZSEZku7kpwOuzltr6CknJMZ7MKLiRC67AIhAN2m+hSh8DsZP83RNytZQXoj5tdZuKwRSrJjrZ6YLIMT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"1b993e65b04444692f40eaecfc3dfbb29d50d98b","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.34_1634327589548_0.6995331965817282","host":"s3://npm-registry-packages"}},"4.0.0-alpha.35":{"name":"@aofl/object-utils","version":"4.0.0-alpha.35","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.35","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"f61add70975ad8600873d85abab161bd284c4ed3","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.35.tgz","fileCount":30,"integrity":"sha512-eweQd4IOeJiTVFfNsI+cDPnoZlWBnxgq9LD526mMELSY4KNwmeIVuTrgpPzsQUEYFt2e/XDwlJFXe36P2wPH/g==","signatures":[{"sig":"MEUCIBrvQIQRoWrd/wQZ+oCQv6teAC/MY2KaY1zeKUIjqpbcAiEA+NyCj/c6rzfWG7+BjAOKEQro8z39CEejo36SY8QsDXM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"5a6a7f303fc21acc73b55413f38f534ed4bfb714","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.35_1634328011491_0.031689255301987185","host":"s3://npm-registry-packages"}},"4.0.0-alpha.36":{"name":"@aofl/object-utils","version":"4.0.0-alpha.36","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.36","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"bb5bd2e7a283ab5e235daf919cbe51b50e647175","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.36.tgz","fileCount":30,"integrity":"sha512-URZNRuip5JSeNP4KBZs0jl+Q2GtimLrjLljuDiaeeBb/oqsHfyyV2rxPEZ35ZqcwB039DRGI+iySCE5idD4PAA==","signatures":[{"sig":"MEUCIA4ZrDcrDvSwFxDVN/TKdOdvuOt2PyNnB2JN8kVZPmzoAiEAyr5iMgOubrp4MAzWuIfriPs0xY/10GgfqYOGavA3wD8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"24aeaf86244b6f9f352b26d04fd9976f9430bfe7","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.36_1634328211209_0.6660572628559474","host":"s3://npm-registry-packages"}},"4.0.0-alpha.37":{"name":"@aofl/object-utils","version":"4.0.0-alpha.37","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.37","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"93b9953909833c70af857a97e91ef66cb9c5faf3","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.37.tgz","fileCount":30,"integrity":"sha512-UPFq/iM8BgAy3cyX7YkQB8h2kJefEjioWgOcNWUsPrKkf8MIMN2O+2Fs49ghy3JVuBDouMBZWlquH8LP9ed/bw==","signatures":[{"sig":"MEYCIQDtSruVF3vhNWwBsyE+08BSn7Y5uUSCMIVdq3AyuTmNlwIhAInIe4dL2I95MSDvlDi5gZZs9hO9AtIh3VYQvwbVDcyu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"d5e9c5a7ef77e315b759fb5bee226aa3bd3aaffb","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.37_1634328385316_0.5436202844458178","host":"s3://npm-registry-packages"}},"4.0.0-alpha.38":{"name":"@aofl/object-utils","version":"4.0.0-alpha.38","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.38","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"18bf3f4d0fc9b2b8cb5af2b19c71b8eafc5d3508","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.38.tgz","fileCount":30,"integrity":"sha512-DGUtJKpmO70Hvl/fodIrinYQS9P3/zCrfyvbhGYSXwspoiUQdEZplzg0DKc/VUbXpmpy5ljK9z7geiDtlcw2NQ==","signatures":[{"sig":"MEYCIQCj299nD6Kz/us40kUNbFhSZ7SMfwUu5tjoc6KVE7P/uQIhAKh2fzMwJilYXqUN4Vz677/sgqTbfv378q8sygcFKaXD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"91457836070b2b300b852a461787c56ec880a85d","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.38_1634330764992_0.18788085148372025","host":"s3://npm-registry-packages"}},"4.0.0-alpha.39":{"name":"@aofl/object-utils","version":"4.0.0-alpha.39","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.39","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"0e1f433f7c16ef104909776d7d6dffcbb8dddc2d","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.39.tgz","fileCount":30,"integrity":"sha512-L/5pJTkInPuUT7Ytsz5V83KzspNUURcKIgdBGZRbDWxNriq8T6T3JU56fbTOQiLhLyhuxzC+znS3p9x/MmEmSw==","signatures":[{"sig":"MEUCICTlh1AdSPaInyjFjyJTL5SJRNWEAGfvrW3HshyQ1e0cAiEA+jR4GkhAP4SynaxxjPUknOxfnZRxsuOLRZxAjaax6UE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"f4c22e986eb7eb2e564e469dedb36c65858bf5cc","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.39_1634332201643_0.7975802688659053","host":"s3://npm-registry-packages"}},"4.0.0-alpha.40":{"name":"@aofl/object-utils","version":"4.0.0-alpha.40","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.40","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"d9e8ad77c6cae9f2c1dc29a0d406087c3d0b4428","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.40.tgz","fileCount":30,"integrity":"sha512-jNZn1kZ1icfh3spjR/NBj6dTN6bC8WbqHjHtU+228gBVlDEy/jjuhARbsxKHv8fxxlrPbc4GQqztoSZnQCS6LA==","signatures":[{"sig":"MEYCIQDArEzaMiGt8ravS4HOaIa7YhuyyaxnVuOjg7nyMZPAeQIhAN19kax42qlsb8H9aUgbjQeNI6vq1lZD9xVm4icCBA3o","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"e93b1f585c2cd94383438abd74737a856ca68a77","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.40_1634332797090_0.517222222287806","host":"s3://npm-registry-packages"}},"4.0.0-alpha.41":{"name":"@aofl/object-utils","version":"4.0.0-alpha.41","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.41","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"0c9ab537bc9ac39a4a7008163655d32419796710","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.41.tgz","fileCount":30,"integrity":"sha512-E7eoQfPFM6s4XUIxa1MLJZo/xYkSneGoRq+b5bPFmwZa9iPZuHn2TTHCcjJoMHYRQcpDZyUkQaCFpO+VSKKssw==","signatures":[{"sig":"MEUCIQDxie4fqjSGZd0x8INi0GWSSj+Y9SnzrZH1K7Y746IJPwIgcXFHZlRyOWfLy3mlh3kTJ/o6AgPTmFkpfayASwOaDck=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"cbd55bfa3cf5e87bf7b5f27b3d9b6efb34e3ad85","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.41_1634582063112_0.5077037072485417","host":"s3://npm-registry-packages"}},"4.0.0-alpha.42":{"name":"@aofl/object-utils","version":"4.0.0-alpha.42","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.42","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"494797f40d2863f1346ce9cf1ac581ed1b9b3580","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.42.tgz","fileCount":30,"integrity":"sha512-apySxrS4xS5p18qia7yxALhCY1HGw1//Yt5wwK8pumUjasuyWn5eTwkdjdWD7BvMf9eFbQrdbHWzzGYyxLDn7w==","signatures":[{"sig":"MEQCIAGVMvz6EdSGQv4X2D9rYntnHFo0YyI3ZcCkGP5P/SYqAiAFLEjrDHHP/ue1Dhglxx/VA/JHxkr8uDz6QoOJk7Ec9g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"f64d10ec558694ce4c2d4e8b0562d4167f8e28d5","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.42_1634586027992_0.9044041326351788","host":"s3://npm-registry-packages"}},"4.0.0-alpha.43":{"name":"@aofl/object-utils","version":"4.0.0-alpha.43","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.43","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"a87b5dfb6ef490e62224870c77fe90f7e5c18e73","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.43.tgz","fileCount":30,"integrity":"sha512-W3C6e/yJkF1IlOjOkgFK3QAX3Ye5OGuvcKdVfdnEtu3Dma2fZlmYEvVTNmd81KZgPWYvfW4YHMIi2SuITrYirg==","signatures":[{"sig":"MEQCIA1QT5Glwk1ANG+L1mxGiaio61iHTUJzcHFYmn3RTfjMAiAMLe72BAAarVVAsB7u2aZbHcRocXAzxt82XkLaMlGIhQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"gitHead":"6763365b38cb5be764e669a3b568be9f1cc4cfed","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.43_1634586284436_0.08725246991047086","host":"s3://npm-registry-packages"}},"4.0.0-alpha.44":{"name":"@aofl/object-utils","version":"4.0.0-alpha.44","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.44","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"27d1d75839397af3827fadf38ca9c568bab945cb","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.44.tgz","fileCount":30,"integrity":"sha512-2EAdi/Ax5n6+gzjbN8E5KBXWk1zujBBKxbDHBBsjnLs9FvqZZMr71a6Ey95abJ02hMLmlqn4FpytfyvGoWxUvg==","signatures":[{"sig":"MEUCIQD4jo3blS81nE9KdGtjO45y6rZGEE9S3/qtJBzkUociOAIgd/0L5HZ5J7kvscaUHKZ+oEH4or4HE255T/kFOvoC5+Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.11","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.20.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.44_1635874770190_0.6728153450908498","host":"s3://npm-registry-packages"}},"4.0.0-alpha.45":{"name":"@aofl/object-utils","version":"4.0.0-alpha.45","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@4.0.0-alpha.45","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"540f06deac912a297824c9b0a6ee6b2bc60a986d","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-4.0.0-alpha.45.tgz","fileCount":30,"integrity":"sha512-S5JgWhJBjX3hdVJSXpp09ahp1nbjiO4Dj1pitbsWbBToUUJ4g7qYdkGL8VBvB9j9i40KQZ8WHVJ//rRiMPdxKg==","signatures":[{"sig":"MEUCICR5MP2HTUpSfreNmNd4OBRL7AOCP37o62mD9w8PwGXJAiEAwP5TdmMfR8bKVSMf7MMSVSlSnXeUn6bGLZVZu4I1OzM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint and be performant.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_object_utils.html#deepAssign)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"},"./lib/get.js":{"default":"./lib/get.js"},"./lib/has.js":{"default":"./lib/has.js"},"./lib/set.js":{"default":"./lib/set.js"},"./lib/core.js":{"default":"./lib/core.js"},"./lib/defaults.js":{"default":"./lib/defaults.js"},"./lib/deep-assign.js":{"default":"./lib/deep-assign.js"},"./lib/deep-freeze.js":{"default":"./lib/deep-freeze.js"}},"scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.11","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.20.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_4.0.0-alpha.45_1635876949862_0.9494231695288113","host":"s3://npm-registry-packages"}},"3.14.0":{"name":"@aofl/object-utils","version":"3.14.0","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.14.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"70517bc6915d6b176d5ad6697651dcaf89cc2046","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.14.0.tgz","fileCount":14,"integrity":"sha512-/jAW5gaYXAPULBhtQjKRhE4vHobwiD33qgE8VdG8T9YtdEw7WOJTSSbE7ilhoAlNoVI5vZlu8/cNu4Pwxdq2dQ==","signatures":[{"sig":"MEUCIQDCkCSgk6AbY/fQI/SSWJ97Z9+HYb9r3QhVGtocAez8SwIgOJ2FwDT+mBYeFVlmxEOOG6wcf77zn6oC7j4yYC2rt6Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29193,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiM8/fACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqKJg/8CsZPcdLkMgI2AN/AsnFdnedPdMwXFVwP4k67JtWmrUz41Geb\r\nXaXifWAMqcMe4SG6JcOOzitW2nFHnc+xXBAn8ky4Bf6UIx4OJF0Ov+lhRrul\r\nGAWnZ++hqtP+fvqt1V8wp721xNpnE1ZFJX+dK5923hDD4UVSTSkfOIRFlzAu\r\n/0rRJZa8u00hpT/SV6wAkjyUaQ174l0Vwbmlq1xmDxADnq7RObdohzkf9v2E\r\niPCs2Uk7j6De0n2V/HkrThHqBAlkRu25+yGyir5sE1tN+18CQYMGTLcxGYqN\r\nrwh3AF4IiTrgNpsitTp36y9qyo6lwQrNpX8eiKFDMfIC3gWhlBySCahZkOAl\r\nqAg9NN9IWQNyJd0fdvHMr4b72BLP/2OSxElaVcJi2SpGhwYE8lKKqoJpg8DS\r\nbpHCPObDaM/fdQbz12jn5wNUxoyzh102WPdkS4pjICXl1v3mPMyXDyd1rkEs\r\nnoD8XsjMgGtdq1yQphEDyZqIvLZeRAawU9wv54IO8SIrtdmLObANFpZJENSf\r\nVcpXMFkQubkcyUVKdaXXGHZZs2xDzlbe1GY6hV8NB28YA5aLuV/25DijD/oK\r\n8yT9iFLdSZr3JXlX1nZI29WMsT4oXPUUB8GcsVlmsLxXbyRVvwAQYOE0lRtb\r\nHH4qB0ijvreyETRxm0cfSfP/9jFeEZnfntM=\r\n=cx/B\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","gitHead":"01a200342c31c108d1ab1039ee4c972f2ee63fa9","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.20.1+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.20.1","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.14.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.14.0_1647562718825_0.7449323048365035","host":"s3://npm-registry-packages"}},"3.14.1":{"name":"@aofl/object-utils","version":"3.14.1","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/object-utils@3.14.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"c1d5ea2df78484f21ce57d648c2c2115a954c4eb","tarball":"https://registry.npmjs.org/@aofl/object-utils/-/object-utils-3.14.1.tgz","fileCount":14,"integrity":"sha512-T3WkroEIZTm5Ld+Cqp0xxrjApd/WSIVT7heg5J7+7VrAQpeHA39Ok1lKKw0yCLQoy8xJF5UD4PefLnVfksRVMQ==","signatures":[{"sig":"MEYCIQDKuV9+KYU3MyDYTO23zk2/8kKML3vA+/Qt7eigLzGT6gIhAIdf/nV6IPL5C6KwKYNGmW4pB8ZhVeYyoTq/l4dvSXe9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29193,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiM9bTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoZ7w//eRep/wSK52EtsVUdwQ6FW/RMtii5yuDNO6/JzQeiLotsYm9F\r\n+Twbt5M3GDDn8izPfl5t8BZFInmvwHZbFk39lZKe0zPCxsSWT/ehWLxVeV0W\r\nVgB9/yj9XDGI1Atf94lnnMq9usv3DrfL0mbWptsBX0+O7F8TmJ0E5NB/129H\r\nBoqRyDhEDYRnsW9m7MRxkJfepiX9t+nObCE82OMbPGzV9MGM8MLT9fkmfbNm\r\ngL0W0psghlW9r3LnkU/jN1Sax7hWqnsTWBIWU8E8/v+5li4El4HoLbU6scQd\r\nQr47jTJuo20gt39IPsXaPbOAhxITldjz4ERL3CHCalvd76WHD4uN6uzh+EUJ\r\n3kpnSGPPaZquDIB2W06kbYenjHebCjdXzttQ6eWm11ewBf+eBDsTjJJ32mWL\r\ndIUqRf96yp+5F28zvmaDF/m20XhSmKo+hK+a2q0oUNoeVYHu+taweY91tMcN\r\nIAqiyIdFyRJAbKLS72aTDqy6LKeskdZx9ound+3vzu+3Uj8tPAXUUW0YfapB\r\nnvv5TXJghQlS9Pv9ci5PfqbwxZrbNvqyfh5SNGB7qZPRvDCAzo3QHJjSX9Vh\r\noTm7XX5ZCXqd1yT+i1IclPiqzVJSHdjLjj01OO8WI+OyCV9tOTuq6wHjEmKm\r\nZmrHWsXknHDhsZcDz2Os/lPdNzB4jqLrccE=\r\n=1GwF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","gitHead":"65857163479f835ec51cc1e23ec01c45eab43008","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.20.1+x64 (darwin)","description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","directories":{},"_nodeVersion":"12.20.1","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.14.1","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/object-utils_3.14.1_1647564499613_0.005380343250635633","host":"s3://npm-registry-packages"}}},"time":{"created":"2018-01-26T00:49:42.823Z","modified":"2025-01-18T00:20:46.576Z","1.0.0":"2018-01-26T00:49:42.823Z","1.0.0-beta.1":"2018-02-01T01:10:34.014Z","1.0.0-beta.2":"2018-02-12T19:58:12.584Z","1.0.0-beta.20":"2018-07-25T00:12:49.338Z","1.0.0-beta.21":"2018-08-05T07:39:22.157Z","1.0.0-beta.22":"2018-08-10T19:24:44.956Z","1.0.0-beta.23":"2018-08-16T21:36:55.569Z","1.0.0-beta.24":"2018-08-22T22:32:07.221Z","1.0.0-beta.25":"2018-08-23T19:28:03.902Z","1.0.0-beta.26":"2018-08-27T18:20:42.418Z","1.0.0-beta.27":"2018-09-10T21:56:15.297Z","1.0.0-beta.28":"2018-09-28T00:30:05.614Z","1.0.1":"2018-09-29T23:02:37.267Z","1.1.0":"2018-10-17T22:28:16.849Z","1.1.1":"2018-10-29T19:35:13.287Z","1.1.2":"2018-10-29T19:35:22.449Z","1.2.0":"2018-11-06T20:47:35.274Z","1.2.1":"2018-11-18T21:08:41.648Z","1.2.3":"2018-11-21T00:13:07.355Z","1.3.0":"2018-12-06T20:55:10.732Z","1.4.0":"2018-12-28T02:39:49.267Z","1.4.1":"2019-01-07T18:33:12.408Z","2.0.0-alpha.5":"2019-02-26T23:15:20.077Z","2.0.0-alpha.16":"2019-04-25T19:57:27.315Z","2.0.0-alpha.17":"2019-04-26T18:35:50.356Z","2.0.0":"2019-04-30T19:31:43.034Z","2.1.0-alpha.10":"2019-08-20T01:28:22.017Z","3.0.0-0":"2019-09-17T05:21:53.243Z","3.0.0-alpha.0":"2019-09-17T05:23:54.179Z","3.0.0-alpha.5":"2019-09-20T06:32:33.759Z","3.0.0-alpha.11":"2019-09-27T06:49:19.945Z","3.0.0-beta.1":"2019-10-06T08:39:22.740Z","3.0.0-beta.6":"2019-10-08T04:49:44.652Z","3.0.0-beta.8":"2019-10-08T05:48:17.830Z","3.0.0-beta.9":"2019-10-08T06:11:45.717Z","3.0.0-beta.11":"2019-10-08T09:42:55.323Z","3.0.0-beta.12":"2019-10-08T09:53:48.754Z","3.0.0-beta.13":"2019-10-09T04:13:28.591Z","3.0.0-beta.14":"2019-10-09T04:33:09.465Z","3.0.0-beta.15":"2019-10-09T04:50:47.569Z","3.0.0-beta.16":"2019-10-09T05:06:05.977Z","3.0.0-beta.17":"2019-10-09T05:25:04.493Z","3.0.0-beta.22":"2019-10-11T04:40:54.100Z","3.0.0-beta.23":"2019-10-11T05:40:00.837Z","3.0.0-beta.24":"2019-10-11T06:34:49.727Z","3.0.0-beta.25":"2019-10-11T07:34:52.103Z","3.0.0-beta.26":"2019-10-11T07:49:13.505Z","3.0.0-beta.27":"2019-10-11T07:54:05.638Z","3.0.0-beta.28":"2019-10-11T08:01:08.973Z","3.0.0-beta.30":"2019-10-11T22:58:48.707Z","3.0.0-beta.32":"2019-10-14T01:07:25.588Z","3.0.0-beta.34":"2019-10-14T07:37:04.356Z","3.0.0-beta.35":"2019-10-18T06:59:16.951Z","3.0.0-beta.36":"2019-10-19T10:45:57.689Z","3.0.0-beta.37":"2019-10-24T06:08:02.450Z","3.0.0-beta.38":"2019-10-30T22:52:27.842Z","3.0.0-beta.39":"2019-10-31T01:08:03.744Z","3.0.0-alpha.12":"2019-11-02T01:11:36.306Z","3.0.0-beta.40":"2019-11-11T22:31:23.366Z","3.0.0-beta.41":"2019-11-12T04:55:42.754Z","3.0.0-beta.42":"2019-11-12T05:53:49.742Z","3.0.0-beta.46":"2019-11-14T21:58:23.279Z","3.0.0-beta.48":"2019-11-16T23:36:05.337Z","3.0.0-beta.49":"2019-11-17T03:37:59.546Z","3.0.0":"2019-11-17T07:06:11.898Z","3.1.0":"2019-11-22T03:28:24.925Z","3.2.0":"2019-11-24T07:34:59.986Z","3.2.1":"2019-11-24T08:03:55.169Z","3.2.2-alpha.2":"2020-01-14T20:27:21.479Z","3.2.2-alpha.3":"2020-01-14T21:12:45.655Z","3.3.0":"2020-01-22T23:31:04.601Z","3.5.0-beta.1":"2020-02-22T23:26:24.624Z","3.5.0-beta.2":"2020-02-22T23:52:28.958Z","3.5.0-beta.3":"2020-02-23T00:07:10.571Z","3.5.0-beta.4":"2020-02-23T01:57:14.002Z","3.5.0-beta.5":"2020-02-23T03:09:55.090Z","3.5.0-beta.6":"2020-02-23T03:17:34.993Z","3.5.0-beta.7":"2020-02-23T05:05:19.075Z","3.5.0-beta.8":"2020-02-23T05:08:33.606Z","3.5.0-beta.9":"2020-02-23T05:32:56.643Z","3.5.0-beta.10":"2020-02-23T05:50:16.919Z","3.5.0-beta.11":"2020-02-23T07:37:04.245Z","3.5.0-beta.12":"2020-02-23T08:59:56.530Z","3.5.0-beta.13":"2020-02-23T09:01:58.610Z","3.5.0-beta.14":"2020-02-23T10:00:00.504Z","3.5.0-beta.15":"2020-02-23T11:49:03.580Z","3.5.0-beta.16":"2020-02-23T11:58:25.862Z","3.5.0-beta.17":"2020-02-23T12:14:18.295Z","3.5.0-beta.18":"2020-02-25T03:59:23.559Z","3.5.0-beta.19":"2020-02-25T23:56:58.876Z","3.5.0-beta.20":"2020-03-02T23:22:30.337Z","3.5.0-beta.21":"2020-03-02T23:26:53.827Z","3.5.0-beta.22":"2020-03-02T23:42:07.316Z","3.5.0":"2020-03-03T00:02:53.357Z","3.6.1":"2020-03-10T18:42:40.613Z","3.8.0":"2020-05-12T19:19:16.593Z","3.9.0-alpha.0":"2020-05-12T19:29:40.434Z","3.8.1":"2020-05-12T19:40:31.629Z","3.9.0":"2020-05-15T17:57:50.474Z","3.10.0":"2020-05-15T21:15:15.768Z","3.12.0":"2021-01-20T00:01:30.442Z","3.12.1":"2021-01-20T00:12:24.618Z","4.0.0-alpha.9":"2021-02-03T01:47:53.863Z","4.0.0-alpha.10":"2021-02-03T01:55:59.652Z","4.0.0-alpha.11":"2021-02-03T02:24:06.526Z","3.13.0":"2021-02-25T23:43:22.570Z","3.13.1":"2021-06-15T23:48:38.114Z","4.0.0-alpha.13":"2021-09-23T23:32:02.288Z","4.0.0-alpha.15":"2021-10-06T17:03:51.758Z","4.0.0-alpha.16":"2021-10-06T17:05:06.397Z","4.0.0-alpha.17":"2021-10-06T18:47:28.709Z","4.0.0-alpha.18":"2021-10-06T23:40:31.602Z","4.0.0-alpha.19":"2021-10-06T23:47:27.368Z","4.0.0-alpha.20":"2021-10-06T23:54:54.922Z","4.0.0-alpha.21":"2021-10-08T17:05:58.580Z","4.0.0-alpha.22":"2021-10-11T20:39:22.771Z","4.0.0-alpha.23":"2021-10-11T21:07:20.222Z","4.0.0-alpha.24":"2021-10-11T21:46:52.101Z","4.0.0-alpha.25":"2021-10-12T01:20:38.685Z","4.0.0-alpha.26":"2021-10-12T01:34:28.119Z","4.0.0-alpha.27":"2021-10-13T19:06:28.859Z","4.0.0-alpha.28":"2021-10-13T22:18:19.991Z","4.0.0-alpha.29":"2021-10-15T17:35:52.308Z","4.0.0-alpha.30":"2021-10-15T18:50:59.029Z","4.0.0-alpha.31":"2021-10-15T18:55:21.239Z","4.0.0-alpha.32":"2021-10-15T19:39:43.233Z","4.0.0-alpha.33":"2021-10-15T19:43:04.091Z","4.0.0-alpha.34":"2021-10-15T19:53:09.724Z","4.0.0-alpha.35":"2021-10-15T20:00:11.732Z","4.0.0-alpha.36":"2021-10-15T20:03:31.333Z","4.0.0-alpha.37":"2021-10-15T20:06:25.472Z","4.0.0-alpha.38":"2021-10-15T20:46:05.166Z","4.0.0-alpha.39":"2021-10-15T21:10:01.967Z","4.0.0-alpha.40":"2021-10-15T21:19:57.252Z","4.0.0-alpha.41":"2021-10-18T18:34:23.216Z","4.0.0-alpha.42":"2021-10-18T19:40:28.159Z","4.0.0-alpha.43":"2021-10-18T19:44:44.553Z","4.0.0-alpha.44":"2021-11-02T17:39:30.309Z","4.0.0-alpha.45":"2021-11-02T18:15:50.011Z","3.14.0":"2022-03-18T00:18:39.036Z","3.14.1":"2022-03-18T00:48:19.758Z"},"bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","homepage":"https://github.com/AgeOfLearning/aofl#readme","keywords":["aofljs","@aofl/object-utils","object utility","deepAssign","deepFreeze"],"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"description":"A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant","contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"maintainers":[{"email":"alexdinari@me.com","name":"alexdinari"},{"email":"lorenzo.battigelli@aofl.com","name":"lorenzo.battigelli"},{"email":"alex.dinari@aofl.com","name":"alex.dinari"},{"email":"it@aofl.com","name":"ageoflearning"},{"email":"jie.zhang@aofl.com","name":"jiezhangaofl"}],"readme":"# @aofl/object-utils\n\nA small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_object-utils.html)\n\n---\n## Why?\nLibraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these \"utility\" functions are needed.\n\nIn Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.\n\n---\n## Installation\n\n```bash\nnpm i -S @aofl/object-utils\n```\n\n---\n## Usage\n```javascript\nimport {deepAssign} from '@aofl/object-utils';\n\ndeepAssign(leftSource, 'nested.path.to.assign', rightSource);\n```\n\n---\n## Methods\n\n### deepAssign\nRecursively calls Object.assign along the specified path.\n\n#### Arguments\n| Name        | Type   | Description    |\n|-------------|--------|----------------|\n| leftSource  | Object | Left source    |\n| path        | String | Path to target |\n| rightSource | Object | Right source   |\n\n#### Example\n```javascript\nconst user = {\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n};\n\nconst user2 = deepAssign(user, 'account.products', {\n  2: false\n});\n\n// { // new ref\n//   name: 'Alan',\n//   account: { // new ref\n//     active: true,\n//     products: { // new ref\n//       1: true,\n//       2: false, // updated value\n//       3: true\n//     }\n//   },\n//   preferences: { // same ref\n//     locale: 'en-US'\n//   }\n// };\n\nconsole.log(user2 === user); // expected result: false\nconsole.log(user2.account === user.account); // expected result: false\nconsole.log(user2.preferences === user.preferences); // expected result: true\n```\n\n---\n### deepFreeze\nRecursively calls Object.freeze on objects properties.\n\n*Note: this method should only be used in development environments and disabled in production*\n\n#### Arguments\n| Name    | Type   | Description    |\n|---------|--------|----------------|\n| source  | Object | Source Object  |\n\n\n#### Example\n```javascript\nlet user = deepFreeze({\n  name: 'Alan',\n  account: {\n    active: true,\n    products: {\n      1: true,\n      2: true,\n      3: true\n    }\n  },\n  preferences: {\n   locale: 'en-US'\n }\n});\n\nuser.account.active = false; // Throws an error in strict mode\nconsole.log(user.account.active); // expected output: true\n```\n---\n","readmeFilename":"README.md"}