{"_id":"@dowhileluke/fns","_rev":"17-67ffd6a1259921d20f91e3889ed33441","name":"@dowhileluke/fns","dist-tags":{"latest":"2.0.1"},"versions":{"1.0.0":{"name":"@dowhileluke/fns","version":"1.0.0","description":"functions that i don't want to copypaste everywhere","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"test":"jest","lint":"xo","prebuild":"rimraf dist/*","build":"rollup -c rollup.config.ts --configPlugin typescript2"},"jest":{"preset":"ts-jest","testEnvironment":"node"},"xo":{"semicolon":false,"rules":{"@typescript-eslint/object-curly-spacing":["error","always"],"import/extensions":["error",{"ts":"never"}],"unicorn/filename-case":"off"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"eslint"}],"@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github"]},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dowhileluke/fns.git"},"keywords":["utility","util"],"author":{"name":"dowhileluke"},"license":"MIT","bugs":{"url":"https://github.com/dowhileluke/fns/issues"},"homepage":"https://github.com/dowhileluke/fns#readme","devDependencies":{"@types/jest":"^28.1.1","conventional-changelog-eslint":"^3.0.9","jest":"^28.1.0","rimraf":"^3.0.2","rollup":"^2.75.5","rollup-plugin-typescript2":"^0.32.1","ts-jest":"^28.0.4","tslib":"^2.4.0","typescript":"^4.7.3","xo":"^0.49.0"},"gitHead":"8769080ffd4c22c1ec449faa8c98a7cc2df970e0","_id":"@dowhileluke/fns@1.0.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-tlDXYSjANg9uwAGxtxmBOYrlMyuGVAW4GLgSQTZsJOy29R2wgFqb63rWKJMg1hWxeIjLygncur0DYsPNtxusXQ==","shasum":"4ccb7856a345508541a9e3cb9404ae3a20feb366","tarball":"https://registry.npmjs.org/@dowhileluke/fns/-/fns-1.0.0.tgz","fileCount":13,"unpackedSize":9443,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCACbCnL4jvBnaPnHHQ68QuGkJmBw7E5fQy7dMoQqgdXgIgRYMOPQ6ezz0OSYcLDN5he6bAwRsjkJzmVYbKhFXiznk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiphnnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrGRg/8C8i+xFxKJa8z2MVxK/LOz7sdKIvKOzX2VZDOj4ZeF0/JriyZ\r\nzKap73+SzZyoqQC87ksHpkHjbxTgJY3ew10xkxnR9Sj/TE/uQdWD64OB2gsV\r\n3SbttglWj+Wp6Q5jHFeGfRUMAYDsmMgnFW+DNmd2QtqZejBxWVPDoWuVhzyA\r\nrLmq1VatZwy2308EYbMHhoCT7+YqgFc8xE0lUou+KTAtdfJ/WaHDFLWyZ2+M\r\nOMmHvWnLwPD81+QT2rmvposvyOgQyUZXW7khBoq/+POhfT9rYUJS1I9GqyXr\r\nMZI9WAGC/HgTcqoysj6NzutFzh3gS1m7G2ZLi3RimqhcsKt6WVrVhDKGWRWY\r\nBHtkDT/xLhwYaomMBxUeJRkAYuXS0lnm4xfj482yEEOtXkXIoWGSmTBrSwRO\r\nI0W+N0kIowyjHQ8AbGtuBl8n/dV5WhkhV9fMi5c4PYR1JcU/JImkXaEFrIeH\r\n73zu3GUnJZVcWgZI2x9HIz4HlBU81zXO2qy6zuGzLGTuhXpW2VXgqFIUTgMh\r\n3Q12iYEia3W/PPM73DW1wzJ7UMfCxpIIaGjlhx+qtJ/x+65i/gFZXWZtlBja\r\nF6PVUodIpMiZ4LLLqbcu0fE+N0hlHm9T2gyrbOKimtYjFbv1B3HzyoglGKwB\r\n7yIimZKXNhgcZm91AYyI51WInc/dBc9ZcOM=\r\n=AqGU\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dowhileluke","email":"dowhileluke@gmail.com"},"directories":{},"maintainers":[{"name":"dowhileluke","email":"dowhileluke@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fns_1.0.0_1655052774988_0.5086761055954412"},"_hasShrinkwrap":false},"1.1.0":{"name":"@dowhileluke/fns","version":"1.1.0","description":"functions that i don't want to copypaste everywhere","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"test":"jest","lint":"xo","prebuild":"rimraf dist/*","build":"rollup -c rollup.config.ts --configPlugin typescript2"},"jest":{"preset":"ts-jest","testEnvironment":"node"},"xo":{"semicolon":false,"rules":{"@typescript-eslint/object-curly-spacing":["error","always"],"import/extensions":["error",{"ts":"never"}],"unicorn/filename-case":"off"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"eslint"}],"@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github"]},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dowhileluke/fns.git"},"keywords":["utility","util"],"author":{"name":"dowhileluke"},"license":"MIT","bugs":{"url":"https://github.com/dowhileluke/fns/issues"},"homepage":"https://github.com/dowhileluke/fns#readme","devDependencies":{"@types/jest":"^28.1.1","conventional-changelog-eslint":"^3.0.9","jest":"^28.1.0","rimraf":"^3.0.2","rollup":"^2.75.5","rollup-plugin-typescript2":"^0.32.1","ts-jest":"^28.0.4","tslib":"^2.4.0","typescript":"^4.7.3","xo":"^0.49.0"},"gitHead":"d8483f2d33a675f5476f5693a30af690a63890b5","_id":"@dowhileluke/fns@1.1.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-OucJhFpNfGAHL2kFLkhbe5BYhzc32X8wt9kcoW3pTgWml5t0jocNdV4WXOGnXO7fPjxvxCRkiVacdH8myhZBsA==","shasum":"53940c3c6d94b486f8dfb3f3ab60ef98583bc54b","tarball":"https://registry.npmjs.org/@dowhileluke/fns/-/fns-1.1.0.tgz","fileCount":13,"unpackedSize":9851,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDEoDMU90domLBTA7IdWfNEkCxDOHIk9SOdhbQdRedMAAiA/sF2V/Kw7KblgrkeQaODepGy3Uix1uP9ef1DCvT7lSw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisfTPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmryBg/+LFOn+Sjc2ODAu0bJ1Q1eMYVZXsjLxXzIBCjVxnLpRpc5yDbo\r\n2YNQDQ/yV+XJ78atOiyQUEtR4KH3tntENmIyCtH2Ge2jxxgkg6xi0q0eFQMD\r\n4TsOLnIc2HqaPa4hOq87AyV71eERsvnysBug1Cp17srtHNpZ4ik00muEBBdZ\r\nJsHOlk2SHZ3fFk3GSZl7NAzSlf07ri0czlEw4aFVe+MJwsPUBgj0PKmMWV5H\r\n6fGuH7RjupSa3y8IV/CLkmPCRWnucVNMKPCCBNqWSFLeyfR0la52ls6oxsGv\r\niS9iFtoJ7bB54mS3QWecm0MAR7h9YmXGhVbrmSlUFSHUpq92QgD/KMD2iNiW\r\nzMUUeeN7f2gTW+WxXzkkSPoH534IC077UakPHbgXX4TWMrznfDRmU7g0cBgI\r\nLWkEs0EX5nOYlKMG/gxxrykfeE8NjM5M8147kGqhpA469nmaC6VbALPeyZ+V\r\nwMrPN6WJFQG8thJRshNq2aoevKYfqjlY05UwL6OHgdR4TtDadOMRfUBBRfGV\r\n6HJwjdwTUs+C+pD0oaebbbPAD07H7eSrUc/+zizePZYj+vITFDgruMT5ViVo\r\nFGWhW66x2l2+9gBlXbYuwz/goq1FvlX5agt2/+b3ek7/Md+WKklmrB4LJBeU\r\n6MYX13Ftd+Px7xa9KFh2rM6GvLq2HnoOKRw=\r\n=HSbE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dowhileluke","email":"dowhileluke@gmail.com"},"directories":{},"maintainers":[{"name":"dowhileluke","email":"dowhileluke@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fns_1.1.0_1655829710940_0.7871186316697345"},"_hasShrinkwrap":false},"1.2.0":{"name":"@dowhileluke/fns","version":"1.2.0","description":"functions that i don't want to copypaste everywhere","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"test":"jest","lint":"xo","prebuild":"rimraf dist/*","build":"rollup -c rollup.config.ts --configPlugin typescript2"},"jest":{"preset":"ts-jest","testEnvironment":"node"},"xo":{"semicolon":false,"rules":{"@typescript-eslint/object-curly-spacing":["error","always"],"import/extensions":["error",{"ts":"never"}],"unicorn/filename-case":"off"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"eslint"}],"@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github"]},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dowhileluke/fns.git"},"keywords":["utility","util"],"author":{"name":"dowhileluke"},"license":"MIT","bugs":{"url":"https://github.com/dowhileluke/fns/issues"},"homepage":"https://github.com/dowhileluke/fns#readme","devDependencies":{"@types/jest":"^28.1.1","conventional-changelog-eslint":"^3.0.9","jest":"^28.1.0","rimraf":"^3.0.2","rollup":"^2.75.5","rollup-plugin-typescript2":"^0.32.1","ts-jest":"^28.0.4","tslib":"^2.4.0","typescript":"^4.7.3","xo":"^0.49.0"},"gitHead":"cdad61bf5e9e1a056e32f34d17cab9953a7c726f","_id":"@dowhileluke/fns@1.2.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-uP8/oUWx3hyvc5IlyhVJcQNx8XEV8zGDZk/zOU7C4CtSJZAuNCrSqCJVnPmmwASWDIxi9jk4XtZOFhkUwF5ZoQ==","shasum":"5fd21d6e4a177d054823b6ee4bd7e6e67da9f3ef","tarball":"https://registry.npmjs.org/@dowhileluke/fns/-/fns-1.2.0.tgz","fileCount":14,"unpackedSize":10574,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDGNEjLp6KziMbKRcqaGKEzwCQ6WKc3heeYJJEGoPvhbAiBHrcX8YQizvt/U4s6M/FAjhaqP5t5OsC0zhlGTMZByHw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisga0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrcBw/9GU1KkhWUUU/U9h/1xwjVJeKv5UkovsYCeLGVP4/Tn2Hv1SKe\r\nX0AWgMqXif0GgdWUTSo3Me/SUmoXakkY2qOn/dmZSoXM/3sx6CxnCKB37mNV\r\nn0U1S1aEZHDclqKvJxdo75AqF301gpaFZuWajQ/dLpmRo8tM4g3O09W1dBKF\r\nlQadGYnWzt3AdDkRYio2v4sC2otplnMxkcei9sdc1mknfIo7/QLZJl3HMeNf\r\nVU86ARfaogKu5Gb3/nxhkmfX8pYpCzw00MzbnH3rGSHPHB5XmqgnEEloa5ge\r\n38LTUfB5lrxI3BZkHZcOPoQiX7pvLXxPS0MBSVi/FAgFqt2oxk8bsY5yh9wc\r\nUMbLUEXy1Dt8Zwpp/J1KZJ8UqFk+uk+hH+cqDVt+sa0HW/R15JNpDF6+ijWW\r\nrysElgQ/zrjsVJ75Ri6SHmBwnKhc7F5sZTYDIDM9/iqpeCGUa2ebQVo5Oikq\r\n4g2hXHZnMHxq4QSUwKNjvIeUtOfvhtZCizqoF87LQVWi22B+Vho2hF+ocuZD\r\nFjCraWfRl2c5MGqPg8KmzEBpjkZAt5Jn9aNDKsqZ837UWh2Kb3S7vjRd65Nh\r\ndOQr8y5+722sEwKCEdKXSy1XypW2GcNZmu3nFyrf8wGNEpEhk9aJ1H+C3E58\r\n+3EbxECJSgs2RwxYTRSoO8+iMe6i/jZND90=\r\n=smrS\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dowhileluke","email":"dowhileluke@gmail.com"},"directories":{},"maintainers":[{"name":"dowhileluke","email":"dowhileluke@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fns_1.2.0_1655834292060_0.031836586477404616"},"_hasShrinkwrap":false},"1.3.0":{"name":"@dowhileluke/fns","version":"1.3.0","description":"functions that i don't want to copypaste everywhere","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"test":"jest","lint":"xo","prebuild":"rimraf dist/*","build":"rollup -c rollup.config.ts --configPlugin typescript2"},"jest":{"preset":"ts-jest","testEnvironment":"node"},"xo":{"semicolon":false,"rules":{"@typescript-eslint/ban-types":["error",{"extendDefaults":true,"types":{"null":false}}],"@typescript-eslint/object-curly-spacing":["error","always"],"import/extensions":["error",{"ts":"never"}],"unicorn/filename-case":"off"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"eslint"}],"@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github"]},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dowhileluke/fns.git"},"keywords":["utility","util"],"author":{"name":"dowhileluke"},"license":"MIT","bugs":{"url":"https://github.com/dowhileluke/fns/issues"},"homepage":"https://github.com/dowhileluke/fns#readme","devDependencies":{"@types/jest":"^28.1.1","conventional-changelog-eslint":"^3.0.9","jest":"^28.1.0","rimraf":"^3.0.2","rollup":"^2.75.5","rollup-plugin-typescript2":"^0.32.1","ts-jest":"^28.0.4","tslib":"^2.4.0","typescript":"^4.7.3","xo":"^0.49.0"},"gitHead":"15ffdded3dc18a95dc16284a4b2464051bb97002","_id":"@dowhileluke/fns@1.3.0","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-lDoIclVUg1C2xYC5B8lDfGsPLogBh7NleILFOTCzN5BTV7U5xRJQtg6mmPtvWhDEz8TRILd64f0ZSgdVAJ7+rQ==","shasum":"4d4bbaf6afa07fd9ccab8b066ceec1466e9d1a05","tarball":"https://registry.npmjs.org/@dowhileluke/fns/-/fns-1.3.0.tgz","fileCount":16,"unpackedSize":14213,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGx2+zr19bqzADA4NGAbjBr1roxOCwTN+5MWwrRWl8MGAiEAj9JOicnvWzRu3FGN6+nVoL1hBNcDcziI0ZyQaqBtj9M="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjXz7vACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmovjg/9Hv/duCz+EtjGbTSBxozWGgPU6W+ub86yeTivfSZrGR3+O20b\r\nytfXQ3aHwPPZzC2iv+3oI/bwCrBYKahOeWtr1ZOxmEJQ/Jb2tCCfkQF8cy3u\r\n4xx9I96gEcNIaiifBTD110EQ1kI+ejoPMUiPk21Mp1wUnbvOjgQcm7oyPeKD\r\nIdeQ57tU9xhcrgv/eHT2zoJ2iAsSu75J4KANM+TkXMju3RmZGMny5x/qV6jh\r\nLAxexnk5KoqwLdJ6Q37k+pMvJwUOn2EJ2+p41WcIjDxfSU9in1DRmoY6u2hV\r\ntkIKjcDCfLy/huEh1DeOmDvwbrL5pd1rigdcbCqb1dtmCKWCqqyh6FVhcKmp\r\n0W6OBohpIdu4sjAkHN/svUkZqCpS2zrD5Zejtu+414v5i2Xlat42Lhi6SDkR\r\nfn9kzqSj0EV3y7BoW+RyOXb5YePqUcDlCXr6u9qCqfxAhCqlfWvUvPGO+6hp\r\np3RTMLAPVeD8OoLcljXCM8xLmhSBv6FVq4koYfi+tZgI8TIR4EEP+zfeKwzv\r\nvkRrcQC+C4UUaB5V4mnbp8kNJKyz377GEllyy0WjZ53B9cuKtgYrkExhKzG4\r\nhLkKvsIG1imHAiNbGAs3RMULgwKwxLSpwZV08waJ84pUGE5fKBoc4XonC9QH\r\nM/tapff6+VfnrKIw+ie09rqg/1jsH4Z5ayo=\r\n=34d6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dowhileluke","email":"dowhileluke@gmail.com"},"directories":{},"maintainers":[{"name":"dowhileluke","email":"dowhileluke@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fns_1.3.0_1667186415353_0.3365635569651695"},"_hasShrinkwrap":false},"1.3.1":{"name":"@dowhileluke/fns","version":"1.3.1","description":"functions that i don't want to copypaste everywhere","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"test":"jest","lint":"xo","prebuild":"rimraf dist/*","build":"rollup -c rollup.config.ts --configPlugin typescript2"},"jest":{"preset":"ts-jest","testEnvironment":"node"},"xo":{"semicolon":false,"rules":{"@typescript-eslint/ban-types":["error",{"extendDefaults":true,"types":{"null":false}}],"@typescript-eslint/object-curly-spacing":["error","always"],"import/extensions":["error",{"ts":"never"}],"unicorn/filename-case":"off"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"eslint"}],"@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github"]},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dowhileluke/fns.git"},"keywords":["utility","util"],"author":{"name":"dowhileluke"},"license":"MIT","bugs":{"url":"https://github.com/dowhileluke/fns/issues"},"homepage":"https://github.com/dowhileluke/fns#readme","devDependencies":{"@types/jest":"^28.1.1","conventional-changelog-eslint":"^3.0.9","jest":"^28.1.0","rimraf":"^3.0.2","rollup":"^2.75.5","rollup-plugin-typescript2":"^0.32.1","semantic-release":"^19.0.5","ts-jest":"^28.0.4","tslib":"^2.4.0","typescript":"^4.7.3","xo":"^0.49.0"},"gitHead":"4a0f8af19c0f05e8c736e3c3f690b63447f59986","_id":"@dowhileluke/fns@1.3.1","_nodeVersion":"16.17.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-IWq6acf8QOTez4mQXbabsKslAdVMpn/RkYtKqkbqmI/lpQULzDqVoriykFVYBRLlvCJmqXke5oahoQ7pWjxEzQ==","shasum":"47476657e98153a9939cd1e6d56dd5cefdbc3d0d","tarball":"https://registry.npmjs.org/@dowhileluke/fns/-/fns-1.3.1.tgz","fileCount":16,"unpackedSize":17036,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB9bJfS7QiTBbjmJ9ZRH/O7bnz9QTQYPUIIo9hdrUxLFAiBPXh3VLjY9eLXKu1CVKxed+Ie6jkZ5yvNDs0P4KZuETw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjYCDMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoR9g/+N/sjyNhViJNVPTj0aQSRy+8V5uUOqd47z5/68Tg2qUENfPcB\r\n3TVQLkVi5wgiDzrWHQ8TaHPyPEcNhTaUR1nZPL6rDcNTrQG6CVbFXOW+Ngk8\r\nDYkXQ9Lgu4knl1aUJ6z5jdBPTeE4/e+apHdcJoSS7i+3TiFDvgTIuKgXtuW2\r\ncI/ryfZyPwuVLRyyJD2bB9aqUFGQEH7OADNPfvIY2fQTQzTkSZKJawGC45ae\r\nHhCPXYYwrxI4ik+DfTfN+8jPHk9eOqQILUv20UmVV8RiBn8M3Zm5gtNJ15xQ\r\n8kMjO/5a9lIh5sHcxWfmGVOLHobTUkbQTQKOAD3RJeueDmb95aOugUtRZUdu\r\n7701WNmZ7yl7KIc0/uo9Ee/FxkZP1vyHfD/J4NLDH1N3auUeZe7MY6vDVwB0\r\nPZuTNQ/C+pdMjyKWordSjKGWUEu4PdlpoBjyVm9dxSC0USrV5XIhNYVTmx0D\r\nJ+vD86DZBBtRQThR3mJux9ou85nVElP0I+2nUFMKULmuqbD2z2tSDMKcUVte\r\nPgr3ErAJcBUGdqjJdcYjvUerrj5Jqnh2scnGpO4mgCRn3rGwOKp4+up6LRVD\r\nNvVZ6SDrYdbq9R5OThZbYh2BdGDT1u4JucyOub1pPjPNhzhQ/JHeLuZhKTdm\r\nwsX38J4ZYaQuNNeztvLzuBkphrEQBSQMk+Y=\r\n=J3NB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dowhileluke","email":"dowhileluke@gmail.com"},"directories":{},"maintainers":[{"name":"dowhileluke","email":"dowhileluke@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fns_1.3.1_1667244236510_0.11413075556564678"},"_hasShrinkwrap":false},"1.4.0":{"name":"@dowhileluke/fns","version":"1.4.0","description":"functions that i don't want to copypaste everywhere","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"test":"jest","lint":"xo","prebuild":"rimraf dist/*","build":"rollup -c rollup.config.ts --configPlugin typescript2"},"jest":{"preset":"ts-jest","testEnvironment":"node"},"xo":{"semicolon":false,"rules":{"@typescript-eslint/ban-types":["error",{"extendDefaults":true,"types":{"null":false}}],"@typescript-eslint/object-curly-spacing":["error","always"],"import/extensions":["error",{"ts":"never"}],"unicorn/filename-case":"off"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"eslint"}],"@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github"]},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dowhileluke/fns.git"},"keywords":["utility","util"],"author":{"name":"dowhileluke"},"license":"MIT","bugs":{"url":"https://github.com/dowhileluke/fns/issues"},"homepage":"https://github.com/dowhileluke/fns#readme","devDependencies":{"@types/jest":"^29.2.1","conventional-changelog-eslint":"^3.0.9","jest":"^29.2.2","rimraf":"^3.0.2","rollup":"^3.2.4","rollup-plugin-typescript2":"^0.34.1","semantic-release":"^19.0.5","ts-jest":"^29.0.3","tslib":"^2.4.1","typescript":"^4.8.4","xo":"^0.52.4"},"gitHead":"40388744eaa8a1ec8e086c987fb5759e92084db0","_id":"@dowhileluke/fns@1.4.0","_nodeVersion":"16.17.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-fXTMSre60vXUpqA0ozv7dsuphY33WSX/XYQf1bJrDcU+jT0h/axqfpaiUnkC4jud1M/tlEPPub9Cc2fpUJZuvw==","shasum":"d3f1d4dd4ab0758e05bb4483a48c4bb12a26bf4e","tarball":"https://registry.npmjs.org/@dowhileluke/fns/-/fns-1.4.0.tgz","fileCount":16,"unpackedSize":17254,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMYEADGLT/t/BoFeJWfHFL7B7i8TXtl0KP1kyhEXkocQIhAII3naE/bIA79pbppHYv8hzRVnX7u2bKIVmG/qT1ewqN"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjYLDXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmogHQ/8CpTBg9LZemPaWGY0A8HSokmzZ1zYus7yNC/4L+eA5E/yhkdL\r\nPYBdlzP6VQWCqM5gdkb+dVYv4SF/fRM1Ev2r831NwGpdz2FVtQeCBFsRGlW6\r\nUNwTWnmafFrq/N8HtQM08hJ3NiM/jGWYI3MzsEnDxAQZSrBSb/BgImXSVg+f\r\nGZeJbYAz32FFou9dZySNyALs/zDfs0XnSATudPSxvLNIQEMWpYw4jkwAukK6\r\njqYxgepqgT7ZMe7JSirodnKgcCiF5t6JdGam1JtXOfqVtvvBf9HrrkM3bs/L\r\np2aupazlrb870x+sireqoXk/AC1ZQ1FESPsaQp9pyfLheD7UMfH8Zqo5cezQ\r\n3Er9xBgS4TwPDt1xd06R1FMLstG8avumfoGHS5ZAYMoesJ+ffgNKg9FxAHCy\r\nPJnnH5sKstMq0cFvGS+qnpApT/T+w8PMcz04IJUQXqfczqDgNSYRvys5PLZ2\r\nvE2XWEpX0JL7+kZ+1DxN9qOKysn6MUHJyEa3q1z18bmtgyAaAX0nrubuSDNA\r\nI5I1Ylm9OgCZpvWGMugAtw7ud/v7fFeZtF82+0O6jo39/31gQpv4M3vp5xGH\r\n3GdePj/m2gPiD8iONM5TP9ppVlA0FHrZqqqItCE3lahq3/Iz33MstIC3Tv4A\r\nzfCfAHX/FDLkLLnPCBZrAATOaUfwBRWDhuA=\r\n=H1+A\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dowhileluke","email":"dowhileluke@gmail.com"},"directories":{},"maintainers":[{"name":"dowhileluke","email":"dowhileluke@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fns_1.4.0_1667281111279_0.3718823536921194"},"_hasShrinkwrap":false},"1.4.1":{"name":"@dowhileluke/fns","version":"1.4.1","description":"functions that i don't want to copypaste everywhere","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"test":"jest","lint":"xo","prebuild":"rimraf dist/*","build":"rollup -c rollup.config.ts --configPlugin typescript2"},"jest":{"preset":"ts-jest","testEnvironment":"node"},"xo":{"semicolon":false,"rules":{"@typescript-eslint/ban-types":["error",{"extendDefaults":true,"types":{"null":false}}],"@typescript-eslint/object-curly-spacing":["error","always"],"import/extensions":["error",{"ts":"never"}],"unicorn/filename-case":"off"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"eslint"}],"@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github"]},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dowhileluke/fns.git"},"keywords":["utility","util"],"author":{"name":"dowhileluke"},"license":"MIT","bugs":{"url":"https://github.com/dowhileluke/fns/issues"},"homepage":"https://github.com/dowhileluke/fns#readme","devDependencies":{"@types/jest":"^29.2.1","conventional-changelog-eslint":"^3.0.9","jest":"^29.2.2","rimraf":"^3.0.2","rollup":"^3.2.4","rollup-plugin-typescript2":"^0.34.1","semantic-release":"^19.0.5","ts-jest":"^29.0.3","tslib":"^2.4.1","typescript":"^4.8.4","xo":"^0.52.4"},"gitHead":"e5ce212fcb149a766cfdb5e24f25bf8d59a3f1af","_id":"@dowhileluke/fns@1.4.1","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-fOO7RJswY+kqLTim+zaYAWzibNV0micVxMO9/C3IEvczOXpbEyonjf45zeSGng+q52dM+C9xBW0ww+VOrWG4nw==","shasum":"fc3f2d2eb375fab4d3614c65f08a1c4bb86118a2","tarball":"https://registry.npmjs.org/@dowhileluke/fns/-/fns-1.4.1.tgz","fileCount":17,"unpackedSize":17471,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCc1Ivm4Y5M0WgRov7/QrS/EN03MHs2uCHP58WgsKisLgIhAMAQM7qnPJFwtOX+2JjPottPp4Y6Y28RLy1rg6FPptQx"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbYBHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqI7A//UX6/UoIxzUOoDdHRzq8bpLzfQ4U2h4iVZgvUFzRpFHOrJaQU\r\no5XdEugAJ0oJ1WsvkK4RNESMrYUMU8RY3M2oMAH3jImVW6wWnzk1DT2z0ipP\r\nGBA5DRUKzGGgm6LQucb9o8iatY9R8g8ZQJuS7VYLaI0qiJeLvywu5nv8gzNW\r\nvhT4L26Y8v1f7EPo075XciDMmSz4FlCPWkXjYsWur/SzU5unqF7MgFJLF0U7\r\nmTmiyHP1g6ek3dIGiFFltTd/4bwzNQBOs92X7nMVyA67zTxm5TgO192Br1jH\r\nJAItnHqjDaHUABY17thtMe9AuQVUA9gUbJiCWFxiedniAFGNDect4cGTch4u\r\nWnLvvuV3h+wtI8Bi2QmChvQ1ZENuLU1lf/G0WbSKufGDvla5xmtywsuC34oA\r\nF9rInZ/P3nci11nZIbIB67G7yqA8JhCpAUo+VymmoFVBBCPY4KJS3Qro9qxj\r\nVXrCoq+5nz1msVlhD+6TspnmOlYldZL9zQybpr7Mz9R/QhOoIWHRSoQoiYts\r\nAo2kMQ4r19k9TrTRcljLh79Suud+FX8hjHyc1ECotBX4duPftu6s43U49jR5\r\nMgUNYXNyjCieZTY19WoqHd1ln4vH0npKDmTsDv1Pbv55VOhhEtLIRBifrWDa\r\n5iCn+wIa6SE/wVLX/CX9K6RHfVvX1cZcer4=\r\n=yfGS\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dowhileluke","email":"dowhileluke@gmail.com"},"directories":{},"maintainers":[{"name":"dowhileluke","email":"dowhileluke@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fns_1.4.1_1668120647402_0.26463704543534616"},"_hasShrinkwrap":false},"1.4.2":{"name":"@dowhileluke/fns","version":"1.4.2","description":"functions that i don't want to copypaste everywhere","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"test":"jest","lint":"xo","prebuild":"rimraf dist/*","build":"rollup -c rollup.config.ts --configPlugin typescript2"},"jest":{"preset":"ts-jest","testEnvironment":"node"},"xo":{"semicolon":false,"rules":{"@typescript-eslint/ban-types":["error",{"extendDefaults":true,"types":{"null":false}}],"@typescript-eslint/object-curly-spacing":["error","always"],"import/extensions":["error",{"ts":"never"}],"unicorn/filename-case":"off"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"eslint"}],"@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github"]},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dowhileluke/fns.git"},"keywords":["utility","util"],"author":{"name":"dowhileluke"},"license":"MIT","bugs":{"url":"https://github.com/dowhileluke/fns/issues"},"homepage":"https://github.com/dowhileluke/fns#readme","devDependencies":{"@types/jest":"^29.2.1","conventional-changelog-eslint":"^3.0.9","jest":"^29.2.2","rimraf":"^3.0.2","rollup":"^3.2.4","rollup-plugin-typescript2":"^0.34.1","semantic-release":"^19.0.5","ts-jest":"^29.0.3","tslib":"^2.4.1","typescript":"^4.8.4","xo":"^0.52.4"},"gitHead":"5bd1fa9f7f5fa96c8b44b68179ad56679cd4b01b","_id":"@dowhileluke/fns@1.4.2","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-rq20xWqP3vEsxi54f71hdRt7LCVwdQjrCNedMT0Jh7bTn707qDfCs6ZsACVqQMJyAg1Lc0tZRkbrcnwwH2qvrA==","shasum":"891298749033a51296f4d269b0a78206bc944d9d","tarball":"https://registry.npmjs.org/@dowhileluke/fns/-/fns-1.4.2.tgz","fileCount":17,"unpackedSize":17820,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGGVt3WXORW4tNsBCrOSAkxMhkNc29Cenowb1t6XV2/RAiBUgVr23RA/boALYNmYe2St9dhQ/ZYZ2Qi58WoOk0Ai7A=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjcGNuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqmaw//TgQHB1Zi5X+LdkNTc6vBmmbQKvCh7IOEdB2dY8RzAIkht4T3\r\n0BE3wqYEDDZN+XEad/PfvUzKgmu0z7i43BNHGT58J73dILhtiUTgKsVi09XK\r\nAF8zTZ0arh/2KZZ3aqD+NdQvS36iiukAbxY5HuoMTQOoEddBqqH0gjIj2JnK\r\nzdz8cDbifiqUq3Beihdyg9W6Sm8WUrArTyQBxFoQiTxa4/7UzzEJ3N9wLmPj\r\n968/c0jzHy+JiDtedDON3uWq6xOWgI/BJ1cB9cFGCkxxDEFSperSTWKisQ+8\r\nu48c7tTruL76TEvPefL/YAMyxan7kZ6iWyRo+beKU8s0/cCdaiS1Xbv11yAg\r\nCXX/7TiEGGRTpruzWGq+pitCzDWmttH52jgzF8kVtBEgVqruz7a5kKbLQ+DV\r\neBS05Q0JLxc92yu5ITU3VpmamHMw+A227u8sc73gd3Ycr5NE+fqacVTfXIEc\r\nijwcQBaN6CCf1nn6SyT8+H1/rK5BpTl754O3efrR/ChwIXVpfPwY4AF0TfhI\r\n3jsCAEDBT4bma7iY2l5h4kXTAsyOk69jwjgrCGfQpL216aKJqGPVhUKffw9u\r\nEkXCdn1AV6VhM7RE/dax6d6Fq+eOrdZzh1fcSKBwx6gdAq3isEVjw2DQFcdh\r\nOXVpZ/Y9XdPZpGft002+fB+pV/XLryrj2oo=\r\n=UhK5\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dowhileluke","email":"dowhileluke@gmail.com"},"directories":{},"maintainers":[{"name":"dowhileluke","email":"dowhileluke@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fns_1.4.2_1668309870095_0.8721495852549694"},"_hasShrinkwrap":false},"1.5.0":{"name":"@dowhileluke/fns","version":"1.5.0","description":"functions that i don't want to copypaste everywhere","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"test":"jest","lint":"xo","prebuild":"rimraf dist/*","build":"rollup -c rollup.config.ts --configPlugin typescript2"},"jest":{"preset":"ts-jest","testEnvironment":"node"},"xo":{"semicolon":false,"rules":{"@typescript-eslint/ban-types":["error",{"extendDefaults":true,"types":{"null":false}}],"@typescript-eslint/object-curly-spacing":["error","always"],"import/extensions":["error",{"ts":"never"}],"unicorn/filename-case":"off"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"eslint"}],"@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github"]},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dowhileluke/fns.git"},"keywords":["utility","util"],"author":{"name":"dowhileluke"},"license":"MIT","bugs":{"url":"https://github.com/dowhileluke/fns/issues"},"homepage":"https://github.com/dowhileluke/fns#readme","devDependencies":{"@types/jest":"^29.2.3","conventional-changelog-eslint":"^3.0.9","jest":"^29.3.1","rimraf":"^3.0.2","rollup":"^3.3.0","rollup-plugin-typescript2":"^0.34.1","semantic-release":"^19.0.5","ts-jest":"^29.0.3","tslib":"^2.4.1","typescript":"^4.9.3","xo":"^0.53.0"},"gitHead":"bb2db18b5af447862013bbd0ed3d628612fd5143","_id":"@dowhileluke/fns@1.5.0","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-teE3bEDPrlT3NZtEMgNLLuspEVGJYmUYXPEELFCuyFZfBt4Gdvw1axWQCxPnfUVCFYPCpP+XrJRPQM5eH3oXGQ==","shasum":"9b716dda4e0eaf5ca182dbb1c2a8e4d6f47e1557","tarball":"https://registry.npmjs.org/@dowhileluke/fns/-/fns-1.5.0.tgz","fileCount":17,"unpackedSize":18021,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE7NHmzU+S3gM1Mkl2PgZb44jPbvbKlxVvueyzCoL7/IAiEA/4iWlZN21sX7uk9w41yqImbQZg4jKIN0gTwd/dvtB5I="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjeUq8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq+Ow/9HmdY4FLUx5lHkIeF8xuXLIQ2/2IiFb+xD5DAwvgJpwQXC+jG\r\npeRlzWdoEWdmtPDquJze0mcLVd6IhoSx3/3redGVbST/PbovWQ37A5HCiLbb\r\nhX1br4c9SUw4wY6U6CITwFy2jAwvXW4SDa1nnTaJCwWzTVwF/SoXFUl6Ifvh\r\nbUK8YbQfhVQ2Ew8Q3Y2VdWGCyxoD0dGwEwbIIUCX4FcEDi0Cm8LjK8iBm9jH\r\nHP7jyMLBjRcoIGdcuxyfHRYPh44uQZCHVHs0arzSxbFCmLQiPgZW44wHSfF9\r\nUCUT9hprB7RQcsgF2H90oMhkXMWfCWLljejiLXyTtM5AbyVQZYUCguRO0IOd\r\nMUztkTsaiMA24i5LW+T9MaQQA4jtvO4Sm5F4WNOB876WvCnh/Ls3JXD3+8LV\r\nlDcfNphvVFHJ70S2wDAwuoFshW8cmDcObK6W9WiAegVfQtSiVRidaLKi9g2K\r\n5qb/cvAWqWxVH+iLyUokKWeHCQayYkOxiJAHEgxAjUx1IqTaLy/TaH5C2iOo\r\nSm/HI70c7n1Zr14OEuZuA0h39tI93oa5r5PYAGRgsQUZRkN0ScUTW6/rnQt7\r\nUDGEwlW6FmeAi5cmiTqmDHinB7LebzlHj8Fylr4DiPK8mH1RAFwKdWfjRzJs\r\n9cpCV0smjyvUvbMQzYS++HZNaQzTQAOkYko=\r\n=+0/8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dowhileluke","email":"dowhileluke@gmail.com"},"directories":{},"maintainers":[{"name":"dowhileluke","email":"dowhileluke@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fns_1.5.0_1668893372039_0.6894997134293359"},"_hasShrinkwrap":false},"1.5.1":{"name":"@dowhileluke/fns","version":"1.5.1","description":"functions that i don't want to copypaste everywhere","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"test":"jest","lint":"xo","prebuild":"rimraf dist/*","build":"rollup -c rollup.config.ts --configPlugin typescript2"},"jest":{"preset":"ts-jest","testEnvironment":"node"},"xo":{"semicolon":false,"rules":{"@typescript-eslint/ban-types":["error",{"extendDefaults":true,"types":{"null":false}}],"@typescript-eslint/object-curly-spacing":["error","always"],"import/extensions":["error",{"ts":"never"}],"unicorn/filename-case":"off"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"eslint"}],"@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github"]},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dowhileluke/fns.git"},"keywords":["utility","util"],"author":{"name":"dowhileluke"},"license":"MIT","bugs":{"url":"https://github.com/dowhileluke/fns/issues"},"homepage":"https://github.com/dowhileluke/fns#readme","devDependencies":{"@types/jest":"^29.2.3","conventional-changelog-eslint":"^3.0.9","jest":"^29.3.1","rimraf":"^3.0.2","rollup":"^3.3.0","rollup-plugin-typescript2":"^0.34.1","semantic-release":"^19.0.5","ts-jest":"^29.0.3","tslib":"^2.4.1","typescript":"^4.9.3","xo":"^0.53.0"},"gitHead":"b0366d1a7718826aa0c4ecd1067ca8575750dbc9","_id":"@dowhileluke/fns@1.5.1","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-v84IenmQpHOogIjtCmtDeIJ6yS8SzKERNM5zpZEkjidqFurWwcqcRa/6PL6AMFdHpzb5iEeTcN+IiIopB6bGgw==","shasum":"95818cb6de6b57ea3f34b7027e67b96e356d7610","tarball":"https://registry.npmjs.org/@dowhileluke/fns/-/fns-1.5.1.tgz","fileCount":17,"unpackedSize":17495,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF57GmPGKy3OaU6cWBdHatQS8fFO1nT7bIBcrw7kbh61AiARr5LGLy1AX6+ldBwzrY1QQl40IcBNVYe/zXjk/phmYQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjecK2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmruWA/+OEky9SjsBPH7oxKpl9iggftp1hH5xaJ3x0BNfKIDLRMosfti\r\nNzM3/u5D//XMLANDzCPnb3qPaWGlSi/wvb13CCCSb65AIr6qpme+j5PfKTK8\r\n98wdcpCIyItS/HKTdbOERgd/oVjnawrGSrkYGi6/M8RsABQLmZURsKfWsD42\r\nJ4C8gD+Vp0HOCF9/NIfSR6poSPPxTHGMH5Y+E+FOcbAnRjk1IH/IIkRzUXLc\r\ndkJN/oOr8KYtgmoapi5ZKxWyrVdHvBBrj6Be3nqoGPkN7RTmdTDxw4bQUZR5\r\nDFqDYMPSLno7A62HsLePSxscyIRSgpDSaNIaxDea2Myx95DZdW5trsW/kE8K\r\n6UFPaU+h01adNxK9PhF2ERxh4ed9ULJDoLde2RqwsKAVZN4lnvYcC3zeAEbO\r\ndzuDQW71tSK5y6rehZVaJiU8HoID+N2wrfVnm7BHagxsUi4n0GCoS6c4AOMP\r\nxL+9/81Zvi4KkxJCZl56xXTg2YAkjb6DBigXJ1rR9DGNMnxAr/mRxEPdSRA0\r\nMumOVkkcONpEetJQAtEgIxbX3eIpQJ600fjuT297vA9PZQBjVEvMBR+B8n5p\r\nDDth2BaVLk29boFc2IdM/pPSBu3Jcli2O4ebrAK0dabI10KsjfFD/uBTsYoO\r\nX+QMHBFD8P/2lIahtO810lyMG68VGJJOgHA=\r\n=SErh\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dowhileluke","email":"dowhileluke@gmail.com"},"directories":{},"maintainers":[{"name":"dowhileluke","email":"dowhileluke@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fns_1.5.1_1668924086581_0.065671543517962"},"_hasShrinkwrap":false},"1.6.0":{"name":"@dowhileluke/fns","version":"1.6.0","description":"functions that i don't want to copypaste everywhere","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"test":"jest","lint":"xo","prebuild":"rimraf dist/*","build":"rollup -c rollup.config.ts --configPlugin typescript2"},"jest":{"preset":"ts-jest","testEnvironment":"node"},"xo":{"semicolon":false,"rules":{"@typescript-eslint/ban-types":["error",{"extendDefaults":true,"types":{"null":false}}],"@typescript-eslint/object-curly-spacing":["error","always"],"import/extensions":["error",{"ts":"never"}],"unicorn/filename-case":"off"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"eslint"}],"@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github"]},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dowhileluke/fns.git"},"keywords":["utility","util"],"author":{"name":"dowhileluke"},"license":"MIT","bugs":{"url":"https://github.com/dowhileluke/fns/issues"},"homepage":"https://github.com/dowhileluke/fns#readme","devDependencies":{"@types/jest":"^29.2.3","conventional-changelog-eslint":"^3.0.9","jest":"^29.3.1","rimraf":"^3.0.2","rollup":"^3.3.0","rollup-plugin-typescript2":"^0.34.1","semantic-release":"^19.0.5","ts-jest":"^29.0.3","tslib":"^2.4.1","typescript":"^4.9.3","xo":"^0.53.0"},"gitHead":"4c6602af4244bdc40a2633742a80dcdbee636190","_id":"@dowhileluke/fns@1.6.0","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-bQ3WSIAwvsmzwbxavF76nA4Dq4LhaB5TBWWZDU5h3+LRrkQ87YVrvL7NaY+t+Iceq87TETwRRZuF9OcmnFzXYQ==","shasum":"5317ebb7dd8f4ef9e84770fbc958ee4d8a65eda7","tarball":"https://registry.npmjs.org/@dowhileluke/fns/-/fns-1.6.0.tgz","fileCount":17,"unpackedSize":17664,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDsWwvwV7hDEkhaFsFR3juMutxwEjtZ60fhLCR5aC/Q2gIhAOOU2qTghKL4gS6tsCepA2gBYCSA8Drc+9rjnNLu0YnQ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjecnIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo4Ng//fZPM6pse0VCwW01vr6J4H5f8sF+JYNvXa49Yh0c2HfUBWui8\r\ncMoPJs7EcSGL9AbkbBdW8YW4vFMo5Nw2Ps7fpjFISxz70EQ5KqOyK5CLHlwz\r\nDqTer13cMmmkgXBfHxzUzTwN7mc9h062S+Of9Q/UqVc4Lsx+PYuSan7QLL8h\r\nEwMYkQ1+Ouk1gOeZIgH8JfcLCClaIFOn4INijTnSx2sIARg8iDEAulYkliQ0\r\nrv0JmYCojX5IsuTXKjTBDcaJ2K4rBZTxcMg7giAWhwHvuruzgRZL+GzFmbzy\r\nnBXQmEB8WtVBo1ut+8NyssJLv7UeN5208Dae4UQfURg5h1nnOFslo0f6zEkJ\r\nW1ysgQL+VepVJCloq/n/E7qmwvxakm7NXa629u9jnOyts4LXWGmVHPGEYPBJ\r\nm7MwO9ylm4l54biUdN0oK3QRD7tCey7b2q0Asu6ZQj3uvcSFJNKq0JYgTlQy\r\nOVAateVfJRyermbZceDmwufVTeEbQR+VKS/wrb+M6Zp0XA7WL+pi2Ljql8jQ\r\nsZMlPZWfbmPva9AGwg2H/r3wnhh6WSpAAp1FLM046qUEOCLn8QgNm6OiGZT8\r\nT1FLXXDpIEJ4Zt6UzI6T2uQ8unPcYTXPDSRxTF3T49LCe1kPZhmKzZEmhr9B\r\n6UXw6A0JNaUOOouVf7ZQ/VdQ4zRUgcShyi0=\r\n=dMSY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dowhileluke","email":"dowhileluke@gmail.com"},"directories":{},"maintainers":[{"name":"dowhileluke","email":"dowhileluke@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fns_1.6.0_1668925896584_0.05032415113006272"},"_hasShrinkwrap":false},"1.6.1":{"name":"@dowhileluke/fns","version":"1.6.1","description":"functions that i don't want to copypaste everywhere","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"test":"jest","lint":"xo","prebuild":"rimraf dist/*","build":"rollup -c rollup.config.ts --configPlugin typescript2"},"jest":{"preset":"ts-jest","testEnvironment":"node"},"xo":{"semicolon":false,"rules":{"@typescript-eslint/ban-types":["error",{"extendDefaults":true,"types":{"null":false}}],"@typescript-eslint/object-curly-spacing":["error","always"],"import/extensions":["error",{"ts":"never"}],"unicorn/filename-case":"off"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"eslint"}],"@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github"]},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dowhileluke/fns.git"},"keywords":["utility","util"],"author":{"name":"dowhileluke"},"license":"MIT","bugs":{"url":"https://github.com/dowhileluke/fns/issues"},"homepage":"https://github.com/dowhileluke/fns#readme","devDependencies":{"@types/jest":"^29.2.3","conventional-changelog-eslint":"^3.0.9","jest":"^29.3.1","rimraf":"^3.0.2","rollup":"^3.3.0","rollup-plugin-typescript2":"^0.34.1","semantic-release":"^19.0.5","ts-jest":"^29.0.3","tslib":"^2.4.1","typescript":"^4.9.3","xo":"^0.53.0"},"gitHead":"56382368a3caca0e6f2f5005a4c86d24501827ff","_id":"@dowhileluke/fns@1.6.1","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-PAU7zSsppevowm/tFiKxoBn6TKgtavmTtlb/BmPCTzN90NbcHwFRIpXcxD3aCHD+27aWEXcvBMQ6H1WbvzEbVg==","shasum":"7d7b9a30ee2a1c59f5030231d8f63958fccfacc6","tarball":"https://registry.npmjs.org/@dowhileluke/fns/-/fns-1.6.1.tgz","fileCount":17,"unpackedSize":17750,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1JF0vu2DO3Afefz/r3ID5xkIbMJ6tQfaJBQiM21chrAIgBAc+GyiMouVbIPUWHQMSwShtY33c7MPw5Z1K5PlYvOE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjiGAeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo0Rg//bKIl4IkQWSKJ9qBWepq3VBeNUcx2teEj1iy7FO4RnzgDBP+l\r\n/KE+qGKgpfHgsKZxVSEcbhBhSAxhNl+cAXrXyoF5vjUSYhg0EzwsSf/ITTaJ\r\n/QIdUn56PDZw9/9/5HDMH/giVjLYu/ZZtvculglhIUi0kecNgGrWcLmRBneG\r\nz4RB4BIhDZwt2nDyj2tGYOovftjY3t+j06eSwQMQk2eSC3uXkCW4lQLEHk5G\r\nxYS4Oo1t1LBzij5/Z9SgCqPg2mjjv/zM8Yo0Uf8yrtfS4YUbzm3LB/5WhenJ\r\nSXVislWfDbAQkXLqH5u7dg83c6EMgYwDQnr9e9yLMH8Ng7Agno0KIqCtrbwG\r\n4QsVrQxA8noEhc96TVtcpHZIylMegMg09o6Niy/aZ+PV0g5xzoc70cQfsI2O\r\nayhYDlF/PWrZMgCvK33AtS9WRbxY8TG2fMexYSIijqbE64q964R2bPsmJY6c\r\ncBfAS/hOXJsB7L4j0yeX7mW3yXHY0lyD3T0LDh7cH+olH679H+XauWTbdJFb\r\nyh52HcsEP3w5rfEBm5tef2qcY/3ciV0u/tz/M9SvHjLpGMRdOBB7+sO742lf\r\nBCqgHXLlXx8LOABQfwvzdb1cRGiAg0SC6SgethrXJJwaQPMRkG1vFiLqUoBf\r\nEd/LVdEy0PQJTEKNuDDYjhKBR74cSYyQbkw=\r\n=fOm9\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dowhileluke","email":"dowhileluke@gmail.com"},"directories":{},"maintainers":[{"name":"dowhileluke","email":"dowhileluke@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fns_1.6.1_1669881886133_0.16296878206946697"},"_hasShrinkwrap":false},"1.6.2":{"name":"@dowhileluke/fns","version":"1.6.2","description":"functions that i don't want to copypaste everywhere","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"test":"jest","lint":"xo","prebuild":"rimraf dist/*","build":"rollup -c rollup.config.ts --configPlugin typescript2"},"jest":{"preset":"ts-jest","testEnvironment":"node"},"xo":{"semicolon":false,"rules":{"@typescript-eslint/ban-types":["error",{"extendDefaults":true,"types":{"null":false}}],"@typescript-eslint/object-curly-spacing":["error","always"],"import/extensions":["error",{"ts":"never"}],"unicorn/filename-case":"off"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"eslint"}],"@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github"]},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dowhileluke/fns.git"},"keywords":["utility","util"],"author":{"name":"dowhileluke"},"license":"MIT","bugs":{"url":"https://github.com/dowhileluke/fns/issues"},"homepage":"https://github.com/dowhileluke/fns#readme","devDependencies":{"@types/jest":"^29.2.3","conventional-changelog-eslint":"^3.0.9","jest":"^29.3.1","rimraf":"^3.0.2","rollup":"^3.3.0","rollup-plugin-typescript2":"^0.34.1","semantic-release":"^19.0.5","ts-jest":"^29.0.3","tslib":"^2.4.1","typescript":"^4.9.3","xo":"^0.53.0"},"gitHead":"1e9336669f4f4c373878de11e460421c22b6a3fb","_id":"@dowhileluke/fns@1.6.2","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-ebU5tEhFgrnX9EO4n7Y7iRh7GGh6OojdwRKYA1KZsIoi8xqC8UzHTmciMdwITzMhu6EKPFc270PlCLiFfelRYQ==","shasum":"82695a37340ae7aea0716a1bee24738d4b970ddf","tarball":"https://registry.npmjs.org/@dowhileluke/fns/-/fns-1.6.2.tgz","fileCount":17,"unpackedSize":17751,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDUHCbilanr2JYlbnE5V2gKosK+WSfjEfzlK7mn6dj0MAIhANpHW8igt4vh1sUZvaILfPgNujFE/L+cd7jmwww7fBRT"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjikymACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqRAA//YY9L1N3H1Wv7qIs9TEVo/3fCkliZmyT/3As2T1gSzOFQEKHJ\r\nSW/6WVOqY+B2CGF+Ja5J7/MKiLxex/vSqrd8BiH1yJ6xbhGkqQ/p2lk2w2jn\r\nlE1tiSRAG55TAKLQV8DIQ8VV1LDI1VVeR3BQPZSWZY4z7m6ECYa4ClDKRPA6\r\nT3CRjKP8Nf+cC2qhkXruJzUG46FYRl2Ql88ATgEdJSz8suQk9UkGUE+o/6O/\r\nFgfOuN8YCcjAwKBKcpcMFV138v5oouM/9BHt4CUTag0O/U2XOfuMshm2g6cH\r\nVoTEH98FcosYzMgmtbLVkDZxCFG+5gOi0piYM3bhKQ3P5aZSfbVWmNKpZ104\r\nxRDuzy8Gxxy17BkQfKfpMBCOzq/gx9JxIgKlwmVksJwpYobrV8+6p0MQGGJi\r\nG92iApyIFRb9mP0HpZdc8rQRIzG2WjcWdXPNT8Bx7pww4MMwqE1MUWmug7v6\r\nhDjgspQ46sE1IBOicngBbljOhfJGwVo8o0i2+vdHBR6wJvBZUTOWzZnuVOAr\r\nVY1gsmfW9MjKSdH/x6oFLLoU5mAGw7CJBxxbFBARFGP3QFvUMKAP0xpOUiVk\r\nH1biSjOizXCMUni0WET70UAus8UzdRgmL5Re0x2d8AemvDAjnrUwHZg/OAg9\r\njKiGS5Z2DQMAXoz3t5ITFS3iDsh/gsphVZw=\r\n=F1Di\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dowhileluke","email":"dowhileluke@gmail.com"},"directories":{},"maintainers":[{"name":"dowhileluke","email":"dowhileluke@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fns_1.6.2_1670007973769_0.24236098387844196"},"_hasShrinkwrap":false},"1.7.0":{"name":"@dowhileluke/fns","version":"1.7.0","description":"functions that i don't want to copypaste everywhere","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"test":"jest","lint":"xo","prebuild":"rimraf dist/*","build":"rollup -c rollup.config.ts --configPlugin typescript2"},"jest":{"preset":"ts-jest","testEnvironment":"node"},"xo":{"semicolon":false,"rules":{"@typescript-eslint/ban-types":["error",{"extendDefaults":true,"types":{"null":false}}],"@typescript-eslint/object-curly-spacing":["error","always"],"import/extensions":["error",{"ts":"never"}],"unicorn/filename-case":"off"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"eslint"}],"@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github"]},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dowhileluke/fns.git"},"keywords":["utility","util"],"author":{"name":"dowhileluke"},"license":"MIT","bugs":{"url":"https://github.com/dowhileluke/fns/issues"},"homepage":"https://github.com/dowhileluke/fns#readme","devDependencies":{"@types/jest":"^29.2.3","conventional-changelog-eslint":"^3.0.9","jest":"^29.3.1","rimraf":"^3.0.2","rollup":"^3.3.0","rollup-plugin-typescript2":"^0.34.1","semantic-release":"^19.0.5","ts-jest":"^29.0.3","tslib":"^2.4.1","typescript":"^4.9.3","xo":"^0.53.0"},"gitHead":"d0ef6176eec43933e89ab733a666a551d07075aa","_id":"@dowhileluke/fns@1.7.0","_nodeVersion":"16.19.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-L6ukTZwQWLrVTXgjnbJ/4i70iCb4Fpd9P90NQxWHZxhN5UxA1dOjUYliNShwwJYMQBUvwz7t3ABkYbD7RkPo/Q==","shasum":"d1cf94b9c6cf6af3703327a50a2687c09de2519b","tarball":"https://registry.npmjs.org/@dowhileluke/fns/-/fns-1.7.0.tgz","fileCount":18,"unpackedSize":19555,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlRoszZ+yySDwtrQewBJYzLgcjZRsUVUDNfZdilFzY3wIgBAJnk1TcVJ1uKsZkKOUs3FxaCZgUDMTkUirRV7ItjT8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwQ4BACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoLUw/8CX1tR7A640iZiuMMXOPlluZ1xRVRy0OWnOu5zi9nvEYT74AH\r\nBwRSEaZDDjWkkJnNKNLopjZSOnp2oCbtACymMXQSXOVkZGFQp3bt05IFk7N+\r\nVEPEq4dCEC3LtkBt1KuOJSaLu3d39REv23r5bOfhaHpdZZpnIuPIMUV+zBJb\r\nN5F45sKdTwcDyOyFOaCz5EdDSUHZt6dMl4Ok5VMBEkvlKohhedDo02O5iJsp\r\n0e6f+I5lLJGXlvNtAUtz7GvgWr/zCQvHrIplns15ZQDgb9tWFUHh+OpHJ3NQ\r\nlvjnawHi0hi9P/enzfuGKXBftYMtdTBF0VpbApUjgjh0CqGDWd8jInHzI+ku\r\nj/r8IxubqH3fpOEcvHqpeNEsaNJ9isTgVI3BNS9FHBhQXVHNmFJoL+/ZFsfA\r\n0E4URvbRmsqg1mkqWlVaFrYsxce6xNMPrF8T72E4OJyg2YL5JMv0+zURaUB7\r\n9NEhen68E+AUQpM7nr/aW34pZ/eWXY31yQbWXmyEHHdoOk/N/QmLo5eK7gKa\r\nXZBgLVEhaUa6Yd1kbSLpE1j611EUslBaM7x6/4fbMQohaeFUnaRd/jtdaZ5J\r\nrpRrqzAaP1i2VMHutdKxzbi3WHESKLsoSEoSGcG4Jqs8p/xXWcv4OOPWT5uO\r\nqBtK3MeC9kdaLUWChiyL/FLcLF1zywM/XJY=\r\n=+nxr\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dowhileluke","email":"dowhileluke@gmail.com"},"directories":{},"maintainers":[{"name":"dowhileluke","email":"dowhileluke@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fns_1.7.0_1673596417061_0.43273209532946955"},"_hasShrinkwrap":false},"1.8.0":{"name":"@dowhileluke/fns","version":"1.8.0","description":"functions that i don't want to copypaste everywhere","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"test":"jest","lint":"xo","prebuild":"rimraf dist/*","build":"rollup -c rollup.config.ts --configPlugin typescript2"},"jest":{"preset":"ts-jest","testEnvironment":"node"},"xo":{"semicolon":false,"rules":{"@typescript-eslint/ban-types":["error",{"extendDefaults":true,"types":{"null":false}}],"@typescript-eslint/object-curly-spacing":["error","always"],"import/extensions":["error",{"ts":"never"}],"unicorn/filename-case":"off"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"eslint"}],"@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github"]},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dowhileluke/fns.git"},"keywords":["utility","util"],"author":{"name":"dowhileluke"},"license":"MIT","bugs":{"url":"https://github.com/dowhileluke/fns/issues"},"homepage":"https://github.com/dowhileluke/fns#readme","devDependencies":{"@types/jest":"^29.2.3","conventional-changelog-eslint":"^3.0.9","jest":"^29.3.1","rimraf":"^3.0.2","rollup":"^3.3.0","rollup-plugin-typescript2":"^0.34.1","semantic-release":"^19.0.5","ts-jest":"^29.0.3","tslib":"^2.4.1","typescript":"^4.9.3","xo":"^0.53.0"},"gitHead":"eaf67f18cd3ea6ca2a6a3bf1ec8a3b583d3d30ab","_id":"@dowhileluke/fns@1.8.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-9v5KqRgW3NoOImwE42Vu4uOiwFeAwIsT2gy/1x3+JAL2Mbnzyvsu3T4ONWx2SBmGESBdUlzyQeWdpvaZESWnbw==","shasum":"6e4995934242558beb90f27729bf087aa5c3afa9","tarball":"https://registry.npmjs.org/@dowhileluke/fns/-/fns-1.8.0.tgz","fileCount":18,"unpackedSize":19598,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5FSWmBeoTcTUVeDDbI6zHioW0pfsFJG+bLQJvekbruwIhAICwctLfXY27M5uPZm7Pr5EtxN/Ohoy1vZyu9Dd/+1Iu"}]},"_npmUser":{"name":"dowhileluke","email":"dowhileluke@gmail.com"},"directories":{},"maintainers":[{"name":"dowhileluke","email":"dowhileluke@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fns_1.8.0_1685521199329_0.5092740781129932"},"_hasShrinkwrap":false},"1.8.1":{"name":"@dowhileluke/fns","version":"1.8.1","description":"functions that i don't want to copypaste everywhere","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"test":"jest","lint":"xo","prebuild":"rimraf dist/*","build":"rollup -c rollup.config.ts --configPlugin typescript2"},"jest":{"preset":"ts-jest","testEnvironment":"node"},"xo":{"semicolon":false,"rules":{"@typescript-eslint/ban-types":["error",{"extendDefaults":true,"types":{"null":false}}],"@typescript-eslint/object-curly-spacing":["error","always"],"import/extensions":["error",{"ts":"never"}],"unicorn/filename-case":"off"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"eslint"}],"@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github"]},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dowhileluke/fns.git"},"keywords":["utility","util"],"author":{"name":"dowhileluke"},"license":"MIT","bugs":{"url":"https://github.com/dowhileluke/fns/issues"},"homepage":"https://github.com/dowhileluke/fns#readme","devDependencies":{"@types/jest":"^29.2.3","conventional-changelog-eslint":"^3.0.9","jest":"^29.3.1","rimraf":"^3.0.2","rollup":"^3.3.0","rollup-plugin-typescript2":"^0.34.1","semantic-release":"^19.0.5","ts-jest":"^29.0.3","tslib":"^2.4.1","typescript":"^4.9.3","xo":"^0.53.0"},"gitHead":"96a212b6c6eaba9aed6438af1b552fba5091b2ae","_id":"@dowhileluke/fns@1.8.1","_nodeVersion":"16.20.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-ps3GiDNZcFbpIxq6Sl0ppyKUosa9i3fzpld95aQBf/WnnOyhmQ3r2XZe4ql2QZXZMFVdE1FyF11O8xGT3hZaGg==","shasum":"9e2806f40c30c8ac8239c11c920e193c6ccd03b8","tarball":"https://registry.npmjs.org/@dowhileluke/fns/-/fns-1.8.1.tgz","fileCount":18,"unpackedSize":19878,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCplRtg8EJAPnqK9SXq5rnxzkPWhUsp2LV8LC2h6hlzHgIgE7SjMqa+rxQH6Up1KUYj+gMNDbn+j/f7JR4mWmz1rVM="}]},"_npmUser":{"name":"dowhileluke","email":"dowhileluke@gmail.com"},"directories":{},"maintainers":[{"name":"dowhileluke","email":"dowhileluke@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fns_1.8.1_1685677926119_0.0025133063828537416"},"_hasShrinkwrap":false},"2.0.0":{"name":"@dowhileluke/fns","version":"2.0.0","description":"functions that i don't want to copypaste everywhere","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"test":"jest","lint":"xo","prebuild":"rimraf dist/*","build":"rollup -c rollup.config.ts --configPlugin typescript2"},"jest":{"preset":"ts-jest","testEnvironment":"node"},"xo":{"semicolon":false,"rules":{"@typescript-eslint/ban-types":["error",{"extendDefaults":true,"types":{"null":false}}],"@typescript-eslint/object-curly-spacing":["error","always"],"import/extensions":["error",{"ts":"never"}],"unicorn/filename-case":"off"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"eslint"}],"@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github"]},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dowhileluke/fns.git"},"keywords":["utility","util"],"author":{"name":"dowhileluke"},"license":"MIT","bugs":{"url":"https://github.com/dowhileluke/fns/issues"},"homepage":"https://github.com/dowhileluke/fns#readme","devDependencies":{"@types/jest":"^29.2.3","conventional-changelog-eslint":"^3.0.9","jest":"^29.3.1","rimraf":"^3.0.2","rollup":"^3.3.0","rollup-plugin-typescript2":"^0.34.1","semantic-release":"^19.0.5","ts-jest":"^29.0.3","tslib":"^2.4.1","typescript":"^4.9.3","xo":"^0.53.0"},"gitHead":"130cddbf7a340cfaa465ca077a7b0d4fabdb679e","_id":"@dowhileluke/fns@2.0.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-z1X133v635UeNoq3oMWLM+MXtkyPfM8R0mz1BTxo+z/cs6N7oTOkkp/EblKmFZ0UgPinPWm1ey0u5BlC46zFUQ==","shasum":"b7e6edda977ebcb368b2f5b109c6bef35cc949e4","tarball":"https://registry.npmjs.org/@dowhileluke/fns/-/fns-2.0.0.tgz","fileCount":19,"unpackedSize":21038,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQsI1R9Ru6p3fL56sOLhPLm3bPYcpSBbFBNKX6w2CbEwIhAMRDqUOVu0aWxYDbnZ6+9olEK+gHKSYJfsr7H7kZKXHu"}]},"_npmUser":{"name":"dowhileluke","email":"dowhileluke@gmail.com"},"directories":{},"maintainers":[{"name":"dowhileluke","email":"dowhileluke@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fns_2.0.0_1685903924596_0.8602980534653322"},"_hasShrinkwrap":false},"2.0.1":{"name":"@dowhileluke/fns","version":"2.0.1","description":"functions that i don't want to copypaste everywhere","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"test":"jest","lint":"xo","prebuild":"rimraf dist/*","build":"rollup -c rollup.config.ts --configPlugin typescript2"},"jest":{"preset":"ts-jest","testEnvironment":"node"},"xo":{"semicolon":false,"rules":{"@typescript-eslint/ban-types":["error",{"extendDefaults":true,"types":{"null":false}}],"@typescript-eslint/object-curly-spacing":["error","always"],"import/extensions":["error",{"ts":"never"}],"unicorn/filename-case":"off"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"eslint"}],"@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github"]},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dowhileluke/fns.git"},"keywords":["utility","util"],"author":{"name":"dowhileluke"},"license":"MIT","bugs":{"url":"https://github.com/dowhileluke/fns/issues"},"homepage":"https://github.com/dowhileluke/fns#readme","devDependencies":{"@types/jest":"^29.2.3","conventional-changelog-eslint":"^3.0.9","jest":"^29.3.1","rimraf":"^3.0.2","rollup":"^3.3.0","rollup-plugin-typescript2":"^0.34.1","semantic-release":"^19.0.5","ts-jest":"^29.0.3","tslib":"^2.4.1","typescript":"^4.9.3","xo":"^0.53.0"},"gitHead":"2df0e519e2f653b2fbf930dfc37b69b17fecf7d0","_id":"@dowhileluke/fns@2.0.1","_nodeVersion":"16.20.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-+G2g6YNbr0SL395eYicvxi5RVPfEnh9zJZ3jpnByzAEPlAuPb0g5UyLqJiwWczCwcgGy76VWXZUNuglR8yXK5g==","shasum":"92e95d470e80d447dab457b94f4d2b88bb9b0c36","tarball":"https://registry.npmjs.org/@dowhileluke/fns/-/fns-2.0.1.tgz","fileCount":19,"unpackedSize":21044,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBrnyqJQIp1oVF+R/0tApCjQB5TA9gxzn50zG+UhgUplAiAWlY8xkJwRxt6cuIkpUDJD5jHT6/h0bLdUobphltHmkw=="}]},"_npmUser":{"name":"dowhileluke","email":"dowhileluke@gmail.com"},"directories":{},"maintainers":[{"name":"dowhileluke","email":"dowhileluke@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fns_2.0.1_1691614362575_0.4625346837658524"},"_hasShrinkwrap":false}},"time":{"created":"2022-06-12T16:52:54.933Z","1.0.0":"2022-06-12T16:52:55.130Z","modified":"2023-08-09T20:52:42.960Z","1.1.0":"2022-06-21T16:41:51.135Z","1.2.0":"2022-06-21T17:58:12.258Z","1.3.0":"2022-10-31T03:20:15.618Z","1.3.1":"2022-10-31T19:23:56.672Z","1.4.0":"2022-11-01T05:38:31.418Z","1.4.1":"2022-11-10T22:50:47.627Z","1.4.2":"2022-11-13T03:24:30.256Z","1.5.0":"2022-11-19T21:29:32.213Z","1.5.1":"2022-11-20T06:01:26.733Z","1.6.0":"2022-11-20T06:31:36.715Z","1.6.1":"2022-12-01T08:04:46.329Z","1.6.2":"2022-12-02T19:06:14.033Z","1.7.0":"2023-01-13T07:53:37.220Z","1.8.0":"2023-05-31T08:19:59.506Z","1.8.1":"2023-06-02T03:52:06.305Z","2.0.0":"2023-06-04T18:38:44.874Z","2.0.1":"2023-08-09T20:52:42.761Z"},"maintainers":[{"name":"dowhileluke","email":"dowhileluke@gmail.com"}],"description":"functions that i don't want to copypaste everywhere","homepage":"https://github.com/dowhileluke/fns#readme","keywords":["utility","util"],"repository":{"type":"git","url":"git+https://github.com/dowhileluke/fns.git"},"author":{"name":"dowhileluke"},"bugs":{"url":"https://github.com/dowhileluke/fns/issues"},"license":"MIT","readme":"# fns\nA collection of utility functions that I am too frequently copying between projects.\n\nNo dependencies, 60+ tests, tree-shakable, type-safe.\n\n```\nnpm i @dowhileluke/fns\n```\n\n**Array Methods**\n\n* [`categorize`](#categorize)\n* [`generateArray`](#generatearray)\n* [`split`](#split)\n* [`sum`](#sum)\n* [`tail`](#tail)\n* [`truthy`](#truthy)\n\n**Object Methods**\n\n* [`hasProp`](#hasprop)\n* [`objectFilter`](#objectfilter)\n* [`objectFindKey`](#objectfindkey)\n* [`objectMap`](#objectmap)\n\n# Array Methods\n\n### `categorize`\nsubdivide an array by some property of each element\n\n```js\nconst a = { age: 17 }\nconst b = { age: 40 }\nconst c = { age: 66 }\n\n// Mode 1 -- boolean\nconst [babies, others] = categorize([a, b, c], x => x.age < 2)\n// babies = []\n// others = [a, b, c]\n\n// Mode 2 -- category\nfunction toCategory(person) {\n\tif (person.age < 2) return 'baby'\n\tif (person.age < 13) return 'child'\n\tif (person.age < 20) return 'teen'\n\t\n\treturn 'adult'\n}\n\nconst ageGroups = categorize([a, b, c] => toCategory)\n// ageGroups.baby  = undefined\n// ageGroups.child = undefined\n// ageGroups.teen  = [a]\n// ageGroups.adult = [b, c]\n// Object.keys(ageGroups) = ['teen', 'adult']\n```\n\n### `generateArray`\ncreate a new array for a chosen number of elements or range of integer values\n\n```js\ngenerateArray(4) // [0, 1, 2, 3]\ngenerateArray(2, -2) // [2, 1, 0, -1, -2]\n\n// optional argument: map function\ngenerateArray(1, 3, n => null) // [null, null, null]\n```\n\n### `split`\nsplit an array (or string) in two at a given index\n\n```js\nconst [manyItems, finalTwo] = split([1, 2, 3, 4, 5], -2)\n// manyItems = [1, 2, 3]\n// finalTwo = [4, 5]\n\nsplit('example', 2) // ['ex', 'ample']\n```\n\n### `sum`\nfind the total of the given numbers\n\n```js\n// Mode 1 -- simple\nsum([1, 2, 3]) // 6\n\n// Mode 2 -- element property\nconst cart = [\n\t{ price: 50, quantity: 2 },\n\t{ price: 20, quantity: 1 }\n]\n\nsum(cart, x => x.price * x.quantity) // 120\n```\n\n### `tail`\nget the last element\n\n```js\ntail([5, 10, 15, 20]) // 20\n```\n\n### `truthy`\nfilter a list to include only truthy elements\n\n```js\n// Mode 1 -- array\ntruthy([0, 1, 2]) // [1, 2]\n\n// Mode 2 -- arguments\nconst isRounded = false\n\ntruthy('box', isRounded && 'rounded') // ['box']\n```\n\n# Object Methods\n\n### `hasProp`\ncheck if an object contains a key\n\n```js\nconst example = { u: undefined }\n\nhasProp(example, 'u') // true\nhasProp(example, 'x') // false\nhasProp('str', 'toLowerCase') // false, only exists on prototype\n```\n\n### `objectFilter`\nget a subset of an object (like Array#filter) \n\n```js\nconst directory = {\n\t101: { ownerId: 1 },\n\t102: { ownerId: 1 },\n\t103: { ownerId: 2 },\n}\n\nconst ownedBy1 = objectFilter(directory, item => item.ownerId === 1)\n\nObject.keys(ownedBy1) // ['101', '102']\n```\n\n### `objectFindKey`\nfind an element in an object and return its key (like Array#findIndex)\n\n```js\nconst a = { value: 1 }\nconst b = { value: 2 }\nconst c = { value: 3 }\n\nobjectFindKey({ a, b, c }, x => x.value === 2) // 'b'\n```\n\n### `objectMap`\nconvert each element in an object (like Array#map)\n\n```js\nobjectMap({ a: 1, b: 2, c: 3 }, x => x ** 2)\n// { a: 1, b: 4, c: 9 }\n```\n","readmeFilename":"README.md"}