{"_id":"swiss-ak","_rev":"81-34d1054b9b5bb3e5d206b4e47829874f","name":"swiss-ak","dist-tags":{"latest":"3.4.2"},"versions":{"1.0.1":{"name":"swiss-ak","version":"1.0.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.0.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"15fff23a4ffc77d362d74421cdf47fd4103a588e","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.0.1.tgz","fileCount":13,"integrity":"sha512-/0fTqVa0R3kSCz49i0vN1pyIEzpzWPPUJVpXJIBaU81f0tAUTYCHUr0UailST6sV98svZJ1JmNnbn+fw5D+DQQ==","signatures":[{"sig":"MEYCIQCwPDtlk8sXz4y2NjAlckPEm9W7cijDRDEfhSF5Zwo7EgIhAMq+L5CtjLWfeXL5DOwv8/zeTzMPDijcvoFYFAHdq0Xp","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15337,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi5uZ0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmokjA/9E9lqmoSrQlFgAurGE+XrFw0QgpfL8gsxoNMNb7dJlUMTw5Rm\r\nh4IWrNJLy3FtDlmzFT9WRB++2+1OAoFMHbVC7lDrXM5ILh4f0gXQl/PKefO2\r\niGqiXgPA2aVQadqswE4p3Kh15My7Q2oIFYtzag55bmsRZKiKVT70XCKB3R8O\r\ni2a0gWbgIHbhlsfbMc1WXGY2HCW9Q3JM6xDhAC2Lt2+tudy2MA7MjVIuVCBs\r\nExMeMyHo+Z9DoFOomlUw/aoEOkruWTav7STRBFvFYrbHwvNjGLDvcMJRb+Tv\r\nREq3UzTqfLt8enCGg9AimyOuVymEKqmCzBgGpU9S+s+dZVk4imMPshOAEYkb\r\nvrbHrzH8ILON24m/vNWr/Mmy8UZ9R4rGfSvOnzuQYlOZc5zIPKXSPSADljat\r\nklQOL99omRiC3rzvT8mznkYkd0EXmz02y52hyLQFkz/Gp8cONwkHsy8ef2Jd\r\n6FSvxqOMg0qk0IacOmvc5MdUIHM49qaFIXwcH7OfDKCCLQ7BUDPpd39Djoqt\r\nnH9vkUMeb0u8h+eu0QEJA1HN2FJQvU23q/dbWQyRkUTHhWcoUKsOHgsw1Xwo\r\n5Pzut9DSKRkkB6yOCnzDNu/xMbS/q5S138B3SNYQEAJCbm2rldlrhP+SHB0p\r\nelpOkhodNRgGestGYY14hGBWTChZZq1tpmk=\r\n=J5sN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^6.2.1","typescript":"^4.7.4"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.0.1_1659299444166_0.35777102964709795","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"swiss-ak","version":"1.0.2","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.0.2","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"bd22ac318d75f894e466ba9b37309441dd75871f","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.0.2.tgz","fileCount":13,"integrity":"sha512-9KnQekWMW/C/Cev8djxEKlXMVOHPpI7ZyYFH1jNw5T7HxGOZ7PCIu/4HzzS6ym3c2SgrdjBNwgMBmUzcY4OiDA==","signatures":[{"sig":"MEUCIQCZAqf+UOJdVWsZm1dh1rb2zGIsTUkFdg/jmBRyM0JJqwIgLaBeEhwn7CA7pP2vq+D/Vm6zzWyLQgVKowP5eA09isY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15552,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi5udIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqltA//XN4s67wIsx9dZj1IA4nw1kimDh1lX4HRDyz3HA4WLrNp644t\r\nvGRD8Kay+UltN/1rLD1DxiPEnc1YWBY3l9XDGbOFvB18eXL3PEwk6KEHra/2\r\naWYfjKIzaEZ1w02c6yTF4EpMP1vSen1JTUxqv8AQfgEuERkRvy4v5NqWJG5e\r\na6URpS/TXbYlPCLPDYwAuRB5VI70dLAkliprX4AItBxHvdi7lkRk20Vv2VQ6\r\nSutA/LnRpfNaahZF45/kRZ+lh+Dv/VEtAN9XVeTpiMorGN0lgJ4W7pDOeSIE\r\nCkYE3p9L1Z2XrzPNsTAL6/IRs6x5/SYcgrJmfYGcd8k+8PC1qu/eAP+QA/S2\r\n22DyAMMSh2be1giuRf3zQ6fH4ahBc0I0nWdE41v2NU5wy7KxblO4f3dq36vb\r\ns8fAQUm82wllsmvqBNdgJ70xIEOH3dNMh/S07J7kyXHk9YpXUcMPF8NHiHaM\r\nspI1pc/Vxx6DByJfXDgX8nAMD421BStbHh5lFNgFfC9V1d6hX4azo71bwnxC\r\n/bEpq7ATy9Qgae4xjOuzlnbwRC8kIHIQ0SE197lMXVFHCxnKgd4RsTS6H2vF\r\nGGle0PxbxLg2WdNimIyWmYu3Qt0raaXfNMcLHWgFH4AXD34oLMIiqRQIgEDY\r\nN+C4hcTq1rqdRmF5w1qADfZJIgG3gimgOi8=\r\n=A0Vb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^6.2.1","typescript":"^4.7.4"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.0.2_1659299656113_0.014927314927018598","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"swiss-ak","version":"1.1.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.1.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"d8018742ce6333333b18ad3d6d1e51b8e8fda55f","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.1.0.tgz","fileCount":14,"integrity":"sha512-APmsCzfK0sHN5Q7EV8auui/Q61LuD6K00uuqj35srnM5GKqVgSquAP8t7xjm7yoXPJGpmrD3PhsqzlukWnCsDw==","signatures":[{"sig":"MEUCIQCiEAOTqVzDdLv6ijiGtwiJYr9z18hPAQtPu6RVgmlSSwIgKhnyXvD9Yi1kNqoOn8vPuHl0urMJ5Zwj4ozZoGZAuns=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28625,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6BimACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr7Iw//ZOZ26Azjx6Vfc7zxBlsNwRqhd+PByb9/bi7fh/zHRR65VF8s\r\nPyuLddFh7WVyVxj5QJ0iHAGyn0ygPH8jsuFxcqksRplx7wL+GDTfkR/vIMhs\r\npxpJEs4JTKnnMbwuhR+VoK8LyArdE8ghz5BtyEPI6TIhPctLfnuNnok/yF/J\r\nZoGFDVT4tjOewSpwlV2jgIkxGGXqjWdJ8Cj35U63tVPMT5qLGefMfcxK+lQ6\r\n8ZNoGxLPnQUvHX7YZvh9orJxRiOZ14Mb7m2mQopVeRMd86yQFdUW6pjVCaOM\r\nmzcotQ63Bxa+06zIORfpuvZMcziOCF+4tBT0ZQeoX5zwTTjfUOUtGDAViVYX\r\n8k+6vZX7EuLniwZ3snNZ5ryDbXMB/rApa4HKObSFRWe6yMPi3Ia3Z0A4Cbpw\r\ng3vKidjNYeLgB5hvR6zf1aViNORZJnJHiKR4qcXiCDOjh6salMGprRivfDpp\r\nsPWHFVPAIvkqln3zIwADtTBG2c8YL90NCI2BHGjhv+GIy/BuMg8HMjE+jRyE\r\nX4iQPqLb3anhm2o+NX9WWv9WhoJes0Y4YSABLrVc2kvYQrSIuUvlDodlBsuB\r\nUnUisNNG7IETIFRFaXRcOPwmu0Qfm2kCL7JO9mykjjgru9k5IqLvqNxskFTC\r\nehoKJJnWx4CXxro0DC6pW8CJe9ydKSQ3F5Y=\r\n=XekN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.1.0_1659377830249_0.46514703292524384","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"swiss-ak","version":"1.1.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.1.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"f57c38d4252d0299c44b24284b92ecd6cfc69c60","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.1.1.tgz","fileCount":14,"integrity":"sha512-M4XHENsGlXh25lUNOCozrUDbmzJiuigLS6SffIfu3jIBDlPb4JEsHGI3CdzN5SAEcEM1awZ1rjQMrZ/sBXdk1A==","signatures":[{"sig":"MEUCIQDDEFwbXWr7SjNtoF1zaKiLuXjqkbrETwWYG5u/LRQuFwIgDpSuNVXH3mrXBk+OGnlPvedhl38rrfxDD5v5nEEDa0w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28723,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6BqgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrz/A//YxdHt5NpxwEZTR7IPwr7XaQ1WDQ0e52YwZWWrHs58cpVHhxe\r\nXyVZRYmbDennBl/PvI7/8HRUP62K4L7UIzWJwN32yeEQm2/NLwlTNjfhK/Nd\r\nToAj1aVhAsDb+0bXF6vAKuWc6HuS2jZ/qPtMPrEMRkN6PLjqynViqlI++KRp\r\nLncm43FtxRDi1j1lBHBdziasujNg1IOFxcLuIVb3ZPiFSOYoZHONdHs5epn9\r\nRR70vNjrHSyq3saG7P9nEJl8v/Bv83WyOkGDGofiynSHlSOZWBnyD9OgMOxE\r\nTGAw2XVBuaB014RQQuMQK9C7l0IXEqJkE3R+5r2JfyV8dItiCR17T88VJIHO\r\nU5te/hvtJiduR89MKzDpz2ABX3fnLx7I9KDOpQ165Hx3w9gkmDCs/ZOZtToN\r\n1QtYzKJMcLpxJt8wib8g4In+VlOMLcn+m4R5XjNHFp861Z1kRrx9S3m+Y3nd\r\nvW30qWUd+SmENvJ8rVVb48ppIyM4c903Pfp7tdsR91jAg39xO3BwwOycSHq+\r\nQn4T0vNjbup8iBJ86stiXVTOZu3V7/H+TXXl9PPm22fHwk52GXcbq+SCuiho\r\nWEVGoncP75jq8YpfP1ZLrWhV3mYdAzfCvYBb7rsow9ousR/t+B4s+qvZP24o\r\n3ljWkuY1MdLG5c6xE5Pv9Qi/iNlbURZiiPU=\r\n=rqfA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.1.1_1659378336748_0.44003289785209976","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"swiss-ak","version":"1.1.2","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.1.2","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"cd3f69e5802c6bff7f1b080eee1d04af5a3ee0bc","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.1.2.tgz","fileCount":18,"integrity":"sha512-NYTq+cdhQ1AnYmP5UfjyDM9fcOgVvpODFgm+xVNFkk/AyDdBaGYSdY/JyzkctiHmZLMG4EhS+8wOi9svTSyO6Q==","signatures":[{"sig":"MEQCIG03bmqrNSg0F3SqFH2WSBhXYfbiHSH5RyLUplSTwA5DAiA6draRO1ID3YGo3fzAUoawZQ9Fp7CafLt9LaM9bXMU+Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":54832,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6BxPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoP6w//aI2sTnbFYm/roTnNcrNMt5C6vPqYyLDedqt/CLOuKK+5nGPx\r\nq94OOyArYvT0g9wV7aVC5yHb77FHQcmCBiwxkwuc2sA0s4SH30lFWnL4VCeR\r\nYACE1SDi5Ng1k38/vO+4khMY+YnDP/FmU4f2dq/b/w9KVQUOHsEFueC055Av\r\nNI3SCAp4XRP6AZA09TMnvI2xSjtVwloEV4kKjLo6XdrtukhY/H//gjgdyr6X\r\nA4zpYOg9fTGdg4HEQF9emvm/RvryegK7x0mZDp7NJs/hguSKTnvh5lESoOr2\r\nDFVgofNyYApgdKZAFliFF4nFuT8mzS0uGA48PYLBniopmW87xj/2YQN4ALH9\r\n8IRGhLToQ/RjZRgRRbr8FAgtVv99iH7T2e6dT8UdLQY2+9K90Q6qXqkg1Wd5\r\nntTfAoVyyenXpF/mitkpiasmM0HObkQJhByEgERxhKpWqnJHvPLeFS55fSVs\r\nFLjWdIfDkHaLa7RfWi3WuFUqLCPvxNAEG23ITheewSoHAAuR9eU9SOj1MwZM\r\nXu65NGKIYtZzcM4VNtRRCVLdNdErtJUHmT/xQqTqpZWXsFMeuGOatZGv3jbj\r\nawmWyBXDxojA4gqdXRFpnmMZxw3Xnl+4vvA8JRRfdcMwHo4Kv3bTGBdkisZy\r\nFGd4oarOeTAdEsrSJJKxRX7DAoh56U45X6E=\r\n=WgXX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.1.2_1659378767731_0.8446778392732557","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"swiss-ak","version":"1.2.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.2.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"f6053b648dd48feb80dbf75f55962678a3dbbde7","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.2.0.tgz","fileCount":18,"integrity":"sha512-T4pOiS32mk8FNnyrQUiAPLIOAk+lNu1LCg//cbTeaZTeRtcs3IgmsVP+0cCmaE+ReVY3MNcae5YWUDN3sBv2Zw==","signatures":[{"sig":"MEUCIA9REDRv/U8gucyzEgrL80e9uK0P3uXle7cZV+RvbEyFAiEAo5YnUTcYiBd8624wSCbsHZDETqzBFKQXs2BBS1iSM6c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":58654,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6TI5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpBDQ/5AIGrIKVSlbwhgs8qArs/BMrheMhnGWE+DtppsEWKpobqUNXE\r\nQRNz5GUyARWJKMIiZuzHypH+af/STLDUCGR5gGcprK8w/RqXb2OsYgvjbgel\r\nJ3Y0xc9wQ9caGRVgb3KabS5qWZt+Nd6kSrgFHejLgr1mBdUwhEADpzRKz9FF\r\nu4HPYx8ajvTQ7QL2uem5ItNsXVkeUZNE2CPX8p7V4usWXDG1IR6hysWHCgwk\r\nfeQ2lDtugXN01dRBcYqPn9fjAwt2aTYaMixuk2X4mmBV27KA845t6Ud62PO3\r\n5rkm9L4WZxPTcMB8g580KvCQKV7dnVAh/5xWWvszCcLaQI+IZdXMRygoE5Ll\r\nTyHpJ9r+GojAH0W6dnv3bEr5a7oE8gOZ/z25hwn98k9Uc+jTa6rMO7IcvZ6M\r\nkYZiMj+a9Gds5ndfyrktJeoHTEY0drgc7qOBfYWA2+qXXwBVOYZ+VaFE3apr\r\nEEvvRYhZfndsSBo2kYg81FP/mGp2XTURFfHjWjYhRd6fpI1GoWEmrr2jMr8c\r\n5MkreJOdIsmBs0s+JJ2sw5RETfmteJgOqD+LPjBewbb2sYSF2U2BYWhO4vC7\r\nrhtHNUI4GH8I0CrP1M7AO+SvKSGvj38QTAiCet4CYPaVz+ZYFHk55V2BVYZX\r\nNopmkmGK/Z7mOskLDEd/baXNDBPLatxyyWM=\r\n=OoCJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.2.0_1659449913256_0.19973765623037054","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"swiss-ak","version":"1.3.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.3.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"9380b402f86cb5c07c314a7a5de5ff5a62ca4767","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.3.0.tgz","fileCount":19,"integrity":"sha512-KrqFr8Lmg/SiopA1KAXqa6unpwtpCmmoFYwksowoMsrrjH15cbcBWRU145HeduMTAUb1pnoy3KGfmHvUQdYicw==","signatures":[{"sig":"MEUCIQCe3bJZUatop/d+owhG5Pt+PSM+be3vjr0fIDlL5qujTgIgD5V7mXWx5WTuvUQCJDBqUAiR1GFsYUHzGXqPk7UQLD0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74177,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6oDcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrgIw/7BHzSDEvOFZNdCrQuLqFhp2kQxHxBwgDmS/fMf8/lIgkuOzfE\r\nb/S3V3DHHGMLUcBRFxZlKjNV+KwxcwUeIWhcUBvyGB4unrUCzWcPzoZv+JTn\r\n5a3lSxpSFYVDGqFJGqLV1pNm3R8qwIQu+Al7UB7vunvGo8OTkrPgh7858bW8\r\nyD8/G3ewFWH/vHOVOVPqQ1EpKfvjIIkcz56s3fTy1JWg8Quyv+Yw2nubMDJt\r\nIJ48nzR73R0osv3eQmMNKal/HQNwZdxHg74tPolDMSJCudgriN4BgQi6HsI7\r\nghjk2vDOg21tmoPBdv8lwVSVocTWofvk3i9RMMAEWyrjZo8OTYotA8rZphtw\r\n6RWYO6bFcpxmVsgol4VlX2Vf24gH2AtHCci3AFj3qVxKb9e/phoW9oArh2xf\r\nw/WjTGHieQBMkoQ+zHrBGdPvCeyfeNcUHxjLZAWW5Ymu8aSToSW90JlurCII\r\nzNFAmL7rVKMZwayBaLxssw73A93WjyCRGvMtHMtBmtGflZq0VtMBx7OO1Kgz\r\nEr0nXSpPrPGMcz2EWDUHnEAGlwaNT4xuANlB1jUVySKw3igX/sadlSStWTcO\r\nrB+sXR9hseuKABlO76SV/By+c2aZK3T73txaQPCnR1mfTrfgeYnqbVJF3bDa\r\nYaQ58XkL7ck54+ZLtvKDEs4AraMRVhrLAXc=\r\n=l46y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.3.0_1659535580089_0.09282984070909595","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"swiss-ak","version":"1.3.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.3.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"8d27965a098641aff12b4dd4f99b3d352a2c702b","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.3.1.tgz","fileCount":20,"integrity":"sha512-H61lUAjh8NTRPlhgA3lh6NUFQ3o9ls2auQvv8vjbMvw5HzH52Hg0vRKVG3h/9F34qB1PAcO9Eoe1cMauGPVjng==","signatures":[{"sig":"MEUCIQDKaULfe56j4QDc2SsThVL2u3zNQD3xPfYq5YINguTXWwIgQUvBimbJ/OL48Jkf/EB3X344ViYppbrT9BLuuDBF+yY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75835,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6oteACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoZ/g//XCy4d3pFNXbJH9wc/s7yQ4vR9hRBxektN5wPJ6x3TSFOgvvh\r\njtnnblDsy0AMqfzGdcoU0DdsxSZ59bifYQEfWTjFNwJa/3wSSzprmUDwFWvz\r\n+4LeDK6yMXIwzmDBZtgnY7fzY6lwLUVJOxJKQ4/ukJBWkaaau3QWdgIbQZKw\r\n2qqzGwfwik0oFUDixeR2JLGz62rR+9VYEeKIFgdujLHeFfD27pvpKWZi2/OP\r\n3Ud02Vv5Qy9AQN94vlk/j2CfZibks8fZ8sTtmiNbdBpCGdtdu8X9kbK14bqy\r\njojuuCR3OzBHdsJoyOfL8+5M+DNJCl0yPMd3ltQs2J5MUIwGtW1FgN1/sQ9i\r\noztuTRsvU+bq7Yz9th2i6WEQg5YWvtisDF3Jv2IQfVFlSJqCYp9Bu7Og1N/h\r\n6u7N+HKI2pySB8cex4yVqBL7HTMfeeC4fG+84LQ38WqCFPgXDjXkOiiMHxza\r\nWfn34a3Jf5N1OqJuRLuGWo/+18xBf85rObAWtB9sMf3vl4Qgyu3yYbxVAxSP\r\nar4I7J33a1llCTxgIxWJ9Z6zLwaFmhWQgAl4Dwf4FjAxPpYWyiaPMsu88xRT\r\nXSLnywrBQNB4pkwe1/ACjXr6S+Yp4aJM1LoNr8lGw7ETEVite6ucdBd0FsSM\r\ns4jAOMu61x5D9zpsl49VvAnCKbxN+Qp8I3o=\r\n=Gg1j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.3.1_1659538269897_0.5441818405933039","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"swiss-ak","version":"1.4.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.4.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"d8eeca4410fb5f1e025632bc081a926eaeaad116","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.4.0.tgz","fileCount":20,"integrity":"sha512-PH0UfIkxMnyeQXnJYEmYGYyn4TxnVLwCzGskcACYKBeFVuL9AddH52mk//TkefLA7k+y/BSxCyVumgYXIk/R8Q==","signatures":[{"sig":"MEQCICdKYqQLH767otKclVIDfvaEAUDhUhQSmtpogqZGE14KAiBQv2wgI2/YqDpDYQpRW4TyGmlRNIwMhMxp3ORFqQhIzA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":80513,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6q9IACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqJcw//ephqLgL6GjhrD8gpzVe2NnKD/mMxzQzX/HZFgPVE+YJYIPAX\r\nmGy12RNV5/cVfkIE4WhJBuXdv+ksXFRH64mmwX1l6ROKo7qJrpcsyV6CKGh9\r\nkmcGgIKokSNykJXMtf26q5i/cEiTT9y+dALiVLZTPVJt8A2K/zSDzJ9namW/\r\nzE0qtn8QSmT+UvODOFsEkOIQDZ+gUfIbJEqY5cpQlAQFYB69MdL8qqbt1CM/\r\nLAq68/ugk6Q1PQiwZ7JNUAh4TmmZO4cfttBwbyJwELmrjygtkKhyap7RWLO1\r\neIhwTH85H6yjWjqrP/naO4ZnMu4QyDCSUqH1fwumLUWOdBUxXMOuiorvZLGi\r\nqELwlwlPJKnYZkN2cLi2PHcEZfQZyJE0cNL7bGORPlqYQqVyAHvOpy5eNSHd\r\nL7GKU2+MrFO777u5sng4/mx3OE0sF4KbrjqihqsCNm0noQn40rS3zM4MZ8m7\r\nYhmi5ZW9PT0MhnHT7f4UPhAzPbQElRKVvWYWphUpcfTOV7FE0/WxVGN0jLMC\r\nv3gb+46vJn/25iz/yCqUbCl6XeHzFCP1q6nk2Pzut/nvpeWP6NTny16e5GVG\r\nH7o2ja155cDUg6IRV2x3Dl28E0FCMJ6IpAJ1Tu/FE0R3ynVMMh2yUEisp3hC\r\ndafje39yX9giWUS6zO9BFChuhqGB8FoG8RQ=\r\n=FjT9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.4.0_1659547464039_0.3049821655230083","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"swiss-ak","version":"1.5.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.5.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"c6f44004d9388f19e26a4c79633d46a63adfc43f","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.5.0.tgz","fileCount":21,"integrity":"sha512-v/3B3CQ9PO9nR8cAJs7TVypS6iXc54Vp4hJriDvmL32Zahcbxo8r3Dj9h892gXgBsYHTwTNzA3IBPoN8t5nfGg==","signatures":[{"sig":"MEUCIBBfWb4SbHNJlwJmMXvBm0/wp4Wocauplhd9ILFNPcnEAiEAkhqKfjEESh1ohVy8aM4bb+S6puGRx7j+o+cDwMrGF20=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":95279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7HpfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpxxw//bdyN56IRrDVlBD2zwAoBZaPdt+G8fsKKm8MDi0gJbaBSbjpu\r\nY5rdYaOLM/Vd0ZByAzazg6mtfI6CVq2luKx2mtYYeG6SM0yN4fA4d5tKiWbO\r\nWnXOyntNYQFa/nrUiriVB5YsmTBvJUjtXDiSKuokjOlgR2+nV9xNP6feXrpy\r\n8j594hzDWYbg7oNjpoxlUqHMI/VKLBTpsiEc/ZoaYcGjayf0Bs3ydiJ4ir0J\r\nWtwJG8Vb5bDxuh9kQ/XWX9don36YD3Tv4xjkOBYEv8uT+19dtwBg66OaaNQF\r\nQZ0JUOYhannFeMilVzRFjBOtMQmK/WVOh/H0ql5WBmZ6JK1p1kLaRyqGMx10\r\n8sWJOrt+pZow/bdUSwbs4s+3zOt6QhsrUQJPl/jTmz2zoZ8lqIQx9gEoP+cY\r\ne5i77p3i8CGTy/z4SyVe34M0IKRv2RGkMj/SH08av3AXhrbCn3gg2P4d0XEa\r\nPhgLr2ET4dKZJ/qQgR55YxWDsitNWOxT4/UDqYZ3i04nALTddjEIGzt2PGWP\r\ncea8KU+oR/SABxp5wAYbzEG9a3NTicZebNmSPzSYb9BudqiZU7e/9GSAoLb/\r\npWiOEhNoZz9CTVLec7W6pmoUwe0V0ggn0XgxnGqzQeOL/c6/pqxpJF9MP3yc\r\nHKMGGkyCzzYSMOC4SVfiruyQcUKdtGKZ1Q4=\r\n=vJn/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.5.0_1659664991630_0.8668140469158199","host":"s3://npm-registry-packages"}},"1.6.0":{"name":"swiss-ak","version":"1.6.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.6.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"60254677a2b76dd40c07aaca3d802baf299d22d4","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.6.0.tgz","fileCount":21,"integrity":"sha512-ybkt4qat7Kdpre+MLhQ8WWXtWyOoM06T67ujxZRE5ekiYiV/E1NMH2RH5s4gnyWE75YkF/PazVqTv7LXd+0sMg==","signatures":[{"sig":"MEQCIDEXErZMtS8MQYdC2jYlolSpkYmrxSDhakag/d9kwK8uAiBv8OjsgjZ1PxFyIemuMp6jvjcswA/qsO0wKwahStufOw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":97271,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7kBIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoF7A/8CEzd5Z85F0XphBLh3ZUfayMawJJa3fB+0vjRpCsbVhbXJOkN\r\nsUEez49OaZgk3AU5CiLZlOb6/WHiTHJO99eKN+8gIb4vOWXHSuOlG8g4isRU\r\nb9qeAP5rJx4UhnpHROqQmy2Uo+XW28JPEyF35HKQWBe472f69MvCZSm0+2H4\r\nW3KKE4K4NPG4OxVR48K3BsOLzkYR3Mr7suMZAAZA0VchjrZDTq1biPHa+NKi\r\nGR2tM9mqv/Js7zuA2cIFA1Q5VRUSL9kCaU82n5FUWfd0JlZm8jihDxohJKvD\r\nmyd5kak7BRV99lMzW8o2UZe3W/t3o6Mi1gyxwZfBGZlkf+TNjkNeAGaN4UJe\r\nzayJDzknqZpHqeCdB1HKMcrCsDuD9KJwrhTpb87ataFxr85X0IVDtgKvNTE/\r\npS87ONO5XA2zlBNb+zlN67VsqtpFcvjZLH6ymxqljCNRKNTBzFPv8Hipu79U\r\nsajj2m/qyMD1HPMhm2XYuknDlfsH5r17kJ/Q/PDbgyXPJBq8jwr82ZLm4+P3\r\n2gcYjGfMnP8nsvZFJORpfAd7beXIrr87YhhxUBol0TQ/vf/j0YsAGpgzPzHj\r\nRJV+1TmXHTfQMc6c/3DdgPtqSAUnI2QpT0ZJKSTvfZrWGPNNPUEprNHR+T2B\r\nOaRavpDVSOuAC7ieAc2fB6vCm2/th+RZdOE=\r\n=VUdq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.6.0_1659781192151_0.9098958348120019","host":"s3://npm-registry-packages"}},"1.7.0":{"name":"swiss-ak","version":"1.7.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.7.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"c40bfcaf314f685546b019fc625b3ddc8c227bb2","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.7.0.tgz","fileCount":21,"integrity":"sha512-MWQoZuNgQMN3rqABX32+zdoyawtydkDPKyAn5vQcSn93W+x/vjbAdJtC5d1FcC4yRhq9YtVLmPNDTXe75rJf5w==","signatures":[{"sig":"MEUCICt8NHGD6rXxWOC1CDhL9/3Vg5a94QYPG0AVSYH5IVouAiEAwvqrw2K6MQ1xVCvuStW/dMfS2JquN0mbHzfJ0qmFlVM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":98499,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7kb3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoHRxAAmOojlXWhOi/eg0DQf5IwVFKdFgCNxxpSBsW42x92y0k/Uciz\r\ndfVZxPrDYetU2ODMvJmE5hUEmlHpZ3cxoTIiYkmFCLVpHF/mrfHBq5Bul7oN\r\nePfwcd7xmDnbrm7Zy/ZG3YciGRdOZ0ZcF76mfeaoDDeD3eHv/iJ0ALJ/20Jc\r\nkNpbkJEpqz/hyhP9+Uvu88l7dQKs9q0+gLy7xfDRDLNcfgDjp2vrxn8hCpUg\r\nQpMxvURt0U+58riIWO0oae3pJt/B/AKHC9TH1isqB4LxHWqfuFAN+8Mbg40N\r\nO79Fup8ra2ARTAxl8293rU22s9TXG4qWnSmuUcVqn9HLBkRHJg/vm2lsAz2W\r\nbnRd0aN3umfquTYqPCSiWwfPcQO2u4/4SoAcH8HhfMN8QtGHKkikjlnGyffB\r\nzKNAsdUclkYoDt+LhGTvkivJIqZC1gcki8YB09luY5ktIxS+oeMc7jVeunFG\r\nNfrovF+XxH0bFO2OBYHeBKczyoWTW5zgxGKeoPmGf/QUTodcU0KRAgUtA/79\r\nv0EtXk6+JEGDJ2t0GAvUNKrwyAHiwmfovKPnarfvuVI1CQg0W4wTtRiyr653\r\nQdS0wxAUxudUkMCUS9mq+L5cUGjzJyI6P9ojlz3RBjdF68b5zD5wZVMz2Vpf\r\nYrHUdU2OkLC/nd6zRy6t3P8NiuxDva4LuCQ=\r\n=VKYs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.7.0_1659782903496_0.39419655973245593","host":"s3://npm-registry-packages"}},"1.7.1":{"name":"swiss-ak","version":"1.7.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.7.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"4bb98bf360f07c4e07709b05194fe967dbc7bac1","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.7.1.tgz","fileCount":21,"integrity":"sha512-LsNP5JudAlWqXZAt6UrEF47HhJwXwrEZ6XsxXqZ65Ir7ILn+QhV89H7ZTO7RZGRBxgGcavvRu/r0GfH/XbL0kg==","signatures":[{"sig":"MEQCIAXIJfVaeddpi9O4R+5r+3GsVz7PE7uRJmjJF2fki5pLAiAtCwKgFAgn8JOma86EX7Vi4iKjrV/U5c1Clk+yv8vyUw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":99002,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8+2rACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqaJw/+Nf3ejZC3m49e8JeMjkU6Av1RbInDBlCjrsDSGyoKIfzqahYT\r\nl6zQQnZWUqyLaaFZxYhrMUr1YwuFwsdxGj7XIKoM3rW4TuhqmXFNTGKvWw+T\r\n4EXF2PnnYzjmcxSy4gfwVb7nWmNKjvUO3qV8s0bfzsDZLiLGSfgnL7UQ8HNK\r\nL1wLvfQJH9Ox1kmBurZsAwJ2q1HkQPbCFQQxKRcq8Q4WUjflgr981B+YJI4b\r\nYeVlJO0cLC4G0qXTrUk23hEQKfD2FYzxVEOKVtmFNgn/Jy0M+S2lN/QFCQAZ\r\njah+BPvVQ71tYoZEacnKy9+lgditqIyXtiQPgjS+yc70L9OpTA4lfIq36zEe\r\nhhQ6RJBMUtprwm74hV1SniYgwROo1sV8N+e6q1uI8zQVUSorDqvsmR4reI5A\r\nwj9JIaG46RzU6Pe9+UugjoAaeWoUyVGPSwAm6wIU4pzg6ht7L3ANAP2cGg8k\r\norYYG+x0lJpzLgvaRcmigY3D/49BAy7QEyS1qQ3h6uYRb+PjsRzLHOTPfaz2\r\ny/tE60+qwZ6NBxwcCZkRv470g9aLoToGZY/skEpmcQaYdB0r86WBgprHxyuI\r\nqMFoX8Vdd8KCyhMQNj82ry690Gr0jK2DJuaIhnY+PFuk/wI8PS9RZhUwEM+x\r\n2CaxPwKTHYy8yZASuerjM1qH51wpGKMEhhM=\r\n=LZ6g\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.7.1_1660153259336_0.24589673072993912","host":"s3://npm-registry-packages"}},"1.8.0":{"name":"swiss-ak","version":"1.8.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.8.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"8c6edc43e845b4a33dc59e8a8d0bedb38a63dcb3","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.8.0.tgz","fileCount":22,"integrity":"sha512-EHH/PzpzO3myOqHTCjSk2eGTni2Tcmys1duM9gnBrjQkf3jEqT1XOtRp/zAOVJ3wiZ6I3sDPph1e/4+Cbgah/w==","signatures":[{"sig":"MEUCIF9+ZWEnlIBsqdAog4C9xXemb1Grk/35Po3NGHb7ne9IAiEA4f6TGnSN0zGIuwJndKcWo1d4D13K+N6PiPDb1A15Px0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":103320,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9PHcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrJrA//RS0YR/kr4bEOhWUr6r9dnLHVonySIyrkFBW6yParQ45hkPdC\r\np62xQzZyGKS2+BVMBHCrVzV7s8n9jZWtZ+A4WXo1ljq3VK11vGiAst+D4NL1\r\nP3xea9vCsAsQBfVdssXFsjClx9aui0Xj0X/tKlA/M1aIFil9klXUB8DPOh7x\r\njz6ybpDDEZ9B2fssmyR8itRC7B7RIzu0MXP8FKq0z4mm7lStxxeAzskcbY4I\r\nWLikT0T3U0CY1qa6yLizJwU82+w307GQ1rFpIh88eW7/ok1f57GRjo0V4b6A\r\n9Qn89daDEEs3wIYtJoGPa5LdpuQ6+7Iljp30+OX+9Gc5H3uK+UhoPvCKHqwO\r\nPM8wIBB8Zca8wIORAPZCQe2rNiiuOtA1keYPX6i2l+9cLvG1hMm6a97OBd53\r\nUe2ydApAQn3XAf4yg+bFD6VDfKvi1mwyiPGAW3bsaeBao0WsfEpLjmfLyapK\r\nbCpUCK1SW8ymRIqRAPHooRnn/ngrJsCR0Yl9DQG3z5b2txw+wtP3aSCrF3I1\r\n6hBn6vvUPiJ3YfNE3fGgwVsqR7m3vI1lQZJ72KBYCpelZN63qcKSl6hFk+eV\r\nhppKWld5R6sC6hTg5QoxekK6AhsDqCdAnaHpvXZMsg8y1nlLxG+vNg7GxVZO\r\nl2h1EqBr67mc7e1gizAm47w3ES5UCm4EL18=\r\n=8Ajx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.8.0_1660219868135_0.9239306187064837","host":"s3://npm-registry-packages"}},"1.8.1":{"name":"swiss-ak","version":"1.8.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.8.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"d0e75f4dc4755fc5178cabeab2e58416d0c8131f","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.8.1.tgz","fileCount":22,"integrity":"sha512-KUJErCDqGCBmzUjw8pBoDXB/kWcte06olSl4DRLOLBFs58vat8rxHoOQwrVMcE8ZXOvoeHXFi3O7v6B5Cz0liQ==","signatures":[{"sig":"MEYCIQDKDKuwVwnj9Zj+8aHpfu/AS9UJzmy6QHcVzxsepCDs9QIhAKie2HM+CSMi5KaJyvYoyBzvUQUBjXx68ybE8d5SHh7P","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":103541,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9PXuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr08g//RhNWJjE/PlgRJqPiAIgGDeMaidOT6h0Eh8hWFb4L+Zx9XiuU\r\nAQsbfRcH4dRYMKnpjWiVx6zOy1Y/iFFZvszQy9oCiUVpYveYLNrgGeLr4Bi0\r\nnJVQW8v6FttMSodBnxiIWKVPXbfNxLghC7+uKCEU32yG0+QcK4c6vu7jOo8F\r\ny4ULZCjvsID+LQ8019uNUPMUz3FF18MYIlfFs0DjEjz6iVdqK2+ZL/cjAxGs\r\n3B9YcVSEeEtDRxfH+mHhEGxokbzf+InAZLyOgL7i+Ah2Nx6lHUAk5dZ4GuXO\r\nuR5ZDw4HyayqjazMgcOW2zx+xljBe7z3hbeqZ7sjEVpZbA6KEMrixRbEcNE5\r\nbH27ZzAzE3n4hk8nJMTjdy47Np/uKMZbPk6Bff4a9DoygRELiKKeyPxJgb80\r\ntUpFiZ8ytT1ItBi1/Dlv1L2WjCjFZ3rVmoBsJd8b8/zV8qJBUP5b8tj/0pOn\r\nSMaftGHQ5qfaW16mjvKmkDtbhLYYDUcWzklwNnJSNmfTLYy5Ka2mH15ZPrsV\r\n67t3uGdDHB0aG8JWEgJcsHMu3Rj9alZQkk4sIw1pq6EBj9OKy/XVdse0khXq\r\njwq+QVQA0YX3mfhQJr//25D7o+Oz1NGx/CSyD0hvAKipoiyzABZXmLETf2jO\r\nwvwOIYbF3woDAquL+aUcMNbP7T0Fpvclx30=\r\n=YTIg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.8.1_1660220910005_0.8722879039160079","host":"s3://npm-registry-packages"}},"1.8.2":{"name":"swiss-ak","version":"1.8.2","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.8.2","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"a301fae772be8a86e2268f5392eaf1119d46906e","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.8.2.tgz","fileCount":22,"integrity":"sha512-uHsBtNg3mGdmsIe/61NXetEQVm425o106aU+blKRVG8eed+4D8p/Rm6V8GzsYykWj+Xv+/dKh6RqBKclDaudZA==","signatures":[{"sig":"MEQCIHhPIZtRyPt7wTB2KJ9dz7Dh96pD5w62WAW/0Wh9EeQSAiBmiQTpJ9w2O9T057wYgyXQRi9xDVoPLFgdNsZgSc2gig==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":103797,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9XorACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoerQ/8Dy27U6XF5Ilkc7LNqpU2CTKDHqAfxvFmS1f2EyMSJ/oesH22\r\n+o7B9XYjQQ48EuBvdM/6Sx09MTeNqpi2ikKJI4KMLrARNjmLr/r8kR0tnJ9p\r\nWyy9i5WMOB5IOuhIhHa1dxsQkNuFMcbM487mrTzqgyy7vnbn+xKmyuKqN+N3\r\nSOfQWzpZgfUoryO5/slEKqimMk7hqY4Qi6Fy3KsROt6Wmz9O3qkzuIJSKcAX\r\nsnUS78PapZReVnynE5mqEeaDe/ZeXk4nxi9s22k+XLCwsMK6GTmlk/JHQh8p\r\nC2yi2N3RxSWTvh6ck6waB8yQfNPBRK82ZmAyXmvFpPNKP+gs1Tq6psn+9YRf\r\nXKT6x27Wh9K01rZpVxPL6jovPcx4pbNQstZWsBi56tSVdy+oEye5N3m0ajo0\r\nBKvBh3NlA67wPTNLpJMxJjni3M4Ayeqz2jSsqBFyF2M49BeoBwHqjumkxJBp\r\noNDiOv16IX9HVpNZG6l8V+kuOfpPm7RKyUPeLH3rPK7G8B7KtNg4A6pTjRJ/\r\nn4vkQBVccaXf9A7LrBBj/a2beZTiolGQHOKzTXpfUycTANDyyspNnPefdVT+\r\nwIcv+0VK2oGlo59wloRDivNxyjBE9AQCMrvjmaJJ7meePUiu5/pODqcMCUjO\r\nyE4ZcTY0t5XVKAPJcIQMmYeZt1YclQfl76k=\r\n=WWVY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.8.2_1660254763480_0.5944711617135134","host":"s3://npm-registry-packages"}},"1.9.0":{"name":"swiss-ak","version":"1.9.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.9.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"575c512cf90682061ff182f896517f609f50977c","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.9.0.tgz","fileCount":22,"integrity":"sha512-h3WQFCHrATTMr7wPXS5lLRpjjTDsFEXPYpWUawnsLB1LemHDAzbNpqbkplqz5DmmoXzlorW21T2zPy32uYUruw==","signatures":[{"sig":"MEQCIB2WZiTBAuVMFwjAx5xFHITPV4XVVaXVk8f6fndkue9pAiAZ5YwEN9avJfg1CJcLKsuPhOBKuMa8qdfLI1PR2f7DqQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106021,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9vMDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo5KA//TF4ctT6j2p0jtosQhLf7ym+50yT1NNE/BtwwA57VQ5JXgJiB\r\nVOzzFDR+Kci1fEtXtevyTPW8/pw9V9UL2Uuqm+S8ru0t2dGKS3Aq/Y5od/sU\r\nLINGsiMG9SX6nC5d6ynK8aafEjEhXe9qX7tDEykVT+m4BVBpM4ZT2OkxRsog\r\n4yxLWpiRn3t9KdTo+i/+xgITCt6gWEVBDQ6UZxFLdqLwgsogxrvn6RccDzbD\r\n5gCGTkgh3ZbHNFuh/3M+2ywHJbBE3BvHAH2X46M0MhUixtN/QeCcuVFdTYEu\r\n8Kx/5ooLekXNSi5oj1mPZNstZ/5jC7wcP+FmOAfIv5EC/hx+EvwShzje34DO\r\nKXJlW6JxEPBHQ18Zk236Rqc0lveRP3tfPFqZqnjmLEQx8OYex8UpBwbSskBR\r\nlDyryyM3SgCNoHMOOOckcSyG9lubtyxAsGX3CZlUK2KgpA5uaE8DavWOwHcJ\r\nrwsX7ia4UTeVVD/pqFw7E6JRBuKSzshJNfy6sl/NUfNjEtk70GjyF+3BbPJ0\r\nk6UuA8U0GisQppqlwvLTEJ7YtyJZd/W4mYwtxRX9gZ1zkVEZ7jcQVLi6384m\r\nh3J5mqB3pSQOQF3tAIPfQISzwhPzkUJ/SzirWjvrNBlD/juacs1ne8a0NQIV\r\nDOd/pH+vnN/DjkTevTCvBuSNjx0uUe9vksg=\r\n=Q/BA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.9.0_1660351234869_0.6392133853268214","host":"s3://npm-registry-packages"}},"1.9.1":{"name":"swiss-ak","version":"1.9.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.9.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"e18acdd80ec088ab52d3604e90de3fc1bda1ce06","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.9.1.tgz","fileCount":22,"integrity":"sha512-NeBJfEU0uxIgztgvap9uLlukV02BmO1sVh+HoYG0mMyncwtqJa/BZQSuqrzLamaaOt+dT7CC0Bk/NVyhCx7hrg==","signatures":[{"sig":"MEQCICt9noiLfhs/AfA/9sp+N26vSL+tfotB3QXjd2AQDbvhAiBded5t3W4j+FiV0Lmh1kapGWtKNWHx13T64Yaf2EcQXg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":126655,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi+r6cACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpX4w//dAZV36py0bpB6xoO0bah+bgbo0n9kLFqDEt/KngU7aM2HTfl\r\nMlAIB2/a6ZDsGCaNLZegqhiiULMEMz82VlUZxrE1N7CSYQgexGwinhIGq/c/\r\nKp7deOWuQQGRq0JzeziS2EbNFlo8TZJnKEwsnir0p+3cQtwrGRTLrMA/CTYD\r\nkB9wJMpPx1AiqSUNwcvHcF625wD8rnaz6MJhWnSsBQgKQ+u1SdMP3bYiocJO\r\na+xOOqTW1s4yNG0i1QTBZDlYW/UTEKyw9WOeeIWD3/3T0Jk6uoX+s+YqDpEl\r\noKVonaSrZY4qRb16lhGoHy/eHKX6mbfv2zoMcjctadZ6wqAMuDzWLlanfjIb\r\nQ6hYjTh63hS7LzwvYirrPom6ieClinnqij6RwNBaTsxissQIV5HGdwUyZH1x\r\n8lK7bwQ9Xu/P88M+YiXid4tYpxZch554d3rtJ+Me9EYTR1qkXuIyk9gi7fBa\r\n7r9ya5ULluy2IoFEpiuf4MSCOXlUPatMyi4kP9Gmw5PYel0Fqelxh3xbBT8b\r\neQALJgYrvbZtQifqWl4diPBjNn3WDX8FdCXYnC2/3uwKaI1Jcm4xbAxWYPcc\r\n/cY6OZk6oP+xQAu+VobnvjdlB12x5QNYEC6Pn6h/gLe4ebdwFei5o8mGM6IU\r\nhUqdthnvsjHMW5Hvr8yP0ZKE8+u0UKEu5jk=\r\n=GeUv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.9.1_1660599964535_0.24297216982035996","host":"s3://npm-registry-packages"}},"1.9.2":{"name":"swiss-ak","version":"1.9.2","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.9.2","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"aa5dead8cbe720bf4114e7651ffbb9c02c47c816","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.9.2.tgz","fileCount":22,"integrity":"sha512-xutUT0q5WK7FtVDcBwge4P5piF64DCFTiWhr65pe9bSJT/GtGcxaWLZrs/Xf2FEmAESCeD/OKBy2OsDZlqV+lg==","signatures":[{"sig":"MEUCIQCzo3MEcTOKit4uWXQh/2kCPsJjDDlQ18FJbopfRm+EtwIgOswO+YU5pZbnrve959X3Xc8OuzZdy3zxM5ZYc2TjIo0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":130031,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi+sO7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp93BAAiE1MHIyfKV3XOV2oVP/cZXL9/yUrUgrIshem09rm/q0W4QaW\r\nbIywlAn67PiQzDX85AJvWYppMHKCmqVz0AszAh0TICyL1eiVhYPFWmOcuKK8\r\n8DfDLm0mWX8W8ryERo+Dgwg2FXmTYaO161gb4Q1QM6WHpm/8RAcyhtie5K5B\r\nAfIfWD7siJTU8YDUzEb6zWA3LP1hw6HBqLKia8Qa1B/qNhrEd02P/tn7zWIf\r\nXDegPSn1g33fNoRUFXlOeZNynGBwPe5HSmcQa1KWhHYFZaNzsOnAN2NqGnvC\r\nhvxRcNeJrtSsvkISvTX2Q0MHUKWl6U29IpYZ566k6cRLBRrP5gOZmorirx34\r\nzf1goE8t8zchhVYFhYZH5uhJGCOVnppX3ND9y6LFqypG4u8UWutPTO2zMRsX\r\n9QpiUZA0IBSMWiBE3zhWP4b3JbgP+ABC5edA3m/dzZhU3sTJ4QUdXha4oS9Y\r\neiaYEj+JTH8WdDaru+um5xNbORjnD9CKOonNXo4c3j4Xlm2llOMbhSJ6327m\r\nsw6mC/exkeL5Kn/Iceq9pcCTPZUxM5JNn5EVed2UT+qSjSFsg1cW3ysyxRhS\r\nR/weysmkRZKQtTIe1NklMrpRvx4FM4WHSkEb/qfP+/eznfQT/ZOUc2onmh+9\r\nOFLhHN7mLROqfBeiDnxx+F7Pp8D2zb8GcHQ=\r\n=nIgq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.9.2_1660601275210_0.5752634961229943","host":"s3://npm-registry-packages"}},"1.10.0":{"name":"swiss-ak","version":"1.10.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.10.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"c8101f04a2cd71a6cd6bc9e50a439639271dd562","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.10.0.tgz","fileCount":23,"integrity":"sha512-FcpPtvy1esTT9KvkLYQ2TYryzrFLQp2z05TPX6ZA1cCbevzV9ddWvVVngt0t+/vRCIR9+dZN3mUQ/u0GPMKOkQ==","signatures":[{"sig":"MEYCIQC4Y1tM+EIkef0L3WZEjQuXVd3coqh7YXYGBShrgFhYyQIhAJpTPNFwuCc+G/UBANwoCMvtiw3RjeJSuKx39300LJJA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":138091,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi+ua+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmphng//ZevO5LpHFGlZ/j6jlcQGSfYepw/u1WO5ydDNKs7NzU9M0wAR\r\n46GKZMH7H4+R97q/qMMQ7O+FWBh9n5HsMVHLHvyIgjqxd6oQ0lzjlXBEUqtJ\r\n8tfZbwkdPIHWnzk16TwvkALUdfrXPo7/ACAEP6+sM2F0rl7zT0W/t0LgU6vP\r\nodSZMc+CqgYaU2USN7xAxANjmJIIwg5N/DNJo3DnPtLRSoXP+gP2V3R6SV1F\r\nnG51nZKAu7B80rSAJbuGgLLlgjJ81WJmKX0u7XZRSFEO/X0ihUDIdlOeaGrh\r\nHIXMx6YYX5EfbhN2u07E7Um+m82we2h/xr79C6i+e4FB4N/SaHoj7jgLlRcQ\r\nq11U7Nk9GqRjb8tmyQCdjd7QDJa2Lx3P86FSXfMYKf89eLsmGql4YVOdsOKA\r\n9wlB7ZtW9S/6Be1I+WCT/62cSh6MP971X6Ikyubn5ezppFT653YTGdZn6Ngj\r\ntOuq7VeLJ/SZtb5LnUCOXES14yNAZefuHSIxxOMrNP4TiGM4fXBzdsCLcFJs\r\nQqONq3pIxGcn8vGyiF0Ym89AH1p11SmGIm/q3jphLUjqgZzEI5mfg2ljsbW2\r\noFUL4CqNAJl+YIzx4UqqJFCSypWXGOUgnS787BVUR8p7ki9gFPaJXHrFfcAl\r\nekcwD1VbpFztG4wT8a+GGowjRk0LIawSGlU=\r\n=ttmQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.10.0_1660610237944_0.11965765107818327","host":"s3://npm-registry-packages"}},"1.10.1":{"name":"swiss-ak","version":"1.10.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.10.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"dc7690a69da4bd9a42d4491e7532ea7072841bcc","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.10.1.tgz","fileCount":23,"integrity":"sha512-KNEaaH9U5eO5AgO6LFxLmqz/pmPb0fVYOqKBX29oGJ+DBe3mcRjCd9GSRNu2USMgIbSmKTUMXgMMSqrVv9B7Ig==","signatures":[{"sig":"MEYCIQC4L9B4iXyvZzjLdL86VwjlapZTc1ZFARUZcZKQ/MyHHAIhAJBXk4w2Shc6fM1cKanZEfP9Va1Tnex3cGeNhj6ouogq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":138091,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi+ucQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqGvA//b9hQoZ7AiPGKOmzhQfdaxlcT2menFzINzk4J5SDbQHwk0E0y\r\nRonrmx4fGrWF8WZT2m+lxmAum3NqnewUh8t6e8AbaA9uYFHqAU2PPODlBZ7e\r\nhSvRkEZU6/VdBaXLXRj007OptC8fU5cFWXDSzNbng2PQlc1djjRNOsPQiosT\r\nSvvVKADGw4ub0QWtQrbVKotudbgJ8ZueK0+V8Ix8ataBsXW9J+E5ajNQ09oe\r\naSUhQAu2nKi27XiMjyswzxvFK6YfYjlPiSSZVuSr+9SkViclxQn9Qm3CgHer\r\nHhNDszgAl307aSEalV8K/U/Np6OWofh3FjSh44IJOqWXvf8bRADONF0MXF4z\r\nqUqmLbJSFusGyXrBrzWnEnDbcAJb6Smqig7jJMJxr0/IMlYk7YJoADYqmubn\r\nhyEm0yltBKbIkeEChbLsTgEn7l9bmcbxwa+X/Gq4PtlgbBUtu4YG2f2qo7TI\r\ndyauxT730KPbU3b8OWw4vy4Vna168gBvWYOwu26sNsd9jUxW3ipWR7j+wUlm\r\n4Bp8+HirbtVaBNdBy6LDh+ujavTv4JE83IiMpt8NJfuTmA0X2GliyRpQZjLE\r\nUwnj/QpNeVbAc88+kF9TA+8T4dsKpe/H8EsQScFYMApuItKpg5avnrpu94hn\r\nWsf/qiX+mLBZIw0VHEH5kAbpZ3gQwhNbusM=\r\n=qbPb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.10.1_1660610320283_0.6910346774610443","host":"s3://npm-registry-packages"}},"1.10.2":{"name":"swiss-ak","version":"1.10.2","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.10.2","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"7b60bff61dd4645a2ab046fde21ee4dc06ee9d21","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.10.2.tgz","fileCount":23,"integrity":"sha512-TkLyl2ApLv/0FJ+g8oL9UFu6R4DymDy0/0W2CdIhOKPrL+tU3X5IFGbCyfTimUVGR/xw2OPutavJ7+QRc2Ot3w==","signatures":[{"sig":"MEUCIEkSVv7K5gnevayrXWICYODI6P5p4XEWO+ELP0ufpaTXAiEAvb/E/K70ALAaNRXIhDHiDDLTM4jCxLGhxX7a1CmiSag=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":137928,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/RUlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoONQ//QohbAObef0pUT9nZ8Ksg+MJHnT5yumGx6QO1mvtiXWUeEj6k\r\nHVHrXMPnHw2z9kox6m6YNbAAbRv0xLMaYN7+YVwDGLlCkMSr5nA53T8wuCtU\r\ndd5kC0wspaTytWGK+XBHDIuc4X3G3fH/XRFif/mdovTbG7F8O5sZVeO9cGm4\r\nOtSaHTWNCYkMxxQpZtC1dPm+98Z2pylCZymzAXkQrhykFyJsOF8n5DowLFr9\r\nnTuq0/cTjOApp2cVEqfCuXHlR2XHSnHOh4MgiUiAgsVsb06Wjfj1GfqgtJe2\r\nj2zswuHpPaTm9dy+KWj2kGP/qRiod6qVIuaQNShKOd0cuIaVlPICtdGIMD1U\r\nqhOST4gWX28ePWZ2swbQEEp7pKjSOq0Qknf5zeYjq9nl8ht/9LfUW+bjqTLZ\r\nuPmYwPoVUSdx/ygByi+Ox4Ya79hHpbiKEbFeoy09YsJIwe0vv7DygFZCK6zY\r\n8kEu8bnelX0fJkmO6/NA9dASxiGiiGEkxwZVPmaUvxl+bXATJLTb9fSZZvI0\r\ntmj3aOL3u9+G4oWjawhexmwV5tvlpxr0nXG5KcolOne2fC+GXtoIPp7eizig\r\n8zVSyPdDjHv62jJl5UJPJp5cH5zsHD7JFCPeKQBGKPJpPYCKkXe4Augg/0+W\r\n77yYLDz2HNScH9Etzot9lCCKr8tba/SCDmw=\r\n=DNtI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.10.2_1660753189031_0.036127612256681374","host":"s3://npm-registry-packages"}},"1.11.0":{"name":"swiss-ak","version":"1.11.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.11.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"ef9cd749067c35d37081eb9f7f43af6ef513a6a5","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.11.0.tgz","fileCount":25,"integrity":"sha512-ipCi93oEPnmqZUu8VKgmL0MGl+E8ie/7mxjwDeiSy9Yp0vqMaTmVCAFHYW8vE9KAAYl6IkCxPohBiV64221qBQ==","signatures":[{"sig":"MEQCIFkGhbJdP2xdzxSxO+zyx//J7MDxnzoV5i7abXyn3KKYAiBL5Sp6lOwx6iaF/cF1fyhtZAwr3fgnSr8tBOrwHcXXPA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":154858,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjCWDrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpTIQ//ZR2PlVwl2IuUGkT2QH/zVIFpDnfXIlN4AJmfV2LNWoNWLcmB\r\nYVgD2aNB9mowRKErq9DcFWDgwGLyJoN3glc3/5ipe3uFg7oAYfn1ui8zTVO2\r\nD4DXsWqGXo3apfoSZj1fnzzqav9FIby6hgiMts/StMpcARJcEoT7TgtClkmF\r\n4aKcrU5KKWeqsrW/XmXv8p9zguCVUlGqke/6Vgr8ciptGmGWxFOugcPqdH6q\r\nI4XoNnimBsXegWiCQCphmXJ9D0mYznr5oYaX7r0AVfNWGU2PFnw0EhVX+OBC\r\nOrsWZwbVSwfvmBFd8a581g3XKvy1b1LfwzyNzSTF4XvbJaasVSfLxBDVWQzf\r\nLjb1UyyVBTqcYpbj0JcTSwknr9NB2ACP8/oFO7OJWKrIq3ISahnG5WQ8eu0/\r\npsjy+w7EpdtzIkZ0JRUoyD5xfIIhUGvlkXwrAVGrAfRBdBbKI2+KwTmoKhuP\r\nailku70nnNup5sY9VNBKygMawrHTA1bmkAfDMxPpleZD91PrtEDX7qLkDMTz\r\ni8Q89CcEyYlpQice4Uq+W0/GyLsMbAIWgcFOT9PHBoAGlhUiiS3eIDjc6pFo\r\nQRP8ECoDGqqcKDF+//vadbSg0GNHUU6ADTK/mxRArBUZiWOrQPdome32aeAa\r\nsDrqsmliU8il/m7RwkgiOFYpeXBKNfxZqgQ=\r\n=mTBK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.11.0_1661559019597_0.9268126032993858","host":"s3://npm-registry-packages"}},"1.12.0":{"name":"swiss-ak","version":"1.12.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.12.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"c24433e28328d9f5c34e0f999bef8d009c402984","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.12.0.tgz","fileCount":26,"integrity":"sha512-fXi2kvMOT991hpgruU3Kl7nZur7icjwpJg6maYYfvRUS6L9lFcwdXpSjw+icIAfyVjiF+0bybV4qRne4E6gLow==","signatures":[{"sig":"MEQCIEMlIquUp41lBoAsWl2MX+4zLRAvGxfnc5Knw4i5XDGNAiAlebJpnHW+NG6mBgO7DB1Dpnyk/TRW8PkzD6dYP4Yl5A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":208936,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjIh62ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrwUQ//SM3fJhSKEpHoLFeeKwCwqjRw45sqmAdPXQXN14TwDyQ7Nqhu\r\n5UZTam/4O7A/+v+fG00psn/+wxyt3vWHLj9HAeBEUpKKRivIqLVtGg9u79rW\r\n5uZp2uLE15jU1rf0p2qvOi3pLma1xICg+nZ3q2yUsOIFTcZL4jgEX5TGwdNp\r\nraaE1Jy37FDbi6Loplb5ofwvEIc72n2QIP6KkqeafHSF2f2jcdkPEmm5hBUs\r\nYc8dAFopbd0IBiLbczFagMXJRV/m7X1h5IBfk14SczBjtPlSFFwPrjw2TP06\r\n0HT/laEqOqfah9s7TLvDGeCL3Pc7zxJMCDbqc1QUZvyKNZ2icPm75NjQ43EH\r\nur5Ofc9MnR6Wll6cpxlaBQbnBtVoyB5EdG6Jw17NGMOO6Q3VCXn9LdB1wlAE\r\nPsM1fKZlftrhLda/cSheLspf4qm8I+XnMgTBn6m2reG+hDGyxpnRIVWuykhX\r\n3LFWRxNgJ4XFbIhJIETpVZDaW4oCQutRoE+98Tl7pVt9/69fl2lC8+QEXYcp\r\nce/x+p8EKB+3TxC6/eWfnGEbMa5owvvf9rzI9cJDwcpxdnwPVuNIG7dmKn44\r\niRBxs3QOxByRB4ZLOMgj6ARfnZyoDRhcYlJFxZ1MQkB3rbhcs8fVoAJOrq0z\r\nE/BTXV3ZK6zj4GjSxP3EDjgkF39VSUcAICY=\r\n=4aRB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.12.0_1663180470304_0.6228393729822501","host":"s3://npm-registry-packages"}},"1.12.1":{"name":"swiss-ak","version":"1.12.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.12.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"e9b438861552dc08d8732b66454b7d8d2fa7c78c","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.12.1.tgz","fileCount":27,"integrity":"sha512-UQ2sujjDLgREY2LbCaeIhToaEzBMc7cvV47lgrgQ0Y0wkoExU2/YXBn8O5OJMmpGJ9xpJYXm6DZEdun+CrKRqg==","signatures":[{"sig":"MEUCIQCnbwUwD0Rpsmsdo5uP7QFeepwqyl27NmFdzXoypAFipgIgC0vqqHxnOecDjaA+mebn5FsDV5PntJzscUfAsJNADYI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":223695,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjmb8qACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpnYQ/+JsiClKmY2H+lsjU2qqmydDSIbFZmfITAXEFxXyKqs5/nxH+6\r\n8VL2gmr12JzzxrrOFXI75Tkc3Gdz3PaeGG77kk1KH99R/lhUXHLbrIdGkge9\r\n5fYplvN79U3E3ZSAqQ5WZmzyqw7cjWiJUJThzmM6ln+YZrH5/f6G4W2QDH5d\r\njSRqseF1Ow2yxm9u6IZX+HSj7EZT+Xh7G5a0+43pZwYCePV0QbcH9AUXNQri\r\nZtv+VnlM9l+s8eDEDILKJoYu11slDZ9eRMoD/BHAJwuoDiFUVDFZ65mCMVRT\r\nYt8GywObWVprI4nI/bbDHp3VvZjl2ITEkgRaXRaPkiEVboc03o5GoJUhEfjO\r\niElGBUwMjqNDSurgHZp9zkdrFoPHxplw90kFjwJTQOcOvav+HWiw2HOwO9DM\r\nA2/f8BHvxel+CrmuJ5y7Hj04HPdy9yEfqKGmdvy1Ii1MaYMUPJXiMsvqT4jt\r\nUbnweDg/7ob6rvHamHK0fFdCkHLJpRO60LXdcAGzMhnf5WgWfJYrfnxClPoc\r\n50zi8bjN2kxdd10Y/+ZQXM8JkUe2ys3On6kp531kR8gR7Dp29IEvBpVvF6G5\r\nkcIsfCgw3pfhs/Jr+PDbaR2Gi0COlR8VOTzYMVkNqM7gX7lqUpjF04siRVHk\r\nUhHL1zSaWQVN0Kckf8KGEME1qDsp5J3zbdo=\r\n=VNPo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.12.1_1671020329774_0.9065745914904593","host":"s3://npm-registry-packages"}},"1.13.0":{"name":"swiss-ak","version":"1.13.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.13.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"c15f0f3bd5864c025a7df839da3f4255b450ad4a","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.13.0.tgz","fileCount":27,"integrity":"sha512-d8HSaXvCzDirFzgddHhL2qP/jkTnGuJcQeVt8qy4Gim+Ddc+znwixEcKszqotuVAojEH/ANu36c7iURR+Hbd6A==","signatures":[{"sig":"MEQCIARS7X0YJvVO7LBEl4swUFM+IfHWI5zypfNSkkXirDSBAiBQ61CRfPf6xsd8wIMuxzVLjQMlt1iHdqk525TMu4irbg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":225434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjqvNYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqw2A/9GUBUDWZOXNfzeICO7i2j92bZ0bMz/Lxr1p63WLtWOSCc/c0f\r\nxEYUgw8NBSK1QdJMHAp05odzpgxJ36q8bWGMIKBGCybms0S/JkPQysmmrzpB\r\nVKddoRWCxL66nsOqjfKM+K5ukPVaWRXBElcORpAG7D8glAOqYOWQodUvTWmC\r\nVD3fiEcg/a4Q9BMzQgFcABobqCVbYUeJ0inRxazNKQJSzbtl43tdAdSihuzV\r\nHBUiF6TxxuZUZzNuXdwSVxgg5QAydZcSzxmDiqrt25eyFy7DYA1YOtX2ZIFj\r\njYpIUqfdHLDbzKozWVPGyAnTJxd9UXmVct54zdvzfSaAdnUUx2OIzfz3lEKU\r\nU8Xa47onqed4mfeejTHMZVmekLxV04pgGzWp9MPj5ZohqHQ9RSf2IkbGL/Ml\r\niqp4jzDcy/ciuFBbhK4G/iKKKGLldpHQHsDa34hrpAUo9vXTPbt0S+f//6+C\r\nDCerFK5i7dPKf3vW4w95Oq9ne+olsehEMcvviK5BSLmdIzx55LXnzETY704f\r\nJX0bNeFmGuaF9PZ/BFKdyvICp2mwREx1J+GIWAfA87ENRW5fdiYIKRbetB6l\r\ni3lvfFD169jcGIgNWxx3N0NT1sId9JsH1eMc0rGnQaMXYQdqTqPj/d3m+ot5\r\nqdul25MOTJKns5yt/Bl24xwRZbuWUfkHVeI=\r\n=O+af\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.13.0_1672147800750_0.559446104725094","host":"s3://npm-registry-packages"}},"1.14.0":{"name":"swiss-ak","version":"1.14.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.14.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"b5ab9996e8c846520b25f1a165bf31db7bdf4248","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.14.0.tgz","fileCount":27,"integrity":"sha512-/TqaoNlMsUSm3eoX3exiRZFu2JR83+RUObdt6QWkBWIxfT6iiMmPz+01y4Flno82KL1lYW+FmEUSF0iKzWJTRw==","signatures":[{"sig":"MEYCIQDsN6dZMtLC530Fh4BoANzeVmSc7E4zrj4LeMrAUILJWwIhAOTGguYNXiJhP5EWisR1U4SEN4yckXZpBfh4aVqOYlB9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":226263,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrW6UACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp2GRAAlRshD+BrNje77AS5S2NuaF3YLFj/WcoE6q236+GMFS+gHJP0\r\nom+aEGl6U8k38dwUdWY2T9EhIxwp8nse8dkUK1O8z1xZzQ39+MAxknV9LljB\r\nTv1WuIiaxVM9kHcu6KjeMEri/wROglcJ6zjl7RtB7G+IKu251Cy151et6Zil\r\nr6nr8TOf1jolph28MpXiX9MM4J60PFcIs3M55r00LJdeHNa8x4ku+mHMyADe\r\nyUe2sbjT7Ow86XltGaxS5CEcK2ed93/cKcT+OTZ3d5qTH9nXFEZsa00LiGu1\r\ndDWkJSOlqIJUN+ltM5AIlPkVrrkHnkpoJq2ye0zjm7uZIZxsHjG2nUFarLKo\r\n2hrm3GJe60n69K/9YXvizPZIwHY8K7CCGZ5Bi8y6vVccajbIGdFsrRKSDr1e\r\nIzM0z4W5ZrkxoaMYBMrYwl/4urpFTW7fisi8zzTJYAUFRwqc2EhOO2jnXPDd\r\nJXDyjvaP1XYlpVhVfq+utx09MdGLz90ctoJBv+sIIBL3kmKgpvkOmDz5ed6H\r\ntUuR7zrRBhVUV0KBg/sTdYBb8ssEkOghFg3z/4FwPHW4UzFOqizjIX4VrvV+\r\nHEBR6fyt39rW2TojH/sqMW2hQxfrer1npLfrXzyf2kn8mF4zYExbCvJDuRk3\r\nAiMmlnx8cPHrII1h7FBi3pNhlgRUdeWyhg4=\r\n=0pO6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.14.0_1672310420206_0.3894069866930847","host":"s3://npm-registry-packages"}},"1.15.0":{"name":"swiss-ak","version":"1.15.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.15.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"de61d92e193d37d921f995d4d0df3f3ad972908e","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.15.0.tgz","fileCount":28,"integrity":"sha512-66TJJs15EIglWOVkLL+VPAnkm13wx7VeIl6OFhexZFsEBKYul5MMM0DlEOk2rGE7wgurJYUh7k1g6jVgG8DX9Q==","signatures":[{"sig":"MEYCIQCl3VCqbTCy/1A9Jc67JfBIbUNQqRPZgIBt5jqGd4KPmQIhAIB0DIh8pC5RbQhah45h6VZD09mPxOz2M4eDmXvTpgSD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":229061,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrvDJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpH6Q/+JEETmz3fPdd3+hH5E0vFp2509WU0jxv4AaWyTif0t9IFShA9\r\n52O/vekkFZDSWMLFQfWSns2s5CJxdOSNbTZM6HmGtsm4QgpU5S+8GzvTA0mJ\r\nW/20yBhbORpyVc/NVsYBgaT/0z4AJnl0vpD7pOT3Abo0dD2+CXUfr+bSLWmS\r\nQebOk1Qrdkvz4lKaro8ovgSto/CQFwoMRkV+Eegg9p91G/I/Z+Zh+KVMowXw\r\nVIax1vHhLpF9XsQfVg1eWDL/MWuruOjx7nICEkFYiijM5HRIjcR5BwuWSWe/\r\nrCl87EkvMS7wzdx2bMTrGJxWjpZUukBoNiejQLPCI0A5O981KI047xtt4Ej1\r\nfb61v7GUPAfoJGpm9PIKDMN+6A9/DPgZC4RGMW11ZqvKdQ2/3OhZvx7hGhAm\r\nGhS+VNcxc2YFKB0m9nVnLR64jXwbuR4DnhjJ8aAVUrlJu8jTiO7gfai1wgGU\r\ne1PF8xqGtCFxYOFSJMqQosKmmDe8EzaJiC4kOtJ7UQRuITzSBtfzs2qcSqDX\r\nZCp8KJvijP+4ClraX4RgOWZsR0RBLm+wCpMA6HuhEMUuxFB+oo9VlcdlsQ/A\r\nX8OpksldLcSVWwIo93BQx1woNnxSq76aM6Ahyx0xySl4zNoRnUdWgQBwANnW\r\nMcwo2o1Ln4bTyDYPbcBsSMkakHMw4NwaDZc=\r\n=Ub1J\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.15.0_1672409289364_0.2971419665551025","host":"s3://npm-registry-packages"}},"1.16.0":{"name":"swiss-ak","version":"1.16.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.16.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"64f8cc80f760c4b5f387871c451ead50ca6d3767","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.16.0.tgz","fileCount":28,"integrity":"sha512-ceDWtL8A2I3twIdZr9xlJGHfLPYHJ4CAr2sfr9W/a9IHuXfbwt0mtxDuFqnmZEqcsyKJa9yQb+EE8bKZSJ8JGg==","signatures":[{"sig":"MEUCIG7F9+yUQ4xCezh4fFmrP+KNhtRQvY8tWdtpVJicQkbAAiEAs7HG+jLdq3mSgqagpfTy5ZxLZBRm9nv3D264IPopyUY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":230523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjryaZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo01g/+OaEA3pXazgcaYN8FoAvrjmb0azCpdvvb+n+kkonmNa5aodYN\r\ngDB/I91emlpScA1C7acUII21GHSPc5TgkfocHkYGKGbYez4zQBhVmmhkTinu\r\neG3l4TbB8DoYnlBb3LS/Ie3r0TNMH7mZ1fCnAgOieD5ILvyasTpfYHMg4+mr\r\nDJ7qQe/V5qzj+YAFdTamxR0nC5+rbPnlY/PmbVTdtKeKVicaLYg6G6X9pOnL\r\naMBErZwh3XGahLxnJGf2DpK4uYYRKwfLnEOZMxOQ3pe1xETaO3szh7SjPoHj\r\n5wHgHXgmN22qeExl9yg8vox6EOPK4E+7WogpFjAnnyueUgu2wXE4tUg/ysv1\r\nGsHWgbn2JWYLVT6kKIVh8gJ4zTzl3QZUwmFnkmBF7Qyts0+Z+Jjyu59K4BcB\r\nFM1+Uq7WeCmBHdOvlOQmF9xx1h0/uz53VDHq8mW5vK4gDR56r9F7Bmzp6qz5\r\nxWCIsB2ScvMtN4chbmlvayfq74xpr20EqXkAT3bIWG2G/yi2t/YXEWfE2Y5m\r\nQGuQ1ON+k0ghzGb5udEqVVb2OYVGogglitQ2iHGdmXzAlXyT/mFS2mNiDQDf\r\nbg+7IYAuG3hcW1wx9cTqK+BRbxshZ4DCqD5kbZYFQSJYdzfVr8pvvfSGu+Iz\r\nvYXMO5uJbHyex6O55oaqyBazIpGYU9yNEkk=\r\n=tYqE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.16.0_1672423065434_0.36268974670869336","host":"s3://npm-registry-packages"}},"1.16.1":{"name":"swiss-ak","version":"1.16.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.16.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"89329dc6ee60d3245e670f46806be2034d64a301","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.16.1.tgz","fileCount":28,"integrity":"sha512-fsDmGUWOnqewLJmOEQXyqiJJHR6wdcGxNgbe1wceNo8JN+MNZ6Dty5p2HTWRKfjFaK3EjVNQBY04VntIOaPDig==","signatures":[{"sig":"MEQCIArKI+FWEW8qf4lSITztU1WHPtdBL3ruiojnBaNSuknFAiBWw6uwavijgOiNZAuNebZvjSqXiCK8tOHBtoqqE1xjNg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":230601,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvAGPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpsAA//dcArWiboWAfNgsVAEugVwVhWr4AMHUprsnkq8fDbz1Fhc14t\r\nddOVwV9sE8SKDAfcfA17mpsQttmCuCTuocdK/DV/s1S+MY/xjD+bG7u6ix/S\r\nCMOAVLnW8aUoXYHIc8fN3GGYi1PvEwgxNh2Bih5ytfNP6rPNWxhA0tSZgn4W\r\n8RGTCV314EI5WfNR+IpGfJB23YK+V6j5T6dR2kAz/nNmYpJ0MQlXgmIkmTUO\r\nmeMnDGxKgIn5ppJxGBCkkXk1ghQ83HoefJk6pmxNOar7FL9Jd6syNkWfycw3\r\n1+iQI/+n9EYZwgxn93KqK3a/SaMGMEZ7roZwksOKFCNW6WgzFXDrpUcDYxcl\r\nX7Tz1+HNaEDWWJDJFRQz+t5rd4U11KkmGwcu5MSXLq8VR/WMhc37MwmbAr6d\r\nX9VBahv+sJrJvwjDqHVM8uQI5IOUUY0BfW9RIPcr+mEde4nivD8PwwXhg51D\r\nPxMnfZcvOmLWRuW4H5Xjor/wyQDWtvuPMv82xVan6a95qXmKvfLtWgEWA6nY\r\njctDmL3irsQ4iDf00Rfw4Bsp30HQK2US+2EFpydz2yMqxLWx+8VzQfRXC1Tw\r\n+69GzYo+SURJ825Y6w+TyotfqBiEkp3n7cnP5/5Cy9WsHs3MKcZAcVDAsCm3\r\n6X/fBJGtKEVon3AFavFoxYp6O3r4Xdvwnaw=\r\n=HnWw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.16.1_1673265551634_0.05970441807593274","host":"s3://npm-registry-packages"}},"1.17.0":{"name":"swiss-ak","version":"1.17.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.17.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"150dddcf1c63aef8e49f4d6aa8f25ea1706990c8","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.17.0.tgz","fileCount":28,"integrity":"sha512-qfyAEI5KdJyW3RjYBPqxsswHq12/7EMPu1J+fZaypPtkfjOLP4LDTZP1L9GsomQOXe8y37hRabzxFOdcyda26g==","signatures":[{"sig":"MEQCICtQrjl9BrVN1ZbnBNzLxBpBZW3P+XqsCkahN+WFPzG8AiA+Omv4La7VSybSRQ0sZ9obcG8xPFGibG33PUA4iT+AoQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":232698,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjyqABACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpHfA//RnBW6nFlttrOGyQFkxHMXjdB7dEKJH+KP/TrQSbMSLnL+o8g\r\nEScQyrCdNSK/IKWbTw/LFi/uX8Npl9tebF6aYgmIHKMQsDuz2fXdw6GPFgXl\r\n4MEyEkXvldftOuUS5+zwtnpBEkNlLLxKJWITUz3rvD5d/FDvt7QK8uoMj0zN\r\nzLiEvgX9j7UzAjbJgTMHaErfvGn6Sp2aD/PF5EAZXHCoL47dwcmnther2iog\r\n+6ptF2SEAz7Ql2tkLivG5bIXUYKUQElqv188YPzpCkj3P9tVDYBQftUbpKkV\r\nVqHCzgZG7BVBL4B8YR0BtpfKg1+fy+9g1a19LWEc2jEjBrf5pv14AZALuo55\r\nXph54Sv23dghFo8RG4W2+AEJFcRK6e4APk5YCgWMBSDVMyKSu3CIvwmvBOwQ\r\nm4hEGaz9tyCk82CdCplLNlvxGLUf3qZFyzvq/6DgBZzlEQA3PruPQ0p1wvM/\r\nQNsKtYYuBVeQqPTD9E1Cdy/9nReUOlMbivCSg43h22k17ws5c7Iz8iWEH0wV\r\n5teXkCijx8zaohYvvpk4Q9s8A8EomBqHyi5Qd65eMFNv06EXc2AU1L2pKQAJ\r\ngFY4GjHcZ1ShkcXihEyyEZJJVdruFs/eHLTk+YqTlM/E+8sfPR6VfM0He0tL\r\nMkXWNLwY7ZAZWFJeV9sCYFgAKjP7gCvSYes=\r\n=+hw1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.17.0_1674223617787_0.017770689883753965","host":"s3://npm-registry-packages"}},"1.18.0":{"name":"swiss-ak","version":"1.18.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.18.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"34f5ef1994e92d50ab2a41c07a20019874591fae","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.18.0.tgz","fileCount":28,"integrity":"sha512-M4A22yZJWuuphPJcw6YBRX3STqOnxrDxBO+BvC6jgdLEpptBpZa4VhqF3/4w9UtzAJb3CEEL6y0jXiJEunMqLA==","signatures":[{"sig":"MEYCIQD2Y71kgDiXE+/9YPQ+o1X8oLQ3K7LelPe4/6jfWQVC5gIhAIT/9c2MtTrZAQjTHbsePxUTgLHINqanOjiydruLKmED","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":236844,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjzJQgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo2ixAAmwkrFPWtN7PocfgTUw3JGvBWKfSYbmLKOzNB9WN8E2a9yRox\r\n2IOhCqxhh6YCRESOSVyGG+PgjAx2FsgY9o+gy7yKZUXqdZVuYWRTQN3E6px+\r\ndI3sg1gL8j1P7ETCQY6pC1RTHiNcdKz8J8LiFergRlkxyJWrYLakQKmh6CnV\r\nbeu+/d4MZWU2C/AOXmK9fhvYtGDUczHFYWisT33SOSq7sg+PULi+yXqH/KxY\r\njz4T8ikQcumhq2YLSrkQXkpOS/igH1Ce5ahVqiZYqEQF1U1G9P6WDaX8iEs3\r\n3kAzHmHh7DyqmnJB7HbgsF1S/AQeGP9qK4zROCnxMI/nzJG//HRJBO4unR6w\r\nE+o/UkVef9q8B+r0Io/YRx89bwawLycrVVuvWMtIFzGRmFQDsuyot9fXO4lR\r\nxI9K9LTBXc45Yq/BYEi93hTv36DGCg/CpNDlnudQ8g7Jwst3HIbKHWe6XCDc\r\nkZcDU6hapQE0ab+83SyUiM6ZQAGWtGIe71z6azMcJUU2Kn8VVA5YgkOvaOKR\r\nh8u7A1Zu30mdferLxDEbSIZYBy3N3vJRlSP7hEvL0iUKYRTqjzkLwVoCB3nf\r\n4kXEkAWTwwGERgsKIh2iPRNwcF4qVTmIHP+Ohmx89rXMkGQ770tbGp+r1R47\r\na50MEMcInF3tliUvAPMuRyNLrqdhydf7njU=\r\n=Hd8i\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.18.0_1674351648656_0.17244545064967087","host":"s3://npm-registry-packages"}},"1.19.0":{"name":"swiss-ak","version":"1.19.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.19.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"3a116438fc181bca99536a5ed82aebb0d96f0537","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.19.0.tgz","fileCount":29,"integrity":"sha512-jEl6zF64ZdVhZT2qCTZtxB+D4zsUigs2fDfvAPuidJ/7U0h3kw8M2wgyzlGxXgle1UqQIvLjMBl/G6P6DiF87g==","signatures":[{"sig":"MEUCIHhBl6c+dwZ+gSFwmv7HMrXQ/91fY6/a0bZbrzBzsbevAiEAzBf5AXUQSUPc5LosL9r3M1ks0reOGu6ba6r7PqgWAIo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":248908,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9COfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoqkQ//aFjQx4VMOwulrev7tmlt/Bjlm2rebUkwAzyGGHuGT6cmcvtJ\r\n8C8xlXnYONpHx3zctnvbIA4eGGrm4vhKyZsFVkkNcQlkoXFNzREjcIKm77Lq\r\n4wPAoUn+0Mc4ScmTGU1dEOukrvmSj6XKc+UZhWi/spP9NpMCX5+QhfPchHmW\r\nX8sxvmJBiMBoxFm3pvMke6N/tyfETfzgmGuRSmWmw7gKxFqb8uPSmzfYER4k\r\n+yhZM8EshZBcD18ngNgGA1EuXnFPEG4b/ex2YZZBT+iHrYasfuX+z35uyVUl\r\nRNKQhy2gaoZpVPDnEApa2rzCiGYMjc1cJqaT/kw8w4Ql/2pzY0+flx5ldtzd\r\nphf8vprx4GYy/e7Zup4fyDQ/lfix/Us79Xxab2y3wpxHsP/f9TrrTShSeLs2\r\nUdR/WiDp4FkyEQR+6dabzA5bXl81pkY2T5AAVUhOdsM7FARrto6K21ffqIe4\r\n5ov33OetzFgJ8Uqc6cRF1MASFFX8O/zmwpKuISJ/Q525EXftB5JsDeoxppEp\r\n8gJjcnbl22JQ8mvQT4Ritla2FIOJ/0zJYl2xHQIt0UEB5W75ORN4I3FNKItE\r\nUJDSNiZ6bmfKXRrBfU5Lq6SiQr+tU7hQZlZP9EgE7HO+KXl0J10i7jotAx6Y\r\niR2hwVSQR1kGGol+a511xCLj+jG1vzeHmrw=\r\n=uK1j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.19.0_1676944287711_0.7029947583869844","host":"s3://npm-registry-packages"}},"1.19.1":{"name":"swiss-ak","version":"1.19.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.19.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"f5fa2e0960735ed4bb01bebd13a828013e8b3a5e","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.19.1.tgz","fileCount":29,"integrity":"sha512-vAHojDGr8p4PYYC6uwg6hJMsO9pDfMuoa6nfBhFEUHzlW5zeyUloBtlCLw3pFXrGsdpE0CpgHv07fBJODKbBsQ==","signatures":[{"sig":"MEUCIDokI3KwQyRfqu+xSGPrheRrplRxU6rVFEJP4r4l+ViVAiEA9WwjBb5L888NZiEIethceK3ycrIsTe9aMSTHCror+Zc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":249016,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9CTdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqlfhAAolzSEGF4mk+Lj6T746Icg+GTOx3hlmxpPzJbsbpsLVL6Nh5M\r\nkt+hbdY9rTYCEW/hwPKGxRLJzqrL3ZOc4zh+DCrYsNQSU5yShEv14aMR1bJK\r\noMa4ygfWPRZA5mKLCriD9mWBRQQUZT9/7pV797H9CICarmPcKg/VdK4BidIE\r\nDd41oj1ALiNH8UAlySMSQ8Y/bdaV0ytg9yhQFOMNoe7gIeg6Ff45W9yLuup1\r\nmnN6cDHHDZoxMtu71ZipdAKjGQ5k7rGf8r7Lfbw74z383L61RHoPibSHjGeT\r\nUMUwVeSnYUrG72p6zOmGtYQikgI5P4nRpRmj4iKS9bRRzHGnTchP6OhIpgK8\r\nmXDgh1b2a0uEo7IBIRvE9DTobi1a4fI01l1P6Hvg8VwzrHQUo8wJ6fk5G7py\r\nZjH64CNvsUFFWXnXqh9zULAiMSGRrmnfp16kUHAKr+oA/ATyz7mxCicM8yj8\r\nv5LJsZsK7nWlTPcC6A1ppjC5dC51iapd0RSKFUlTqvTLVfcKxTyrPjWT0v2c\r\nIn1glBh2bAxRbICHXaDoyNeUEoTV4C00PPYSRiU4G+WyR2LVCFOP0TyJYfss\r\nWDCDO+/rPua5vjTnHfKuAJZaYrxFANthGciUEMlL/6YC3ALLJayrixo3plNm\r\n5UaNsPDy98mbN0HspqakEZQQGMORb8Z9ah4=\r\n=Ud+9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.19.1_1676944605596_0.40523642001799276","host":"s3://npm-registry-packages"}},"1.20.0":{"name":"swiss-ak","version":"1.20.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.20.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"a13b33808822e56961ea0bcbf8c87fa3f743bf7e","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.20.0.tgz","fileCount":29,"integrity":"sha512-SEiHXu7pqnQoZf0Z1bgMfpvlXirmtqZNbjjFFyHZnz1XXXoK/Ym0mcsy7TZg+N06j1jg8Ym2WsZyFnb9KhObDQ==","signatures":[{"sig":"MEUCIAQd5FBuGa0d/TmHVjI3NPZE1uYka6gpTOV5Tyb5oiEpAiEA9nCiAboLXrqGhdQHcXOA2E752/42ubMy7EorMfu/xeM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":251595,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9KqCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoEeg//REDIZCDGtlEi7ELA0ZxTiuWIXwKSAfftmAL6KUk4mgb39ftU\r\nVvLM9sxzFxhbxRDo40XQKsy6FwxCoclFtTseIEBSTptrewuFjWksfalc4vIN\r\n9MPgecpMdTxy31SCY0Kjtvd/HvPknMRYX36SI37ObYz8u1SG1nZcSZH3UJfE\r\nF82iMxLpUhXwV76l8+exoiGZe8h2lU0yuqqUI2Hcievr1mr/fFOWPXazAlkp\r\nKbP0frDpeKS5mX660aQJ6BYgkNKkFOoUVop6ZKQGNTlHr5T+G6PnMk/gtBvG\r\n3wZ59qtWsuc0yoeQTCGeMswxih13X1NQh9ejyz2n08GqvLqWAIjJBItnG1CK\r\noWN9OqLLAJKUcEx3oeVxie4aI2fbQ16oD4hY81Ih/t7oWDNAZ53S0WZxs1I8\r\n59+V8i0n5Hkg0KUIvEp9ROWiSvDX84j+Bc5F5rorAHdwVrcwmXn0Q1czgs31\r\n+vp1sak3890M9P+ErlHYw7bBe+t0qZsAsCN7ypklfyntEWCTknqcGikvOobD\r\nDrNcjWQA+Tswtr1d50MZmmSci0yjGRfPXJ038JEdoVoc1YvvF3CC0uc68yX7\r\nrWaU3XlQ2sbFA58Y4AfvYi1GgdT7Nx0RCN6QVRwQiimV/W0Zr9ZAJpdJnPmM\r\n+7he65VTrYF+/Qk/kttcPmfMNswn80g9Bu0=\r\n=dXAb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.20.0_1676978818085_0.9241617449181752","host":"s3://npm-registry-packages"}},"1.21.0":{"name":"swiss-ak","version":"1.21.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.21.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"f4244cac33c040db7279895b4565ef3f4847994a","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.21.0.tgz","fileCount":29,"integrity":"sha512-38nd6USd4UXZWLpATBXvvfvtyCNUiDMUq4+9WDb9huAOi8HIXBAviitMa71/GsCOTluNdv1ShD4s67SiWxbncQ==","signatures":[{"sig":"MEUCIHVUcWJcxxAdcF0hZUaiFrtIiN3KH1TU8dbemvQHsntPAiEAr8vZxA+ZFqkWocCcDTDfWdTLk73xwEBiCsHXVNjrKCs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":253261,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+4TfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrEBw//RkxI63EGxmMxF70MFtxyZ82AzC9V7nUHDyIEcCTGMl6rvWdN\r\nqdWHyOkctkHMDQR4a1JdHhjyz4YV8RQauN2f3MDIAOnMgAoylcoCP5DOel1Y\r\nvl7Uk8hrwfkQUdKAGXbhpY2Ge+1ki1U5r8orc4kYitFa75GszIyNVa93+OHT\r\nDfHejNCanXXJ5ELLOtiXgOZ73DVBGc4q5VuUXg9rDkfKfXaKvB5MdO3omGUY\r\n5sPcaaP2ANc1a0t7TKILH9aiHnxG7dbJuZgwIJziRywrtWROrweUcVCuI0Fk\r\n8F6jazGcJsaAH0XemevPHXZh3QcwsTA5mOLr3hjHV3ucfa6gjrJ5ZMK3tz9P\r\nUqrrQNbBln9YRSqH23BC/yqmtCnNHJDBuCI7c7hOzHy/RT3POdV5+/uP/wJg\r\nkKmICw2cMLz23lL2MIkitBBtCmFK3/SJnVT1fZ5Zu/OFR3cD7TvgDuXm/UcE\r\nCyhxZjGT6HKCZJOr6prywdHRtEIO35aYfnjGdAhHZcUnbHDQw0jd+3Dhdu95\r\nhyLzism+Oa14/cLXRDVWClcbp46vDjAgde17t1fRj+PdDMr0rmcTTwski5yp\r\npVobC8NFnBmzELCUXlzDuumVNVCFf7ilVI4uaX9HqmS00A2zuG2IZDrsxSLN\r\niPHUVk6+O/Mp5qM+K1+RYN++0LsS6G0F5vI=\r\n=bzvC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.21.0_1677427935151_0.05554873552428474","host":"s3://npm-registry-packages"}},"1.22.0":{"name":"swiss-ak","version":"1.22.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.22.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"9c98ca1830eb7e612577693a60379959294c1ec7","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.22.0.tgz","fileCount":29,"integrity":"sha512-ExMFHHfeaFGYHujnwhs9Pd9Iu3eNjT6OVp2ql0/7kjGSQWm+3cDpPihOInqiQ8gqvO6RWbdtlR/B2g3Z9p9l2g==","signatures":[{"sig":"MEQCIBG3MbafqljhkuuC5qmKPB5kwEAN4QBHByFjCB8tk0gwAiBhrltTRDHOtr2VSl8prgHQ/qxvCPESFx8LC3isNp3cpQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":260644,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/5sTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqwPRAAkg4fREfuK7UX6Gzu6il+grzmoJVLv5xl/x5CruEPKipQIdsw\r\ny58grog6s0Zr/CKzPtWAMpIRHpomDk222WT9jX/+m30H2befm64GsvtRAlUX\r\nj5a2EwygT3Y9JDkVhY5JQ2BZdC2VVUnqu8P9LvLlF+3WStjXQFeKijuAWkSJ\r\nOv1/On0cwsUWlVGxIeK2zySVb0lLAZJnGWFOjyi38UpdwfbN/qPmsK1mwttY\r\nbNJZeJwmeBle1dbVXh8k8EBAeCz07UR0Vg9i+fIhKHjAzQ3eRHBbl6AOHTHK\r\nqXTAgzh95sBO5wVBgp20LQjctA+zazBDP0WbY/0JuruA/hOJfwuL6I6UE0J9\r\n12l8Y4dDo0weB2PzWqlr8kI1X61QYNHvb5K/xTz97CvlWS/mMhjs8o3GlqKQ\r\ndomik+gAbT4b+Jpyf6+NkHVYKwQ8u/Z2zIhs4r83jCYL5ATUw2VoVoeycVZZ\r\nwl6rMAy9veIVe801tLPF4QozB3aaSq3IcJci3sLAujnVPXvy82976ZX0rNu/\r\nTInHshFdFOMqYlSswT+Y53fAO7Alpg0iUKHrIxShBdBsutowb7GUtIdXx/z0\r\nsL/ypaY5S+gqL1E1Ps4AXBdkSq8aj/eRkNH/sZGdBX1nZVFy0hkkHE2VJ3rl\r\nwGTP24jW2R2XrCC+/3n+1Esee/y2gNncxOg=\r\n=0lz0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.22.0_1677695762864_0.7692768284798257","host":"s3://npm-registry-packages"}},"1.22.1":{"name":"swiss-ak","version":"1.22.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.22.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"0d71ffffd25f475927101fae35629395c41643cf","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.22.1.tgz","fileCount":29,"integrity":"sha512-JIUAeWRgG1aoAVazd8F09Qto/8bZWiq/Dbx4Cm4ZBEjYzZ0+razdVHItlVTt2w925XTZ9MyxYMDD+cirvVPARw==","signatures":[{"sig":"MEQCIHZi00fcntLzpnz6h0mlaLDDTfKvIEa943hp6TdjmEcSAiA/vjRLzkg4AY6UhzfmKh7bmPKH1OX7gxant6M0QslbiQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":260761,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/58IACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrjSQ/7BBLmgQNDdKfOiCNMzBeV+NJvg+99eRGoRUk4brbB+WePVGlP\r\ngy1azd3cT0M7ofiEVO/ETV53h4d8xKDK68D/V8di7HzoLiLrIeEKcgKFOH1t\r\nkaklDyOcWpHwuUTLQZzEaX99tCsSbL70C1eOnX6WC8kBLnltgyUz68nmkHh+\r\noGQTmm2C+prWPLCffeiwsJq/6L5I7SBLExQZ4ocXB19j5GriuKJD8Ss+jTFy\r\naDgjdW9jEF7MsOI6PhUBHuW8409/N0G93Q0TFeiR+DFNEM/qO2QCK+jZxofT\r\nl1ncNz8fnZrJWIwyRwD9lBN0p2hOF0wRuHWtpHlt0CyB9egmSdSTiGe58zFy\r\nmJSM4t3NMAtz/xwC3AK7+9KYtjCshyZf91X3zMRJyLqdusuPtqE5oMAhjuPk\r\nOgOoC5uLNnmlgShThv73+IExwcXBSkvFvaQ4EifJqJbOxN7I8MpK7CiK3glt\r\nwWUeAza8/VwhtD065+RnthpfZSp26P1z7gQAyKhOMppgID2AtXNMMD3zOD3r\r\ngf4vhWuHero5HgfJ3eL8xyNNBmgB7N2B/atvupt3WlWzUMrX24zMxASiB/6L\r\nmTmV1vbTQe9rKslNXOKhGWysiSHoEMCGUxg/+19LHBGnoJl8ZwuoYGn/rAgD\r\nFFGTIrfhFegeC8TV7D6Ikf/IKCf3vMefu+8=\r\n=hUu1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"test":"jest --no-cache","build":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.22.1_1677696776038_0.2845367956814244","host":"s3://npm-registry-packages"}},"1.23.0":{"name":"swiss-ak","version":"1.23.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@1.23.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"b917f5b51797000240abbbcd66fbb156a6c645d9","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-1.23.0.tgz","fileCount":29,"integrity":"sha512-8tRXmy7b1mLrTAmqZR6tAQ1d0WXHA3WY/1MzzfWK9neAVNmpJGYrrLTR6TVT2C6GIy9KkeXnKGvPCPCVz1X+yg==","signatures":[{"sig":"MEUCIQC4mfosKHxrRmhvHcTOHbNVRGd0RwH/hDRg/W8FUmVAtgIgDO7fdpywJQtnFDSAJ1tAw7NdXOOpWNFlNHQwVgVlOpo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":359688,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAeMhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpJcA//TojYWYz9d9hpJYmN/h/G4A+EmilrwUgkAdSTiretPjfBCGHV\r\nKrxROGhZDCVuhg1xnrOV2Bgw+jfARlm6hMSr/5AHxlnLpE7KQg3OtrpkESTk\r\nMPg5PqMfzT/voOpjvfXhUKMaqDrVrwGop+FWsogY6qFA5ytCryIOCmtdK7k0\r\nbaxoV0x/+8SGJKrwKT442D6Nxzv1XkoCb7tjjjfxZZz2UwRYZmqPbVxBn717\r\nE3YMh/JCRo1HmIYJsCVhEjxl7hhDjJpH6IYGPc5R0OMB8d9l5IA4IXLvYlJW\r\nxhZ0EGvUzAZMyNn9Gbm0XSkUrtUKTabeBj1euLUyDPCQ/DzH1Tl9145lMxyE\r\nUj4CKhnZJDDKENEC/APuMZCeD92+ahNWM+JkXcDVP5TJpUW+oSVMTiUV6Axe\r\naOMSoczLOucb4ORkfPiuZqy+RUGknvWHZxETTUe51l5uR2SIyCEZ9KlsONna\r\n/BOk5QMPfWKO40DPRm9Xf/hvAagTTO6AlTmwHf5QRZ1ypUYcRT9jMxMU2QM3\r\nLkLG2myE2z3tEUMoGXp8uigVeTqfagiEWV45tY3Nzimlvgwii/E25gYQSDDn\r\nAV5WO5HMF4NtkhkAJHVD9im3R0ClnDViQqpeY2acJMd3nv1vDiDngldUml8c\r\nd4324PowYl6kR/98uur9+IuAy8LqdqqKZMU=\r\n=92Wv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs -i src -o README.md -r=swiss-ak-swiss-army-knife","test":"jest --no-cache","build":"yarn build:code && yarn docs","watch":"yarn build -- --watch src","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"dependencies":{"swiss-docs":"0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_1.23.0_1677845281553_0.8308025849174325","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"swiss-ak","version":"2.0.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.0.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"ebe82093dddd5ef993b0ee8ca5ab6ed85f8df000","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.0.0.tgz","fileCount":30,"integrity":"sha512-JGUYP0qPRuvy5HiZpZL39gccvdDpJpxydMGp6K0noTaH+3TT+nuz/Wqlqvcf/V8dSGAgRQzREC9+joROkbPr4Q==","signatures":[{"sig":"MEUCICifCSmuBVWPKRip9lxe6WEEXiiuYlRGebpi+GIFv76uAiEAn8F3OVA2HQnJ7U3NgrPVEmo3xTIyE1aiJ+9DPQ/hspw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":361127,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAgIJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo04A/+NdQK864PjospBm+2j9Aw6kjzdzZt3xqYisyxzuzFDHp+WWEf\r\nfay+Ug+BJYfaQmVE5ljlPCbN6AmH72xyf4YRgAwFDX9cZnOS9rRiQLhP4J2/\r\nt9GM7dk0hp22Wi8T9jMIW97FBHAhyWvyFeZVJWTneZ38sV31yAlMRt3a0Rnb\r\ntJFPCQ0rjU/xUbjN6wQ6Om2kHK8yPZmoWsdM9JZza472ZcHdofwufyX7EkGV\r\ncQX2Jiqkd8TsyVNHUenYN5KKBTBMwxJZ9ZAEy4e00gkOTTZmTJF2qcDJQ8uX\r\ntt8xeRxvesST4gBOKyVk4EBjtMs4Vs8uh66f6YItzVA5mEDK9ml5X3TvUE0z\r\n1Tb0rj3/p4tZXcegPr4BSr/d4JK3MYAmpPpVlA0AtfHKDjk5KZw27rw/XBWL\r\nwnDj3PiqabQe3qtYSd6GULKMm+3YiP0wGubgEu7vcqxttlYMEGqkqE++9S2n\r\nWIiyX5wElOFw5uygsIZLvEohc902XHK8bkJaGvZ+lh9RWzPrqtIGkYEeWbtM\r\nm5LiHkYusPUmy8WtHej2D4OujUZR4mqweQjs9LhEHIcNM02eM7fJN8HpujAt\r\nvrQX+ClvklKJYxNvHHG73Qnh74oDOY0eWlEl5q7XK0vnLkl1vlNLdxh1YK11\r\nQRrAdZAcEv6h10e6s6YH2t5BkT+pFZQZcsc=\r\n=QaS7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs -i src -o README.md","test":"jest --no-cache","build":"yarn build:code && yarn docs","watch":"yarn build -- --watch src","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"0.3.0","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.0.0_1677853193389_0.7406406290968954","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"swiss-ak","version":"2.1.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.1.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"87f39bd71442019fb055818657ebe1199a27faa9","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.1.0.tgz","fileCount":30,"integrity":"sha512-XBZHjDZ0irU02GGL67t9n8SvU70VcZXNulvTXN8OqHFqAYumuu2yIYNyjEZGnuv1d7LhOLMlzu3HwWec2k7yAA==","signatures":[{"sig":"MEUCICcJx9OsWp+lDBqRieV7jY/BJ2MnMCabiAUr6+bfwUXOAiEAz/qGlpyxhhkfTo8O7RGomXx6XmJ8Ej4uHtWDgLm266s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":364089,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAo/MACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo5nw//YTJKnYs7qHdko2xmOuQENjxrnm4P4XaEG9hQpL8SdvPW8mDC\r\nzN40ZiJK5PU6N0SFfBElKmt0Hq+bFtrtP5+nATmJlItT9SfMYW7mGthRJxrY\r\nRcKZ3Kv7Q105u8RlllOzCo4zNYf4ccFb8YjcaPp/4ejDsiEtaaVIqSn35p/D\r\nIfHTRI9SsszLh52T+71EUc4nIxh67vsyLnL3tLlpW9D0AqhUrUgmD5IyJvTG\r\nuaEKnaWxShVkaP31Ma8I0EE2IbsqtgsUdz8iPjB1TSBoD3C1NsHTW3VI74Lo\r\nyDL/f8UzW/oSLx0w9iWDV+fnvuV+HPC02B2U3oVOmuFJhtWQo1yJfWqtOU90\r\nL/RkNzd4voAX1LNVlejDKS7/WAgGz2tqxrBs+VUII0ZkBD6lJCnAPOjbKHik\r\nZC79YsQt9PPwP5mBnuTSrwTRpo4KOSLqrdG+LCiZ2wYn3pYuF253YiUfx9OX\r\n38vaiaLx26dW4oBeh9aESHa3X0SVs0CgQNutVAktnsa3H4qRt7Q6TSwg0A33\r\nsEbRLl63SvadesDPvxxZQd65qmhLUJgSlqQE9EwW3XcO5KMvkHg6faodIPYg\r\np9D3mK7x6GGZls9sJ8Yg1Wy0GRSx9++0Ow93nhCq2BfHxeYhruAI07dTOgPl\r\nLW38z4a9QuDURp3oG4c1jLD7/h3M1CuKr40=\r\n=nX6F\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs -i src -o README.md","test":"jest --no-cache","build":"yarn build:code && yarn docs","watch":"yarn build -- --watch src","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"0.3.0","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.1.0_1677889483926_0.4332094376497573","host":"s3://npm-registry-packages"}},"2.1.1":{"name":"swiss-ak","version":"2.1.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.1.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"77a20996fa86c8673b81b8ec4be03eaee290af29","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.1.1.tgz","fileCount":30,"integrity":"sha512-0DQELXVCXKC7EmJu1zgGaItQOLTaAFuL3bI6aQBWfNbvkZFEm3bPyXdWcbCMosJPjh2glrgDmxp/TVqEKplvag==","signatures":[{"sig":"MEUCIC7PRNwOee5FvdJIRiE7pIcKU0FSYOJ7ADs6tpCyhSBnAiEAjjBAax7IrasH0olFKHX1PcplV8aS0l/wfJsavhO77fo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":364753,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAy09ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrpVhAAlPkua1NPhC1NTfSkER3FaYlsSv55Ml+TA0PjYd9R6F4AcWV3\r\nZDfI0BNNW0OTnc9oj2eJwm8ZsufYZGoRRb0T+SWe/Zc2AFMrwCRX2KWyQXF/\r\noUGG3AUyDcoMPhPPSoUaT0DNyvYdH3yQO7LVOPtYhdoMZA4gPYBrM6uVG8JC\r\nXy+db+YKmxsxjs04xEkvXe+9nwkKVRHwE/O6bhTOG747P2mg114Mj9NNFTOO\r\n5IDxWNNAuPmtSsCplOkuSUIuKMAIzpVyS/x8gunb33sxaUmaQB6cwW4qMKN+\r\nc9QXNDXhLPT2c+IE36w6Vs7sFVO816OJf+lok8695j7wUMzO+4NGr0LryUCk\r\n++fnSQ6kOAbIXWnSOH6I5/6eTW3EsPJJIoUYORi5ALpsXCdGQWHYkVD5pFKh\r\nIKDCvVSJQV2rNWV6kqADl1Y7We+xpjL3c1A1BYuz4HASc04asCnAh1F0EiWt\r\nrT3ec9RfRipwJ4oK7RUkXDgbotwiYUvnArOF7M0+SSJIubNqH/i80pMRWbbN\r\nMeuMKGEhhXDqNiGW1M556OWnmY7Ru+KkxVjcnxcaLimVnM7bEbu3ClaHnX5U\r\nFGg74b+llAf7C/6XOb4nsA/jDJSQzdCjbvY5pK3zINUZnPlepxNfGqXN/+jf\r\nNmndi9pM5ho2Sjc3Oa7Cej79rIv84Wdl7A0=\r\n=2sKM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs -i src -o README.md","test":"jest --no-cache","build":"yarn build:code && yarn docs","watch":"yarn build -- --watch src","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"0.3.0","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.1.1_1677929789407_0.1993030803134641","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"swiss-ak","version":"2.2.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.2.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"5f29f52f779b629b48a017454be642752c83664c","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.2.0.tgz","fileCount":30,"integrity":"sha512-sE0S6O4M8x3bnYOuJ4XZOTDxbZaGxdJBn+Ftiz5zzIHb7NXJiObqa8RzVyLEQUc/pli1uv2raKVA4a1kHFd0Ow==","signatures":[{"sig":"MEUCIQClLfqOG73i+dxrDnQNVmnDgqJfLT8DDEPf/dKzCX3LeQIgVyhg1edBRz7YdCPaHRywa+arKICWQpAwql1RHD9fnSo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":368057,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkBI23ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoWtQ/9HsJqvUymZLbU3dzYOryne1oMTZzkqV3uqS5IfJgR7BlgoLWM\r\n18ZAXIir7wdJr6AIszNKqxWZqJtBNQBsMWVHS2MJkTtECAfKLfdZ/izOM4P3\r\nqiy96DPZF/HC7U40/imlYvF6PilQVRID9WX06kHr0C+fzfIFYobZGUHrrq0f\r\ntL/igHuZAhRLHfs5gU/m0V1f8aQkhI+/vpxHr46XH9S6+CfvFh/iSQfATx6w\r\nkOqAy8WNpqJ8NILD+//Ogr7pLs9IoZXcCBj9JKUwb+rYN4Y13mEFdAIkkMTk\r\nl0bJeLGBL8NaZLZ8eemA88FOamTqzSiCEyTCDwUgECZIov2rn1dJtpZlLxbu\r\nar6aBCOqUIJamlBAkGuI1xWLgfqGvkHjaqbtKE3Ckw89WHPDQVntMgHpPB/M\r\nWalfkiJMSfD+1cRtbkC4byr4YjmfmYcmw8fDEQHEbSixdpWa4UuPeGQaDYAv\r\nH1T96VBbhJBjJhpQ6ouK05sItkOqkBEE8Az/hSSHds6DiLKY0qgPIuQTVIOl\r\neL/DbJ0JhEQjf5yC0GeKzC7PYkZ/Ib31tOg3ReJyBc3YRwlCKeueEdz23b54\r\nY07z6aF0mbMWrhmezi/oQ75JmYTizddFY5Mq9a4ww2gwSEC5RjmBXmfWg3eb\r\nChX52Knz5k5k89FVC4ImPmH5KUN7Iaby27w=\r\n=9E0P\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs -i src -o README.md","test":"jest --no-cache","build":"yarn build:code && yarn docs","watch":"yarn build -- --watch src","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"0.3.0","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.2.0_1678020022812_0.8563458297291617","host":"s3://npm-registry-packages"}},"2.2.1":{"name":"swiss-ak","version":"2.2.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.2.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"28ca05444c8032da4e2ea1a12fca27fb6d8e67e1","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.2.1.tgz","fileCount":30,"integrity":"sha512-YoulvBY368krgNdWcCYry8BDSKk+95ydGVNTE6JysHbKfhDKSLlApoIBzLBiPtsIjCM3KpKbUIPZucMWMFMsGQ==","signatures":[{"sig":"MEUCIQD3QHzMGpy91BrQeXvPhhfVV9lPtCCkKwsBmAANDhAexgIgfWrtNmcP1jORwSVtJJN7A3CGiwXSspy1w7ZFhZODRhc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":368057,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkDzZwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoCPRAAoslWR+AeIYwZNiYi9/6GsOBp2qWA9gbQp2CYc/JpRV5yjdlp\r\nAVEe6bllp/DimP5eEPDdEMkrM4K/+SStOjXL1VTtPby4lg92XalI2ZYGqLLE\r\nAZcaJt6PVPcEtNoc0OQcCPxMnHTR6mXNd2owVmb1Wid9qxs5U1RPhJAMwOJM\r\nHVxkzLhLaBCk3hS3rIq81cW9OwtXG6ZdlcoYEFpqIz0dHjqQVU4W2gwprWxs\r\nSMdYXC9Wj7KgICMIYOLYUK8QFbntHT7oJbYKiLJnY1EKOIGm9vyjFyw2SUTw\r\nFGZAcGCnYGPipX0YY2ksKfadBJmPdlFFNq7aTO4Lh/c4dczBcxiWgVrts1Q/\r\nXGYnOsA47SUgQf6/S9KeqDpoOt9b7cH6WK2p87kzvm9m3GpI0i9fK/P768sT\r\ngtj2T8x3JMBU+2d06S+P1e1Yc1ShSHKpWlwpAZPDrMCxBDLTb1wX0MpHPmwH\r\n7+Txw+aOku+zm5h+nsirNFyy/MjjYV07OWexDujOrJkKjdsuQ/uw+aDINvD7\r\nkRKq4WhZ+kfHGY/ORIWbuO+w2dO0zjDm6yI+WWivskdh89hO/cJst3uvyYqh\r\nmhio2V05dpAgiCzaEtwBtwJOYx9IAcw2vywfnrBEt7wYFLKCg+cG0ofCblQg\r\n5Mcj7paPQOZxdnxoDSmITJjOE9cwFl7nH6Q=\r\n=2pGx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs -i src -o README.md","test":"jest --no-cache","build":"yarn build:code && yarn docs","watch":"yarn build -- --watch src","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"0.3.0","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.2.1_1678718576697_0.1507556080647483","host":"s3://npm-registry-packages"}},"2.3.0":{"name":"swiss-ak","version":"2.3.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.3.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"369ad06214a696caac5394833e6f8af2474d2ad4","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.3.0.tgz","fileCount":45,"integrity":"sha512-KOPeNkUXwZ+WjI+yoveY5U11grvAaONSx+JJVe64lxznrWGwI4g25ETaL7gtvHaINT4m/vppy+Bzzok6IzV9mg==","signatures":[{"sig":"MEYCIQC+ovjPalv2wZOAzrufPDIfei9k6RXxFlvIL/n7TZL5FgIhAIkEgfYXRf23gf88uLH7y1OzfFE4YsPGkfRVjWUMKUlT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":512304},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs -i src -o README.md","test":"yarn build && yarn test:raw","build":"yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:raw":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"0.3.0","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.3.0_1688408953605_0.44682529738409116","host":"s3://npm-registry-packages"}},"2.3.1":{"name":"swiss-ak","version":"2.3.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.3.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"b36e3b33d3f96becbc51ef108f21cb910bed1acb","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.3.1.tgz","fileCount":45,"integrity":"sha512-kNcwoe6FSlgt+kpJGElX0wwcSJ/Fzu5vrXO17SJq+xOqgkajZcpsvo6XCdf5GsnAYAJDNDgZB6GXPkNmoZ/EJA==","signatures":[{"sig":"MEQCICkPFPd0iBDPyewi7h87wBWTkP70YXrdxUc8r6PSUdAkAiBuETLIjqvaGFYPbz8Me7mQAvvpvxxW7iHDbu2U9GioPQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":566764},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs -i src -o README.md -a dist/index.d.ts","test":"yarn build && yarn test:raw","build":"yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:raw":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"^0.4.3","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.3.1_1688433128307_0.7010691566380254","host":"s3://npm-registry-packages"}},"2.4.0":{"name":"swiss-ak","version":"2.4.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.4.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"967d1de7f74c6a5f67b489ea7c2af233bc329b1e","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.4.0.tgz","fileCount":45,"integrity":"sha512-Xi93QkjUKJ5jqASxB7X6L9Lb5DHQ4Zd6FeVsAh/Pu98AZSeLp8z4NZL/TiUZrWlX75WN4lBQ+ng75jyyQp2Pvw==","signatures":[{"sig":"MEYCIQCmZND3Eie2j/SKYndQiDQHklI7kAVBh+8neM0kF6rr1QIhANvOjkfeNSgmRNKLIgsJ6XGLAb4zR48EikXgLACIJpkl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":572746},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn build && yarn test:raw","build":"yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:raw":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"^0.4.3","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.4.0_1692638268411_0.5858672090972241","host":"s3://npm-registry-packages"}},"2.4.1":{"name":"swiss-ak","version":"2.4.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.4.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"76054d60a7a2c7ef2e3a164d25c15be9b742d813","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.4.1.tgz","fileCount":45,"integrity":"sha512-N1JHRwbxN/GAdp781s4W5IMfsc+Gm2nEWvDunSEInYFSDTmXO+rsaX0XdVA7lFPmCB7Bq9BvbqdOvBh/eJ0dZw==","signatures":[{"sig":"MEYCIQDM2Ehku7vFO70njZMVBny8+b/AJo4B7/o0Jltqk2DShwIhAML/9+0hIzHVfmdpNswr6yklb1jSt5H0fl0YabVMHwv8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":620755},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn build && yarn test:raw","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:raw":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"^0.5.0","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.4.1_1692815064931_0.2635120774519659","host":"s3://npm-registry-packages"}},"2.4.2":{"name":"swiss-ak","version":"2.4.2","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.4.2","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"61083d956d0db304cd69439b817b45900117cc69","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.4.2.tgz","fileCount":46,"integrity":"sha512-RJZNLWSX/ye4l7OjSa8JrYmSE1jdC9hSSa4tm2qKAMHyjUPvMZJ6zNzjinen7gA/2l/YytmKEfz+Nox3g7nBvg==","signatures":[{"sig":"MEUCIQDAYXb652z2U3L5J6x1YZDdWkmifz8QOpBh19slVnENkwIgRZrZ0c8Rxc5Lm0lSSCqt23vFBezpkQQyKH7RAe5+XqE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":638449},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:raw","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:raw":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"^0.5.0","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.4.2_1692885278036_0.1481804754145335","host":"s3://npm-registry-packages"}},"2.4.3":{"name":"swiss-ak","version":"2.4.3","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.4.3","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"dad652542cc45f9ca178abe5e5f9bf970e55f65b","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.4.3.tgz","fileCount":46,"integrity":"sha512-7OfTtDgSTzFwS4kL+kXnF73IUib229OVpFrwp+bjxRE+5G8F2gGYczqyhxuD5cOus6rXP+ibFACyN5C9R9sLuA==","signatures":[{"sig":"MEUCICMlZ6DCLuMesumBVL2HZQpDatFxPS2I/p7BeqVMwU/tAiEAgoPCNLERSjjZ+jV7DSN7hGjeNYTvdB9cXFVr3vjcj6M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":642575},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:raw","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:raw":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"^0.5.0","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.4.3_1692890173746_0.33051314432086953","host":"s3://npm-registry-packages"}},"2.4.4":{"name":"swiss-ak","version":"2.4.4","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.4.4","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"348cf0c94643da2d9c45915b2e439fb9eaef6669","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.4.4.tgz","fileCount":46,"integrity":"sha512-BK1EkYj1heGwu7YGqtsfQ5+7CTy5q0GkX2F7SaQdtr+TUyEdkEE+7Fef6kl6We27cELXArgKT5UbjH4JjESb3g==","signatures":[{"sig":"MEUCIQC17IfbFSIxELy+uBHnkODXuZtzhnwe8Ht6rvtxNKriwgIgVUjasCBy3nJbk+u+VwnGZgFnKarN2f8pJ0YLAMM49uw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":638441},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:raw","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:raw":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"^0.5.0","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.4.4_1692890346303_0.13793772412224614","host":"s3://npm-registry-packages"}},"2.5.0":{"name":"swiss-ak","version":"2.5.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.5.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"158fc77709344c32e9d3f26b69d680445c8f5f33","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.5.0.tgz","fileCount":46,"integrity":"sha512-2Ozxo/i3zs0D44LWaOb9c1pYlmICd/7REzKGez86jBxyeZtwy+u88gdLbvqrXFAUmfu21YI/XakKFOiRA0b1OQ==","signatures":[{"sig":"MEQCIDYKDFF8199ZI3mpav9emy6uqfhHqCQlDi5QINcCmsG+AiALqxkbRnKgIJTsG5NJiTnIw82epJaMyLF8oFZEwyIDuQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":678877},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:raw","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:raw":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"^0.5.0","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.5.0_1693054253543_0.10034302054456656","host":"s3://npm-registry-packages"}},"2.5.1":{"name":"swiss-ak","version":"2.5.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.5.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"a2d75a9af7698695962da2d43db05f09a986fe78","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.5.1.tgz","fileCount":46,"integrity":"sha512-uUzThp4OPvlztV/IRlrGEQwg2EYlSXXvzoFAXH1ORZtPqbHCPw+PCkLL2Dtv7IofS5imoLbt3I/MiCKHh5v7zg==","signatures":[{"sig":"MEQCIGkT64BfGP0P0eF5ReCi30xWaERHKu7NqamF0EojKz4YAiALdbrKdzRM0J7zwlRLhFsB7Mz86Kw1XvufbRDX614zNA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":695550},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:raw","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:raw":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"^0.6.0","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.5.1_1693149234147_0.9715634317449575","host":"s3://npm-registry-packages"}},"2.5.2":{"name":"swiss-ak","version":"2.5.2","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.5.2","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"14e1690510a2f8d37381bdd906931a20a9f70d42","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.5.2.tgz","fileCount":46,"integrity":"sha512-WXX8QVVp8IJLJTzjU1KPhghSJSH7/u2Qw3IQCsbDP1Tce/+EpkYhapvFd/qio3JWRZbanLE/WDjpZZd3Vr8aAQ==","signatures":[{"sig":"MEYCIQCNZ/GYbxl9Y3A/f6wZR3sR06nJRo1EYVl5U117pQLOxAIhAOhrAbEpE6qJyq+1nrtDwWLMHnO72DRQVQetPc36sdtg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":698129},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:raw","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:raw":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"^0.6.2","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.5.2_1693152992376_0.6331253944802564","host":"s3://npm-registry-packages"}},"2.6.0":{"name":"swiss-ak","version":"2.6.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.6.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"ad729a2e04ac6446030be4ba5c35e996019808c2","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.6.0.tgz","fileCount":46,"integrity":"sha512-sALskFVciH1maNqZpSu+uLfCkf/F/Fs4aGXPaK8Bf2FpK/hvZS9O2v666+ud/+Arb4KvpxDBqbn5ZUbpMCBslg==","signatures":[{"sig":"MEUCIQCq7J6Ks5OlY/wLe4OTE59qtNYh4kWBlkvSGkC/eCm7ZgIgQ55ULDAuDsMr6gAN0dL56JAl1zFvHKsKpUMfm+/DS/A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":714530},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:raw","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:raw":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"^0.7.2","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.6.0_1693521715703_0.9472655879962868","host":"s3://npm-registry-packages"}},"2.7.0":{"name":"swiss-ak","version":"2.7.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.7.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"14bfedbb5d7c3cc3b53a21c8f5f5f0a5e13ab7c4","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.7.0.tgz","fileCount":51,"integrity":"sha512-85tu13p0SqI4Lt0XIoA9sGHKWhF+VdMlBTs++vCBcCs/wWEeQnwShrKmU6Lob/w0EmB7/za4AkXhDsqWgECWmQ==","signatures":[{"sig":"MEQCIEORAX98danWxnzaujrTmpq4f3JtGcDn+Ff/zTLwR8O/AiAPpla7qaFRG7ldB+w8ObMnCcloLmcb5PXVuMOBGVpdag==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1230908},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"dependencies":{"bun-types":"^0.8.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"^0.7.5","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.7.0_1703707953759_0.6429711617434024","host":"s3://npm-registry-packages"}},"2.8.0":{"name":"swiss-ak","version":"2.8.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.8.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"f88dce26e08f084cbfcbc09436050a5b712f2886","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.8.0.tgz","fileCount":51,"integrity":"sha512-7UZ22V/RjSZujZn7eefxiFG6Rbc69j3w93DVblm5HZf7hsRWrqBjG6szk7tHKATjvvMzQfc5Lk6rO/WTKII7pg==","signatures":[{"sig":"MEUCIDL1I4/o9oL7RggJ6RbfESE3pl43u41IWo/CfyM36OVrAiEAhfiIjXvkbAvgyOG3zVQ67kao0cjPkyyUfFV9Yev6Q0M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1357228},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"dependencies":{"bun-types":"^0.8.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"^0.7.5","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.8.0_1703912825476_0.7476265787693273","host":"s3://npm-registry-packages"}},"2.9.0":{"name":"swiss-ak","version":"2.9.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.9.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"5332050a880ca9bb85c929dbe201d3319b46edfb","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.9.0.tgz","fileCount":51,"integrity":"sha512-Df3IipMJq40zWiPuOsfDkNfSNcqfOEimSoWb0maXlYw05hnT6P/pdTh5bR9JUtcuH0Mh+P5B2fAqPq+wistppg==","signatures":[{"sig":"MEYCIQDSElCF6jJruuAv0wJmi5goU9BE55StpvYY24c988ECyQIhANSwsaYL+i1aPFkXHDG14cdOi67Qxc7a/vf8pujz46DE","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1368255},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"dependencies":{"bun-types":"^0.8.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"^0.7.5","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.9.0_1703994724064_0.11552011980277377","host":"s3://npm-registry-packages"}},"2.10.0":{"name":"swiss-ak","version":"2.10.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.10.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"78920bc1193f03262e974905c7e7051830f825c3","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.10.0.tgz","fileCount":51,"integrity":"sha512-1pX5kNl9Wue1Xv2aE7036AGswRdA3nsmxBVYQ4THenQ6Txo+5Ejx879J1SOwTet7MGjNsOWd8OAgmLKaiFv6Yg==","signatures":[{"sig":"MEUCICfO3gUQJpqXZn88BqclRqAXiH13ockpDEU4LU16XWaWAiEAhFTXJP8k+LCtKOBi6iARMhKibUNsCYRdrmLWDwHGi58=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1378049},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","postpublish":"git push","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"dependencies":{"bun-types":"^0.8.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"^0.7.5","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.10.0_1704132469618_0.8518482302877883","host":"s3://npm-registry-packages"}},"2.11.0":{"name":"swiss-ak","version":"2.11.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.11.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"7cdeef6907a7786825b600553299c3bf2400613b","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.11.0.tgz","fileCount":51,"integrity":"sha512-f8AuHMk41iLS7NeegjeiENYnmkaYaTFtlcKkQ5cBFkWexLDreJKIqXT/O09iVvBKhtjTbKsW/X4cOCVkUELqww==","signatures":[{"sig":"MEQCIBTErJyHgj1JiuNOAPOZSCxdq1oq3eT1IdN0eWxUTTT8AiAuWRsiOxbVwQjLYM6U8VI8QHa2CMyM01TiIQnWV9Tc4A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1381896},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","postpublish":"git push","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"dependencies":{"bun-types":"^0.8.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","swiss-docs":"^0.7.5","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.11.0_1704167014734_0.8387544583552253","host":"s3://npm-registry-packages"}},"2.11.1":{"name":"swiss-ak","version":"2.11.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.11.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"ea4579a671a7cc83708ddabc338c77eb942e6b01","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.11.1.tgz","fileCount":51,"integrity":"sha512-PIWkWLE9r0FURucrBrLI1st/UQnQwGdu3nQriZRd6aKsPmbbvG+eIXM3PoIyo/F6FtJSygN2w73zWkLZNcwDmA==","signatures":[{"sig":"MEYCIQD+Bd9MqfevrwnxRh3T8ZpbE7famYTgvJfyIZQRDobfaQIhAPFi+lcio6DuZ2xjDnmR2aLl2u645lkS7NCCXDB6ETol","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1383362},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.5","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.11.1_1704306148604_0.761280891857187","host":"s3://npm-registry-packages"}},"2.12.0":{"name":"swiss-ak","version":"2.12.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.12.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"68391238feda708e5424d8e253e2af551805a7e6","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.12.0.tgz","fileCount":53,"integrity":"sha512-2N+EfkO7R9QZoMtPKHzz8DHkgogH/Gy2kHg4cL4jx31TqVuoolWKlBiQrt5CVHBBT+3YcpQ96qW+3wQOCX1Q3A==","signatures":[{"sig":"MEUCIQDgR9qswkUGgVPgbtXbmPKlK/JpXOr2L15Uj04r3m9kOgIgEDm329cOMzkH9qGjxqQVeUirsnXiQ6eWcWZH+8BrjCk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1416078},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.6","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.12.0_1704438715402_0.11191882080673388","host":"s3://npm-registry-packages"}},"2.12.1":{"name":"swiss-ak","version":"2.12.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.12.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"797f4048d9cfd495b857b5a2d29b82ae99077a54","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.12.1.tgz","fileCount":52,"integrity":"sha512-zOKj3m4JEbXCjL8mnaq2g0ISlr+r/smRjESht6JyXz6c7ABKJnS6890zOeWhWwZ5qs9tm6jUTey5qxsnpeEiYw==","signatures":[{"sig":"MEUCIHwU3tM2cst0k6RlV7HeRwZUYfsSWlJcePBVlQCMwSSGAiEAiZwZwrsr92bqk7zlA0eGC9GnTvvxUz+1XzWEw/QgUpQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1415059},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.6","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.12.1_1704508662869_0.6681421584028349","host":"s3://npm-registry-packages"}},"2.12.2":{"name":"swiss-ak","version":"2.12.2","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.12.2","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"88e3c6e71fa9bb25d9d18ece99ad212781d63af7","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.12.2.tgz","fileCount":52,"integrity":"sha512-H1A+jbx/fw8aWwoDJZQlkIClqFmb1wtzWXSAgwDl7iR8V4He4mstB7VNRbVuGuDsSTdEZ861AF9FXDhUCChmng==","signatures":[{"sig":"MEUCIQC6LemW/mMA67YLsckBb7zZ0s7WFqb7DDCVDONytgNhvAIgH4XlxPSkSFtBiBH1M+bblkzH1pDt5qr5DjBqDoWryaQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1416678},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.6","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.12.2_1704595501410_0.10880440961887095","host":"s3://npm-registry-packages"}},"2.12.3":{"name":"swiss-ak","version":"2.12.3","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.12.3","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"26ceb6f109ff20e2611cdc8edbedc749ca0caf3b","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.12.3.tgz","fileCount":52,"integrity":"sha512-qumjw8OUvYA+X/5Fzr6qa7oV4uhDISCwAE0IapI2LXHkLXXazQUMTadkNBUrli8DOYk//O5ZlmypjpZIXE0CIA==","signatures":[{"sig":"MEUCIQCIPlUP6EPKnTiotZ/l1KAkSg9Q5eA2+yU+8lhXtehVNwIgR23GyGyAL7o5tKyRSI/I/SV/8HRrkzkwW43wYoCYUEw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1421742},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.6","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.12.3_1704656559517_0.023237408614282584","host":"s3://npm-registry-packages"}},"2.12.4":{"name":"swiss-ak","version":"2.12.4","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.12.4","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"4b2a8d7f76b4c952f98740a784b1094e2d43ce74","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.12.4.tgz","fileCount":52,"integrity":"sha512-lKVVcpGztpEjySlJ7txC6OdcQxANPCigrt2thQLdqOOgGCDRk2Se6M4a4JeOnSwdm1ToytF/bJcYqcUZrfZlqQ==","signatures":[{"sig":"MEUCIFQlvqhT44+aml9A9JkxV08PwtNMbKT5N73kpFvqa+GkAiEApG+UDO+D4g5r0oSy7T48U7aAZNZrlne1qxw3j78rGpI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1440487},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.6","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.12.4_1704676350267_0.10304345998316067","host":"s3://npm-registry-packages"}},"2.12.5":{"name":"swiss-ak","version":"2.12.5","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.12.5","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"1803e9fa4fea83028ee9abf2e2c6dd20c7e84714","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.12.5.tgz","fileCount":53,"integrity":"sha512-q5KcH+8lkRz2Kxe0rfNWQ6w33v5RySbi+vU6VlJlw3wZJ1lrKeQSoxRM8SnpOKfMpw/kJEn3DHQAAf9Gz6xNBQ==","signatures":[{"sig":"MEYCIQDJyqP5r+60/KLhVmfiKtRrWRgAoJaNzGhVv3scu6ZhwQIhAOTX1PHa7w40ua1gOPEoOkPGEaw/qG0VIUiFHpdhnbf1","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1467551},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2024 Jack Cannon\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.6","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.12.5_1704751233429_0.2824927076256616","host":"s3://npm-registry-packages"}},"2.13.0":{"name":"swiss-ak","version":"2.13.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.13.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"1f33c3222bc8ee136dfef99f2ac267343e9a7a4a","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.13.0.tgz","fileCount":53,"integrity":"sha512-tX22fguFo5+ceywZXuHtRqGbTL2+h0L/p07eAgf1i34zbJLoIEsQEEQekVFQZMOojnfZV2DmNAOv1JxOUcIfQQ==","signatures":[{"sig":"MEYCIQC2PtTGn7amOAvpsW4LUAQmzG+y/aNEPyw4ALJpZevkUwIhAK5QfkByPB3buVozDcVzdKEeL9zYZMr0L24caJKqzsjl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1474880},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2024 Jack Cannon\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.6","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.13.0_1706030117430_0.41432362829828673","host":"s3://npm-registry-packages"}},"2.13.1":{"name":"swiss-ak","version":"2.13.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.13.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"6946b4af31e17f2e7a9d1e3c6a89ad95e962cba7","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.13.1.tgz","fileCount":53,"integrity":"sha512-WenjDt1T4GWQqIUGPzvmQZ/AsY0dR+RFtEpXj9LdlsCVKXJN5KdiSMmjs0KI1TvXszCjprvB7l73vw1ovUqjrA==","signatures":[{"sig":"MEYCIQCnXzWmiqyK1rqUNXa+1l+wQ1YoZKaFOiJGG7UN8aVNmQIhAIW7rGtLeLjzWhfIy37GuuUb6DuX9RhOIfO0Mkh9UEIX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1475932},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2024 Jack Cannon\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.6","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.13.1_1706228408012_0.9294677624981607","host":"s3://npm-registry-packages"}},"2.13.2":{"name":"swiss-ak","version":"2.13.2","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.13.2","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"6ff53b0a0a04a48ea7fa6bd2bdd13c0ccff70e5a","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.13.2.tgz","fileCount":53,"integrity":"sha512-HitMVb9psKxS+5+iuzgb4ahVG7IlxSRWJMSwypWpNhbL7T90j7G9/oL336MZzW/WIZSImO0UutOQIYVF3vDx3A==","signatures":[{"sig":"MEUCIQCYphZTLKOpF0FryfPSdPwJhKY0lvWTCoehKeBanq6zzgIgSHm23nNw59zkR7p8QBG4w1/aF8QJ9UXB3nSUTRhXIUs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1477059},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2024 Jack Cannon\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.6","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.13.2_1708478144504_0.560975441459284","host":"s3://npm-registry-packages"}},"2.14.0":{"name":"swiss-ak","version":"2.14.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.14.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"acc0e31163a797eda4c321142d32975d8512e369","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.14.0.tgz","fileCount":55,"integrity":"sha512-SEz5GM2/YseU54Ka0eNWgcceeYLi3DTRQVIDnxRU0hZCN1kdEHpTkZ6qXN26RtvLQNNW9P2d0jm6zfxasxIFnQ==","signatures":[{"sig":"MEQCIBQWDVMZet/gqQDsCRCHRxmJruA7qUGEv1oaZ1iaygmWAiBgvi9PXJcoABN0rN0FwBGZDWtPCDI+IjbHlsZ45e/PHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1508039},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2024 Jack Cannon\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.6","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.14.0_1740186330852_0.08844830602817311","host":"s3://npm-registry-packages-npm-production"}},"2.14.1":{"name":"swiss-ak","version":"2.14.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@2.14.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"4103fc8031efe00c947816dc5c66355f7a663084","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-2.14.1.tgz","fileCount":55,"integrity":"sha512-4zbfe+vo2JCUcVXAg5xXVmKD6QYLefjJka4GCzV53preJYHAplSHdNlaxRpvMiQ2Aa+3gULswr3CCsKzF5DwVA==","signatures":[{"sig":"MEUCIQCkfBpnO6fRJi5/rBVdQwvgPim6jf8FnsFZS8z4V7bsbAIgKAECPOJmS87spXmfAAgNOBytgHV7jycLCOg3Oaskiug=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1509903},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2024 Jack Cannon\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.6","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_2.14.1_1740276044299_0.451896915066867","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"swiss-ak","version":"3.0.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@3.0.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"8965d8ddaa3f82661f57da11c1e38341cd96bdd5","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-3.0.0.tgz","fileCount":53,"integrity":"sha512-kcHzxeQDB/z4XUvjbfGpulA/FKktR7uT11VAsO4itrQErezME+fByKrBklX/RUqTdJ/D2mEG9T0WvQBFs09EHA==","signatures":[{"sig":"MEUCIQDEAuBIhPkp3RivuQZny1Z0RBoxuEpA7xP8ovzCirUoTwIgQ9HOePB8YSCK26wk5wex96I9PyjtA9r27z2T48oo+8A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1279357},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2024 Jack Cannon\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.6","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_3.0.0_1740276355096_0.5912284934726997","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"swiss-ak","version":"3.1.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@3.1.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"bd2d8a2bd801fd92c700713d130c6ca9d9d1e62f","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-3.1.0.tgz","fileCount":53,"integrity":"sha512-tswV8aKnKxMTPs5V/zzEaTnVhriMUx96kVWHWvbkf74xtoqne0Nm4iDb/CwLdvwNmuEW324IyBK+SV7PHKuXlA==","signatures":[{"sig":"MEUCIB/hmJE7Ay8Zyn6Jjmj62yj5Go7e07e9XDKWiK/O6WhcAiEA1tlDUA9P10TluBL25XzXa/jFcVz6bLsSpoq0w53ZNjQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1288414},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2024 Jack Cannon\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.6","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_3.1.0_1740413334302_0.5572367538030492","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"swiss-ak","version":"3.2.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@3.2.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"5416e5d41ce4d3ef87ff81737c4f5153fd804b0f","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-3.2.0.tgz","fileCount":53,"integrity":"sha512-XKMGHjPjYqqYyfGu3XUBwOTwNe0hLJH57OhMNCstm1gg2IL/fJL9rTZa6wdZc18bxVusARs418e1aL5bvzr6xA==","signatures":[{"sig":"MEQCIFoq1nIVmHZGi1eMPAvzypAfjiveUu2WyVp8LFrLjqo5AiAc5FDto9oJVgCmkcgqWLPEWMZYbtvBmSEz3uxfZqqi6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1296850},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2024 Jack Cannon\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_3.2.0_1742516148957_0.7384937481250073","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"swiss-ak","version":"3.2.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@3.2.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"e9030651a8d0416533f24a9305012d58f760b49f","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-3.2.1.tgz","fileCount":51,"integrity":"sha512-BSNKbRN9YTGv32jORKhtiAokV3r54kmaRgEe6IqiapJ5QzKwswa5J0M+1eXJOTnh1mkR1ecaDDZkHwYttyXh6A==","signatures":[{"sig":"MEUCIQD/zgeMM9tRYp1XVMWcbSFcfrzR7U+1X9iXaPJtBXCjHAIgbfdU8P3sMa5uiNXmqPMSQwoPdAknWDXUWLQlfA2LOvE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1301377},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","actor":{"name":"jackcannon","type":"user","email":"jackc@annon.co.uk"},"email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2024 Jack Cannon\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_3.2.1_1752109503480_0.49415064994593205","host":"s3://npm-registry-packages-npm-production"}},"3.2.2":{"name":"swiss-ak","version":"3.2.2","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@3.2.2","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"e4226a1e4b18152e12a73d5cb58fd5c95a89f0e0","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-3.2.2.tgz","fileCount":51,"integrity":"sha512-nDnkXXhEmdMpjHpSZBVW1uTJ3zcRSiOq88c4VcAluYKnRtjA2hK28HaF/oCCqiOGxk6HcId4H/c8KLx/0dtoxQ==","signatures":[{"sig":"MEUCIGZu0Do8RTlnPC7RlGNiypknaRE9XQ3MST62j6rIadLzAiEAxBeNbP2koJKrSAeI/mxZoEaZKFepfpviAwEMmCdU18I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1312472},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2024 Jack Cannon\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_3.2.2_1752187658500_0.5509781268604146","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"swiss-ak","version":"3.3.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@3.3.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"32cfec2285f693768be2ce58236a62e968b95579","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-3.3.0.tgz","fileCount":51,"integrity":"sha512-Ok5+tsrYoc/HctSdRQFu2gE+gtBr390EINDhhb+LI8xvs19TIqSww9MJCS+ANT1fQkJDFwSnctVD6cEIPop3UA==","signatures":[{"sig":"MEYCIQCKE1sXfx1AD5FFsm/hPf7/tOxR5ow0ZmDi2GrhqSvV/gIhAJ2MCb7W6UolUn6QEevrhnNiov+4MYV7UfST/lDXg+28","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1321928},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2024 Jack Cannon\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_3.3.0_1752358813603_0.17773043804772315","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"swiss-ak","version":"3.4.0","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@3.4.0","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"9c88296dab1582ac7aeaa7103c50944946ed35f9","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-3.4.0.tgz","fileCount":51,"integrity":"sha512-0As4S7XA2OScjqMK9v1RT2SYZazWx6OdoAyzFEFLTBjpR7ugILzQxVXaXy4tMz0FgRzdNjy8VZJB9AEn6DlKCQ==","signatures":[{"sig":"MEYCIQDBvTODOXdKkmfEYHdeSBQFeUstA0uduKBGjKY0HRj2egIhAPWGC/zgMezLMWi1vLcv7zpJkg6gjwS3z9964bzYBlXp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1334301},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2024 Jack Cannon\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_3.4.0_1752543880197_0.6011046013481558","host":"s3://npm-registry-packages-npm-production"}},"3.4.1":{"name":"swiss-ak","version":"3.4.1","author":{"url":"http://c.annon.co.uk/","name":"Jack Cannon","email":"jackc@annon.co.uk"},"license":"MIT","_id":"swiss-ak@3.4.1","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"dist":{"shasum":"e0724a73f5504909959c8ccf866b228896982f76","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-3.4.1.tgz","fileCount":51,"integrity":"sha512-UMPBkhJmtLkEm2aBKoqav49CoUavdVwxiIZ2smfJJJ5IbLAyZKkH6p9RWXtT2BwLPdP1C1lcJcUN34xC37UMiw==","signatures":[{"sig":"MEUCIGSJFrzwkPQSzteod0ckCtpsFjbicmlzTzd0p65GuAXBAiEAywyFdEwfJ+szSwNGzMRfXbQLPmStK7s4TWrwp6iQrao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1416771},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","build":"yarn build:jsdoc && yarn build:code && yarn docs","watch":"yarn build -- --watch src","test:bun":"bun test","test:node":"jest --no-cache","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","prepublishOnly":"yarn test"},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"repository":{"url":"https://github.com/jackcannon/swiss-ak.git","type":"git"},"description":"A collection of useful little things that I like to reuse across projects","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2024 Jack Cannon\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","tsup":"^6.2.1","ts-jest":"^28.0.7","bun-types":"^0.8.1","swiss-docs":"^0.7.7","typescript":"^4.7.4","@types/jest":"^28.1.6"},"_npmOperationalInternal":{"tmp":"tmp/swiss-ak_3.4.1_1752798873515_0.5545182416533183","host":"s3://npm-registry-packages-npm-production"}},"3.4.2":{"name":"swiss-ak","version":"3.4.2","author":{"name":"Jack Cannon","email":"jackc@annon.co.uk","url":"http://c.annon.co.uk/"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/jackcannon/swiss-ak.git"},"main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"require":"./dist/index.js","import":"./dist/index.mjs","types":"./dist/index.d.ts"}},"devDependencies":{"@types/jest":"^28.1.6","bun-types":"^0.8.1","jest":"^28.1.3","swiss-docs":"^0.7.7","ts-jest":"^28.0.7","tsup":"^6.2.1","typescript":"^4.7.4"},"scripts":{"build":"yarn build:jsdoc && yarn build:code && yarn docs","quickbuild":"yarn build:code && yarn docs","build:jsdoc":"swiss-docs --src src --jsdoc","build:code":"tsup src/index.ts --format cjs,esm --dts --clean","watch":"yarn build -- --watch src","docs":"swiss-docs --src src --output README.md --alias dist/index.d.ts","test":"yarn quickbuild && yarn test:bun && yarn test:node","test:node":"jest --no-cache","test:bun":"bun test","prepublishOnly":"yarn test"},"gitHead":"f9bd61feb7224b56b055e4fa505636c43fe2b0b8","description":"A collection of useful little things that I like to reuse across projects","bugs":{"url":"https://github.com/jackcannon/swiss-ak/issues"},"homepage":"https://github.com/jackcannon/swiss-ak#readme","_id":"swiss-ak@3.4.2","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-7ij9VAk+92ChaZKoN1XyN9DatFasomGfsInxAYM5bD6WLq/SZz2tsSC5sWU13FZUNiSFz+TAV8z2wVC4tsHbQg==","shasum":"d9c25c8de5eb2f1b9286de75db94ce12554014a2","tarball":"https://registry.npmjs.org/swiss-ak/-/swiss-ak-3.4.2.tgz","fileCount":46,"unpackedSize":1416100,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCQrhXtjQ4P6fncsOJPfbL/GOSD8qSZLFCPUznph+E7vQIhAPDhVgxYHHJMkR+InC+jZkQDR4nGc/msL3rmQJUmBctL"}]},"_npmUser":{"name":"jackcannon","email":"jackc@annon.co.uk"},"directories":{},"maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/swiss-ak_3.4.2_1762642493782_0.2404891882474125"},"_hasShrinkwrap":false}},"time":{"created":"2022-07-31T20:30:44.165Z","modified":"2025-11-08T22:54:54.253Z","1.0.1":"2022-07-31T20:30:44.311Z","1.0.2":"2022-07-31T20:34:16.275Z","1.1.0":"2022-08-01T18:17:10.425Z","1.1.1":"2022-08-01T18:25:36.928Z","1.1.2":"2022-08-01T18:32:47.938Z","1.2.0":"2022-08-02T14:18:33.439Z","1.3.0":"2022-08-03T14:06:20.310Z","1.3.1":"2022-08-03T14:51:10.056Z","1.4.0":"2022-08-03T17:24:24.211Z","1.5.0":"2022-08-05T02:03:11.893Z","1.6.0":"2022-08-06T10:19:52.416Z","1.7.0":"2022-08-06T10:48:23.688Z","1.7.1":"2022-08-10T17:40:59.534Z","1.8.0":"2022-08-11T12:11:08.306Z","1.8.1":"2022-08-11T12:28:30.168Z","1.8.2":"2022-08-11T21:52:43.711Z","1.9.0":"2022-08-13T00:40:35.049Z","1.9.1":"2022-08-15T21:46:04.831Z","1.9.2":"2022-08-15T22:07:55.436Z","1.10.0":"2022-08-16T00:37:18.109Z","1.10.1":"2022-08-16T00:38:40.637Z","1.10.2":"2022-08-17T16:19:49.227Z","1.11.0":"2022-08-27T00:10:19.769Z","1.12.0":"2022-09-14T18:34:30.455Z","1.12.1":"2022-12-14T12:18:50.057Z","1.13.0":"2022-12-27T13:30:00.940Z","1.14.0":"2022-12-29T10:40:20.387Z","1.15.0":"2022-12-30T14:08:09.543Z","1.16.0":"2022-12-30T17:57:45.609Z","1.16.1":"2023-01-09T11:59:11.835Z","1.17.0":"2023-01-20T14:06:57.960Z","1.18.0":"2023-01-22T01:40:48.826Z","1.19.0":"2023-02-21T01:51:27.886Z","1.19.1":"2023-02-21T01:56:45.785Z","1.20.0":"2023-02-21T11:26:58.231Z","1.21.0":"2023-02-26T16:12:15.332Z","1.22.0":"2023-03-01T18:36:03.069Z","1.22.1":"2023-03-01T18:52:56.202Z","1.23.0":"2023-03-03T12:08:01.787Z","2.0.0":"2023-03-03T14:19:53.552Z","2.1.0":"2023-03-04T00:24:44.091Z","2.1.1":"2023-03-04T11:36:29.573Z","2.2.0":"2023-03-05T12:40:22.977Z","2.2.1":"2023-03-13T14:42:56.893Z","2.3.0":"2023-07-03T18:29:13.787Z","2.3.1":"2023-07-04T01:12:08.756Z","2.4.0":"2023-08-21T17:17:48.662Z","2.4.1":"2023-08-23T18:24:25.100Z","2.4.2":"2023-08-24T13:54:38.341Z","2.4.3":"2023-08-24T15:16:13.960Z","2.4.4":"2023-08-24T15:19:06.633Z","2.5.0":"2023-08-26T12:50:53.823Z","2.5.1":"2023-08-27T15:13:54.341Z","2.5.2":"2023-08-27T16:16:32.598Z","2.6.0":"2023-08-31T22:41:55.943Z","2.7.0":"2023-12-27T20:12:33.981Z","2.8.0":"2023-12-30T05:07:05.694Z","2.9.0":"2023-12-31T03:52:04.266Z","2.10.0":"2024-01-01T18:07:49.870Z","2.11.0":"2024-01-02T03:43:34.923Z","2.11.1":"2024-01-03T18:22:28.901Z","2.12.0":"2024-01-05T07:11:55.638Z","2.12.1":"2024-01-06T02:37:43.207Z","2.12.2":"2024-01-07T02:45:01.672Z","2.12.3":"2024-01-07T19:42:39.745Z","2.12.4":"2024-01-08T01:12:30.512Z","2.12.5":"2024-01-08T22:00:33.636Z","2.13.0":"2024-01-23T17:15:17.610Z","2.13.1":"2024-01-26T00:20:08.302Z","2.13.2":"2024-02-21T01:15:44.795Z","2.14.0":"2025-02-22T01:05:31.082Z","2.14.1":"2025-02-23T02:00:44.536Z","3.0.0":"2025-02-23T02:05:55.350Z","3.1.0":"2025-02-24T16:08:54.633Z","3.2.0":"2025-03-21T00:15:49.265Z","3.2.1":"2025-07-10T01:05:03.689Z","3.2.2":"2025-07-10T22:47:38.689Z","3.3.0":"2025-07-12T22:20:13.854Z","3.4.0":"2025-07-15T01:44:40.388Z","3.4.1":"2025-07-18T00:34:33.717Z","3.4.2":"2025-11-08T22:54:54.003Z"},"author":{"name":"Jack Cannon","email":"jackc@annon.co.uk","url":"http://c.annon.co.uk/"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/jackcannon/swiss-ak.git"},"description":"A collection of useful little things that I like to reuse across projects","maintainers":[{"name":"jackcannon","email":"jackc@annon.co.uk"}],"readme":"# swiss-ak (Swiss Army Knife)\n\nA collection of useful little things that I like to reuse across projects\n\n<!-- DOCS: TOC START -->\n\n  - [**Table of Contents**](#)\n    - [**times**](#times)\n    - [**waiters**](#waiters)\n    - [**fn**](#fn)\n    - [**ArrayTools**](#arraytools)\n    - [**ObjectTools**](#objecttools)\n    - [**StringTools**](#stringtools)\n    - [**MathsTools**](#mathstools)\n    - [**PromiseTools**](#promisetools)\n    - [**ColourTools**](#colourtools)\n    - [**TimeTools**](#timetools)\n    - [**ErrorTools**](#errortools)\n    - [**Cachier**](#cachier_title)\n    - [**onDemand**](#ondemand)\n    - [**symbols**](#symbols)\n    - [**queue**](#queue)\n    - [**timer**](#timer)\n    - [**safe**](#safe)\n    - [**Types**](#types)\n\n<!-- DOCS: TOC END -->\n\n<!-- DOCS: MAIN START -->\n\n## times\nA collection of Tools for calculating simple times.\nEach unit (e.g. second) has: a type (`second`), a constant (`SECOND`) and a function for getting multiples (`seconds(x: second) => ms`)\n\n| unit        | type         | constant      | function                           |\n| ----------- | ------------ | ------------- | ---------------------------------- |\n| millisecond | `ms`         | `MILLISECOND` | `milliseconds(x: ms) => ms`        |\n| second      | `second`     | `SECOND`      | `seconds(x: second) => ms`         |\n| minute      | `minute`     | `MINUTE`      | `minutes(x: minute) => ms`         |\n| hour        | `hour`       | `HOUR`        | `hours(x: hour) => ms`             |\n| day         | `day`        | `DAY`         | `days(x: day) => ms`               |\n| week        | `week`       | `WEEK`        | `weeks(x: week) => ms`             |\n| month       | `month`      | `MONTH`       | `months(x: month) => ms`           |\n| year        | `year`       | `YEAR`        | `years(x: year) => ms`             |\n| decade      | `decade`     | `DECADE`      | `decades(x: decade) => ms`         |\n| century     | `century`    | `CENTURY`     | `centuries(x: century) => ms`      |\n| millennium  | `millennium` | `MILLENNIUM`  | `millenniums(x: millennium) => ms` |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#\"> [↑ Back to top ↑] </a></p>\n\n## waiters\nAsync functions that return promises at or after a given time.\n\n'Accurate/pinged' waiters ping at intermediary points to resolve at a more accurate time.\n\n| Name      | Description                                          | Example                                         |\n| --------- | ---------------------------------------------------- | ----------------------------------------------- |\n| wait      | Standard wait promise (using setTimeout)             | `minutes(2)` = in 2 minutes                     |\n| waitFor   | Accurate (pinged) wait the given ms                  | `minutes(2)` = in 2 minutes                     |\n| waitUntil | Accurate (pinged) wait until given time              | `Date.now() + minutes(2)` = in 2 minutes        |\n| waitEvery | Accurate (pinged) wait for next 'every X' event      | `hours(1)` = next full hour (e.g. 17:00, 22:00) |\n| interval  | Accurate (pinged) interval for every 'every X' event | `hours(1)` = every hour, on the hour            |\n\n  - [**waiters**](#waiters)\n    - [wait](#wait)\n    - [waitUntil](#waituntil)\n    - [waitFor](#waitfor)\n    - [waitEvery](#waitevery)\n    - [stopInterval](#stopinterval)\n    - [interval](#interval)\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#\"> [↑ Back to top ↑] </a></p>\n\n### wait\n\n```typescript\nwait(time: ms): Promise<unknown>\nwaiters.wait(time: ms): Promise<unknown>\n```\n\nStandard wait promise (using setTimeout)\n\n```typescript\nimport { wait } from 'swiss-ak';\n\nconsole.log(new Date().toTimeString()); // 12:30:10\nawait wait(minutes(2));\nconsole.log(new Date().toTimeString()); // 12:32:10\n```\n\n|  #  | Parameter Name | Required | Type | Description                  |\n|:---:|:---------------|:---------|:-----|:-----------------------------|\n| *0* | `time`         | **Yes**  | `ms` | Time to wait in milliseconds |\n\n| Return Type        |                                            |\n|--------------------|--------------------------------------------|\n| `Promise<unknown>` | Promise that resolves after the given time |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#waiters\"> [↑ Back to <b>waiters</b> ↑] </a></p>\n\n### waitUntil\n\n```typescript\nwaitUntil(time: ms): Promise<null>\nwaiters.waitUntil(time: ms): Promise<null>\n```\n\nAccurate (pinged) wait until given time\n\n```typescript\nimport { waitUntil } from 'swiss-ak';\n\nconsole.log(new Date().toTimeString()); // 12:30:10\nawait waitUntil(Date.now() + minutes(10));\nconsole.log(new Date().toTimeString()); // 12:40:10\n```\n\n|  #  | Parameter Name | Required | Type | Description             |\n|:---:|:---------------|:---------|:-----|:------------------------|\n| *0* | `time`         | **Yes**  | `ms` | Unix time to wait until |\n\n| Return Type     |                                         |\n|-----------------|-----------------------------------------|\n| `Promise<null>` | Promise that resolves at the given time |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#waiters\"> [↑ Back to <b>waiters</b> ↑] </a></p>\n\n### waitFor\n\n```typescript\nwaitFor(time: ms): Promise<null>\nwaiters.waitFor(time: ms): Promise<null>\n```\n\nAccurate (pinged) wait the given ms\n\n```typescript\nimport { waitFor } from 'swiss-ak';\n\nconsole.log(new Date().toTimeString()); // 12:30:10\nawait waitFor(minutes(5));\nconsole.log(new Date().toTimeString()); // 12:35:10\n```\n\n|  #  | Parameter Name | Required | Type | Description                  |\n|:---:|:---------------|:---------|:-----|:-----------------------------|\n| *0* | `time`         | **Yes**  | `ms` | Time to wait in milliseconds |\n\n| Return Type     |                                            |\n|-----------------|--------------------------------------------|\n| `Promise<null>` | Promise that resolves after the given time |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#waiters\"> [↑ Back to <b>waiters</b> ↑] </a></p>\n\n### waitEvery\n\n```typescript\nwaitEvery(timing: ms, offset: ms): Promise<null>\nwaiters.waitEvery(timing: ms, offset: ms): Promise<null>\n```\n\nAccurate (pinged) wait for next 'every X' event\n\n```typescript\nimport { waitEvery } from 'swiss-ak';\n\nconsole.log(new Date().toTimeString()); // 12:30:10\nawait waitEvery(hours(2));\nconsole.log(new Date().toTimeString()); // 14:00:00\n```\n\n|  #  | Parameter Name | Required | Type | Description                   |\n|:---:|:---------------|:---------|:-----|:------------------------------|\n| *0* | `timing`       | **Yes**  | `ms` | Timing period in milliseconds |\n| *1* | `offset`       | *No*     | `ms` | Offset in milliseconds        |\n\n| Return Type     |                                                   |\n|-----------------|---------------------------------------------------|\n| `Promise<null>` | Promise that resolves at the next 'every X' event |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#waiters\"> [↑ Back to <b>waiters</b> ↑] </a></p>\n\n### stopInterval\n\n```typescript\nstopInterval(intID: number): void\nwaiters.stopInterval(intID: number): void\n```\n\n```typescript\nimport { interval, stopInterval } from 'swiss-ak';\n\nconsole.log(new Date().toTimeString()); // 12:30:10\ninterval((intID, count) => {\n  console.log(new Date().toTimeString()); // 13:00:00, 14:00:00, 15:00:00\n  if (count === 3) {\n    stopInterval(intID);\n  }\n}, hours(1));\n```\n\n|  #  | Parameter Name | Required | Type     | Description |\n|:---:|:---------------|:---------|:---------|:------------|\n| *0* | `intID`        | **Yes**  | `number` | Interval ID |\n\n| Return Type |\n|-------------|\n| `void`      |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#waiters\"> [↑ Back to <b>waiters</b> ↑] </a></p>\n\n### interval\n\n```typescript\ninterval(action: (intID?: number, count?: number) => any, timing: ms): number\nwaiters.interval(action: (intID?: number, count?: number) => any, timing: ms): number\n```\n\nAccurate (pinged) interval for every 'every X' event\n\n```typescript\nimport { interval, stopInterval } from 'swiss-ak';\n\nconsole.log(new Date().toTimeString()); // 12:30:10\ninterval((intID, count) => {\n  console.log(new Date().toTimeString()); // 13:00:00, 14:00:00, 15:00:00\n  if (count === 3) {\n    stopInterval(intID);\n  }\n}, hours(1));\n```\n\n|  #  | Parameter Name | Required | Type                                      | Description                    |\n|:---:|:---------------|:---------|:------------------------------------------|:-------------------------------|\n| *0* | `action`       | **Yes**  | `(intID?: number, count?: number) => any` | Action to run on each interval |\n| *1* | `timing`       | **Yes**  | `ms`                                      | Timing period in milliseconds  |\n\n| Return Type |             |\n|-------------|-------------|\n| `number`    | Interval ID |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#waiters\"> [↑ Back to <b>waiters</b> ↑] </a></p>\n\n## fn\nA collection of useful higher-order functions.\n\n  - [**fn**](#fn)\n    - [noop](#noop)\n    - [noact](#noact)\n    - [result](#result)\n    - [resolve](#resolve)\n    - [reject](#reject)\n    - [**filters**](#filters)\n      - [exists](#exists)\n      - [isTruthy](#istruthy)\n      - [isFalsy](#isfalsy)\n      - [isEmpty](#isempty)\n      - [isNotEmpty](#isnotempty)\n      - [isEqual](#isequal)\n      - [isNotEqual](#isnotequal)\n      - [dedupe](#dedupe)\n      - [dedupeMapped](#dedupemapped)\n    - [**maps**](#maps)\n      - [toString](#tostring)\n      - [toNumber](#tonumber)\n      - [toBool](#tobool)\n      - [toProp](#toprop)\n      - [toFixed](#tofixed)\n    - [**sorts**](#sorts)\n      - [asc](#asc)\n      - [desc](#desc)\n      - [byProp](#byprop)\n      - [nearestTo](#nearestto)\n      - [furthestFrom](#furthestfrom)\n      - [array](#array)\n      - [arrayAsc](#arrayasc)\n      - [arrayDesc](#arraydesc)\n    - [**reduces**](#reduces)\n      - [combine](#combine)\n      - [combineProp](#combineprop)\n      - [mode](#mode)\n      - [modeMapped](#modemapped)\n    - [**everys**](#everys)\n      - [isAllEqual](#isallequal)\n      - [isUnique](#isunique)\n    - [**groups**](#groups)\n      - [bySize](#bysize)\n      - [byNumGroups](#bynumgroups)\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#\"> [↑ Back to top ↑] </a></p>\n\n### noop\n\n```typescript\nfn.noop(): void\n```\n\nNo operation. Do nothing, return nothing.\n\n```typescript\nconst run = condition ? doSomething : fn.noop;\nrun();\n```\n\n| Return Type |\n|-------------|\n| `void`      |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n### noact\n\n```typescript\nfn.noact(item: T): T\n```\n\nNo action. Returns the first argument it receives.\n\n```typescript\nconst items = stuff\n  .map(condition ? mapSomething : fn.noact)\n```\n\n|  #  | Parameter Name | Required | Type | Description    |\n|:---:|:---------------|:---------|:-----|:---------------|\n| *0* | `item`         | *No*     | `T`  | Item to return |\n\n| Return Type |                                |\n|-------------|--------------------------------|\n| `T`         | The first argument it receives |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n### result\n\n```typescript\nfn.result(item: T): () => T\n```\n\nReturns a function that returns the first argument.\n\n```typescript\nconst items = stuff\n  .filter(condition ? mapSomething : fn.result(true))\n```\n\n|  #  | Parameter Name | Required | Type | Description                      |\n|:---:|:---------------|:---------|:-----|:---------------------------------|\n| *0* | `item`         | *No*     | `T`  | Item to return from the function |\n\n| Return Type |                                          |\n|-------------|------------------------------------------|\n| `() => T`   | Function that returns the first argument |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n### resolve\n\n```typescript\nfn.resolve(item: T): () => Promise<T>\n```\n\nReturns an async function that resolves to the first argument\n\nLike fn.result, but wrapped in a Promise\n\n```typescript\nawait Promise.all(stuff.map(fn.resolve()));\n```\n\n|  #  | Parameter Name | Required | Type | Description     |\n|:---:|:---------------|:---------|:-----|:----------------|\n| *0* | `item`         | *No*     | `T`  | Item to resolve |\n\n| Return Type        |                                                                     |\n|--------------------|---------------------------------------------------------------------|\n| `() => Promise<T>` | Function that returns a Promise that resolves to the first argument |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n### reject\n\n```typescript\nfn.reject(item: T): () => Promise<T>\n```\n\nReturns an async function that rejects with the first argument\n\n```typescript\nawait Promise.all(stuff.map(fn.reject()));\n```\n\n|  #  | Parameter Name | Required | Type | Description    |\n|:---:|:---------------|:---------|:-----|:---------------|\n| *0* | `item`         | *No*     | `T`  | Item to reject |\n\n| Return Type        |                                                                      |\n|--------------------|----------------------------------------------------------------------|\n| `() => Promise<T>` | Function that returns a Promise that rejects with the first argument |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n### filters\n\n```typescript\nfn.filters;\n```\n\nCollection of functions that can be used with Array.filter\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### exists\n\n```typescript\nfn.exists(item: T): boolean\nfn.filters.exists(item: T): boolean\nfilters.exists(item: T): boolean\n```\n\nReturns true if item isn't null or undefined.\n\n```typescript\n[null, 1, undefined, 2].filter(fn.exists); // [1, 2]\n```\n\n|  #  | Parameter Name | Required | Type | Description                |\n|:---:|:---------------|:---------|:-----|:---------------------------|\n| *0* | `item`         | **Yes**  | `T`  | Item to check if it exists |\n\n| Return Type |                                      |\n|-------------|--------------------------------------|\n| `boolean`   | True if item isn't null or undefined |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### isTruthy\n\n```typescript\nfn.isTruthy(item: T): boolean\nfn.filters.isTruthy(item: T): boolean\nfilters.isTruthy(item: T): boolean\n```\n\nReturns true if item is truthy.\n\n```typescript\n[0, 1, 2].filter(fn.isTruthy); // [1, 2]\n['', 'a', 'b'].filter(fn.isTruthy); // ['a', 'b']\n```\n\n|  #  | Parameter Name | Required | Type | Description                   |\n|:---:|:---------------|:---------|:-----|:------------------------------|\n| *0* | `item`         | **Yes**  | `T`  | Item to check if it is truthy |\n\n| Return Type |                        |\n|-------------|------------------------|\n| `boolean`   | True if item is truthy |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### isFalsy\n\n```typescript\nfn.isFalsy(item: T): boolean\nfn.filters.isFalsy(item: T): boolean\nfilters.isFalsy(item: T): boolean\n```\n\nReturns true if item is falsy.\n\n```typescript\n[0, 1, 2].filter(fn.isFalsy); // [0]\n['', 'a', 'b'].filter(fn.isFalsy); // ['']\n```\n\n|  #  | Parameter Name | Required | Type | Description                  |\n|:---:|:---------------|:---------|:-----|:-----------------------------|\n| *0* | `item`         | **Yes**  | `T`  | Item to check if it is falsy |\n\n| Return Type |                       |\n|-------------|-----------------------|\n| `boolean`   | True if item is falsy |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### isEmpty\n\n```typescript\nfn.isEmpty(item: T[] | string): boolean\nfn.filters.isEmpty(item: T[] | string): boolean\nfilters.isEmpty(item: T[] | string): boolean\n```\n\nReturns true if item's length is 0\n\n```typescript\n['', 'a', 'b'].filter(fn.isEmpty); // ['']\n[[], [1], [2]].filter(fn.isEmpty); // [[]]\n```\n\n|  #  | Parameter Name | Required | Type            | Description                  |\n|:---:|:---------------|:---------|:----------------|:-----------------------------|\n| *0* | `item`         | **Yes**  | `T[] \\| string` | Item to check if it is empty |\n\n| Return Type |                            |\n|-------------|----------------------------|\n| `boolean`   | True if item's length is 0 |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### isNotEmpty\n\n```typescript\nfn.isNotEmpty(item: T[] | string): boolean\nfn.filters.isNotEmpty(item: T[] | string): boolean\nfilters.isNotEmpty(item: T[] | string): boolean\n```\n\nReturns true if item's length is 1 or more\n\n```typescript\n['', 'a', 'b'].filter(fn.isNotEmpty); // ['a', 'b']\n[[], [1], [2]].filter(fn.isNotEmpty); // [[1], [2]]\n```\n\n|  #  | Parameter Name | Required | Type            | Description                      |\n|:---:|:---------------|:---------|:----------------|:---------------------------------|\n| *0* | `item`         | **Yes**  | `T[] \\| string` | Item to check if it is not empty |\n\n| Return Type |                                    |\n|-------------|------------------------------------|\n| `boolean`   | True if item's length is 1 or more |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### isEqual\n\n```typescript\nfn.isEqual(item: T): (other: T) => boolean\nfn.filters.isEqual(item: T): (other: T) => boolean\nfilters.isEqual(item: T): (other: T) => boolean\n```\n\nReturns a function that returns true if the item is equal to provided value.\n\n```typescript\n[0, 1, 2].filter(fn.isEqual(1)); // [1]\n```\n\n|  #  | Parameter Name | Required | Type | Description                                              |\n|:---:|:---------------|:---------|:-----|:---------------------------------------------------------|\n| *0* | `item`         | **Yes**  | `T`  | Item to check whether each item of the array is equal to |\n\n| Return Type             |                                 |\n|-------------------------|---------------------------------|\n| `(other: T) => boolean` | Function to use in Array.filter |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### isNotEqual\n\n```typescript\nfn.isNotEqual(item: T): (other: T) => boolean\nfn.filters.isNotEqual(item: T): (other: T) => boolean\nfilters.isNotEqual(item: T): (other: T) => boolean\n```\n\nReturns a function that returns true if the item is not equal to provided value.\n\n```typescript\n[0, 1, 2].filter(fn.isNotEqual(1)); // [0, 2]\n```\n\n|  #  | Parameter Name | Required | Type | Description                                                  |\n|:---:|:---------------|:---------|:-----|:-------------------------------------------------------------|\n| *0* | `item`         | **Yes**  | `T`  | Item to check whether each item of the array is not equal to |\n\n| Return Type             |                                 |\n|-------------------------|---------------------------------|\n| `(other: T) => boolean` | Function to use in Array.filter |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### dedupe\n\n```typescript\nfn.dedupe(item: T, index: number, array: T[]): boolean\nfn.filters.dedupe(item: T, index: number, array: T[]): boolean\nfilters.dedupe(item: T, index: number, array: T[]): boolean\n```\n\nRemoves duplicate items from an array.\n\n```typescript\n[0, 1, 2, 1, 0].filter(fn.dedupe); // [0, 1, 2]\n```\n\n|  #  | Parameter Name | Required | Type     | Description             |\n|:---:|:---------------|:---------|:---------|:------------------------|\n| *0* | `item`         | **Yes**  | `T`      | Given item in array     |\n| *1* | `index`        | **Yes**  | `number` | Index of the given item |\n| *2* | `array`        | **Yes**  | `T[]`    | Array of items          |\n\n| Return Type |                                                       |\n|-------------|-------------------------------------------------------|\n| `boolean`   | True if the item is the first occurrence in the array |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### dedupeMapped\n\n```typescript\nfn.dedupeMapped(mapFn: (value?: T, index?: number, array?: T[]) => U): (item: T, index: number, array: T[]) => boolean\nfn.filters.dedupeMapped(mapFn: (value?: T, index?: number, array?: T[]) => U): (item: T, index: number, array: T[]) => boolean\nfilters.dedupeMapped(mapFn: (value?: T, index?: number, array?: T[]) => U): (item: T, index: number, array: T[]) => boolean\n```\n\nRemoves duplicate items from an array based on a mapped value.\n\n```typescript\n[2, 4, 6, 8, 10, 12].filter(fn.dedupeMapped((v) => v % 3)); // [ 2, 4, 6 ] (maps to [ 2, 1, 0, 2, 1, 0 ])\n```\n\n|  #  | Parameter Name | Required | Type                                            | Description                                                                    |\n|:---:|:---------------|:---------|:------------------------------------------------|:-------------------------------------------------------------------------------|\n| *0* | `mapFn`        | **Yes**  | `(value?: T, index?: number, array?: T[]) => U` | Function to map the item to a new value (will be used to check for duplicates) |\n\n| Return Type                                       |                                 |\n|---------------------------------------------------|---------------------------------|\n| `(item: T, index: number, array: T[]) => boolean` | Function to use in Array.filter |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n### maps\n\n```typescript\nfn.maps;\n```\n\nCollection of functions that can be used with Array.map\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### toString\n\n```typescript\nfn.toString(item: T): string\nfn.maps.toString(item: T): string\nmaps.toString(item: T): string\n```\n\nMaps the item to a string.\n\n```typescript\n[0, 1, 2].map(fn.toString); // ['0', '1', '2']\n```\n\n|  #  | Parameter Name | Required | Type | Description      |\n|:---:|:---------------|:---------|:-----|:-----------------|\n| *0* | `item`         | **Yes**  | `T`  | Item in an array |\n\n| Return Type |                    |\n|-------------|--------------------|\n| `string`    | String of the item |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### toNumber\n\n```typescript\nfn.toNumber(item: T): number\nfn.maps.toNumber(item: T): number\nmaps.toNumber(item: T): number\n```\n\nMaps the item to a number.\n\n```typescript\n['0', '1', '2'].map(fn.toNumber); // [0, 1, 2]\n```\n\n|  #  | Parameter Name | Required | Type | Description      |\n|:---:|:---------------|:---------|:-----|:-----------------|\n| *0* | `item`         | **Yes**  | `T`  | Item in an array |\n\n| Return Type |                    |\n|-------------|--------------------|\n| `number`    | Number of the item |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### toBool\n\n```typescript\nfn.toBool(item: T): boolean\nfn.maps.toBool(item: T): boolean\nmaps.toBool(item: T): boolean\n```\n\nMaps the item to a boolean.\n\n```typescript\n[0, 1, 2].map(fn.toBool); // [false, true, true]\n['true', 'false', '', 'text'].map(fn.toBool); // [true, false, false, true]\n```\n\n|  #  | Parameter Name | Required | Type | Description      |\n|:---:|:---------------|:---------|:-----|:-----------------|\n| *0* | `item`         | **Yes**  | `T`  | Item in an array |\n\n| Return Type |                     |\n|-------------|---------------------|\n| `boolean`   | Boolean of the item |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### toProp\n\n```typescript\nfn.toProp(propName: keyof O): (item: O) => O[keyof O]\nfn.maps.toProp(propName: keyof O): (item: O) => O[keyof O]\nmaps.toProp(propName: keyof O): (item: O) => O[keyof O]\n```\n\nMaps the item to a given property of the item\n\n```typescript\n[{name: 'Jack'}, {name: 'Jill'}].map(fn.toProp('name')); // ['Jack', 'Jill']\n```\n\n|  #  | Parameter Name | Required | Type      | Description                    |\n|:---:|:---------------|:---------|:----------|:-------------------------------|\n| *0* | `propName`     | **Yes**  | `keyof O` | Property to get from each item |\n\n| Return Type               |                              |\n|---------------------------|------------------------------|\n| `(item: O) => O[keyof O]` | Function to use in Array.map |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### toFixed\n\n```typescript\nfn.toFixed(precision: number): (num: number) => number\nfn.maps.toFixed(precision: number): (num: number) => number\nmaps.toFixed(precision: number): (num: number) => number\n```\n\nMap the items (numbers) of an array to a fixed precision.\n\n```typescript\n[1.234, 5.678, 9.012].map(fn.toFixed(2)); // [1.23, 5.68, 9.01]\n```\n\n|  #  | Parameter Name | Required | Type     | Description                          |\n|:---:|:---------------|:---------|:---------|:-------------------------------------|\n| *0* | `precision`    | **Yes**  | `number` | Number of decimal places to round to |\n\n| Return Type               |                              |\n|---------------------------|------------------------------|\n| `(num: number) => number` | Function to use in Array.map |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n### sorts\n\n```typescript\nfn.sorts;\n```\n\nCollection of functions that can be used with Array.sort\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### asc\n\n```typescript\nfn.asc(a: T, b: T): number\nfn.sorts.asc(a: T, b: T): number\nsorts.asc(a: T, b: T): number\n```\n\nSort ascending.\n\n```typescript\n[2, 4, 3, 1].sort(fn.asc); // [1, 2, 3, 4]\n```\n\n|  #  | Parameter Name | Required | Type | Description     |\n|:---:|:---------------|:---------|:-----|:----------------|\n| *0* | `a`            | **Yes**  | `T`  | Item to compare |\n| *1* | `b`            | **Yes**  | `T`  | Item to compare |\n\n| Return Type |                         |\n|-------------|-------------------------|\n| `number`    | Number used for sorting |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### desc\n\n```typescript\nfn.desc(a: T, b: T): number\nfn.sorts.desc(a: T, b: T): number\nsorts.desc(a: T, b: T): number\n```\n\nSort descending.\n\n```typescript\n[2, 4, 3, 1].sort(fn.desc); // [4, 3, 2, 1]\n```\n\n|  #  | Parameter Name | Required | Type | Description     |\n|:---:|:---------------|:---------|:-----|:----------------|\n| *0* | `a`            | **Yes**  | `T`  | Item to compare |\n| *1* | `b`            | **Yes**  | `T`  | Item to compare |\n\n| Return Type |                         |\n|-------------|-------------------------|\n| `number`    | Number used for sorting |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### byProp\n\n```typescript\nfn.byProp(propName: keyof O, sortFn: SortFn<O[keyof O]>): SortFn<O>\nfn.sorts.byProp(propName: keyof O, sortFn: SortFn<O[keyof O]>): SortFn<O>\nsorts.byProp(propName: keyof O, sortFn: SortFn<O[keyof O]>): SortFn<O>\n```\n\nSort by a given property.\n\n```typescript\nconst people = [{age: 2}, {age: 4}, {age: 3}, {age: 1}];\npeople.sort(fn.byProp('age', fn.asc)); // [{age: 1}, {age: 2}, {age: 3}, {age: 4}]\n```\n\n|  #  | Parameter Name | Required | Type                 | Default        | Description          |\n|:---:|:---------------|:---------|:---------------------|:---------------|:---------------------|\n| *0* | `propName`     | **Yes**  | `keyof O`            |                | Property to sort by  |\n| *1* | `sortFn`       | *No*     | `SortFn<O[keyof O]>` | `fn.sorts.asc` | Sort function to use |\n\n| Return Type |                               |\n|-------------|-------------------------------|\n| `SortFn<O>` | Function to use in Array.sort |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### nearestTo\n\n```typescript\nfn.nearestTo(target: number | `${number}`): (a: number | `${number}`, b: number | `${number}`) => number\nfn.sorts.nearestTo(target: number | `${number}`): (a: number | `${number}`, b: number | `${number}`) => number\nsorts.nearestTo(target: number | `${number}`): (a: number | `${number}`, b: number | `${number}`) => number\n```\n\nSort by the nearest value to the given value.\n\nValues get converted to numbers before comparison.\n\n```typescript\nconst people = [2, 4, 3, 1];\npeople.sort(fn.nearestTo(3)); // [3, 2, 4, 1]\n```\n\n|  #  | Parameter Name | Required | Type                       | Description             |\n|:---:|:---------------|:---------|:---------------------------|:------------------------|\n| *0* | `target`       | **Yes**  | ``number \\| `${number}` `` | Target value to sort by |\n\n| Return Type                                                        |                               |\n|--------------------------------------------------------------------|-------------------------------|\n| ``(a: number \\| `${number}`, b: number \\| `${number}`) => number`` | Function to use in Array.sort |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### furthestFrom\n\n```typescript\nfn.furthestFrom(target: number | `${number}`): (a: number | `${number}`, b: number | `${number}`) => number\nfn.sorts.furthestFrom(target: number | `${number}`): (a: number | `${number}`, b: number | `${number}`) => number\nsorts.furthestFrom(target: number | `${number}`): (a: number | `${number}`, b: number | `${number}`) => number\n```\n\nSort by the furthest value to the given value.\n\n```typescript\nconst people = [2, 4, 3, 1];\npeople.sort(fn.furthestFrom(3)); // [1, 2, 4, 3]\n```\n\n|  #  | Parameter Name | Required | Type                       | Description             |\n|:---:|:---------------|:---------|:---------------------------|:------------------------|\n| *0* | `target`       | **Yes**  | ``number \\| `${number}` `` | Target value to sort by |\n\n| Return Type                                                        |                               |\n|--------------------------------------------------------------------|-------------------------------|\n| ``(a: number \\| `${number}`, b: number \\| `${number}`) => number`` | Function to use in Array.sort |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### array\n\n```typescript\nfn.array(sortFn: SortFn<T>): (a: T[], b: T[]) => number\nfn.sorts.array(sortFn: SortFn<T>): (a: T[], b: T[]) => number\nsorts.array(sortFn: SortFn<T>): (a: T[], b: T[]) => number\n```\n\nSort an array of arrays by the given sort function.\n\nSorts by the first item in the array, then the second, etc. until a non-zero result is found.\n\n```typescript\nconst arr = [[1, 2], [3, 4], [5, 6]];\narr.sort(fn.array(fn.asc)); // [[1, 2], [3, 4], [5, 6]]\n```\n\n|  #  | Parameter Name | Required | Type        | Default        | Description          |\n|:---:|:---------------|:---------|:------------|:---------------|:---------------------|\n| *0* | `sortFn`       | *No*     | `SortFn<T>` | `fn.sorts.asc` | Sort function to use |\n\n| Return Type                  |                               |\n|------------------------------|-------------------------------|\n| `(a: T[], b: T[]) => number` | Function to use in Array.sort |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### arrayAsc\n\n```typescript\nfn.arrayAsc(a: T, b: T): number\nfn.sorts.arrayAsc(a: T, b: T): number\nsorts.arrayAsc(a: T, b: T): number\n```\n\nSort an array of arrays in ascending order\n\nSorts by the first item in the array, then the second, etc. until a non-zero result is found.\n\n```typescript\nconst arr = [[1, 2], [3, 4], [5, 6]];\narr.sort(fn.arrayAsc); // [[1, 2], [3, 4], [5, 6]]\n```\n\n|  #  | Parameter Name | Required | Type | Description     |\n|:---:|:---------------|:---------|:-----|:----------------|\n| *0* | `a`            | **Yes**  | `T`  | Item to compare |\n| *1* | `b`            | **Yes**  | `T`  | Item to compare |\n\n| Return Type |                         |\n|-------------|-------------------------|\n| `number`    | Number used for sorting |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### arrayDesc\n\n```typescript\nfn.arrayDesc(a: T, b: T): number\nfn.sorts.arrayDesc(a: T, b: T): number\nsorts.arrayDesc(a: T, b: T): number\n```\n\nSort an array of arrays in descending order\n\nSorts by the first item in the array, then the second, etc. until a non-zero result is found.\n\n```typescript\nconst arr = [[1, 2], [3, 4], [5, 6]];\narr.sort(fn.arrayDesc); // [[5, 6], [3, 4], [1, 2]]\n```\n\n|  #  | Parameter Name | Required | Type | Description     |\n|:---:|:---------------|:---------|:-----|:----------------|\n| *0* | `a`            | **Yes**  | `T`  | Item to compare |\n| *1* | `b`            | **Yes**  | `T`  | Item to compare |\n\n| Return Type |                         |\n|-------------|-------------------------|\n| `number`    | Number used for sorting |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n### reduces\n\n```typescript\nfn.reduces;\n```\n\nCollection of functions that can be used with Array.reduce\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### combine\n\n```typescript\nfn.combine(a: T, b: T): T\nfn.reduces.combine(a: T, b: T): T\nreduces.combine(a: T, b: T): T\n```\n\nAdds or concats the items\n\n```typescript\n[1, 2, 3].reduce(fn.combine); // 6\n['a', 'b', 'c'].reduce(fn.combine); // 'abc'\n```\n\n|  #  | Parameter Name | Required | Type | Description     |\n|:---:|:---------------|:---------|:-----|:----------------|\n| *0* | `a`            | **Yes**  | `T`  | Item to combine |\n| *1* | `b`            | **Yes**  | `T`  | Item to combine |\n\n| Return Type |               |\n|-------------|---------------|\n| `T`         | Combined item |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### combineProp\n\n```typescript\nfn.combineProp(propName: keyof O): (a: O[keyof O], b: O) => O[keyof O]\nfn.reduces.combineProp(propName: keyof O): (a: O[keyof O], b: O) => O[keyof O]\nreduces.combineProp(propName: keyof O): (a: O[keyof O], b: O) => O[keyof O]\n```\n\nAdds or concats the given property of the items\n\n> __Note:__ The initial value is required, because the first item is not yet an object.\n\n```typescript\nconst people = [{name: 'a', age: 1}, {name: 'b', age: 2}, {name: 'c', age: 3}];\npeople.reduce(fn.combineProp('age'), 0); // 6\npeople.reduce(fn.combineProp('name'), ''); // 'abc'\n```\n\n|  #  | Parameter Name | Required | Type      | Description         |\n|:---:|:---------------|:---------|:----------|:--------------------|\n| *0* | `propName`     | **Yes**  | `keyof O` | Property to combine |\n\n| Return Type                           |                                 |\n|---------------------------------------|---------------------------------|\n| `(a: O[keyof O], b: O) => O[keyof O]` | Function to use in Array.reduce |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### mode\n\n```typescript\nfn.mode(prev: T, curr: T, index: number, arr: T[]): T\nfn.reduces.mode(prev: T, curr: T, index: number, arr: T[]): T\nreduces.mode(prev: T, curr: T, index: number, arr: T[]): T\n```\n\nReturns the most common value in an array.\n\n```typescript\n[1, 2, 3, 2, 1, 1].reduce(fn.mode); // 1\n```\n\n|  #  | Parameter Name | Required | Type     | Description                |\n|:---:|:---------------|:---------|:---------|:---------------------------|\n| *0* | `prev`         | **Yes**  | `T`      | Previous value             |\n| *1* | `curr`         | **Yes**  | `T`      | Current value              |\n| *2* | `index`        | **Yes**  | `number` | Index of the current value |\n| *3* | `arr`          | **Yes**  | `T[]`    | Array of values            |\n\n| Return Type |                          |\n|-------------|--------------------------|\n| `T`         | Most common value so far |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### modeMapped\n\n```typescript\nfn.modeMapped(mapFn: (value: T, index: number, array: T[]) => U): (prev: T, curr: T, index: number, arr: T[]) => T\nfn.reduces.modeMapped(mapFn: (value: T, index: number, array: T[]) => U): (prev: T, curr: T, index: number, arr: T[]) => T\nreduces.modeMapped(mapFn: (value: T, index: number, array: T[]) => U): (prev: T, curr: T, index: number, arr: T[]) => T\n```\n\nReturns the most common value in an array, based on a given map function.\n\n```typescript\n[2, 4, 6, 8, 9, 12].reduce(fn.modeMapped((v) => v % 3)); // 6 (maps to [ 2, 1, 0, 2, 0, 0 ])\n```\n\n|  #  | Parameter Name | Required | Type                                         | Description         |\n|:---:|:---------------|:---------|:---------------------------------------------|:--------------------|\n| *0* | `mapFn`        | **Yes**  | `(value: T, index: number, array: T[]) => U` | Map function to use |\n\n| Return Type                                        |                                 |\n|----------------------------------------------------|---------------------------------|\n| `(prev: T, curr: T, index: number, arr: T[]) => T` | Function to use in Array.reduce |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n### everys\n\n```typescript\nfn.everys;\n```\n\nCollection of functions that can be used with Array.every\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### isAllEqual\n\n```typescript\nfn.isAllEqual(val: T, i: number, arr: T[]): boolean\nfn.everys.isAllEqual(val: T, i: number, arr: T[]): boolean\neverys.isAllEqual(val: T, i: number, arr: T[]): boolean\n```\n\nReturns if all the items are equal to one another.\n\n```typescript\n[1, 1, 1].every(fn.isAllEqual); // true\n[1, 2, 1].every(fn.isAllEqual); // false\n```\n\n|  #  | Parameter Name | Required | Type     | Description        |\n|:---:|:---------------|:---------|:---------|:-------------------|\n| *0* | `val`          | **Yes**  | `T`      | Value to check     |\n| *1* | `i`            | **Yes**  | `number` | Index of the value |\n| *2* | `arr`          | **Yes**  | `T[]`    | Array of values    |\n\n| Return Type |                                                       |\n|-------------|-------------------------------------------------------|\n| `boolean`   | True if all the items are equal to one another so far |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### isUnique\n\n```typescript\nfn.isUnique(val: T, i: number, arr: T[]): boolean\nfn.everys.isUnique(val: T, i: number, arr: T[]): boolean\neverys.isUnique(val: T, i: number, arr: T[]): boolean\n```\n\nReturns true if the item is unique in the array.\n\n```typescript\n[1, 1, 1].every(fn.isUnique); // false\n[1, 2, 1].every(fn.isUnique); // false\n[1, 2, 3].every(fn.isUnique); // true\n```\n\n|  #  | Parameter Name | Required | Type     | Description        |\n|:---:|:---------------|:---------|:---------|:-------------------|\n| *0* | `val`          | **Yes**  | `T`      | Value to check     |\n| *1* | `i`            | **Yes**  | `number` | Index of the value |\n| *2* | `arr`          | **Yes**  | `T[]`    | Array of values    |\n\n| Return Type |                                                |\n|-------------|------------------------------------------------|\n| `boolean`   | True if the item is unique in the array so far |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n### groups\n\n```typescript\nfn.groups;\n```\n\nCollection of functions that can be used with ArrayTools.group\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### bySize\n\n```typescript\nfn.bySize(size: number): (value: T, index: number, array: T[]) => number\nfn.groups.bySize(size: number): (value: T, index: number, array: T[]) => number\ngroups.bySize(size: number): (value: T, index: number, array: T[]) => number\n```\n\nGroup an array into groups of a given size.\n\n> __Note:__ The last group may be smaller than the given size.\n\n> __Note:__ The groups a distributed in order, so the first group will be filled up first, then the next, etc.\n\n> __Note:__ Consider using `ArrayTools.partition` instead\n\n```typescript\nconst nums = [1, 2, 3, 4, 5, 6, 7, 8];\nArrayTools.group(nums, fn.bySize(3)); // [[1, 2, 3], [4, 5, 6], [7, 8]]\n```\n\n|  #  | Parameter Name | Required | Type     | Description        |\n|:---:|:---------------|:---------|:---------|:-------------------|\n| *0* | `size`         | **Yes**  | `number` | Size of the groups |\n\n| Return Type                                       |                                     |\n|---------------------------------------------------|-------------------------------------|\n| `(value: T, index: number, array: T[]) => number` | Function to use in ArrayTools.group |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n#### byNumGroups\n\n```typescript\nfn.byNumGroups(numGroups: number): (value: T, index: number, array: T[]) => any\nfn.groups.byNumGroups(numGroups: number): (value: T, index: number, array: T[]) => any\ngroups.byNumGroups(numGroups: number): (value: T, index: number, array: T[]) => any\n```\n\nGroup an array into a certain number of groups as evenly as possible.\n\n> __Note:__ The groups are distributed in order, so the first group will be filled up first, then the next, etc.\n\n```typescript\nconst nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\nArrayTools.group(nums, fn.byNumGroups(3)); // [[1, 2, 3, 4], [5, 6, 7], [8, 9, 10]]\n```\n\n|  #  | Parameter Name | Required | Type     | Description                |\n|:---:|:---------------|:---------|:---------|:---------------------------|\n| *0* | `numGroups`    | **Yes**  | `number` | Number of groups to create |\n\n| Return Type                                    |                                     |\n|------------------------------------------------|-------------------------------------|\n| `(value: T, index: number, array: T[]) => any` | Function to use in ArrayTools.group |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#fn\"> [↑ Back to <b>fn</b> ↑] </a></p>\n\n## ArrayTools\nA collection of useful array functions.\n\n  - [**ArrayTools**](#arraytools)\n    - [create](#arraytools_create)\n    - [filled](#filled)\n    - [range](#range)\n    - [zip](#zip)\n    - [zipMax](#zipmax)\n    - [sortByMapped](#sortbymapped)\n    - [randomise](#randomise)\n    - [reverse](#reverse)\n    - [entries](#entries)\n    - [repeat](#arraytools_repeat)\n    - [roll](#roll)\n    - [sortNumberedText](#sortnumberedtext)\n    - [partition](#partition)\n    - [partitionEvenly](#partitionevenly)\n    - [groupObj](#groupobj)\n    - [group](#group)\n    - [findAndRemove](#findandremove)\n    - [findLastAndRemove](#findlastandremove)\n    - [filterAndRemove](#filterandremove)\n    - [**utils**](#utils)\n      - [isNumString](#isnumstring)\n      - [partitionNums](#partitionnums)\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#\"> [↑ Back to top ↑] </a></p>\n\n### <span id=\"arraytools_create\">create</span>\n\n```typescript\ncreate(length: number, value: T): T[]\nArrayTools.create(length: number, value: T): T[]\n```\n\nCreate an array of the given length, where each value is the given value\n\n```typescript\nArrayTools.create(3); // [ 1, 1, 1 ]\nArrayTools.create(3, 'a'); // [ 'a', 'a', 'a' ]\nArrayTools.create(3, 1); // [ 1, 1, 1 ]\n```\n\n|  #  | Parameter Name | Required | Type     | Default             | Description                   |\n|:---:|:---------------|:---------|:---------|:--------------------|:------------------------------|\n| *0* | `length`       | *No*     | `number` | `1`                 | Length of the array to create |\n| *1* | `value`        | *No*     | `T`      | `1 as unknown as T` | Value to fill the array with  |\n\n| Return Type |                                                    |\n|-------------|----------------------------------------------------|\n| `T[]`       | Array of the given length, full of the given value |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#arraytools\"> [↑ Back to <b>ArrayTools</b> ↑] </a></p>\n\n### filled\n\n```typescript\nfilled(length: number, value: T): T[]\nArrayTools.filled(length: number, value: T): T[]\n```\n\nCreate an array of the given length, where each value is the given value\n\n```typescript\nArrayTools.filled(3); // [ 1, 1, 1 ]\nArrayTools.filled(3, 'a'); // [ 'a', 'a', 'a' ]\nArrayTools.filled(3, 1); // [ 1, 1, 1 ]\n```\n\n|  #  | Parameter Name | Required | Type     | Default | Description                   |\n|:---:|:---------------|:---------|:---------|:--------|:------------------------------|\n| *0* | `length`       | *No*     | `number` | `1`     | Length of the array to create |\n| *1* | `value`        | **Yes**  | `T`      |         | Value to fill the array with  |\n\n| Return Type |                                                    |\n|-------------|----------------------------------------------------|\n| `T[]`       | Array of the given length, full of the given value |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#arraytools\"> [↑ Back to <b>ArrayTools</b> ↑] </a></p>\n\n### range\n\n```typescript\nrange(length: number, multiplier: number, offset: number): number[]\nArrayTools.range(length: number, multiplier: number, offset: number): number[]\n```\n\nReturns an array of the given length, where each value is equal to it's index\ne.g. [0, 1, 2, ..., length]\n\n```typescript\nArrayTools.range(3);  // [0, 1, 2]\nArrayTools.range(5);  // [0, 1, 2, 3, 4]\nArrayTools.range(10); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n\nArrayTools.range(3, 2);  // [0, 2, 4]\nArrayTools.range(5, 2);  // [0, 2, 4, 6, 8]\nArrayTools.range(10, 10); // [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]\n```\n\n|  #  | Parameter Name | Required | Type     | Default | Description                                          |\n|:---:|:---------------|:---------|:---------|:--------|:-----------------------------------------------------|\n| *0* | `length`       | *No*     | `number` | `1`     | Length of the array to create                        |\n| *1* | `multiplier`   | *No*     | `number` | `1`     | Multiplier to apply to each value                    |\n| *2* | `offset`       | *No*     | `number` | `0`     | Offset to apply to each value (after the multiplier) |\n\n| Return Type |                                                                    |\n|-------------|--------------------------------------------------------------------|\n| `number[]`  | Array of the given length, where each value is equal to it's index |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#arraytools\"> [↑ Back to <b>ArrayTools</b> ↑] </a></p>\n\n### zip\n\n```typescript\nzip(...arrs: T[]): ZippedArrays<T>[]\nArrayTools.zip(...arrs: T[]): ZippedArrays<T>[]\n```\n\nConverts multiple arrays into an array of 'tuples' for each value at the corresponding indexes.\n\nLimited to the length of the shortest provided array\n\nInspired by python's 'zip'\n\n```typescript\nArrayTools.zip([1, 2, 3, 4], ['a', 'b', 'c']); // [ [1, 'a'], [2, 'b'], [3, 'c'] ]\n```\n\n|  #   | Parameter Name | Required | Type  | Description            |\n|:----:|:---------------|:---------|:------|:-----------------------|\n| *0…* | `arrs`         | *No*     | `T[]` | Arrays to zip together |\n\n| Return Type         |                                                               |\n|---------------------|---------------------------------------------------------------|\n| `ZippedArrays<T>[]` | Array of 'tuples' for each value at the corresponding indexes |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#arraytools\"> [↑ Back to <b>ArrayTools</b> ↑] </a></p>\n\n### zipMax\n\n```typescript\nzipMax(...arrs: T[]): ZippedArrays<T>[]\nArrayTools.zipMax(...arrs: T[]): ZippedArrays<T>[]\n```\n\nConverts multiple arrays into an array of 'tuples' for each value at the corresponding indexes.\n\nUnlike `zip`, it will match the length of the longest provided array, filling in any missing values with `undefined`\n\nInspired by python's 'zip'\n\n```typescript\nArrayTools.zipMax([1, 2, 3, 4], ['a', 'b', 'c']); //[ [ 1, 'a' ], [ 2, 'b' ], [ 3, 'c' ], [ 4, undefined ] ]\n```\n\n|  #   | Parameter Name | Required | Type  | Description            |\n|:----:|:---------------|:---------|:------|:-----------------------|\n| *0…* | `arrs`         | *No*     | `T[]` | Arrays to zip together |\n\n| Return Type         |                                                               |\n|---------------------|---------------------------------------------------------------|\n| `ZippedArrays<T>[]` | Array of 'tuples' for each value at the corresponding indexes |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#arraytools\"> [↑ Back to <b>ArrayTools</b> ↑] </a></p>\n\n### sortByMapped\n\n```typescript\nsortByMapped(arr: T[], mapFn: (value: T, index: number, array: T[]) => M, sortFn: (a: M, b: M) => number): T[]\nArrayTools.sortByMapped(arr: T[], mapFn: (value: T, index: number, array: T[]) => M, sortFn: (a: M, b: M) => number): T[]\n```\n\nSort an array by a mapped form of the values, but returning the initial values\n\n```typescript\nArrayTools.sortByMapped(['2p', '3p', '1p'], (v) => Number(v.replace('p', ''))); // ['1p', '2p', '3p']\nArrayTools.sortByMapped(\n  ['2p', '3p', '1p'],\n  (v) => Number(v.replace('p', '')),\n  (a, b) => b - a\n); // ['3p', '2p', '1p']\n```\n\n|  #  | Parameter Name | Required | Type                                         | Default  | Description                           |\n|:---:|:---------------|:---------|:---------------------------------------------|:---------|:--------------------------------------|\n| *0* | `arr`          | **Yes**  | `T[]`                                        |          | Array to sort                         |\n| *1* | `mapFn`        | **Yes**  | `(value: T, index: number, array: T[]) => M` |          | Function to map the values to         |\n| *2* | `sortFn`       | *No*     | `(a: M, b: M) => number`                     | `fn.asc` | Function to sort the mapped values by |\n\n| Return Type |                            |\n|-------------|----------------------------|\n| `T[]`       | Sorted array (non-mutated) |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#arraytools\"> [↑ Back to <b>ArrayTools</b> ↑] </a></p>\n\n### randomise\n\n```typescript\nrandomise(arr: T[]): T[]\nArrayTools.randomise(arr: T[]): T[]\n```\n\nReturns a clone of the provided array with it's items in a random order\n\n```typescript\nArrayTools.randomise([1, 2, 3, 4, 5, 6]); // [ 5, 3, 4, 1, 2, 6 ]\nArrayTools.randomise([1, 2, 3, 4, 5, 6]); // [ 5, 1, 3, 2, 4, 6 ]\nArrayTools.randomise([1, 2, 3, 4, 5, 6]); // [ 6, 1, 4, 5, 2, 3 ]\nArrayTools.randomise([1, 2, 3, 4, 5, 6]); // [ 1, 4, 5, 2, 3, 6 ]\nArrayTools.randomise([1, 2, 3, 4, 5, 6]); // [ 2, 6, 1, 3, 4, 5 ]\n```\n\n|  #  | Parameter Name | Required | Type  | Description        |\n|:---:|:---------------|:---------|:------|:-------------------|\n| *0* | `arr`          | **Yes**  | `T[]` | Array to randomise |\n\n| Return Type |                                |\n|-------------|--------------------------------|\n| `T[]`       | Randomised array (non-mutated) |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#arraytools\"> [↑ Back to <b>ArrayTools</b> ↑] </a></p>\n\n### reverse\n\n```typescript\nreverse(arr: T[]): T[]\nArrayTools.reverse(arr: T[]): T[]\n```\n\nReturns a new array with the order reversed without affecting original array\n\n```typescript\nconst arr1 = [1, 2, 3];\narr1            // [1, 2, 3]\narr1.reverse(); // [3, 2, 1]\narr1            // [3, 2, 1] - mutated\n\nconst arr2 = [1, 2, 3];\narr2            // [1, 2, 3]\nArrayTools.reverse(arr2);  // [3, 2, 1]\narr2            // [1, 2, 3] - not mutated\n```\n\n|  #  | Parameter Name | Required | Type  | Description      |\n|:---:|:---------------|:---------|:------|:-----------------|\n| *0* | `arr`          | **Yes**  | `T[]` | Array to reverse |\n\n| Return Type |                              |\n|-------------|------------------------------|\n| `T[]`       | Reversed array (non-mutated) |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#arraytools\"> [↑ Back to <b>ArrayTools</b> ↑] </a></p>\n\n### entries\n\n```typescript\nentries(arr: T[]): [number, T][]\nArrayTools.entries(arr: T[]): [number, T][]\n```\n\nReturns array of 'tuples' of index/value pairs\n\n```typescript\nconst arr = ['a', 'b', 'c'];\nArrayTools.entries(arr); // [ [0, 'a'], [1, 'b'], [2, 'c'] ]\n\nfor (let [index, value] of ArrayTools.entries(arr)) {\n console.log(index); // 0, 1, 2\n console.log(value); // 'a', 'b', 'c'\n}\n```\n\n|  #  | Parameter Name | Required | Type  | Description               |\n|:---:|:---------------|:---------|:------|:--------------------------|\n| *0* | `arr`          | **Yes**  | `T[]` | Array to get entries from |\n\n| Return Type     |                                        |\n|-----------------|----------------------------------------|\n| `[number, T][]` | Array of 'tuples' of index/value pairs |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#arraytools\"> [↑ Back to <b>ArrayTools</b> ↑] </a></p>\n\n### <span id=\"arraytools_repeat\">repeat</span>\n\n```typescript\nrepeat(maxLength: number, ...items: T[]): T[]\nArrayTools.repeat(maxLength: number, ...items: T[]): T[]\n```\n\nReturns an array with the given items repeated\n\n```typescript\nArrayTools.repeat(5, 'a'); // [ 'a', 'a', 'a', 'a', 'a' ]\nArrayTools.repeat(5, 'a', 'b'); // [ 'a', 'b', 'a', 'b', 'a' ]\n```\n\n|  #   | Parameter Name | Required | Type     | Description                 |\n|:----:|:---------------|:---------|:---------|:----------------------------|\n| *0*  | `maxLength`    | **Yes**  | `number` | Maximum length of the array |\n| *1…* | `items`        | *No*     | `T[]`    | Items to repeat             |\n\n| Return Type |                                     |\n|-------------|-------------------------------------|\n| `T[]`       | Array with the given items repeated |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#arraytools\"> [↑ Back to <b>ArrayTools</b> ↑] </a></p>\n\n### roll\n\n```typescript\nroll(distance: number, arr: T[]): T[]\nArrayTools.roll(distance: number, arr: T[]): T[]\n```\n\n'Roll' the array by a given amount so that is has a new first item. Length and contents remain the same, but the order is changed\n\n```typescript\nArrayTools.roll(1, [0, 1, 2, 3, 4, 5, 6, 7]); // [ 1, 2, 3, 4, 5, 6, 7, 0 ]\nArrayTools.roll(4, [0, 1, 2, 3, 4, 5, 6, 7]); // [ 4, 5, 6, 7, 0, 1, 2, 3 ]\n```\n\n|  #  | Parameter Name | Required | Type     | Description                   |\n|:---:|:---------------|:---------|:---------|:------------------------------|\n| *0* | `distance`     | **Yes**  | `number` | Distance to roll the array by |\n| *1* | `arr`          | **Yes**  | `T[]`    | Array to roll                 |\n\n| Return Type |                            |\n|-------------|----------------------------|\n| `T[]`       | Rolled array (non-mutated) |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#arraytools\"> [↑ Back to <b>ArrayTools</b> ↑] </a></p>\n\n### sortNumberedText\n\n```typescript\nsortNumberedText(texts: string[], ignoreCase: boolean): string[]\nArrayTools.sortNumberedText(texts: string[], ignoreCase: boolean): string[]\n```\n\nAlphabetically sorts a list of strings, but keeps multi-digit numbers in numerical order (rather than alphabetical)\n\n```typescript\nconst names = ['name1', 'name10', 'name2', 'foo20', 'foo10', 'foo9'];\nnames.sort(); // [ 'foo10', 'foo20', 'foo9', 'name1', 'name10', 'name2' ]\nArrayTools.sortNumberedText(names); // [ 'foo9', 'foo10', 'foo20', 'name1', 'name2', 'name10' ]\n```\n\n|  #  | Parameter Name | Required | Type       | Default | Description                         |\n|:---:|:---------------|:---------|:-----------|:--------|:------------------------------------|\n| *0* | `texts`        | **Yes**  | `string[]` |         | Texts to sort                       |\n| *1* | `ignoreCase`   | *No*     | `boolean`  | `true`  | Whether to ignore case when sorting |\n\n| Return Type |                            |\n|-------------|----------------------------|\n| `string[]`  | Sorted array (non-mutated) |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#arraytools\"> [↑ Back to <b>ArrayTools</b> ↑] </a></p>\n\n### partition\n\n```typescript\npartition(array: T[], partitionSize: number): T[][]\nArrayTools.partition(array: T[], partitionSize: number): T[][]\n```\n\nBreaks an array into smaller arrays of a given size\n\n```typescript\nArrayTools.partition([1, 2, 3, 4], 3); // [ [ 1, 2, 3 ], [ 4 ] ]\n\nArrayTools.partition([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 3); // [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ], [ 10 ] ]\nArrayTools.partition([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 4); // [ [ 1, 2, 3, 4 ], [ 5, 6, 7, 8 ], [ 9, 10 ] ]\nArrayTools.partition([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 5); // [ [ 1, 2, 3, 4, 5 ], [ 6, 7, 8, 9, 10 ] ]\n```\n\n|  #  | Parameter Name  | Required | Type     | Default                       | Description            |\n|:---:|:----------------|:---------|:---------|:------------------------------|:-----------------------|\n| *0* | `array`         | **Yes**  | `T[]`    |                               | Array to partition     |\n| *1* | `partitionSize` | *No*     | `number` | `Math.ceil(array.length / 2)` | Size of each partition |\n\n| Return Type |                                                                    |\n|-------------|--------------------------------------------------------------------|\n| `T[][]`     | Array of arrays, each containing a partition of the original array |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#arraytools\"> [↑ Back to <b>ArrayTools</b> ↑] </a></p>\n\n### partitionEvenly\n\n```typescript\npartitionEvenly(array: T[], maxPartitionSize: number): T[][]\nArrayTools.partitionEvenly(array: T[], maxPartitionSize: number): T[][]\n```\n\nBreaks an array into smaller arrays of a given size, but tries to keep the sizes as even as possible\n\n```typescript\nArrayTools.partitionEvenly([1, 2, 3, 4], 3); // [ [ 1, 2 ], [ 3, 4 ] ]\n\nArrayTools.partitionEvenly([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 3); // [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8 ], [ 9, 10 ] ]\nArrayTools.partitionEvenly([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 4); // [ [ 1, 2, 3, 4 ], [ 5, 6, 7 ], [ 8, 9, 10 ] ]\nArrayTools.partitionEvenly([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 5); // [ [ 1, 2, 3, 4, 5 ], [ 6, 7, 8, 9, 10 ] ]\n```\n\n|  #  | Parameter Name     | Required | Type     | Default                       | Description                    |\n|:---:|:-------------------|:---------|:---------|:------------------------------|:-------------------------------|\n| *0* | `array`            | **Yes**  | `T[]`    |                               | Array to partition             |\n| *1* | `maxPartitionSize` | *No*     | `number` | `Math.ceil(array.length / 2)` | Maximum size of each partition |\n\n| Return Type |                                                                    |\n|-------------|--------------------------------------------------------------------|\n| `T[][]`     | Array of arrays, each containing a partition of the original array |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#arraytools\"> [↑ Back to <b>ArrayTools</b> ↑] </a></p>\n\n### groupObj\n\n```typescript\ngroupObj(array: T[], mapFn: (item: T, index: number, arr: T[]) => string | number): { [id: string]: T[]; [id: number]: T[]; }\nArrayTools.groupObj(array: T[], mapFn: (item: T, index: number, arr: T[]) => string | number): { [id: string]: T[]; [id: number]: T[]; }\n```\n\nGroup items from an array into an object of arrays, based on a given map function.\n\n```typescript\nconst arr = [\n  { group: 1, name: 'a' },\n  { group: 2, name: 'b' },\n  { group: 1, name: 'c' },\n];\nArrayTools.groupObj(arr, item => item.group); // {\n//   1: [ { group: 1, name: 'a' }, { group: 1, name: 'c' } ],\n//   2: [ { group: 2, name: 'b' } ]\n// }\n```\n\n|  #  | Parameter Name | Required | Type                                                     | Description                                     |\n|:---:|:---------------|:---------|:---------------------------------------------------------|:------------------------------------------------|\n| *0* | `array`        | **Yes**  | `T[]`                                                    | Array to group                                  |\n| *1* | `mapFn`        | **Yes**  | `(item: T, index: number, arr: T[]) => string \\| number` | Map function to get the group key for each item |\n\n| Return Type                                 |                                                             |\n|---------------------------------------------|-------------------------------------------------------------|\n| `{ [id: string]: T[]; [id: number]: T[]; }` | Object with the group keys as keys, and the items as values |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#arraytools\"> [↑ Back to <b>ArrayTools</b> ↑] </a></p>\n\n### group\n\n```typescript\ngroup(array: T[], mapFn: (item: T, index: number, arr: T[]) => string | number): T[][]\nArrayTools.group(array: T[], mapFn: (item: T, index: number, arr: T[]) => string | number): T[][]\n```\n\nGroup items from an array into an array of arrays, based on a given map function.\n\n```typescript\nconst arr = [\n  { group: 1, name: 'a' },\n  { group: 2, name: 'b' },\n  { group: 1, name: 'c' },\n];\nArrayTools.group(arr, item => item.group); // [\n//   [ { group: 1, name: 'a' }, { group: 1, name: 'c' } ],\n//   [ { group: 2, name: 'b' } ]\n// ]\n```\n\n|  #  | Parameter Name | Required | Type                                                     | Description                                     |\n|:---:|:---------------|:---------|:---------------------------------------------------------|:------------------------------------------------|\n| *0* | `array`        | **Yes**  | `T[]`                                                    | Array to group                                  |\n| *1* | `mapFn`        | **Yes**  | `(item: T, index: number, arr: T[]) => string \\| number` | Map function to get the group key for each item |\n\n| Return Type |                                                                |\n|-------------|----------------------------------------------------------------|\n| `T[][]`     | Array of arrays, each containing a group of the original array |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#arraytools\"> [↑ Back to <b>ArrayTools</b> ↑] </a></p>\n\n### findAndRemove\n\n```typescript\nArrayTools.findAndRemove(array: T[], predicate: (item: T, index: number, arr: T[]) => any, ...insertItems: T[]): T\n```\n\nFind the first item in an array that matches a given predicate, and remove it from the array\n\n> **Note:** This function mutates the provided array\n\n```typescript\nconst arr = [1, 2, 3, 4, 5];\nArrayTools.findAndRemove(arr, (item) => item === 3); // 3\narr; // [1, 2, 4, 5]\n```\n\n|  #   | Parameter Name | Required | Type                                        | Description                                                     |\n|:----:|:---------------|:---------|:--------------------------------------------|:----------------------------------------------------------------|\n| *0*  | `array`        | **Yes**  | `T[]`                                       | Array to mutate                                                 |\n| *1*  | `predicate`    | **Yes**  | `(item: T, index: number, arr: T[]) => any` | Function that returns true/truthy if the item should be removed |\n| *2…* | `insertItems`  | *No*     | `T[]`                                       | Items to insert in place of the removed item                    |\n\n| Return Type |                                           |\n|-------------|-------------------------------------------|\n| `T`         | The removed item (undefined if not found) |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#arraytools\"> [↑ Back to <b>ArrayTools</b> ↑] </a></p>\n\n### findLastAndRemove\n\n```typescript\nArrayTools.findLastAndRemove(array: T[], predicate: (item: T, index: number, arr: T[]) => any, ...insertItems: T[]): T\n```\n\nFind the last item in an array that matches a given predicate, and remove it from the array\n\n> **Note:** This function mutates the provided array\n\n```typescript\nconst arr = [1, 2, 3, 4, 5];\nArrayTools.findLastAndRemove(arr, (item) => item === 3); // 3\narr; // [1, 2, 4, 5]\n```\n\n|  #   | Parameter Name | Required | Type                                        | Description                                                     |\n|:----:|:---------------|:---------|:--------------------------------------------|:----------------------------------------------------------------|\n| *0*  | `array`        | **Yes**  | `T[]`                                       | Array to mutate                                                 |\n| *1*  | `predicate`    | **Yes**  | `(item: T, index: number, arr: T[]) => any` | Function that returns true/truthy if the item should be removed |\n| *2…* | `insertItems`  | *No*     | `T[]`                                       | Items to insert in place of the removed item                    |\n\n| Return Type |                                           |\n|-------------|-------------------------------------------|\n| `T`         | The removed item (undefined if not found) |\n\n<p style=\"text-align: right\" align=\"right\"><a href=\"#arraytools\"> [↑ Back to <b>ArrayTools</b> ↑] </a></p>\n\n### filterAndRemove\n\n```typescript\nArrayTools.filterAndRemove(array: T[], predicate: (item: T, index: number, arr: T[]) => any): T[]\n```\n\nFind the items in an array that matches a given predicate, and r","readmeFilename":"README.md","homepage":"https://github.com/jackcannon/swiss-ak#readme","bugs":{"url":"https://github.com/jackcannon/swiss-ak/issues"}}