{"_id":"@wearegood/good-utilities","_rev":"26-a7710354985b317b339645c8b56107f6","name":"@wearegood/good-utilities","dist-tags":{"latest":"2.0.0"},"versions":{"0.0.1":{"name":"@wearegood/good-utilities","version":"0.0.1","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"ISC","_id":"@wearegood/good-utilities@0.0.1","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"8c50dfbe07b4daa5c01739783be4cf7f90f10c47","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-0.0.1.tgz","fileCount":19,"integrity":"sha512-RuqgEe+YbPqRO6CVEDbdAe0jj7Ea9eWiLp57src+sLbfyPz5Z42PP06Gsc0CpBr7H1fppWWiZf7Ug1B28YVJrw==","signatures":[{"sig":"MEQCIHUyiZv1BTOKpstAQvunqYaIWyk/fVL11YVJs1dWQEEKAiBkuuY+Mm5Uyl1sba4aKGEkz2INq37gl/9hRlFItuieAA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8958,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclMYXCRA9TVsSAnZWagAA1SoP/i52RRb5UykbK2N52OdL\nM+Ntu8rK99/zAnDbdBNl05GQdk7o/BlDprJVPRTRGgkHOMzWIhFt0jwuQP6S\nZEyw+jGrS9+63DsFkCBOiyHCtG+QyPJovE6BGeWdZD8wIa9ltWFJBXb/FbBz\n5ol7wtNs9oMsrAyAlvFq4yy5V6X8HQerSEIcS3qR5bgWRlqzIxGjBrHF+hag\nmGkDKlw9f9NjMlFJq0007VFfGOHI30vx/UALZdtXmIfsWA2Dcu0pqnP5uMad\nxNenkYxEwQ+Ij+IPBB5TL39NQ3I+5Wh0fTM5ZFa1X1cUwsMqljp+PwNQXPeE\n8ndfldBbSvEUUpZeI305WhE3AviQWsa6/MTli3mZow+/LD4hhJsz2BJp0nUl\nE0BbYOHoLqdHLjUTwXwvac+TnSgvj7ajDraebuvgYR99fbbgQZDnJX/jthb2\nvvqubl3aoRhaTndL1l+0XVXMsqxUG5JeHgH2R5/OchqO95IXOTyveQ3XDP0x\nv0o7fRr8dA8fZ3KsR4klYIGOk776HO5TUDbWewqhw3XZc1Ca5Alu05DWOfk4\nPMly90BeWbAE2J9SL4CQih0Z3lfDSV9eLxgqmgv8PyFRbgGgueiN5WOhjj23\nQNDNr1fIlRJrefLuTHpHpi6t0UA574+GeM2M5QKY1aR4Mpn1g39+KhNA22U6\nJkJL\r\n=nxgN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"e56c15653f12eb37a7e3ef69785aca6451397a64","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"6.9.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"8.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/good-utilities_0.0.1_1553253910357_0.7880934899436718","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"@wearegood/good-utilities","version":"0.0.3","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"ISC","_id":"@wearegood/good-utilities@0.0.3","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"ec05d47962ab9e0b50c846595238a52736ecd514","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-0.0.3.tgz","fileCount":19,"integrity":"sha512-kOIJW177tAnlrJfTDa356e5EnBFnnQ1xLiUzf2rWVagjbAqtf9h3SaNcA5gQZMf9w03q9aQWw/2qicPyPbeFKw==","signatures":[{"sig":"MEUCIHrbbVInQ0RdRmvHwmlDoZDKgn2AG+lDu9QVr+BLMwDTAiEA2gQOlfAlakACmlN7dYWLeeaWngu7WqtUtl8pDoILDE8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8955,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclMe9CRA9TVsSAnZWagAAWQIP/3ZjNlb0cNM0eOOljozT\nxNgjAL9ROdHd0oWUsoMu5HhwQxLM0db9fuWKkFGHJlvo8ogwINUopd6nVcH0\nR/ZkiGdxUb68YDLUwU/BJJtFlK5YXjjiUxz0fYr6BGp1TVHoJnBVGmI8u3BA\ntThgT/cSb4zUIUwILz0P1a9hvJx6Ik3GiiELeFtHUS+6II4ayZ9gUYnI9EVO\n0JGz6eyyqvzZyfNGg+mgmu2wr3ue+26KUpzXEdUEE2FIqmUryrJOqCmxv12y\nls949u8h8PsxR4umYKrODJ5BTcl9eNZTqmrIlgLjCvI8Tm9H2lttjysmTjns\nUJY9CeEkXactNz3GHNhL2RWUYXAHc4obLsIvaicxnFX+cH2N1Cn8eRtnfkXo\nTAAgTMfMqERLjkiWjH6rroJvDolGW66Sjl7sB01RR98OAIy3CBgu6Yv9FOAP\n7ak/hOThWHfZ1o8kW71WIaWGt2JfvJUvH22Th8Xyd0W+x1uaiIfAbTW+WNrA\n2p4hTxH/F4oQjZsTafDeEgsgVUvqQ5yzZsXCCdHzzmZUDOCmbpG2hQu/tj34\n38i/z1UrsA0y71p4oy+45DNJnm+j1Ga0g8u09Vj0HDEqGVx23hGdO61A9Ase\n1cNtG3wn80Ngv7vgJY1ip9WYmUifTUC2xy8zWbAXLfsJLzdrG6tTq267bhyD\noMIn\r\n=mSfc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"b479416a4b8356749f5519729207c572ce2b8c7e","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"6.9.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"8.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/good-utilities_0.0.3_1553254333155_0.382602935228632","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"@wearegood/good-utilities","version":"0.0.4","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"ISC","_id":"@wearegood/good-utilities@0.0.4","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"716bc107022ba64317ff6224f4cbd40444e905d4","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-0.0.4.tgz","fileCount":19,"integrity":"sha512-i9ys77rMMlR1nCesGpSkeni9kgECyy+ad1U1B9R6z5qzBJnrUbcSXwf8s6Lnw4YvShCILwB41WNVjdNlYo3LNQ==","signatures":[{"sig":"MEQCIAvlf6XLuwyho4OThITcUsZOuHc1bPYTzkOjXpZNmDD/AiA22CHaMd9pBuGPtZDia7jY9wYNs2o2MospBn12Ctf/oQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9890,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclM2cCRA9TVsSAnZWagAAm4MQAIA2acJz9uuz/FGU/2PW\njhy2JNMx4itM3/3UubYkCN27bHUDbRBGpXbqMGfluzp4j2xRhfgyVKlqrUPi\n4V74437//krEt0MD8ELukBkvkam6Ka/TBKaWKKB4ChuuFp9i9yid0FHidxW5\n6BdAHmDvYf99zVdT8BSKsKTEkt+V9DWq70v/99VdqxYcqng1SC3M0yoIKrn1\nG47z3nPLI2eH63icFpSFY5+XeJx7fL0fYMfsFFjNTpajk8IFLkew2h83EBl4\nTI0yiR0tz3pSYu4Epxx+Bc7KnWlBkerTK3wpACm83xiqb2ehk/FAO8QpP1jj\n/i7AIr/082DTNUe10M/6A2xaP9wZEwqn4tGGc2CAFcmySZ4s6drUIt8ST0d5\nRIayhwwjqaPnmvdkYgh37C+wSlqlwF95BBzSojNlPVk/x+mcj9//31kOJ3Hm\nWHdogC3dwJzc0ezmcQ+gJAlmkAnADkmIuy6mBAWDZN45pNZHNkJP+m+Ue9jv\neWNY2tR7xCyN8h6aL/NYG9jMyDu00pICu6WY7lKnj9bhyMi5XveqnvE5+aCk\nm8pmZ0pVfFr9VJj5X1SIM18Yc4OMh7qpRjW7NHX961AZ3shbbBT/XigaZ3Mx\nImMQGmyHhTT/I5T7m+DVnjRHDj65kdQoWck1qZVm95cxN+81dIYthghSqNgL\n0ZoR\r\n=k4CW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"fbb328edcfc008e79d62497c26f114be467be0a5","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"6.9.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"8.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/good-utilities_0.0.4_1553255836255_0.9749133314334693","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"@wearegood/good-utilities","version":"0.0.5","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"ISC","_id":"@wearegood/good-utilities@0.0.5","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"b41faf2a13a91aa2ed0f2162a05308a7dc73de1a","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-0.0.5.tgz","fileCount":19,"integrity":"sha512-gnj/PcNiR5ASLKQi8PquBOc7gZxjbOoQshnXTb8Ev8su03zQWWiigKj5j9TWlliUro0kne5VxK0BN1ybaOmBGw==","signatures":[{"sig":"MEQCIAudYoErpMVRuXJXLWsu267jSlvs6LHDWbI7iO0y4Ll6AiB5v6X0BBINvrIhM/GDFBqql8wkZounFF6kFKLjckMnLA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9897,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclM6yCRA9TVsSAnZWagAAWyIP/iKLIr5IlWJcw9jcHNo5\nJs3dNZtIEkJWerLmTvrg7uvCz5CPaXm2fhZlRbUzwo4GFIkG1IEcO4UN/4EM\nItCsAEf/PV7P5JAylpbs0+l1oETwWThzsdXFMMeSpSrsC6yaRvPILPdMSstX\n39DDP60hWl11oGhd9QgRFXsO9mlStjHNwx4DvHiBMRrKT2Hr0UTQnYZp8Ett\nWZNT7D4L2wU6MK2NH/hqOgcWgNT2lFfJRbGHJNX4o8sEN7gjs6HVJfWNyOAT\nSEssULmem3ycw3FFPcIniTHoIoPHJkq1nYIszWw0uOHunFg2iMe8mtQKSk0+\nSsx6OEXM+5tl9iarFrclrRffkznIDk9SIucRmQCgBO+dn0VAnDcIi2lmY5vt\nF33NULM8HLCC5jS3ilrXJHynfH5x121yyNjs/L08LNY0CqhFbAmsVrcW7XBr\nsnFqLASAEFl37aPGRopDj/hLhaWHJyN0nP1SlGPkAA2qY0UOdOmFLsjzumLZ\nC9Hf6BYaJAcI1TG1q/RRPN5zSn705YWq8qADtNcTEFM+69oTbYNDcVz3eviS\nMYnQXmd+2Mqh1OJn2XnSS0K2HLE1RGOkiCNwEzEtdsVZSzDvBpPf1FhWG+Rm\n1JwJoabYz1hLH730gPWLaxLZ7Oi9OHuM8YB+/cvtGu/AOoa2qgMT/UGdL7+v\nmqjI\r\n=mqso\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"1c1a9f4ea0353f44e578aade6797e9c8ca8b8803","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"6.9.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"8.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/good-utilities_0.0.5_1553256114115_0.7673491123357932","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@wearegood/good-utilities","version":"1.0.0","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.0.0","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"5daf2ce4d1b3d30fa235dfb18165127c00179b60","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.0.0.tgz","fileCount":24,"integrity":"sha512-I8Zqburq+fU4oDikq0DQd88kwq06Dc5WRaHeJ20MzLI9H/NzPqdcbLI4AVcwbkkMCMxkDj70Okye7rKuZXFLwA==","signatures":[{"sig":"MEUCIHBXU5C8pPRMbWcKuong/OnSmvLEVRWTXYU1ea14AlpUAiEAwUrzrY24j2HxbBAekRPwWfju4C0DgyNGmMN+i+4lZ5o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14113,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclPQhCRA9TVsSAnZWagAAROQP/3Tohtu6uev4ocRQJfn9\nPb9bJnURW3sLpiv6Vf3PZH6xobvImUtVAwAUkseEVuvtWY3sEIslE/w34RhY\n7saGg3vpWMPu+ihgDRdO2SdDq/2oPbuSwB+wh9tAprBiiw9WGbwQKgfPQpgE\n4Ak4SF8rvBGEaD4XymLTTOWolbxNpRgsSf1GaJhp1+Xf+33+r5sSaqvbHgCy\nGnrcR3qkprWsNB2FH3plRCQnqXPreSutw70Fsyt3UZVchm04MMmZVmuBwcwB\nBoARErXUX9ar80qxaRqqh2FYfKCWMX13Gwuol1W93jRviUo5WFdZW2is0bV8\nxOOrz+Ey2cVdEv9g/lNtVXjw380bjEfwp4AcFH70rkKfifu3FiF2sJEMXk9I\nK4ALr5aSUMA+po34XYLAFOxTWJQUmmMX1c95VV50Xpl+Ry3lDX9/Xb/r59/V\nAoKvQnAPaz9uzTSSd/B0wkkEFq2QEIHoYk7yCR8ABWssICgiPBJOY8LlMu3S\n/sRTdq+Zo6xRxVsbHAMFuUFrSjeShl5mC2HDw+3MBpcfNRZMEkJShfECrhY+\nHBcMqxf+6h/n7c807XWF+TMjLBxn/fjhEiQVWzjJkKkY3SiIGC8kVKAP+qQT\n44Mrhau/Rr6Urpjp/+wlJB48bMkpAXZe1STnKg3YUdpuCeEV2+ggjuG/+AlO\n7UEC\r\n=NQcP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"24d09e4e26e87cffbd8ad9c508e6b5c245c6a00d","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"6.9.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"8.11.1","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.0.0_1553265696378_0.2539400157160574","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@wearegood/good-utilities","version":"1.1.0","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.1.0","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"e02627f19ae2726a14b00906da72df37ab87297c","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.1.0.tgz","fileCount":25,"integrity":"sha512-utvvQyKAYljhOrhRMY5dcBDTNKHhBf8Tnd7/P+DYHlXQsBoZE6ISLGLTrd8kdpKyzCk/dLQXX925dtFy9S2fbw==","signatures":[{"sig":"MEYCIQCYCaj3kB3RgaowCSzgefJiTJUWT9UdFTQ0q9832Apa8gIhAM+Ck/Xhu37HMe0hmVH6Gm1ZL6aAm5b+2Rfrdvh8slMl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15583,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmKt1CRA9TVsSAnZWagAAlakP/0O+Qs9s8WUI6jXDOPsz\n0J3TIdZ4cHFBOwPEj3uj5MvMc7M6fypNY0fVTRKlic8vcudtifsJazJlvFpl\n7CaKAfTdDa+yYrV/aSVZF5uzP6xZs7vTejfntXJ791ORDHxIOF49inoBxZKW\nYjAcjqU+6wsoH3QipU4mosvSs2zko5wow4/wQSfS5EF59eM0+Ya5iDaFYGHd\njFCuzTf0FTEDQxPmeek9t7uaQtCQp2EqXqG9vgkrJsILAQtERxwVNkIf0mvW\n0LLYAdwFkmaSXJdH0hwnSzZqgmDlHKV2lk86kXpyUDssS6lAA6mLmNaMu/vP\nBmTW0K+sSdrpXliCmWP0P3DuZ1eb6ZCfHtnNu1tkbMAHRYb9SFO0a1KqOuyX\n9MMNpEmidmYC7NSDYZuaxJFJOy+Q3ZN/N9RgL8J6KwLwydlIB5wLYMCgwK5I\nQ3SOIxKBIbhWqQGyKxJe21glC5Wr8UUSUY/wkPyFG9x2y2h1nESRMdroonqL\ne6ToA0VcFHD/DDjj3Je6O3v3Mod1Ua/QwTWIG2Df/p58QvIVwh8gC6Xx3Cgs\nx6tUXDwdnPYqIaj5T3iTD+NVwrIMHejoml+W4fbjNF46DQf3RbYZph3+kCRj\nET28VUyYC30JEERv8L/MiJyitASmAFOIKSMuzoJI+kfVnWgDGkhdD4zJDg+P\nxlVM\r\n=gckH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"21a12c5c15548405561af6b46b0f03aa7f5ce09e","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"6.9.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"8.11.1","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.1.0_1553509237253_0.11539752008541271","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@wearegood/good-utilities","version":"1.2.0","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.2.0","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"50e5c03c9be9e6de0500f44612ac5bf2f45ef8fe","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.2.0.tgz","fileCount":29,"integrity":"sha512-cU/8A59zoCGCqRRZXSjHd/jv6hItG/V4Oy8JmZAlH2p6sIqrPYBENygN8Z8sWWAc3cnM98bPIt7XC7zhnmOxow==","signatures":[{"sig":"MEQCID5AJoVGT+yNIBVE8SsvboCFzSgEDV7NWDIVFyxNculHAiAjvnC45DwFf4mNIvdrEWLLApq/maWxnay5vIWI6MSIWA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18369,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4rohCRA9TVsSAnZWagAAzCUP/1Qb4oExKaRlgYs1KTTb\nKcoSWMcb5Uv5uuoChlBOg0RNnTbLJxvpFMWALENDfIwI44yvU+OIKm5B18zI\nok1zV2n1eNwNlgeLAAddHEN6BwY8kA/jAOamBPNzD0W8RDaqk3evssGB9JEg\n3XS8Sed2ISBT8boakJTlhMt6JkgKBiayD8iX/we32xZh6qUtekhtf/hRsqTJ\nRiMRR0KzlrHZPDG2PrzxAmarWX47uEIYhZ0J15nOosF4QiY2vSzxYoAmEnGq\nkIIrBMCJnH4Xq6W5OJF/V/5/5/vxxFGcNFr6lnr15b2aLJgh+9fIDOXBED8H\nx/07ydcS4YFhVAKLH0RqBygT2r4g6e69j+hy8yWlmkXMYAYbG2RFt0v8zV+a\nvdkpGsWglXIPBIwK7H/o25pod5kNXnGQzAXw9JJ21AbPe8qdzsNJ8lCea5Ad\nUky49e7OEKY5d1JGqCfBowgXytCP/6PdWIyxwNVmj+ZyhMyGfwyLnWIf7fDM\nNZKBS3GQrve14Cko95SCTGETrzPFz6DrmY40hHUPmrfv8QlSQx5hIL99Dchp\nLHKmxfS8s3H8AHbzmuruKk9CaRxAXeHuaMn/VWtPIejI4bEDGh12Lcds9bNh\nSsKErv7B0/8G0JdsONq9dp7WoOFnu4dpfOpFRwUbScjDyOAsq7t8PH4H5Cdn\npabR\r\n=aHzI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"4d4c1a1e7f0ea127cc94b0542d448ccfacf2bdb6","scripts":{"test":"jest"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"6.9.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"8.11.1","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.7.1","babel-jest":"^24.7.1","@babel/core":"^7.4.4","@babel/preset-env":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.2.0_1558362656488_0.8538695338337756","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"@wearegood/good-utilities","version":"1.2.1","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.2.1","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"0836356644477c3c8e9b0f0fb1e4a0eb13338240","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.2.1.tgz","fileCount":29,"integrity":"sha512-MC6q3WN9dCBnUdXknAoWOEBvT80OUScz/Onkkrfja4J1tQbrvONb0Shbm+lLftBdBRAhDoq9Q00eMGulvFKeew==","signatures":[{"sig":"MEYCIQCJCUQuaXo4oKbHJT4nOfSPx6UCpt9mFxZ12rvTQsUJ2QIhALCbkDhZFeLbT4kYxPMXdNZEH6vnViPniyqVzXZ9b528","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18399,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4rs7CRA9TVsSAnZWagAA0qMP/3Ung+UE8cRogZBHfPLo\ns90w/K/k5vtKVkZQ58SVPPvU2/FV4dQHAcByHEkVSGDfpqTO9hPM+npvVgXB\nrqIBicFg2ZSCBVpYwn6uFwa+H9eXdNIwB8sJEdvMpOR/nWxvjeG5TsmNYwrG\nhxhhNFYz8Ry0E+p+OEhvdiCk3a1TEBx16KG2yUYvCIvJvtgXpAnBzbII8DFh\nCRrvS8vSSFFTCKiJ5cx+/hyDC2Q/ElLSOgIum7cqkEvx1eORz+w7y4vfE4JY\nmH16TA7KGLqOK55Yy38epIh25b9YjIktQQX9RKaAiA+csAO596Zi+ssbdvVS\nIwbyzQb6miUL4uND9psdinDSqilw3hLM2qvdEOjRFYDjMpy3WUt4vGV52wW4\ni5J+clr43nhF52QOlqdgVIA1sKFI06L6aswL+cax+MfP+Gb7CawpRvM8lKRl\nSlxV9c1YYKMFas8n7vaq1vO2Kd6Ula7ba3iHWOpGCLeSPAWN9Rp+7tBXYmKt\nKmTjdldYsZZyCJjwK/CoySQKbRR48V8ckmcFazdqE1a+zGclkbBXKAV+gYmo\nhHK2elR0APQJZZl+v9BInUEq3OlaO9H7u51hzCoVcjT/kzM5bd3b9cTnNw5a\nCe4sRjP0h6fFxELxFQ7bCjlD0bJLABwVBtJgiwfYvFCCj1vETBtoXWsJkZ98\nKq2a\r\n=JVrH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"e5dcf39d9658929a226cd11ed73be7a0756c66fc","scripts":{"test":"jest"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"6.9.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"8.11.1","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.7.1","babel-jest":"^24.7.1","@babel/core":"^7.4.4","@babel/preset-env":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.2.1_1558362939186_0.10144687973766886","host":"s3://npm-registry-packages"}},"1.2.2":{"name":"@wearegood/good-utilities","version":"1.2.2","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.2.2","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"b7e4ce6cf0111d6587543f1298603f503b036a27","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.2.2.tgz","fileCount":29,"integrity":"sha512-+tgHinrgLU96JAMNUf1EnTdrEkxl/frAz63843g3kYKs7kf8WKD0EAhrfdmeDc1LEsQXRlHHw/uYXcc/x2sRnw==","signatures":[{"sig":"MEUCIQD7lFeDKQl8sLBhq1J7JvGBP+YP6+bjfXeKeHRcZVS8bwIgZW3ocfoPgqIglE3Tq3f/SeDWiZo6l8+BC9Do8vPmhvc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18341,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4sIaCRA9TVsSAnZWagAAEWgP/jo67WeElN/CFlOqNLiF\n19W1hY95X49I+FrMv96WePjLZTWfhKM1Q+WSAqC20hDuvdVcfReaDL+Usn3z\nrjXNRL/MF6IgouYPCaL7ZUFu8SZqCvXddWXmS51wDnVZSxYUw9mh3PRgz2eO\nJyPqFdgOpJIUeoeIybUwuuchjqdS2pmT8sStT+Mo5SwT1k+wCS4Yr/NBqBNN\nNGLW37Jxe3gQkrY4W/mZFj4SyXDCHI1lUbwy5vbz1eqpiD4xFC0Hod5fTptn\nPXijqxt1xaixbrAf8rQwzA5woSCqSGPpikqSBVkG13GGZJxpS0wu1WYjnNph\nl5xPh8QIX4bP2b+Olwr42ME2Oh7wBx15Bh9xhcx30Z8FySNRk7rmJyuDU/LY\nbg/Inl1vdO4p09FYgg9/Hw9ooKYr7fcyvTl3Fs88DuB/12rhHYPpEe0GWMyG\n9osOCl4TGFANayvr5IJ+IUhJ3z/15U6El7PgVD49wUDJOEMer5AxCWTe3CaU\n3H9J0Mnn9ss42Zcr/ZGBttTE6RRa3SY2PlS+HVey3MArmuEp8aZT+6LAvQFB\nybKncu2MohPK5kWwNVPrl5s83wenjc1wCMULfLUk6xwytj7stNVvR7EsFXrw\n/ZD3nvnoJawm68Fp3VKt22L0HmNv4XAgsYV+E3nPn5rI0ZPf1kgTweihHouC\n6ibZ\r\n=rKl+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"39c4dcbb1e1b4753d7e0a9fd5a6b17069737addc","scripts":{"test":"jest"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"6.9.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"8.11.1","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.7.1","babel-jest":"^24.7.1","@babel/core":"^7.4.4","@babel/preset-env":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.2.2_1558364697927_0.38283509625427303","host":"s3://npm-registry-packages"}},"1.2.3":{"name":"@wearegood/good-utilities","version":"1.2.3","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.2.3","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"059f1b183f3b4240671a9016b8e832b8e0773735","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.2.3.tgz","fileCount":29,"integrity":"sha512-+6R7NMOO1iNktkOGy0eksx3FylWUtqQ7i4da8kbloz8ckADgdCCto3h9FZz4Ullwjw33kEGx9waVx3oBjOkIRw==","signatures":[{"sig":"MEYCIQDPMblKuwZ98olKhIGA2U/KnK9ItpOnSseUMCXHlBv0zwIhAMn8+MwhzXNnDynRU45KZoJSx4nVjA8F6PNnqIxubAUL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18356,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc469HCRA9TVsSAnZWagAAf14P/iix1lySuPRRId69tHm2\nSBuUc5eZaG9S/dHyUGRnon7lczqnRVkAlBSf/yf8QnVgexuaDo+g6O7GPgPk\nDqfIGGSO/1rHU4Y0UEiZCs0hUgpMoEBhhgqQYPVdYxXv5WFKeOxx/I/LVZYO\npZSAhghrJl5lNUF9qQNxA11YpcAXfCPGifCIEPSzB4u0Qunvet6wR+zqrNSH\nSHgMq37AqXUQjupk1PuaMp2gYGk2X2eMDWqPqhwcIDpecuMsd7lx/pE8y7MR\nLFnXGzmcwCY775GjcriNEGjtxuCpcjlQBlUwBEZHg4p/BDqfWT7CxEl+3cQE\nqKvjFh46KNyTykFrLuI97P/OqGgIU/391JhU1QXRRJCBOxmWtqGK+tiBuHNk\nr13lcksg2QtZMRWv/NSgWIgDjpg9k8gWEOU9gUHzh31El8Yjct6U7OT+mkq/\nOsVgzfQ3C2ht+UmOUziptahBnMrTTMxbxC92YVO209NvsJ9naWIhHtn8tZ40\nb20d4v0ws+Ni5kYNXfErD2u2DC6pip4GWb6vHSWvBVrv+qaLkmK87gyFykV0\nYsxpwFA/sBK/JrtThGaVuOsfIYD4CWuSP43VAn60/BzbKsrwCTjh9sK4tkfP\nxyrbti/ELS2NSb8Oyse26erTUiZf7bdVhkqtHnTzb3wmh/Y6nhuCJFRS56+m\noDhz\r\n=aqZz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"6004130ad7fc5e27c527110223bf7ff186e5934f","scripts":{"test":"jest"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"6.9.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"8.11.1","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.7.1","babel-jest":"^24.7.1","@babel/core":"^7.4.4","@babel/preset-env":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.2.3_1558425414775_0.9670398124285229","host":"s3://npm-registry-packages"}},"1.2.4":{"name":"@wearegood/good-utilities","version":"1.2.4","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.2.4","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"0ece78ba8749dc87396ccfcf4fa61b2dec659b69","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.2.4.tgz","fileCount":29,"integrity":"sha512-JN/aQIAz2beQA4IHZNaZLXppHtkTGAPB2CcGn9VFEeyRKB2dcX3hWHEm4iqKUuiPgO2KHobiTT+Y23CxpJeiew==","signatures":[{"sig":"MEQCIGiGZM57fNmDc+TpBviT7hryHO7jNG8VWqLIt9MxZBIFAiADiF74OJyCZ0AOVw4P486HtEKJVvZhlXxUq+5dSyGdIA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18282,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc5lJdCRA9TVsSAnZWagAAPDwP/0drawVi7jBx42/QJUml\n7Rb9RXBphcr1vJKTJd1rIbzv4rjK18YsORpLohKXVau/0yjNF5HkCsNM5K9e\nG6tKMCkjtsxQwYLu1M0PYNvU/Ey7jQpxbWBUtXIL0n9CZAN7+OnYJFpiqpYe\nck2DrVbLSRv+OLhkl51/uN9ZBFHpbENVzDog6d42s2SVnN7SNWJ6daA3FJBb\n0N2scttKRPwlxZfyi5RDQ5hJAHeAowkYkWUvO9lWA7XjawnGNddtPABMJ+Ad\nRb5pB1G1JzyxqoTc3B8jJOl2IwwTTTBB5tyvQdn4GbdQHfneBTa9BJGliO+w\ny6Y3qbbEgxtNMzzzQBRdEkBJgHbWidC+k+gfBFJiyfhFcuPe+15h0LaEWFgd\npfW0BHyx2Pj2iFL7R+funqfXnnLzWMies7YyKkjRLAoGVHvO/3CHJHmVv+oS\nNhygvJi7npOqslrUyXEAF1CU62IDtFCRSo92+OOtrXYeQQHkdCxgHC5qqk4E\n6/bBvpIeAWiXW1r/IxmZ2Ky89pUe6IBgnDBh6L53SJAS8Hio8zCliripwxZX\njgtxuLzL9q4uzImSacytYcrZI5hY3wdDPbKYka4i3GmmfW4xsAltv6exFW+K\nubzJkb5UgZbyINX+2cII0K+UEMksGwaJEIZcgyAW9vnXq3Vmcng8ZfBcOCG3\n49pL\r\n=JOjD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"b2ffdacd277ee40eaf250e350387fa2459cf87f4","scripts":{"test":"jest"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"6.9.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"8.11.1","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.7.1","babel-jest":"^24.7.1","@babel/core":"^7.4.4","@babel/preset-env":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.2.4_1558598236459_0.20003316976850383","host":"s3://npm-registry-packages"}},"1.2.5":{"name":"@wearegood/good-utilities","version":"1.2.5","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.2.5","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"75404a7f24173d4bb8edb4105179d708e200a8e8","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.2.5.tgz","fileCount":31,"integrity":"sha512-UZFFi+U34fkSg7nAtsvGPwSBR1gRAlrC52sjhjUaV7SoObKaehDJWDQJ7znbBqxUjGAbzuOPD5swzvfohgn5ag==","signatures":[{"sig":"MEYCIQDGPpaqwDCqu5IengPMFsklPh8v8dmpuozFC08pLOORfwIhAJbusDWQPPJ7m1e5pKRqc8xvY+VAbyY5R79WwmrCNkWV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18919,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7QuwCRA9TVsSAnZWagAATJUP/RCOhnHw30ObQiXspgmt\n7W4hzFEvacUr8rId9P5lix1YLEmcAK3BQbn0pyWaMde7FimfIMlHTZEuQXz4\nD/pPF/RdATIpAssTxIk63JfCyfwDFRffJByv+GG92j2/Mu//PqAx9F7NeYG6\nL6fiFNTzTnjNZUOqFaGLISmy9pZL088SnKxWCyMxJy+UpE2kYYdVQoD+tjKx\n7salTkVjC4LkBCNL8HZapOFQEDoBmleXoN/FM6lVS9vBEM0vcXARdTgbA4yF\nriVpOTL/O6xb9uyOKTfFgYtP4qx9E624WNyugclmQXIxwYYO8qXUBHocbs7A\nlmtIpOGcLTw9AJ20rqHm72ccQfxlhJn3IfdIkLMrUEm8Rrjj59ktgnbqMvGi\nAMzIoIIUzogvnt4bQGNVSj34eW4Bz7oM0KbqvlFYAHlBaRFSkZUA6/P/uMXf\n5f9XkwAwTd2M7R5Brww+bqlkSp6LXt/jA32FiIAmEhiDDjfS4TSYw6OEtBPM\nHakIk+oFzJT89jqT2IMeKlL91wSGRX79UEiP85AGzXNa2QU3eYAXnaMZkSZk\n73QGyDLvi+QgKD4G92KEPDdNdxMw4XmTHoYynuMM4BJkMg1NQlhTjIk5ZeRH\nz90I7p9xlWQGRtRzvy3r/cXRZdMDxzFqHdcP0WwsoFtz9ZgzMmig30Ech1em\ni7p6\r\n=6ccA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"1613b64ea587d315f683136c20d9ebeaa595c21d","scripts":{"test":"jest"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"6.9.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"8.11.1","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.7.1","babel-jest":"^24.7.1","@babel/core":"^7.4.4","@babel/preset-env":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.2.5_1559038895486_0.8145080417597004","host":"s3://npm-registry-packages"}},"1.2.6":{"name":"@wearegood/good-utilities","version":"1.2.6","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.2.6","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"1ed4ce770be0a885e9e9e759aeb3d4d3413d0ffe","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.2.6.tgz","fileCount":31,"integrity":"sha512-dFUJowfRhrMg4cE/tEIHeXi0RF334HZpLMkwhb0bih5naQ7tKiAKnw4iOlRBeTf7BdsCuhIEjpvQbJDzRM6ZQw==","signatures":[{"sig":"MEUCIQC/rfC//6WsVtGQ6zUYcJUcpugXkL1rVpHw52+MdN7YbAIgf8PwHv9PrSeSYY48LZxaB3H+KFnvsPClJBI/XjJwrD8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19063,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7Q0qCRA9TVsSAnZWagAAzyYP/jzhLKmcXgI8+/zNsGxU\nyC/rXAgLwSgG7bMewgjD5umFOA/JdvU8YtHmJkWfoldZpgJNCtOPYKXmJQg/\nW9yP+ZIFl5AiO4JHq2LAlYWd8M1bzrlF+tTkYG6s5OCkFh5z3hk8xdmE40pu\nE1Bs7aIJaW4XvUCEXwHDB8unEJR1r0yrny1HOmEaJ+ZVendu2H2ym7aQlCt4\nNhWebJPWdaH0CN+U2SOVIT7Lcc/QYa2G0YoE2/N4GQXYRtBgCc8c98dEZulk\n1pNesj8NK13fmGEbKzqnZIojjM2rZOQH+ewwDF59coS08DeKgXq8eHtDWmVJ\n8AUOx6aSLcX9IZ83OoQ0KYQGS4xil0fG8puSwMLA1/7MGN0Yiw37WDBbtouj\npPWYj5ejroT9ZDnQnhu9VZFQAxR993aaiNpgf3uXggtwZ1oOEfwZow5h3ZZP\nwg7jpAPvn6msuRIy/MIbPrmRKjEFkCY4EMPkPr+x7HQ9I0CQv8TxDV5BmOpb\njQoCR96wpdVc83vpf2CnUDAiIvbNVaH0nPnefPDGjbXkx5qsBQ0Ejo38q5pO\nkc19jDS8XdHzM9qW/hqaZ96i7lHho0WU6+rkHpk5h1rDIZgFodtY+havyF11\nv4aVN0Z7ijltWsMU3eEMZmeUXrQAOLaJdPmrIkKWnx8MUl1NiRvACigDIg0v\nEJXC\r\n=6IBB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"e228b970bc0536eb95aff159c592dc1db0715744","scripts":{"test":"jest"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"6.9.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"8.11.1","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.7.1","babel-jest":"^24.7.1","@babel/core":"^7.4.4","@babel/preset-env":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.2.6_1559039273519_0.29193176970253853","host":"s3://npm-registry-packages"}},"1.2.7":{"name":"@wearegood/good-utilities","version":"1.2.7","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.2.7","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"b81445b8a2edf7eb14535b814141c5afc89313f1","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.2.7.tgz","fileCount":33,"integrity":"sha512-Q7k68GJpfW1ckd7nFt6ernpHG/IM6Ivfz4ySdMzsCBOO6y5gMZhgPdena2Zu8l7oByQx39uWzWhLLCytUCq83g==","signatures":[{"sig":"MEYCIQDxF1onxanmikJpMkbLRV3RyvnS/TPUE0FQYIRJOSBGpwIhAJFGocX2DMVc3/WnbDMUSRt52/4R29M80/afbeUc9tHF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19769,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdkcwvCRA9TVsSAnZWagAANqQQAJLmO/BoQ/+tw2ul22ui\nwFMNLQr8bE2o9O2a6L6A7uZTA+a7bwaRKmKnZpGUoRA7JU9GcfjliaifbXXb\nEfcjzDEYtEpmIIAA+Mr8gu8A09hT86kx4+ORfvRYAQcCKp3ypfCa3XTzp56/\nbcDY75yHMOcbz5XCBXZFBpH/Bmo1Fg4ACV6bUztXem9WKaY4TJzu+jdgyDNB\nBapAEXKNbjBDAm4jVU5bwzkvZHkWOqkZhIqkAlxkWCymyVBe6V3CL/1WeSJW\n4oaefhnij6bUl3C5V1Y71NXQ8JPuiC8ivPKT1HZyoPgvYyyCqLGKMqmna5Hl\ng0c3vSBbSpcI5ckcT3dlnU72MJ3w2vri0PqlpGDMYyOqlfMb5D+nhg6eHNin\nzxVzzkbBdzPepQ+UE6LH2LSqGwi9TVe3tnIzYDaZ5wm04Q/lXj76Gh9FgBYA\n13C7INMBd1ApjLbOIXFQlReVNwYTWQUVFWsefHo485eyh3HVfSRyrmJ9+FqR\nKBvU1miYpmoURsf5DIqOqgQ+LjPsfD1xGvgH+Vp3Fnbc1NWBOQxiAzfTzQa9\nps8S9n5MN5HiLH/sJrHLALekNSqG/VcQaxjH+D3TDq5WEuxx6tM3KfK6fm22\ngVoDHKaLBHm9ZkEtrCFNbiAjhEg5JfAH4DzrQYssJA9FNLeLMGE1IRv9L7I5\nWbtJ\r\n=7LXs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"56bfc39ae3c71b09c9adc18470c6bb8a7d85df82","scripts":{"test":"jest"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"6.11.2","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"12.3.1","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.7.1","eslint":"^5.16.0","babel-jest":"^24.7.1","@babel/core":"^7.4.4","@babel/preset-env":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.2.7_1569836079277_0.2739318589345363","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@wearegood/good-utilities","version":"1.3.0","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.3.0","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"074001e2fa742dc75c731d71bf8cc410367bc665","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.3.0.tgz","fileCount":33,"integrity":"sha512-ZNagTQKFKxJ7vIuqbVeYJABXaKP2ACVA3pY2zepKr7aBy9eh9UG3NiVozWGQmpJFsxnvrth5/5yDV0dODCsjzA==","signatures":[{"sig":"MEUCIAjlWzPTQn6DT9/dZY5ogZncudBD4oWH27bGLBWQOzhqAiEArEFWTFgKG5lSXyI9XxiEWqISEWR66GO1mYtHfWQT2Zo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19844,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeezuVCRA9TVsSAnZWagAAiGwQAJLFzAZ7XiOrA06J80nE\nB7kC4V6OVCWkC+Riql2mLi3uL6AyGTQLvkX+It+88JAUjz2/j8ZyTvoINEsI\n2YwCyJbpDQS6swR6IdYvzKloY2+z6cVMZlCK93SYtqhzhMo7+qVY3dAn5T7e\nRCRuaHArVji235Q8Ssiled9BQlNpY+7MD92pQf29gKWzMWEmGRDAoQrXNIaT\nYtedKJ4+ugeFBNNpxEXEvuFw4ETfXZIxbz8kPtqOyGOfBi2cUzfTNHDEKIS5\nVMi12mePq1P7U8sCkNf0eEJWDJ11caT6vk9Im31Thly0qBO7+GEATo/lA1BZ\n8RyD0pvcRpIpMMCvoNcnrsS9A42YOkLkaxYJEAKpfPp+L1lvqmAIe2FdXil6\nhId3eG60Dl3RhwSqLP2eg6yCjX0c6w99g12wkZ6ifHPbEutA96w/7udQcahh\neiodc7LrqrGsG5hRwrZ2ng+gbivMUbFpnozs/SUrIHqGkgssD1MLKikyU9MH\n+b/FfiqaF9UYHz5XxUDPpnQ6hu6VTmcDjOeFY12LBNzk0E/EPyhh7H257GlC\n0V1eM4GcbY+xPPFWftLRmsjFIlAw1aCIjoVOcBliD0WwSEnG+BlrUcEpoOks\nyk6i9VnZjiR6Se3vHSWIIYws7em+g4P+iMTii5nXmgIXK1kXAkYvliPHYfx/\nQdLk\r\n=3I1g\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"9666b5472ea5d0e5813a99d71fb98d91290a1320","scripts":{"test":"jest"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"6.14.3","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"13.8.0","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.7.1","eslint":"^5.16.0","babel-jest":"^24.7.1","@babel/core":"^7.4.4","@babel/preset-env":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.3.0_1585134485115_0.6435311241783908","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"@wearegood/good-utilities","version":"1.4.0","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.4.0","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"4e7b4b510fb99f339a859b0c73b1946b5a0b1e6d","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.4.0.tgz","fileCount":34,"integrity":"sha512-A0ko84jGqMiToMDeXzD6eM3/G1MYu6Jm43IUvSNaL1Qnwt0L4B02wRZ8+DQsJsmXOKk3fC1ZcM7Xxx5q8U10Iw==","signatures":[{"sig":"MEUCIQD4HUgIXYK4/EdmmhBGj16aOG4dpdqk2VMlx28vlMdbWgIgMg3NmKe63NLuiyWHVeKY9JH/px+mgL8/tN2gaidKs5k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20259,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9GrDCRA9TVsSAnZWagAAbU8P/0dglNqlCovwPCWJeC8A\nCSEbNay54VomFW+KuKmtGFMuu7zxljDvfPBBhESTTEUQiCqO5moGK0mSbN8f\niQhnrvbzMNH9ar4lfYa+1GdcwBwo0dCmIL4EIHyHYig8zOpji3TUA/IIKMw6\nZrgoGP6f3caeR6tm95/KnoKQpgsZIP8yqJ1o+g89I8tcVWPm3fHcOe7Whf4h\niYvaaPhL9ZsdEUToa/qmcm5u4fihqiL14V183XurR6rz66KZK791GS1Zigx1\nqMhuYdca315pkU7OHP3OkGDujF79WIBAIynL85NEGSF4aWF6i6+aV6r6AoYC\n3BzqoHj959Xl9ttQ1LlHF1/Ny/Vm3IZNGlYRyfM7FxxZ8XXQzhqqk5XBaN5A\nb/IVuseazHrTwLdCVdBOJpSsd7EGYYDLACdKjWYd3YoVtzetDs1zBIZ2UstQ\nV+KiqxSnbTERIZTOzFP4YDXTkwTWioqHLnxhA8yzkUgVW/HhkVculbMZ68Q2\nMJw5igvpnZ1NZF8lMh26Tq6fjlJhbxM+9Lu65tRXwmvQcm0dtsp9zr0A72VG\nRI5JdPrxWmZujgC5ihE3T3UT4dmJlrixLH94K7y1yBl3Y/7MDG3eZbnRjGxw\nvFjl97tXcmLucF/yw1jox72HAr6BaBUWcsvBfB/1eGzQrCsTWCvwBpXgiVOi\nuUrT\r\n=UXKF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"e27ea808363cca8e9061216e8f8a1434ffe43593","scripts":{"test":"jest"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"6.14.3","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"13.8.0","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.7.1","eslint":"^5.16.0","babel-jest":"^24.7.1","@babel/core":"^7.4.4","@babel/preset-env":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.4.0_1593076418767_0.6630774489011662","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"@wearegood/good-utilities","version":"1.5.0","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.5.0","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"3869503fe7a1ea4cf369b3fa1db381ab7f346385","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.5.0.tgz","fileCount":35,"integrity":"sha512-zTCfeYqAFMeRWNDXTk6bZxUdOFGWjGSLv+EfoQx+Vbcxb1Ke2zfNIUwMesxa4UYUuevRSLkJkx30OMUUqK2i/A==","signatures":[{"sig":"MEYCIQDb2qSDeS4WpselI+Dp4qMXW2HnEjgieXDlpK0vSYyJ0wIhAMsvA141ldMxKSdNAxwZu9RteRiRIw0ZmxFo2zGr7Scg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21041},"main":"index.js","gitHead":"43af8d793418d75e4fd7cc47c117af1ae5697d7b","scripts":{"test":"jest"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"7.6.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"15.11.0","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.7.1","eslint":"^5.16.0","babel-jest":"^24.7.1","@babel/core":"^7.4.4","@babel/preset-env":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.5.0_1633617294171_0.10222133685251067","host":"s3://npm-registry-packages"}},"1.5.1":{"name":"@wearegood/good-utilities","version":"1.5.1","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.5.1","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"3cbedaf2051fbbb0c981617893e300580855dc15","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.5.1.tgz","fileCount":36,"integrity":"sha512-2/SzvNgqWS3zjsXdRUTbRJUcpUbwhw67LHIfECnwUHIhBpEzbhFvZ99xSqvSNnSqBb/xDCEQtwJ8peLUIyKSMg==","signatures":[{"sig":"MEUCIHyweO5buTZ5v8MqNL9sgKMySfP4jLdvyJF3fa6MYrCxAiEAvecG+5r1ZWcNPgOPhn6bZz2BBnp1WKiacAcVfAq6Zt4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23003},"main":"index.js","gitHead":"2e51a9945655ef84dea467a540077ddcfcb254b4","scripts":{"test":"jest"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"7.6.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"15.11.0","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.7.1","eslint":"^5.16.0","babel-jest":"^24.7.1","@babel/core":"^7.4.4","@babel/preset-env":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.5.1_1634125357792_0.6731419120912014","host":"s3://npm-registry-packages"}},"1.5.2":{"name":"@wearegood/good-utilities","version":"1.5.2","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.5.2","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"735df7de8fd6c2ffe5fc8889367e61a6dc863f6b","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.5.2.tgz","fileCount":36,"integrity":"sha512-EcSyfeR7/cdNkEpUEaZQahTIY2CAEMQa/P9IerFK68NJrFPTbDP8gDNFVkIucLrKHo+YmAsCTc9+FT3EuY0+OQ==","signatures":[{"sig":"MEUCIQCpC6BHhe73y1MtMmgtdYoS7RRFGw2Dh/TelzGLppBkCgIgQ5GH7hjiXiNlpIhokFWto9Vbzp2XxC1w35ONbMikvLU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24252},"main":"index.js","gitHead":"09ec77fec17068f7b007a7e191fb7d14f6cd35cc","scripts":{"test":"jest"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"7.6.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"15.11.0","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.7.1","eslint":"^5.16.0","babel-jest":"^24.7.1","@babel/core":"^7.4.4","@babel/preset-env":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.5.2_1634138509681_0.9453929931479745","host":"s3://npm-registry-packages"}},"1.6.0":{"name":"@wearegood/good-utilities","version":"1.6.0","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.6.0","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"12d3a9bd6208df40e186c94717e90e7e2b9e406b","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.6.0.tgz","fileCount":37,"integrity":"sha512-Fzo9YjwtO49kBDeRsbpmxvo5IaIuFuepeXY8c5ce3ho4bYd1eeCZ8Msy1gIQr1/p+aPFApasyIT5XfxsQ+/Y6A==","signatures":[{"sig":"MEUCIQDMuewguo+vU7jxFTPZRV90gbkZxcCDQBpFqaWw2AnYQAIgfzynB59mNqXQAcogE9Socsz4+VIDMQG6rOaao/rauuE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh1Hu2CRA9TVsSAnZWagAA0YEP/iXHtJiJVYSm4AjWWHgy\nIFdZURhTXtPnGLxH2k44greJxUjDO67ge7Iywn8EKsufJx26dyX3zpKYgvSi\n8XN2YP+/CQrtSEa39aaYhUUZRqinbiH+rzmrjppn/OgFqIq1mfxIizQ3rXo8\n6h7teNn3n9+k91jyumpQocTZ5cARmGY2bf4NzMpgO5K3AjKflsBNjCY8XDxb\nTeiE5FdPDtmmGCl+sZwIv9bhfnd/hAacNp5zFlldObPuCIpxqx6lGpzoReVX\nlsVFLMIiH/WQ3NgFAcOh//DMvcMZz2UrgIPkpHDyuv6jRsTQlbCExOnm++89\n8h9YWzFVte1rq0Z3x4cIfIFQuNs8ns01ObAFlDmW8V/WH5muouq+Mbo7p+h2\n560h2W/P9D2C7PcDgKay1hN03IEcO4UVPOseBUjQkVcUO9s5U0hnt2Bum930\ngIu2Cn1UIRVrwppmzT3vgpg2ETBilusQoWmzlu8NfFZoEaqqX/47IXsyJdWo\nDdbPKFqLw8wpGdUyu5SPAmZ0zFNiR/I4f7EpEEbxmhwMVyH6+0L7PO6PoIfO\nE4k/ai0ogG5UtOm4K7BNsIoLSr5giERU1pPu5NoyOrokYEGvV2ovABEwZcRK\nqgrwZlcyQoYT4Bd6XMY2HzBsKLudUUHRQJsWm3EiPLWV23wfgUQp1guJXzZW\n3Rcq\r\n=tzBG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"c8aacc6dd878ce75e12ed4b212d5947e51f843f3","scripts":{"test":"jest"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"7.6.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"15.11.0","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.7.1","eslint":"^5.16.0","babel-jest":"^24.7.1","@babel/core":"^7.4.4","@babel/preset-env":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.6.0_1641315253853_0.03817641896512769","host":"s3://npm-registry-packages"}},"1.7.0":{"name":"@wearegood/good-utilities","version":"1.7.0","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.7.0","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"d75412d9a00201ef05b5883c9c69d7c78a8abbce","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.7.0.tgz","fileCount":39,"integrity":"sha512-iTCfDp8rCdUJtGiui2JzyoGKero29GOFE+NIm3xBWEUGcriM2yx82+n/a+7llMMCSb1MheUMfw6CINq2p488VA==","signatures":[{"sig":"MEQCIDtzNw7jZ5YP8Ck83HOarbOEbVFCQJveI4Jz7vodz5pLAiAmx8On5oAkSAeTb/xjzojhJt/ZeXkGCh6LELRNb50nzg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26288,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA+oICRA9TVsSAnZWagAAQuYP/jZAG05A33M38Qhd4eZZ\n0vpLZ6ZrammDS6L0kfwSFbAL8tIQ5tV39xiyXys2VleO+mAoZlpDmq41LPJk\nFHWxKVucqN2qG4esR87aMiTEJ+p8IgPxASmNn6LecAJAZLryIYqv/XmdM09F\nb86WTuPK6Mgm8BskQlHPpPOyC63ZiWxa3buEs2aYwq0V+R7kGtOla9TW3KLh\ntpuHekGqUIPQPo8jDVJnrt+9/FrozLD7A0jkF5TPpVXaE6bAEcMIIQ566aGU\nDWYLbFsAqb9xmmNY2CEMMSGMm8B9gqYs6SIePSJJLYtoU3Os8HjzcSnb20PL\nVyACJDG5fQJOhTDIfv8U0G+jPA41LmBpLa2yjmV7w8CwrkcEWdMMVTbzgdG/\n7sxT/RAUCZEhrCa3neY38l2Y3yOcICOwYR2nii3OloLWH4ODVzGG/uSj+7fY\nKnIJ0UkpY1zTc84oi9CVn/ZY4lz84jaEM5eSSHXw1vxGneMzrC58Q6oWqnhF\n3wHaJtpYuSxBTAVVkFi6qIS8l8q4Tl+y+cnbZ98RWtX53e2SSiaKrgXzLlMd\nFajQHZFVnP5SMTe7tnmxBbBbPUkI+vJ9/8MtkFizQ24ePeiKEMXJlOb8kAqo\ndLITaGxHxKdSVUsoNodfmb6EZ0LJ9LwspbgTyUNBt238lSxH5JT5ArabkEZV\n4mON\r\n=LScR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"6b6245fb3438f9f6485d49c32667b91883bd6e79","scripts":{"test":"jest"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"7.6.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"15.11.0","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.7.1","eslint":"^5.16.0","babel-jest":"^24.7.1","@babel/core":"^7.4.4","@babel/preset-env":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.7.0_1644423688783_0.5896866831520668","host":"s3://npm-registry-packages"}},"1.7.1":{"name":"@wearegood/good-utilities","version":"1.7.1","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.7.1","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"c8b775db088dfe7b391a681ae97c4d6c936ac831","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.7.1.tgz","fileCount":39,"integrity":"sha512-OWs70EAP/yKtK/IzOYWJO0fJr7dE6SrbaQBj+kFreh0I41VY4o5MYwSRqDQVW6Zw6wBKDScWg1Um+nllafpDzQ==","signatures":[{"sig":"MEUCIBOQGzMgVvLv9rE+FnZj3g8RAwG68I9+8oSWEd+4n8/rAiEAgPh4ijjBKsWyC3va3lKTJ2xZ0Jk8BMREdwkpVkeQb4I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26416,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA+tFCRA9TVsSAnZWagAAkCcP/1Ocnzzx66gRbUooch3n\nxh0rSiaUTfFqYmwHUmQKI3DxiFIu5Pbt/+C/+6Ma6J5vN9ekXdUGu5N5mTXE\narsmCOPuxoYp4GjEYm3aGyQzfx/ByOdbZZzEYD/I73Z7BihO9+agiicK7NdB\nd+VO8XQqtqScf/PfgO/xC0cwLuocrtnQtWw3Y/b4J93WcNaWD7YLVLsar8u3\n4jOl8F+H/0uJHNAuAv4Xzs+qHlsnfnLU4ebr2lJEmxxewUfPkGPDH1OqxfYT\nE8wPGaxJ+9qGd/GMy8va6+lqwjn8ca3IT48ACjtAZ7OaSnqqn7vP87w5vfSe\n/u5LIueG2gVsN0mjx1m9zTnEZ6XCLlm2ijP0Hdz3eGtN7gk/wwP4RfaQPDuq\nLEJPvvvmU/90wyw8Zyd78inghpxfmAvcqQJ34ezJ148Z72nQVtFDUeavZGkL\nNPwtCksFPBrfwnny68HI0N5ps7q/B/cm1bkJ1p/2yPVjcijTkR5evgSMfLFq\n4Lf5vsd2rtZ4755DD3ouSko+9/l8T0aGyJdICyx2KutNtBGwZmuTmd18vivL\nfP0uQ3wiNNpBEDo6vELpiMFuuowImRLTcDvYj1cPJm8WDn+EQisklLYNY0fj\n0Dh3a0aN4RArejemBuA6PNX5o9AX5PmAs6I7HZ8QnO1EH76nbD9ggaIQgdeZ\n4SkO\r\n=Rq8s\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"71f9e0d2725ae5323ddbf884b352e7b576b5b80c","scripts":{"test":"jest"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"7.6.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"15.11.0","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.7.1","eslint":"^5.16.0","babel-jest":"^24.7.1","@babel/core":"^7.4.4","@babel/preset-env":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.7.1_1644424005525_0.5888073675114622","host":"s3://npm-registry-packages"}},"1.7.2":{"name":"@wearegood/good-utilities","version":"1.7.2","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.7.2","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"8f0fd649bd3b530a0c5ace539df377e80fb5be4e","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.7.2.tgz","fileCount":39,"integrity":"sha512-4FeF/j/YlkUzsjtMqyl7V6ruP+X+d92n8Gv5TRcGndUFoCJdfGIXewiSdmuiFrxxXUvya3fgiQpQD5FNKpcWrg==","signatures":[{"sig":"MEUCIQCW/kWGZaRFGigOZLT62ecZubrpvnMrAyUncQ0dMiKgXgIga/+iZmG9pLhzYX+p/1Jx+4QFTsZ+gjnkkaOC5NsH644=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiBpDnCRA9TVsSAnZWagAAEdsP/jRwPdFwdsjXpRcm9jNN\nkdnCofofQGpxsiEnPuophrecZjfu5+pk5WeKnYCTKsJ7S0gODJXQeYc6DZWn\nil10aUyVglQEZyK4lLAPfTtFdd3VVuknQkU70YpkjDNJFu+z+YXAT4Xry+XX\nZCUBXucFxIIl64xvcNtOmzmJ/kN2fyIRrjYILHqvi52LNmTfeWTNcpkfrNfS\ncYzswFw/BEEa1pXx30WXByo1v3ljijS5ByghvDSae5yLyAJ+dJ7dmAKEbJqC\nU0qdqe4Sedc1b52Qv/bpSMFx+ZOz1ZcFFQ1dCvto2cTzuD04bALZkWZbgi1B\nH7IXQHxBQihnIe7uOZnSD6uRMvX7+qHFDqAwZhBIzSvVC9zUKH0uAUW+48Kv\nh0IZOkEZxwbyAovoq++/M1hHatXCyqMKWwXzanpgpN7cmArK9c4qotSA1g59\nI7tQjsFczdW5Fcrc79OLc96K1UnpfR0f/6BDjrV2MbD8LwtY0v101hj/mKRc\nORMj3fV5f3/nLB8P5ppSseIbnme+WbQf/tOPJiE+Vvpsaw+3WQuCw96Dqb9g\n55B1EjE+Qb8L7r4dHvgHnNmtooiUgs0TFlztfohZw9ucDnnbjUznK5Ihj6Pp\n8Ibowye6NxkksttBT2YAjD/lFu9f71oO8RQpOl7nZchYt0vhd76nk57SpGFb\nga3s\r\n=REyz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"e99fa0c0bfe9f91aa9c58ffca7d0d666ff25763d","scripts":{"test":"jest"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"7.6.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"15.11.0","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.7.1","eslint":"^5.16.0","babel-jest":"^24.7.1","@babel/core":"^7.4.4","@babel/preset-env":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.7.2_1644597479414_0.5781499193641966","host":"s3://npm-registry-packages"}},"1.7.3":{"name":"@wearegood/good-utilities","version":"1.7.3","author":{"url":"https://www.wearegood.com","name":"Jamie Boyd","email":"jamie@wearegood.com"},"license":"MIT","_id":"@wearegood/good-utilities@1.7.3","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"homepage":"https://github.com/goodcreative/good-utilities#readme","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"dist":{"shasum":"43e2f602ab2c93eee931309b9c3ccd3460baaaf0","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-1.7.3.tgz","fileCount":66,"integrity":"sha512-7Zhaf3bdngjFxL53FnR2sp3QmqDv2VzrUYoJJTcHhzRGynSdONHvbu/TmmLTyN0Wc16Fg+SpDfKwpgAX09eunw==","signatures":[{"sig":"MEYCIQCr33DMpwZbMC6zlQ52lt7m8mbya8pbiLyXiWgOcY/8WgIhAJjtUqx81Q8/eNThqx9fH+0j0+eEQ2l+KdpJ7MHnVGvu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70564},"main":"index.js","gitHead":"0ad9cdad0e9a8438b0dbe7a8e03551f59ad8f8c1","scripts":{"test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"repository":{"url":"git+https://github.com/goodcreative/good-utilities.git","type":"git"},"_npmVersion":"11.7.0","description":"A collection of JavaScript utility functions","directories":{},"_nodeVersion":"22.10.0","dependencies":{"debounce":"^1.2.0","delegate":"^3.2.0","pubsub-js":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.0","vitest":"^2.0.0","@vitest/coverage-v8":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/good-utilities_1.7.3_1774298888187_0.4071478257279777","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@wearegood/good-utilities","version":"2.0.0","description":"A collection of JavaScript utility functions","type":"module","main":"index.js","exports":{".":"./index.js","./DOM/*":"./src/DOM/*/*.js","./Events/*":"./src/Events/*/*.js","./Storage/*":"./src/Storage/*/*.js","./String/*":"./src/String/*/*.js","./Array/*":"./src/Array/*/*.js","./Async/*":"./src/Async/*/*.js","./Number/*":"./src/Number/*/*.js"},"scripts":{"test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage"},"repository":{"type":"git","url":"git+https://github.com/goodcreative/good-utilities.git"},"author":{"name":"Jamie Boyd","email":"jamie@wearegood.com","url":"https://www.wearegood.com"},"license":"MIT","bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"homepage":"https://github.com/goodcreative/good-utilities#readme","devDependencies":{"@vitest/coverage-v8":"^2.0.0","jsdom":"^25.0.0","vitest":"^2.0.0"},"gitHead":"7144fbb3ef1f2aafe362cb586b537ce60bcda370","_id":"@wearegood/good-utilities@2.0.0","_nodeVersion":"22.10.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-KjasYMwp8zNnvI5GHATl5UMUC8BReJeer+mTx3cWHRMnq8qGStFYguhM/D4sLDoGu1Ma2HDnMt9MHUTVMAlzjQ==","shasum":"c1e2f20c5064ffe37d4291f4091b041b72c8ba47","tarball":"https://registry.npmjs.org/@wearegood/good-utilities/-/good-utilities-2.0.0.tgz","fileCount":112,"unpackedSize":101063,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDRvWoqIED5InOCDjvk3uc6maYleYsi+g042sEnuwQVAQIhAJRuG0CqOZYN73avDSZazGGMQGc12DpuEQkyotGYsiJ9"}]},"_npmUser":{"name":"jamboid","email":"jamie@wearegood.com"},"directories":{},"maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/good-utilities_2.0.0_1775760303376_0.12378504318146266"},"_hasShrinkwrap":false}},"time":{"created":"2019-03-22T11:25:10.184Z","modified":"2026-04-09T18:45:03.670Z","0.0.1":"2019-03-22T11:25:10.499Z","0.0.3":"2019-03-22T11:32:13.286Z","0.0.4":"2019-03-22T11:57:16.433Z","0.0.5":"2019-03-22T12:01:54.221Z","1.0.0":"2019-03-22T14:41:36.548Z","1.1.0":"2019-03-25T10:20:37.375Z","1.2.0":"2019-05-20T14:30:56.638Z","1.2.1":"2019-05-20T14:35:39.281Z","1.2.2":"2019-05-20T15:04:58.054Z","1.2.3":"2019-05-21T07:56:54.905Z","1.2.4":"2019-05-23T07:57:16.558Z","1.2.5":"2019-05-28T10:21:35.592Z","1.2.6":"2019-05-28T10:27:53.638Z","1.2.7":"2019-09-30T09:34:39.436Z","1.3.0":"2020-03-25T11:08:05.206Z","1.4.0":"2020-06-25T09:13:38.874Z","1.5.0":"2021-10-07T14:34:54.297Z","1.5.1":"2021-10-13T11:42:37.937Z","1.5.2":"2021-10-13T15:21:49.834Z","1.6.0":"2022-01-04T16:54:14.086Z","1.7.0":"2022-02-09T16:21:28.915Z","1.7.1":"2022-02-09T16:26:45.648Z","1.7.2":"2022-02-11T16:37:59.569Z","1.7.3":"2026-03-23T20:48:08.346Z","2.0.0":"2026-04-09T18:45:03.534Z"},"bugs":{"url":"https://github.com/goodcreative/good-utilities/issues"},"author":{"name":"Jamie Boyd","email":"jamie@wearegood.com","url":"https://www.wearegood.com"},"license":"MIT","homepage":"https://github.com/goodcreative/good-utilities#readme","repository":{"type":"git","url":"git+https://github.com/goodcreative/good-utilities.git"},"description":"A collection of JavaScript utility functions","maintainers":[{"name":"jamboid","email":"jamie@wearegood.com"}],"readme":"# Good Utilities\n\nA collection of battle-tested JavaScript utility functions for DOM manipulation, event handling, storage, strings, arrays, and async operations — accumulated across many projects and packaged for reuse.\n\n**v2.0** — pure ESM, zero runtime dependencies, modern browser APIs throughout.\n\n## Installation\n\n```bash\nnpm install @wearegood/good-utilities\n```\n\n## Usage\n\nAll functions are named exports from the package root:\n\n```js\nimport { getOffset, debounce, slugify, getCookie } from '@wearegood/good-utilities';\n```\n\n---\n\n## API Reference\n\n### DOM\n\n---\n\n#### `createNodeFromHTML(htmlString)`\n\nParses an HTML string and returns the resulting DOM nodes.\n\n- `htmlString` *(string)* — an HTML string to parse\n\n**Returns** `NodeList`\n\n```js\nconst nodes = createNodeFromHTML('<li>Item</li><li>Item</li>');\ndocument.querySelector('ul').append(...nodes);\n```\n\n---\n\n#### `decodeCharacters(text)`\n\nDecodes HTML entities in a string (e.g. `&amp;` → `&`).\n\n- `text` *(string)*\n\n**Returns** `string`\n\n---\n\n#### `getClosestDescendentByDepth(parentElem, parentSelector, descendentSelector)`\n\nAmong all descendants of `parentElem` matching `descendentSelector`, returns the one shallowest in DOM depth. If multiple tie, returns the first.\n\n- `parentElem` *(Element)*\n- `parentSelector` *(string)* — CSS selector identifying `parentElem`'s role (used to calculate relative depth)\n- `descendentSelector` *(string)* — CSS selector for target descendants\n\n**Returns** `Element|null`\n\n---\n\n#### `getIndexOfNode(node)`\n\nReturns the zero-based index of a DOM node among its siblings.\n\n- `node` *(Node)*\n\n**Returns** `number`\n\n---\n\n#### `getIndexOfNodeInNodeList(node, nodeList)`\n\nReturns the zero-based index of a node within a `NodeList`, or `-1` if not found.\n\n- `node` *(Node)*\n- `nodeList` *(NodeList)*\n\n**Returns** `number`\n\n---\n\n#### `getOffset(el)`\n\nReturns an element's position relative to the top-left of the full page.\n\n- `el` *(Element)*\n\n**Returns** `{ left: number, top: number }`\n\n---\n\n#### `getOuterHeight(el)`\n\nReturns the height of an element including its top and bottom margins.\n\n- `el` *(Element)*\n\n**Returns** `number` — pixels\n\n---\n\n#### `getOuterWidth(el)`\n\nReturns the width of an element including its left and right margins.\n\n- `el` *(Element)*\n\n**Returns** `number` — pixels\n\n---\n\n#### `isElementInView(element[, options])`\n\nReturns a Promise that resolves to `true` when the element enters the viewport. Uses `IntersectionObserver`.\n\n- `element` *(Element)*\n- `options` *(object, optional)* — `IntersectionObserver` options (`root`, `rootMargin`, `threshold`)\n\n**Returns** `Promise<boolean>`\n\n```js\nisElementInView(document.querySelector('.hero')).then(() => {\n  // element is now visible\n});\n```\n\n---\n\n#### `onIntersect(el, callback[, options])`\n\nSets up an `IntersectionObserver` on an element and calls `callback` on each intersection change. Returns the observer so it can be disconnected.\n\n- `el` *(Element)*\n- `callback` *(Function)* — called with `(entry, observer)`\n- `options` *(object, optional)* — `IntersectionObserver` options\n\n**Returns** `IntersectionObserver`\n\n```js\nconst observer = onIntersect(el, (entry) => {\n  if (entry.isIntersecting) console.log('visible');\n});\n// later: observer.disconnect();\n```\n\n---\n\n#### `onResize(el, callback)`\n\nSets up a `ResizeObserver` on an element. Returns the observer so it can be disconnected.\n\n- `el` *(Element)*\n- `callback` *(Function)* — called with `(entry, observer)`\n\n**Returns** `ResizeObserver`\n\n```js\nconst observer = onResize(el, (entry) => {\n  console.log(entry.contentRect.width);\n});\n```\n\n---\n\n#### `prefersReducedMotion()`\n\nReturns `true` if the user has requested reduced motion via `prefers-reduced-motion: reduce`.\n\n**Returns** `boolean`\n\n---\n\n#### `ready(fn)`\n\nExecutes a callback when the DOM is fully loaded. Fires immediately if the DOM is already ready.\n\n- `fn` *(Function)*\n\n---\n\n#### `removeInlineStyles(element)`\n\nClears all inline styles from an element by removing the `style` attribute.\n\n- `element` *(Element)*\n\n---\n\n#### `wrapElement(el, wrapper)`\n\nWraps a DOM element inside a container element, preserving its position in the document.\n\n- `el` *(Element)* — the element to wrap\n- `wrapper` *(Element)* — the container to wrap it in\n\n```js\nconst div = document.createElement('div');\ndiv.className = 'wrapper';\nwrapElement(document.querySelector('.target'), div);\n```\n\n---\n\n### Events\n\nThe Events module uses a singleton `EventTarget` as a zero-dependency pub/sub message bus.\n\n---\n\n#### `messageBus`\n\nA singleton `EventTarget` instance used as the global message bus. Publish and subscribe using the standard `EventTarget` API:\n\n```js\nimport { messageBus, messages } from '@wearegood/good-utilities';\n\n// Subscribe\nmessageBus.addEventListener(messages.scroll, (e) => {\n  console.log('page scrolled', e.detail);\n});\n\n// Publish\nmessageBus.dispatchEvent(new CustomEvent(messages.scroll, { detail: data }));\n\n// Unsubscribe\nmessageBus.removeEventListener(messages.scroll, handler);\n```\n\n---\n\n#### `messages`\n\nAn object of predefined message string constants. Use these instead of raw strings to keep message names consistent.\n\n| Key | Value |\n|---|---|\n| `scroll` | `\"page/scroll\"` |\n| `resize` | `\"page/resize\"` |\n| `load` | `\"page/loaded\"` |\n| `contentChange` | `\"page-content/change\"` |\n| `contentDisplayed` | `\"page-content/displayed\"` |\n| `layoutChange` | `\"layout/change\"` |\n| `breakChange` | `\"breakpoint/change\"` |\n| `imageLoaded` | `\"image/loaded\"` |\n| `modalOpened` | `\"modal/opened\"` |\n| `displayModal` | `\"modal/display\"` |\n| `stopMedia` | `\"media/stop\"` |\n\n---\n\n#### `bindGlobalMessages()`\n\nConvenience function — binds both global scroll and resize message listeners in one call.\n\n---\n\n#### `bindGlobalScrollMessage()`\n\nAttaches a `scroll` listener to `window` that dispatches `page/scroll` on `messageBus`.\n\n---\n\n#### `bindGlobalResizeMessage()`\n\nAttaches a debounced (200ms) `resize` listener to `window` that dispatches `page/resize` on `messageBus`.\n\n---\n\n#### `createDelegatedEventListener(eventType, selector, eventToTrigger[, eventData])`\n\nSets up a delegated event listener on `document.body`. When a matching element fires the event, `preventDefault` and `stopPropagation` are called, and a `CustomEvent` is dispatched on the target element.\n\n- `eventType` *(string)* — DOM event to listen for (e.g. `\"click\"`)\n- `selector` *(string)* — CSS selector for target elements\n- `eventToTrigger` *(string)* — name of the custom event to dispatch\n- `eventData` *(any, optional)* — attached at `event.detail.data`\n\n---\n\n#### `createGlobalMessenger(eventType, selector, message[, preventBubble])`\n\nSets up a delegated event listener on `document.body` that publishes a message on `messageBus` when a matching element fires the event.\n\n- `eventType` *(string)*\n- `selector` *(string)*\n- `message` *(string)* — message topic to dispatch on `messageBus`\n- `preventBubble` *(boolean, optional)* — if `true`, calls `preventDefault` and `stopPropagation`\n\n```js\nimport { createGlobalMessenger, messages } from '@wearegood/good-utilities';\n\ncreateGlobalMessenger('click', '.open-modal', messages.displayModal, true);\n```\n\n---\n\n### Storage\n\n---\n\n#### `getCookie(cookieName)`\n\nReturns the value of a browser cookie by name.\n\n- `cookieName` *(string)*\n\n**Returns** `string|null`\n\n---\n\n#### `setCookie(cookieName, value[, days[, config]])`\n\nSets a browser cookie.\n\n- `cookieName` *(string)*\n- `value` *(string)*\n- `days` *(number, optional)* — expiry in days; omit for session cookie\n- `config` *(string, optional)* — cookie attribute string; defaults to `\"; path=/ ; SameSite=None; Secure\"`\n\n---\n\n#### `getLocalStorage(key)`\n\nGets a `localStorage` item, automatically parsing JSON. Returns `null` if the key doesn't exist.\n\n- `key` *(string)*\n\n**Returns** `*`\n\n---\n\n#### `setLocalStorage(key, value)`\n\nSets a `localStorage` item, automatically JSON-stringifying the value.\n\n- `key` *(string)*\n- `value` *(any)*\n\n---\n\n#### `removeLocalStorage(key)`\n\nRemoves a `localStorage` item.\n\n- `key` *(string)*\n\n---\n\n#### `getSessionStorage(key)`\n\nGets a `sessionStorage` item, automatically parsing JSON.\n\n- `key` *(string)*\n\n**Returns** `*`\n\n---\n\n#### `setSessionStorage(key, value)`\n\nSets a `sessionStorage` item, automatically JSON-stringifying the value.\n\n- `key` *(string)*\n- `value` *(any)*\n\n---\n\n#### `removeSessionStorage(key)`\n\nRemoves a `sessionStorage` item.\n\n- `key` *(string)*\n\n---\n\n### String\n\n---\n\n#### `truncate(str, maxLen[, suffix])`\n\nTruncates a string to a maximum length, appending a suffix if cut.\n\n- `str` *(string)*\n- `maxLen` *(number)*\n- `suffix` *(string, optional)* — defaults to `'…'`\n\n**Returns** `string`\n\n```js\ntruncate('Hello, world!', 7); // 'Hello, …'\n```\n\n---\n\n#### `slugify(str)`\n\nConverts a string to a URL-safe slug.\n\n- `str` *(string)*\n\n**Returns** `string`\n\n```js\nslugify('Hello Wörld!'); // 'hello-world'\n```\n\n---\n\n#### `capitalize(str)`\n\nCapitalizes the first letter of a string.\n\n- `str` *(string)*\n\n**Returns** `string`\n\n---\n\n#### `titleCase(str)`\n\nCapitalizes the first letter of each word.\n\n- `str` *(string)*\n\n**Returns** `string`\n\n```js\ntitleCase('hello world'); // 'Hello World'\n```\n\n---\n\n#### `stripHTML(str)`\n\nRemoves all HTML tags from a string.\n\n- `str` *(string)*\n\n**Returns** `string`\n\n```js\nstripHTML('<p>Hello <strong>world</strong></p>'); // 'Hello world'\n```\n\n---\n\n### Array\n\n---\n\n#### `groupBy(arr, key)`\n\nGroups an array of objects by a property value.\n\n- `arr` *(Array)*\n- `key` *(string)* — property name to group by\n\n**Returns** `object` — keys are group values, values are arrays of items\n\n```js\ngroupBy([{ type: 'fruit', name: 'apple' }, { type: 'veg', name: 'carrot' }], 'type');\n// { fruit: [{ type: 'fruit', name: 'apple' }], veg: [...] }\n```\n\n---\n\n#### `deepClone(value)`\n\nDeep copies an object or array using the native `structuredClone` API.\n\n- `value` *(any)*\n\n**Returns** `*` — deep clone\n\n---\n\n#### `chunk(arr, size)`\n\nSplits an array into chunks of a given size.\n\n- `arr` *(Array)*\n- `size` *(number)*\n\n**Returns** `Array<Array>`\n\n```js\nchunk([1, 2, 3, 4, 5], 2); // [[1, 2], [3, 4], [5]]\n```\n\n---\n\n### Async\n\n---\n\n#### `debounce(fn, wait)`\n\nReturns a debounced version of `fn` that delays invoking until `wait` milliseconds have elapsed since the last call.\n\n- `fn` *(Function)*\n- `wait` *(number)* — milliseconds\n\n**Returns** `Function`\n\n```js\nwindow.addEventListener('input', debounce(handleInput, 300));\n```\n\n---\n\n#### `throttle(fn, wait)`\n\nReturns a throttled version of `fn` that invokes at most once per `wait` milliseconds.\n\n- `fn` *(Function)*\n- `wait` *(number)* — milliseconds\n\n**Returns** `Function`\n\n```js\nwindow.addEventListener('scroll', throttle(handleScroll, 100));\n```\n\n---\n\n## Development\n\n```bash\nnpm test                # run all tests once (Vitest)\nnpm run test:watch      # run tests in watch mode\nnpm run test:coverage   # run tests with coverage report\n```\n","readmeFilename":"README.md"}